This commit is contained in:
2024-04-09 11:15:30 +08:00
parent cf2f723d60
commit c1cc77ac6b
3 changed files with 336 additions and 80 deletions

View File

@ -108,47 +108,32 @@
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" width="130" />
<el-table-column label="就诊流水号" align="center" prop="visitSerialNumber" width="130" />
<el-table-column label="诊断" align="center" prop="signDiagnosis" />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="130" />
<el-table-column label="院区" align="center" prop="campusAgencyName" />
<el-table-column label="科室" align="center" prop="departmentName" />
<el-table-column label="病区" align="center" prop="wardName" />
<el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
</template>
</el-table-column>
<el-table-column label="意向来源" align="center" prop="intentionalSource"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">
<template slot-scope="scope">
<dict-tag :options="dict.type.sign_intentional_source" :value="scope.row.intentionalSource" />
</template>
</el-table-column>
<el-table-column label="患者来源" align="center" prop="intentionalSource" v-else>
<template slot-scope="scope">
<dict-tag :options="dict.type.sign_intentional_source" :value="scope.row.intentionalSource" />
</template>
</el-table-column>
<el-table-column label="签约时间" align="center" prop="signTime" width="180"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">
<template slot-scope="scope">
<span>{{ formatDate(scope.row.signTime) }}</span>
</template>
</el-table-column>
<el-table-column label="加入意向时间" align="center" prop="intentionalTime" width="180"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">
<template slot-scope="scope">
<span>{{ formatDate(scope.row.intentionalTime) }}</span>
</template>
</el-table-column>
<el-table-column label="服务包名称" align="center" prop="packageName" width="130"
v-if="queryParams.serviceStatus != 'INTENTIONAL_SIGNING'" />
<div v-else>
<div v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" width="130" />
<el-table-column label="就诊流水号" align="center" prop="visitSerialNumber" width="130" />
<el-table-column label="诊断" align="center" prop="signDiagnosis" />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="130" />
<el-table-column label="院区" align="center" prop="campusAgencyName" />
<el-table-column label="科室" align="center" prop="departmentName" />
<el-table-column label="病区" align="center" prop="wardName" />
<el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
</template>
</el-table-column>
<el-table-column label="意向来源" align="center" prop="intentionalSource">
<template slot-scope="scope">
<dict-tag :options="dict.type.sign_intentional_source" :value="scope.row.intentionalSource" />
</template>
</el-table-column>
<el-table-column label="加入意向时间" align="center" prop="intentionalTime" width="180">
<template slot-scope="scope">
<span>{{ formatDate(scope.row.intentionalTime) }}</span>
</template>
</el-table-column>
<el-table-column label="开单医生" align="center" prop="billingDoctorName" />
<el-table-column label="金额" align="center" prop="price" />
<el-table-column label="缴费状态" align="center" prop="paymentStatus">
@ -158,35 +143,118 @@
</span>
</template>
</el-table-column>
</div>
<el-table-column label="签约时长" align="center" prop="serviceCycle">
<template slot-scope="scope">
<span>{{ scope.row.packageTerm }}{{ scope.row.packageTermUnit }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="服务状态" align="center"
prop="serviceStatus" >
意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END
</el-table-column> -->
<el-table-column label="签约状态" align="center" prop="signStatus" v-if="queryParams.serviceStatus == 'SERVICE_END'">
<template slot-scope="scope">
{{ scope.row.signStatus == 'SEPARATE_SIGN' ? '取消签约' : '' }}
{{ scope.row.signStatus == 'EXPIRE_SIGN' ? '过期' : '' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handlenewsign(scope.row)"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">签约</el-button>
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">详情</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">取消签约</el-button>
<el-button size="mini" type="text" @click="handleContinue(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">续约</el-button>
</template>
</el-table-column>
</el-table>
<el-table-column label="签约时长" align="center" prop="serviceCycle">
<template slot-scope="scope">
<span>{{ scope.row.packageTerm }}{{ scope.row.packageTermUnit }}</span>
</template>
</el-table-column>
<el-table-column label="签约状态" align="center" prop="signStatus"
v-if="queryParams.serviceStatus == 'SERVICE_END'">
<template slot-scope="scope">
{{ scope.row.signStatus == 'SEPARATE_SIGN' ? '取消签约' : '' }}
{{ scope.row.signStatus == 'EXPIRE_SIGN' ? '过期' : '' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handlenewsign(scope.row)"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">签约</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" width="130" />
<el-table-column label="就诊流水号" align="center" prop="visitSerialNumber" width="130" />
<el-table-column label="诊断" align="center" prop="signDiagnosis" />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="130" />
<el-table-column label="院区" align="center" prop="campusAgencyName" />
<el-table-column label="科室" align="center" prop="departmentName" />
<el-table-column label="病区" align="center" prop="wardName" />
<el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
</template>
</el-table-column>
<el-table-column label="患者来源" align="center" prop="intentionalSource">
<template slot-scope="scope">
<dict-tag :options="dict.type.sign_intentional_source" :value="scope.row.intentionalSource" />
</template>
</el-table-column>
<el-table-column label="签约时间" align="center" prop="signTime" width="180">
<template slot-scope="scope">
<span>{{ formatDate(scope.row.signTime) }}</span>
</template>
</el-table-column>
<el-table-column label="服务包名称" align="center" prop="packageName" width="130" />
<el-table-column label="签约时长" align="center" prop="serviceCycle">
<template slot-scope="scope">
<span>{{ scope.row.packageTerm }}{{ scope.row.packageTermUnit }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">详情</el-button>
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">取消签约</el-button>
<el-button size="mini" type="text" @click="handleContinue(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">续约</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="queryParams.serviceStatus == 'SERVICE_END'">
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" width="130" />
<el-table-column label="就诊流水号" align="center" prop="visitSerialNumber" width="130" />
<el-table-column label="诊断" align="center" prop="signDiagnosis" />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="130" />
<el-table-column label="院区" align="center" prop="campusAgencyName" />
<el-table-column label="科室" align="center" prop="departmentName" />
<el-table-column label="病区" align="center" prop="wardName" />
<el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
</template>
</el-table-column>
<el-table-column label="患者来源" align="center" prop="intentionalSource">
<template slot-scope="scope">
<dict-tag :options="dict.type.sign_intentional_source" :value="scope.row.intentionalSource" />
</template>
</el-table-column>
<el-table-column label="服务包名称" align="center" prop="packageName" width="130">
<template slot-scope="scope">
<span>{{ scope.row.packageName }}</span>
</template>
</el-table-column>
<el-table-column label="签约时长" align="center" prop="serviceCycle">
<template slot-scope="scope">
<span>{{ scope.row.packageTerm }}{{ scope.row.packageTermUnit }}</span>
</template>
</el-table-column>
<el-table-column label="签约状态" align="center" prop="signStatus">
<template slot-scope="scope">
{{ scope.row.signStatus == 'SEPARATE_SIGN' ? '取消签约' : '' }}
{{ scope.row.signStatus == 'EXPIRE_SIGN' ? '过期' : '' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="160">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">详情</el-button>
<el-button size="mini" type="text" @click="handleContinue(scope.row)"
v-if="queryParams.serviceStatus == 'SERVICE_CENTER' || queryParams.serviceStatus == 'SERVICE_END'">续约</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
@ -273,6 +341,7 @@ export default {
/** 查询签约记录列表 */
getList() {
this.loading = true;
this.signRecordList = []
listSignRecord(this.queryParams).then(response => {
this.signRecordList = response.rows;
this.total = response.total;
@ -323,19 +392,19 @@ export default {
},
/** 搜索按钮操作 */
handleQuery() {
if (this.intentionalTime.length > 0) {
if (this.intentionalTime?.length > 0) {
this.queryParams.intentionalTimeStart = this.intentionalTime[0]
this.queryParams.intentionalTimeEnd = this.intentionalTime[1]
}
if (this.signTime.length > 0) {
if (this.signTime?.length > 0) {
this.queryParams.signTimeStart = this.signTime[0]
this.queryParams.signTimeEnd = this.signTime[1]
}
if (this.serviceEndTime.length > 0) {
if (this.serviceEndTime?.length > 0) {
this.queryParams.serviceEndTimeStart = this.serviceEndTime[0]
this.queryParams.serviceEndTimeEnd = this.serviceEndTime[1]
}
if (this.submissionTime.length > 0) {
if (this.submissionTime?.length > 0) {
this.queryParams.submissionTimeStart = this.submissionTime[0]
this.queryParams.submissionTimeEnd = this.submissionTime[1]
}

View File

@ -1,5 +1,90 @@
<template>
<div class="app-container">
<div>
<div class="title">
<div slot="footer" class="dialog-footer">
<el-button type="primary">执行</el-button>
</div>
<el-descriptions title="手动创建任务">
</el-descriptions>
<el-form :inline="true" :model="updata" class="demo-form-inline">
<el-form-item label="任务名称">
<el-input v-model="updata.routeName" placeholder="审批人"></el-input>
</el-form-item>
<el-form-item label="适用范围">
<el-select v-model="updata.suitRange">
<el-option label="在院" value="IN_THE_HOSPITAL" />
<el-option label="出院" value="DISCHARGE" />
<el-option label="门诊" value="OUTPATIENT_SERVICE" />
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
</el-select>
</el-form-item>
</el-form>
</div>
<div class="nodes">
<div class="nodenames">
<el-timeline>
<el-timeline-item v-for="(item, index) in list" :key="index"
:color="listindex == index ? '#409EFF' : ''" @click.native='clicktimelineitem(item, index)'>
<div class="top">
<div class="toptop">
<el-select style="width:87px" v-model="formInline">
<el-option label="出院后" value="AFTER_DISCHARGE" />
<el-option label="入院后" value="AFTER_ADMISSION" />
<el-option label="就诊后" value="AFTER_CONSULTATION" />
<el-option label="就诊/出院后" value="AFTER_VISIT_DISCHARGE" />
<el-option label="术前" value="PREOPERATIVE" />
<el-option label="术后" value="POSTOPERATIVE" />
</el-select>
<el-input style="width: 50px;"></el-input>
<span></span>
</div>
<div>
<i class="el-icon-delete" @click="delitem(item, index)"></i>
<i class="el-icon-circle-plus-outline" @click="additem(item)"></i>
</div>
</div>
<el-card :class="listindex == index ? 'cards' : ''">
<h3 style="height: 20px;">2</h3>
<p style="height: 16px;">3333333</p>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
<div class="nodetexts">
<el-form :model="formInline" class="demo-form-inline">
<el-form-item label="任务内容">
<el-radio-group v-model="formInline.taskType">
<el-radio label="PHONE_OUTBOUND">电话外呼</el-radio>
<el-radio label="QUESTIONNAIRE_SCALE">问卷量表</el-radio>
<el-radio label="PROPAGANDA_ARTICLE">宣教文案</el-radio>
<el-radio label="TEXT_REMIND">文字提醒</el-radio>
<el-radio label="ARTIFICIAL_FOLLOW_UP">人工随访</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="电话模板" v-if="formInline.taskType == 'PHONE_OUTBOUND'">
</el-form-item>
<el-form-item label="宣教模板" v-if="formInline.taskType == 'PROPAGANDA_ARTICLE'">
</el-form-item>
<el-form-item label="提醒内容" v-if="formInline.taskType == 'TEXT_REMIND'">
<el-input type="textarea" :rows="2" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="人工随访模板" v-if="formInline.taskType == 'ARTIFICIAL_FOLLOW_UP'">
</el-form-item>
</el-form>
<el-form :model="formInline" class="demo-form-inline" :inline="true"
v-if="formInline.taskType == 'QUESTIONNAIRE_SCALE'">
<el-form-item label="问卷模板">
</el-form-item>
<el-form-item label="问卷有效期">
<el-input-number v-model="formInline.questionExpirationDate" :min="1" :max="99"
label="描述文字"></el-input-number>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
@ -8,10 +93,114 @@ export default {
name: "ManuallyCreatingTasks",
data() {
return {
};
updata: {
routeName: '',
suitRange: ''
},
formInline: {
taskType: '',
questionExpirationDate: "",
},
list: [{
}, {}],
listindex: 0,
}
},
created() {
},
methods: {}
methods: {
clicktimelineitem(item, index) {
this.formInline = item
this.listindex = index
},
additem(item) {
item.push({
})
},
delitem(item, index) {
this.list.splice(index, 1)
},
}
};
</script>
</script>
<style lang="scss" scoped>
.title {
padding: 20px;
}
.nodes {
background-color: #F1F3F5;
height: 700px;
display: flex;
justify-content: space-evenly;
padding-top: 20px;
.nodenames {
border-radius: 10px;
background-color: #fff;
height: 700px;
width: 25%;
padding: 20px 40px 0 0;
}
.nodetexts {
border-radius: 10px;
width: 70%;
background-color: #fff;
height: 700px;
padding: 20px;
}
}
.top {
display: flex;
justify-content: space-between;
align-items: center;
.toptop {
display: flex;
align-items: center;
}
span {
padding: 0 4px;
}
i {
font-size: 17px;
}
i:nth-child(2) {
padding-left: 12px;
}
}
::v-deep .el-timeline-item__timestamp {
margin: 0 !important;
padding: 0 !important;
}
.cards {
border: 1px solid #409EFF;
border-left: 5px solid #409EFF;
}
::v-deep .el-timeline-item__wrapper {
padding-left: 20px !important;
}
::v-deep .el-timeline-item__content {
transform: translateY(-2%);
}
::v-deep .el-card {
margin-top: 20px !important;
}
.dialog-footer {
display: inline-block;
float: right;
}
</style>

View File

@ -281,8 +281,6 @@
placeholder="填写问卷时,用户需要在此输入答案" />
</div>
<div class="more">
<el-button size="medium" icon="el-icon-plus" type="text"
@click.stop="addoption(aitem)">添加选项</el-button>
</div>
</div>
</div>