Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
shidongli 2024-06-28 18:15:15 +08:00
commit faf455c369
15 changed files with 554 additions and 597 deletions

View File

@ -63,7 +63,7 @@ const mutations = {
} }
} }
}, },
DEL_RIGHT_VIEWS: (state, view) => { DEL_RIGHT_VIEWS: (state, view) => {
const index = state.visitedViews.findIndex(v => v.path === view.path) const index = state.visitedViews.findIndex(v => v.path === view.path)
if (index === -1) { if (index === -1) {
@ -112,6 +112,15 @@ const actions = {
}, },
delView({ dispatch, state }, view) { delView({ dispatch, state }, view) {
if (view.fullPath == '/task/manualReview') {
localStorage.removeItem('routeCheckStatus')
}
if (view.fullPath == "/patient/signRecord") {
localStorage.removeItem('serviceStatus')
}
if (view.fullPath == "/task/followup") {
localStorage.removeItem('nodeExecuteStatus')
}
return new Promise(resolve => { return new Promise(resolve => {
dispatch('delVisitedView', view) dispatch('delVisitedView', view)
dispatch('delCachedView', view) dispatch('delCachedView', view)
@ -135,6 +144,15 @@ const actions = {
}, },
delOthersViews({ dispatch, state }, view) { delOthersViews({ dispatch, state }, view) {
if (view.fullPath != '/task/manualReview') {
localStorage.removeItem('routeCheckStatus')
}
if (view.fullPath != "/patient/signRecord") {
localStorage.removeItem('serviceStatus')
}
if (view.fullPath != "/task/followup") {
localStorage.removeItem('nodeExecuteStatus')
}
return new Promise(resolve => { return new Promise(resolve => {
dispatch('delOthersVisitedViews', view) dispatch('delOthersVisitedViews', view)
dispatch('delOthersCachedViews', view) dispatch('delOthersCachedViews', view)

View File

@ -1,7 +1,7 @@
<template> <template>
<div style="background-color: #f1f3f5; padding-top: 16px"> <div style="background-color: #f1f3f5; padding-top: 16px">
<div slot="footer" class="topfooter"> <div slot="footer" class="topfooter">
<el-tabs v-model="activeNametab" @tab-click="handleClick"> <el-tabs v-model="activeNametab">
<el-tab-pane label="画像审核" name="portrait"></el-tab-pane> <el-tab-pane label="画像审核" name="portrait"></el-tab-pane>
<el-tab-pane label="路径审核" name="route"></el-tab-pane> <el-tab-pane label="路径审核" name="route"></el-tab-pane>
</el-tabs> </el-tabs>
@ -230,9 +230,6 @@ export default {
this.portraitlistdata = val this.portraitlistdata = val
console.log(this.portraitlistdata, '999999999') console.log(this.portraitlistdata, '999999999')
}, },
handleClick(tab, event) {
console.log(tab, event, this.activeNametab);
},
// //
ignore() { ignore() {
// let manageRouteNodeIds = [] // let manageRouteNodeIds = []

View File

@ -377,15 +377,24 @@ export default {
this.informationlist = res.data this.informationlist = res.data
loading.close(); loading.close();
}) })
.catch(()=>{ .catch(() => {
loading.close(); loading.close();
}) })
}, },
getlist() { getlist() {
if (!this.routelist) { if (!this.routelist) {
const loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
});
getRouteNodeInfo(this.$route.query.signRecordId).then(res => { getRouteNodeInfo(this.$route.query.signRecordId).then(res => {
this.routelist = res.data this.routelist = res.data
this.tab = 2 this.tab = 2
loading.close();
}).catch(err => {
loading.close();
}) })
} else { } else {
this.tab = 2 this.tab = 2

View File

@ -1,39 +1,19 @@
<template> <template>
<div class="app-container" ref="layout"> <div class="app-container" ref="layout">
<el-tabs <el-tabs v-model="queryParams.routeCheckStatus" @tab-click="handleClick" style="flex: 1">
v-model="queryParams.routeCheckStatus"
@tab-click="handleClick"
style="flex: 1"
>
<el-tab-pane label="未审核" name="UNAUDITED"></el-tab-pane> <el-tab-pane label="未审核" name="UNAUDITED"></el-tab-pane>
<el-tab-pane label="已审核" name="AGREE"></el-tab-pane> <el-tab-pane label="已审核" name="AGREE"></el-tab-pane>
<el-tab-pane label="已忽略" name="DISAGREE"></el-tab-pane> <el-tab-pane label="已忽略" name="DISAGREE"></el-tab-pane>
</el-tabs> </el-tabs>
<div ref="topform" class="form"> <div ref="topform" class="form">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="80px"
>
<el-form-item label="患者姓名" prop="patientName"> <el-form-item label="患者姓名" prop="patientName">
<el-input <el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery"
v-model="queryParams.patientName" style="width: 200px" />
placeholder="请输入患者姓名"
clearable
@keyup.enter.native="handleQuery"
style="width: 200px"
/>
</el-form-item> </el-form-item>
<el-form-item label="患者电话" prop="patientPhone"> <el-form-item label="患者电话" prop="patientPhone">
<el-input <el-input v-model="queryParams.patientPhone" placeholder="请输入患者电话" clearable @keyup.enter.native="handleQuery"
v-model="queryParams.patientPhone" style="width: 200px" />
placeholder="请输入患者电话"
clearable
@keyup.enter.native="handleQuery"
style="width: 200px"
/>
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="出院/就诊时间" label="出院/就诊时间"
@ -52,160 +32,58 @@
</el-date-picker> </el-date-picker>
</el-form-item> --> </el-form-item> -->
<el-form-item label="签约时间" prop="signTimeStart"> <el-form-item label="签约时间" prop="signTimeStart">
<el-date-picker <el-date-picker v-model="signTime" type="daterange" range-separator="" start-placeholder="开始日期"
v-model="signTime" style="width: 300px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
type="daterange"
range-separator="至"
start-placeholder="开始日期"
style="width: 300px"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="诊断" prop="mainDiagnosis"> <el-form-item label="诊断" prop="mainDiagnosis">
<el-input <el-input v-model="queryParams.mainDiagnosis" placeholder="请选择诊断" clearable style="width: 200px"
v-model="queryParams.mainDiagnosis" @keyup.enter.native="handleQuery" />
placeholder="请选择诊断"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="患者来源" prop="patientSource"> <el-form-item label="患者来源" prop="patientSource">
<el-select <el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width: 200px">
v-model="queryParams.patientSource" <el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label"
placeholder="请选择患者来源" :value="dict.value" />
clearable
style="width: 200px"
>
<el-option
v-for="dict in dict.type.patient_source"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId"> <el-form-item label="医院" prop="hospitalAgencyId">
<el-select <el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width: 200px"
v-model="queryParams.hospitalAgencyId" clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
filterable <el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
placeholder="请选择医院"
style="width: 200px"
clearable
@clear="clearhospitalAgency"
@change="changehospitalAgency"
>
<el-option
v-for="item in hospitalAgencylist"
:key="item.id"
:label="item.agencyName"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="院区" prop="campusAgencyId" v-if="queryParams.hospitalAgencyId">
label="院区" <el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width: 200px" clearable
prop="campusAgencyId" @clear="clearcampusAgency" @change="changecampusAgency">
v-if="queryParams.hospitalAgencyId" <el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
>
<el-select
v-model="queryParams.campusAgencyId"
filterable
placeholder="请选择院区"
style="width: 200px"
clearable
@clear="clearcampusAgency"
@change="changecampusAgency"
>
<el-option
v-for="item in campusAgencylist"
:key="item.id"
:label="item.agencyName"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="科室" prop="departmentId" v-if="queryParams.hospitalAgencyId">
label="科室" <el-select v-model="queryParams.departmentId" filterable placeholder="请选择科室" style="width: 200px" clearable
prop="departmentId" @clear="cleardepartment" @change="changedepartment">
v-if="queryParams.hospitalAgencyId" <el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName" :value="item.id">
>
<el-select
v-model="queryParams.departmentId"
filterable
placeholder="请选择科室"
style="width: 200px"
clearable
@clear="cleardepartment"
@change="changedepartment"
>
<el-option
v-for="item in departmentlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="病区" prop="wardId" v-if="queryParams.hospitalAgencyId">
label="病区" <el-select v-model="queryParams.wardId" filterable placeholder="请选择病区" style="width: 200px" clearable>
prop="wardId" <el-option v-for="item in wardlist" :key="item.id" :label="item.departmentName" :value="item.id">
v-if="queryParams.hospitalAgencyId"
>
<el-select
v-model="queryParams.wardId"
filterable
placeholder="请选择病区"
style="width: 200px"
clearable
>
<el-option
v-for="item in wardlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div ref="table"> <div ref="table">
<el-table <el-table :max-height="maxTableHeight" v-loading="loading" :data="patientInfoList">
:max-height="maxTableHeight"
v-loading="loading"
:data="patientInfoList"
>
<el-table-column label="序号" type="index" width="50" align="center" /> <el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column <el-table-column label="患者姓名" align="center" prop="patientName" width="80" />
label="患者姓名" <el-table-column label="患者电话" align="center" prop="patientPhone" width="120" />
align="center"
prop="patientName"
width="80"
/>
<el-table-column
label="患者电话"
align="center"
prop="patientPhone"
width="120"
/>
<el-table-column label="性别" align="center" prop="sex" width="50"> <el-table-column label="性别" align="center" prop="sex" width="50">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.sex == "MALE" ? "男" : "" }} {{ scope.row.sex == "MALE" ? "男" : "" }}
@ -213,38 +91,13 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="年龄" align="center" prop="age" width="50" /> <el-table-column label="年龄" align="center" prop="age" width="50" />
<el-table-column <el-table-column label="出生日期" align="center" prop="birthDate" width="100" />
label="出生日期" <el-table-column label="医院" align="center" prop="hospitalAgencyName" :show-overflow-tooltip="true" />
align="center" <el-table-column label="院区" align="center" prop="campusAgencyName" :show-overflow-tooltip="true" />
prop="birthDate" <el-table-column label="科室名称" align="center" prop="departmentName" :show-overflow-tooltip="true" />
width="100"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="院区"
align="center"
prop="campusAgencyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
:show-overflow-tooltip="true"
/>
<el-table-column label="病区名称" align="center" prop="wardName" /> <el-table-column label="病区名称" align="center" prop="wardName" />
<el-table-column <el-table-column label="住院/门诊号" align="center" prop="inHospitalNumber" width="105"
label="住院/门诊号" :show-overflow-tooltip="true" />
align="center"
prop="inHospitalNumber"
width="105"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="就诊方式" align="center" prop="visitMethod" width="80"> --> <!-- <el-table-column label="就诊方式" align="center" prop="visitMethod" width="80"> -->
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<dict-tag :options="dict.type.patient_source" :value="scope.row.visitMethod" /> <dict-tag :options="dict.type.patient_source" :value="scope.row.visitMethod" />
@ -252,48 +105,24 @@
<!-- </el-table-column> --> <!-- </el-table-column> -->
<el-table-column label="就诊方式" align="center" prop="visitMethod"> <el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
:options="dict.type.visit_method"
:value="scope.row.visitMethod"
/>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="医生" align="center" prop="attendingPhysicianName" width="80" :show-overflow-tooltip="true"/> --> <!-- <el-table-column label="医生" align="center" prop="attendingPhysicianName" width="80" :show-overflow-tooltip="true"/> -->
<el-table-column <el-table-column label="主要诊断" align="center" prop="signDiagnosis" :show-overflow-tooltip="true" width="100" />
label="主要诊断" <el-table-column label="签约时间" align="center" prop="signTime" width="100">
align="center"
prop="signDiagnosis"
:show-overflow-tooltip="true"
width="100"
/>
<el-table-column
label="签约时间"
align="center"
prop="signTime"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.signTime, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.signTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="画像审核状态" align="center" prop="portaitCheckStatus" width="100">
label="画像审核状态"
align="center"
prop="portaitCheckStatus"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.portaitCheckStatus == "AGREE" ? "审核通过" : "" }} {{ scope.row.portaitCheckStatus == "AGREE" ? "审核通过" : "" }}
{{ scope.row.portaitCheckStatus == "DISAGREE" ? "已忽略" : "" }} {{ scope.row.portaitCheckStatus == "DISAGREE" ? "已忽略" : "" }}
{{ scope.row.portaitCheckStatus == "" ? "未审核" : "" }} {{ scope.row.portaitCheckStatus == "" ? "未审核" : "" }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="路径审核状态" align="center" prop="routeCheckStatus" width="100">
label="路径审核状态"
align="center"
prop="routeCheckStatus"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.routeCheckStatus == "AGREE" ? "审核通过" : "" }} {{ scope.row.routeCheckStatus == "AGREE" ? "审核通过" : "" }}
{{ scope.row.routeCheckStatus == "DISAGREE" ? "已忽略" : "" }} {{ scope.row.routeCheckStatus == "DISAGREE" ? "已忽略" : "" }}
@ -301,38 +130,18 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
size="mini" v-if="queryParams.routeCheckStatus == 'UNAUDITED'">审核</el-button>
type="text" <el-button size="mini" type="text" @click="handleLook(scope.row)"
@click="handleAuthRole(scope.row)" v-if="queryParams.routeCheckStatus != 'UNAUDITED'">查看</el-button>
v-if="queryParams.routeCheckStatus == 'UNAUDITED'"
>审核</el-button
>
<el-button
size="mini"
type="text"
@click="handleLook(scope.row)"
v-if="queryParams.routeCheckStatus != 'UNAUDITED'"
>查看</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<myPagination <myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
v-show="total > 0" :indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
</div> </div>
</template> </template>
@ -405,6 +214,9 @@ export default {
}; };
}, },
created() { created() {
if (localStorage.getItem('routeCheckStatus')) {
this.queryParams.routeCheckStatus = localStorage.getItem('routeCheckStatus')
}
this.getList(); this.getList();
this.selectAgencyinfo(); this.selectAgencyinfo();
}, },
@ -419,6 +231,7 @@ export default {
this.getList(); this.getList();
}, },
handleClick(tab, event) { handleClick(tab, event) {
localStorage.setItem('routeCheckStatus', this.queryParams.routeCheckStatus)
this.dischargeTime = []; this.dischargeTime = [];
this.queryParams.dischargeTimeStart = null; this.queryParams.dischargeTimeStart = null;
this.queryParams.dischargeTimeEnd = null; this.queryParams.dischargeTimeEnd = null;
@ -455,7 +268,7 @@ export default {
query: { query: {
patientId: row.patientId, patientId: row.patientId,
signRecordId: row.id, signRecordId: row.id,
routeCheckStatus:row.routeCheckStatus routeCheckStatus: row.routeCheckStatus
}, },
}); });
}, },

View File

@ -355,6 +355,9 @@ export default {
}; };
}, },
created() { created() {
if (localStorage.getItem('serviceStatus')) {
this.queryParams.serviceStatus = localStorage.getItem('serviceStatus')
}
this.selectAgencyinfo(); this.selectAgencyinfo();
}, },
mounted() { mounted() {
@ -477,18 +480,19 @@ export default {
// //
addTask() { addTask() {
if (this.addTaskitem) { if (this.addTaskitem) {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { localStorage.setItem('serviceStatus', this.queryParams.serviceStatus)
this.$router.push({ // this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
path: "/patient/ManuallyCreatingTasks", this.$router.push({
query: { path: "/patient/ManuallyCreatingTasks",
signPatientRecordId: this.addTaskitem.id, query: {
patientId: this.addTaskitem.patientId, signPatientRecordId: this.addTaskitem.id,
patientName: this.addTaskitem.patientName, patientId: this.addTaskitem.patientId,
departmentId: this.addTaskitem.departmentId, patientName: this.addTaskitem.patientName,
departmentName: this.addTaskitem.departmentName, departmentId: this.addTaskitem.departmentId,
}, departmentName: this.addTaskitem.departmentName,
}); },
}) });
// })
} else { } else {
this.$message.error('请先选择一名签约服务中患者'); this.$message.error('请先选择一名签约服务中患者');
} }
@ -538,6 +542,7 @@ export default {
}, `signRecord_${new Date().getTime()}.xlsx`) }, `signRecord_${new Date().getTime()}.xlsx`)
}, },
handleClick(tab, event) { handleClick(tab, event) {
localStorage.setItem('serviceStatus', this.queryParams.serviceStatus)
this.intentionalTime = [] this.intentionalTime = []
this.queryParams.intentionalTimeStart = null this.queryParams.intentionalTimeStart = null
this.queryParams.intentionalTimeEnd = null this.queryParams.intentionalTimeEnd = null
@ -548,28 +553,28 @@ export default {
this.getList(); this.getList();
}, },
handlenewsign(row) { handlenewsign(row) {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { // this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.replace({ this.$router.replace({
path: "/patient/newSigning", path: "/patient/newSigning",
query: { query: {
departmentId: row.departmentId, departmentId: row.departmentId,
patientName: row.patientName, patientName: row.patientName,
patientPhone: row.patientPhone, patientPhone: row.patientPhone,
visitMethod: row.visitMethod, visitMethod: row.visitMethod,
signDiagnosis: row.signDiagnosis, signDiagnosis: row.signDiagnosis,
visitSerialNumber: row.visitSerialNumber, visitSerialNumber: row.visitSerialNumber,
hospitalAgencyName: row.hospitalAgencyName, hospitalAgencyName: row.hospitalAgencyName,
hospitalAgencyId: row.hospitalAgencyId, hospitalAgencyId: row.hospitalAgencyId,
inHospitalNumber: row.inHospitalNumber, inHospitalNumber: row.inHospitalNumber,
departmentName: row.departmentName, departmentName: row.departmentName,
paymentStatus: row.paymentStatus, paymentStatus: row.paymentStatus,
sex: row.sex, sex: row.sex,
age: row.birthDate ? getAge(row.birthDate) : '', age: row.birthDate ? getAge(row.birthDate) : '',
patientId: row.patientId, patientId: row.patientId,
createTime: row.createTime, createTime: row.createTime,
}, },
}); });
}) // })
}, },
selectAgencyinfo() { selectAgencyinfo() {
let query = { let query = {
@ -665,16 +670,16 @@ export default {
}, },
// //
handleContinue(row) { handleContinue(row) {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { // this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.replace({ this.$router.replace({
path: "/patient/continueSigning", path: "/patient/continueSigning",
query: { query: {
hospitalAgencyId: row.hospitalAgencyId, hospitalAgencyId: row.hospitalAgencyId,
hospitalAgencyName: row.hospitalAgencyName, hospitalAgencyName: row.hospitalAgencyName,
patientSignRecordId: row.id, patientSignRecordId: row.id,
}, },
}); });
}) // })
}, },
/** 详情操作 */ /** 详情操作 */
handleAuthRole(row) { handleAuthRole(row) {

View File

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-descriptions title="编辑触发条件" style="height: 25px; width: 99px" /> <el-descriptions title="编辑触发条件" style="height: 25px; width: 99px" />
<div class="title"> <div :class="show3 == false ? 'title' : 'titlement'">
<!-- <div >触发条件</div> --> <!-- <div >触发条件</div> -->
<div class="nodes"> <div class="nodes">
<!-- 一级 --> <!-- 一级 -->
@ -30,7 +30,8 @@
@change="changetriggerLogic($event, index)" @change="changetriggerLogic($event, index)"
> >
<el-option <el-option
v-for="item in openlist.triggerConditionList.optionstriggerConditionOperator" v-for="item in openlist.triggerConditionList
.optionstriggerConditionOperator"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -127,7 +128,8 @@
@change="changetriggerLogic($event, index)" @change="changetriggerLogic($event, index)"
> >
<el-option <el-option
v-for="item in openlist.triggerConditionList.optionstriggerConditionOperator" v-for="item in openlist.triggerConditionList
.optionstriggerConditionOperator"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -205,7 +207,7 @@
</span> </span>
</div> </div>
</div> </div>
<div class="list"> <div :class="show3 == true ? 'listment' : 'list'">
<div class="timelist"> <div class="timelist">
<div class="timetitle"> <div class="timetitle">
管理路径节点({{ lists.length }}) 管理路径节点({{ lists.length }})
@ -276,7 +278,7 @@
<el-form-item label="任务类型" prop=""> <el-form-item label="任务类型" prop="">
<el-select <el-select
v-model="form.taskType" v-model="form.taskType"
style="width: 110px" style="width: 130px"
@change="changeTaskType" @change="changeTaskType"
> >
<el-option <el-option
@ -291,7 +293,7 @@
<el-form-item label="任务细分" prop=""> <el-form-item label="任务细分" prop="">
<el-select <el-select
v-model="form.taskSubdivision" v-model="form.taskSubdivision"
style="width: 110px" style="width: 130px"
@change="changetaskSubdivision" @change="changetaskSubdivision"
> >
<el-option <el-option
@ -317,7 +319,7 @@
<el-form-item label="二级分类描述" prop=""> <el-form-item label="二级分类描述" prop="">
<el-input <el-input
v-model="form.secondClassifyDescribe" v-model="form.secondClassifyDescribe"
style="width: 110px" style="width: 130px"
disabled disabled
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -849,7 +851,7 @@ export default indexjs;
} }
.dialog-footer { .dialog-footer {
padding: 0px 30px; padding: 4px 20px 0 30px;
text-align: right; text-align: right;
} }
@ -966,7 +968,7 @@ export default indexjs;
.topform { .topform {
padding: 15px 0 0 15px; padding: 15px 0 0 15px;
height: 200px; height: 150px;
.form { .form {
::v-deep .el-input__inner { ::v-deep .el-input__inner {
@ -980,10 +982,10 @@ export default indexjs;
} }
} }
.title { .titlement {
display: flex; display: flex;
margin-left: 100px; margin-left: 100px;
// height: 15vh;
.select { .select {
font-weight: 550; font-weight: 550;
// margin-left: 10%; // margin-left: 10%;
@ -999,14 +1001,33 @@ export default indexjs;
} }
} }
} }
.title {
display: flex;
margin-left: 100px;
height: 7vh;
.select {
font-weight: 550;
// margin-left: 10%;
position: relative;
right: 20px;
// width: 300px;
font-size: 13px;
.el-input {
width: 200px;
height: 30px !important;
line-height: 30px !important;
}
}
}
// .container { // .container {
// padding: 20px; // padding: 20px;
// } // }
.list { .listment {
margin: 12px auto; margin: 12px auto;
width: 100%; width: 100%;
// height: calc(100% - 80px); // height: 60vh;
// height: calc(100% - 220px);
background-color: #f2f4f5; background-color: #f2f4f5;
display: flex; display: flex;
padding-top: 15px; padding-top: 15px;
@ -1041,6 +1062,45 @@ export default indexjs;
background-color: #fff; background-color: #fff;
} }
} }
.list {
// margin: 12px auto;
width: 100%;
height: 69vh;
// height: calc(100% - 80px);
background-color: #f2f4f5;
display: flex;
padding-top: 15px;
justify-content: space-evenly;
.timelist {
width: 25%;
background-color: #fff;
padding: 0 20px 20px;
// height: calc(100vh - 350px);
overflow: scroll;
.timetitle {
height: 60px;
display: flex;
align-items: center;
justify-content: space-between;
}
::v-deep .el-timeline {
width: 100%;
padding: 15px 0 0 !important;
}
}
.texts {
width: 73%;
// height: calc(100vh - 350px);
overflow: scroll;
background-color: #fff;
}
}
.cards { .cards {
border: 1px solid #409eff; border: 1px solid #409eff;

View File

@ -590,11 +590,12 @@ export default {
}, },
//wangeditor传值 //wangeditor传值
onNodeContent(item) { onNodeContent(item) {
this.form.nodeContent = item.nodeContent; if (item.nodeContent) {
if (this.form.nodeContent) { this.form.nodeContent = item.nodeContent;
var abc = new RegExp("<br>", "g"); var abc = new RegExp("<br>", "g");
var bbb = this.form.nodeContent.replace(abc, ""); var bbb = this.form.nodeContent.replace(abc, "");
this.form.nodeContent = bbb; this.form.nodeContent = bbb;
console.log(this.form.nodeContent, 'this.form.nodeContent')
} }
}, },
@ -699,13 +700,12 @@ export default {
}, },
bottomclickevent(uitem, index, uindex) { bottomclickevent(uitem, index, uindex) {
// if ( if (
// this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" && this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
// this.form.taskSubdivisiontemplateType != "PROPAGANDA" this.form.taskSubdivisiontemplateType != "PROPAGANDA"
// ) { ) {
// console.log() this.$refs.wangeditor.emit();
this.$refs.wangeditor.emit(); }
// }
setTimeout(() => { setTimeout(() => {
this.form = uitem; this.form = uitem;
this.taskPartitionList = []; this.taskPartitionList = [];

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button size="small" @click="classificationOpen = true" style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;" <el-button size="small" @click="classificationOpen = true"
style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : '选择短信模板' :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : '选择短信模板'
}}</el-button> }}</el-button>
<el-dialog title="短信库模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse"> <el-dialog title="短信库模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
@ -68,10 +69,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -168,7 +169,7 @@ export default {
this.$emit("on-template", { templateId: '', templateName: '', templateContent: "" }); this.$emit("on-template", { templateId: '', templateName: '', templateContent: "" });
}, },
handleselect(item) { handleselect(item) {
console.log(item.id,'id') console.log(item.id, 'id')
this.handleselectId = item.id this.handleselectId = item.id
this.handleselectName = item.textMessageName this.handleselectName = item.textMessageName
this.$emit("on-template", { templateId: item.id, templateName: item.textMessageName, templateContent: item.templateContent }); this.$emit("on-template", { templateId: item.id, templateName: item.textMessageName, templateContent: item.templateContent });
@ -238,6 +239,10 @@ export default {
padding: 0 !important; padding: 0 !important;
} }
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
::v-deep .el-input-number .el-input__inner { ::v-deep .el-input-number .el-input__inner {
text-align: left; text-align: left;
} }

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button size="small" @click="classificationOpen = true" style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;" <el-button size="small" @click="classificationOpen = true"
style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName :
'选择公众号模板' }}</el-button> '选择公众号模板' }}</el-button>
<el-dialog title="公众号模板选择" :visible.sync="classificationOpen" width="70%" <el-dialog title="公众号模板选择" :visible.sync="classificationOpen" width="70%"
@ -69,10 +70,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -235,6 +236,10 @@ export default {
text-align: left; text-align: left;
} }
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.app-container { .app-container {
display: inline-block; display: inline-block;
padding: 0 !important; padding: 0 !important;

View File

@ -70,10 +70,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -236,6 +236,10 @@ export default {
text-align: left; text-align: left;
} }
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.app-container { .app-container {
display: inline-block; display: inline-block;
padding: 0 !important; padding: 0 !important;

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button size="small" @click="classificationOpen = true" style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;" <el-button size="small" @click="classificationOpen = true"
style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName :
'选择宣教模板' }}</el-button> '选择宣教模板' }}</el-button>
<el-dialog title="宣教库模板选择" :visible.sync="classificationOpen" width="70%" <el-dialog title="宣教库模板选择" :visible.sync="classificationOpen" width="70%"
@ -77,10 +78,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -284,6 +285,10 @@ export default {
padding: 0 !important; padding: 0 !important;
} }
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.propagandaselect { .propagandaselect {
width: 100px; width: 100px;
height: 100px; height: 100px;

View File

@ -1,6 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button size="small" @click="classificationOpen = true" style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;" <el-button size="small" @click="classificationOpen = true"
style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName :
'选择问卷模板' }}</el-button> '选择问卷模板' }}</el-button>
<el-dialog title="问卷库模板选择" :visible.sync="classificationOpen" width="70%" <el-dialog title="问卷库模板选择" :visible.sync="classificationOpen" width="70%"
@ -63,10 +64,10 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -200,6 +201,10 @@ export default {
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.app-container { .app-container {
padding: 0 !important; padding: 0 !important;
display: inline-block; display: inline-block;

View File

@ -1,53 +1,30 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button <el-button size="small" @click="classificationOpen = true" style="
size="small"
@click="classificationOpen = true"
style="
width: 200px; width: 200px;
font-size: 14px; font-size: 14px;
text-align: left; text-align: left;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
" " :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : "请选择"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'" }}</el-button>
>{{ handleselectName ? handleselectName : "请选择" }}</el-button <el-dialog title="话书库模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
>
<el-dialog
title="话书库模板选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
<el-col :span="6" :xs="24"> <el-col :span="6" :xs="24">
<div class="leftscript" ref="box"> <div class="leftscript" ref="box">
<div class="name">科室名称</div> <div class="name">科室名称</div>
<div> <div>
<el-input <el-input v-model="name" placeholder="请输入科室名称" clearable @keyup.enter.native="handleQuery" />
v-model="name"
placeholder="请输入科室名称"
clearable
@keyup.enter.native="handleQuery"
/>
</div> </div>
<div class="listitem"> <div class="listitem">
<div <div :class="itemname == null ? 'allactive' : 'all'" @click="itemdata()">
:class="itemname == null ? 'allactive' : 'all'"
@click="itemdata()"
>
全部 全部
</div> </div>
<span class="count">{{ count }}</span> <span class="count">{{ count }}</span>
</div> </div>
<div <div class="listitem" v-for="(item, index) in DepartmentoList" :key="index" @click="itemdata(item)">
class="listitem"
v-for="(item, index) in DepartmentoList"
:key="index"
@click="itemdata(item)"
>
<div :class="itemname == item.id ? 'allactive' : 'all'"> <div :class="itemname == item.id ? 'allactive' : 'all'">
{{ item.departmentName }} {{ item.departmentName }}
</div> </div>
@ -57,138 +34,50 @@
</el-col> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="18" :xs="24"> <el-col :span="18" :xs="24">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
:model="queryParams" label-width="100px">
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="通用话术名称" prop="commonScriptName"> <el-form-item label="通用话术名称" prop="commonScriptName">
<el-input <el-input v-model="queryParams.commonScriptName" placeholder="请输入通用话术名称" clearable
v-model="queryParams.commonScriptName" @keyup.enter.native="handleQuery" />
placeholder="请输入通用话术名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="话术名称" prop="scriptName"> <el-form-item label="话术名称" prop="scriptName">
<el-input <el-input v-model="queryParams.scriptName" placeholder="请输入话术名称" clearable
v-model="queryParams.scriptName" @keyup.enter.native="handleQuery" />
placeholder="请输入话术名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="话术ID" prop="scriptId"> <el-form-item label="话术ID" prop="scriptId">
<el-input <el-input v-model="queryParams.scriptId" placeholder="请输入话术ID" clearable
v-model="queryParams.scriptId" @keyup.enter.native="handleQuery" />
placeholder="请输入话术ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="平台ID" prop="platformId"> <el-form-item label="平台ID" prop="platformId">
<el-input <el-input v-model="queryParams.platformId" placeholder="请输入平台ID" clearable
v-model="queryParams.platformId" @keyup.enter.native="handleQuery" />
placeholder="请输入平台ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="scriptList" @row-dblclick="handleselect">
v-loading="loading" <el-table-column label="序号" align="center" prop="sort" type="index" />
:data="scriptList" <el-table-column label="通用话术名称" align="center" prop="commonScriptName" :show-overflow-tooltip="true" />
@row-dblclick="handleselect" <el-table-column label="话术名称" align="center" prop="scriptName" :show-overflow-tooltip="true" />
> <el-table-column label="话术ID" align="center" prop="scriptId" :show-overflow-tooltip="true" />
<el-table-column <el-table-column label="平台ID" align="center" prop="platformId" :show-overflow-tooltip="true" />
label="序号" <el-table-column label="话术简介" align="center" prop="scriptIntroduction" :show-overflow-tooltip="true" />
align="center" <el-table-column label="病种名称" align="center" prop="diseaseTypeName" :show-overflow-tooltip="true" />
prop="sort" <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
type="index"
/>
<el-table-column
label="通用话术名称"
align="center"
prop="commonScriptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术ID"
align="center"
prop="scriptId"
:show-overflow-tooltip="true"
/>
<el-table-column
label="平台ID"
align="center"
prop="platformId"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术简介"
align="center"
prop="scriptIntroduction"
:show-overflow-tooltip="true"
/>
<el-table-column
label="病种名称"
align="center"
prop="diseaseTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" @click="handleselect(scope.row)"
size="mini" v-if="handleselectId != scope.row.id">选择</el-button>
type="text" <el-button size="mini" type="text" @click="nohandleselect(scope.row)"
@click="handleselect(scope.row)" v-if="handleselectId == scope.row.id">取消选择</el-button>
v-if="handleselectId != scope.row.id"
>选择</el-button
>
<el-button
size="mini"
type="text"
@click="nohandleselect(scope.row)"
v-if="handleselectId == scope.row.id"
>取消选择</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col> </el-col>
</el-row> </el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -386,6 +275,10 @@ export default {
text-align: left; text-align: left;
} }
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.app-container { .app-container {
display: inline-block; display: inline-block;
padding: 0 !important; padding: 0 !important;

View File

@ -270,6 +270,9 @@ export default {
}; };
}, },
created() { created() {
if (localStorage.getItem('nodeExecuteStatus')) {
this.queryParams.nodeExecuteStatus = localStorage.getItem('nodeExecuteStatus')
}
this.getList(); this.getList();
this.selectAgencyinfo(); this.selectAgencyinfo();
}, },
@ -284,10 +287,11 @@ export default {
this.getList(); this.getList();
}, },
handleClick(tab, event) { handleClick(tab, event) {
this.intentionalTime = [], localStorage.setItem('nodeExecuteStatus', this.queryParams.nodeExecuteStatus)
this.mzTime = [], this.intentionalTime = []
this.ryTime = [], this.mzTime = []
this.queryParams.dischargeStartTime = null this.ryTime = []
this.queryParams.dischargeStartTime = null
this.queryParams.dischargeEndTime = null this.queryParams.dischargeEndTime = null
this.queryParams.clinicalStartTime = null this.queryParams.clinicalStartTime = null
this.queryParams.clinicalEndTime = null this.queryParams.clinicalEndTime = null
@ -642,15 +646,6 @@ export default {
} }
}); });
}, },
// handleClick(tab, event) {
// this.intentionalTime = [];
// this.queryParams.startDate = null;
// this.queryParams.endDate = null;
// // this.signTime = []
// // this.queryParams.signTimeStart = null
// // this.queryParams.signTimeEnd = null
// this.getList();
// },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;

View File

@ -2,8 +2,18 @@
<div class="header"> <div class="header">
<div class="topheader"> <div class="topheader">
<div class="user"> <div class="user">
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="" v-if="list.sex == 'MALE'" /> <img
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt="" v-if="list.sex == 'FEMALE'" /> class="headsculpture"
src="../../../assets/manage/touxiang.png"
alt=""
v-if="list.sex == 'MALE'"
/>
<img
class="headsculpture"
src="../../../assets/manage/nvtouxiang.png"
alt=""
v-if="list.sex == 'FEMALE'"
/>
<div class="name"> <div class="name">
{{ list.patientName }} {{ list.patientName }}
</div> </div>
@ -37,83 +47,187 @@
<div class="bottomheader"> <div class="bottomheader">
<div style="display: flex"> <div style="display: flex">
<!-- 问卷模板 --> <!-- 问卷模板 -->
<div class="right" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE' || <div
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP' class="right"
"> v-if="
<div style="float: right; margin-top: 20px" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE' || $route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP' $route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
"> "
<el-form :inline="true" class="demo-form-inline" :model="questiondata" :rules="rules" ref="questiondata"> >
<div
style="float: right; margin-top: 20px"
v-if="
$route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
"
>
<el-form
:inline="true"
class="demo-form-inline"
:model="questiondata"
:rules="rules"
ref="questiondata"
>
<el-form-item label="任务处理信息" prop="routeHandleRemark"> <el-form-item label="任务处理信息" prop="routeHandleRemark">
<el-input type="textarea" placeholder="请输入任务处理信息" v-model="questiondata.routeHandleRemark" /> <el-input
type="textarea"
placeholder="请输入任务处理信息"
v-model="questiondata.routeHandleRemark"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="sport" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"> <div
class="sport"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷模板: Barthel指数评定问卷 问卷模板: Barthel指数评定问卷
</div> </div>
<div class="words" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"> <div
class="words"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
您好!本问卷用于评估日常生活能力请根据自身日常实际表现选择合适的选项 您好!本问卷用于评估日常生活能力请根据自身日常实际表现选择合适的选项
</div> </div>
<div class="sport" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="sport"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
人工随访模板: 神经内科人工随访 人工随访模板: 神经内科人工随访
</div> </div>
<div class="words" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
**您好! **您好!
</div> </div>
<div class="words" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
我是医院的工作人员今天给您打电话想要了解一下您的恢复情况 我是医院的工作人员今天给您打电话想要了解一下您的恢复情况
</div> </div>
<div class="words" v-for="(item, index) in questiondata.questionSubjectList" :key="index"> <div
class="words"
v-for="(item, index) in questiondata.questionSubjectList"
:key="index"
>
{{ index + 1 }}.{{ item.questionName }} {{ index + 1 }}.{{ item.questionName }}
<span v-if="item.questionType == 'MULTIPLE_CHOICE'">单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE'"
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'">多选题</span> >单选题</span
<span v-if="item.questionType == 'SCORING_QUESTIONS'">打分题</span> >
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'">组合单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'">组合多选题</span> >多选题</span
<span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'">组合填空题</span> >
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'">填空题</span> <span v-if="item.questionType == 'SCORING_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">组合打分题</span> >打分题</span
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">日期填空题</span> >
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">时间填空题</span> <span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
<el-radio-group v-if="item.questionType == 'MULTIPLE_CHOICE' || >组合单选题</span
item.questionType == 'COMBINATION_RADIO_SUBJECT' || >
item.questionType == 'SCORING_QUESTIONS' || <span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
item.questionType == 'COMBINATION_SCORING_SUBJECT' >组合多选题</span
" v-model="questiondata[index]" class="custom-radio-group" @change="radioGroupChange($event, item)"> >
<el-radio class="custom" v-for="(aitem, aindex) in item.questionSubjectOptionList" :key="aindex" <span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
:label="aitem.id" @change="radioChange($event, aitem, index)">{{ aitem.optionName }}</el-radio> >组合填空题</span
>
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'"
>填空题</span
>
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'"
>组合打分题</span
>
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
>日期填空题</span
>
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>时间填空题</span
>
<el-radio-group
v-if="
item.questionType == 'MULTIPLE_CHOICE' ||
item.questionType == 'COMBINATION_RADIO_SUBJECT' ||
item.questionType == 'SCORING_QUESTIONS' ||
item.questionType == 'COMBINATION_SCORING_SUBJECT'
"
v-model="questiondata[index]"
class="custom-radio-group"
@change="radioGroupChange($event, item)"
>
<el-radio
class="custom"
v-for="(aitem, aindex) in item.questionSubjectOptionList"
:key="aindex"
:label="aitem.id"
@change="radioChange($event, aitem, index)"
>{{ aitem.optionName }}</el-radio
>
</el-radio-group> </el-radio-group>
<!-- 多选组合多选 --> <!-- 多选组合多选 -->
<el-checkbox-group v-model="checkeddata" @change="radioGroupChange($event, item, 'checkbox')" v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || <el-checkbox-group
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT' v-model="checkeddata"
"> @change="radioGroupChange($event, item, 'checkbox')"
<el-checkbox v-for="(aitem, aindex) in item.questionSubjectOptionList" :key="aindex" :label="aitem.id" v-if="
@change="radioChangecheck($event, aitem, index, aindex)">{{ aitem.optionName }}</el-checkbox> item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' ||
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'
"
>
<el-checkbox
v-for="(aitem, aindex) in item.questionSubjectOptionList"
:key="aindex"
:label="aitem.id"
@change="radioChangecheck($event, aitem, index, aindex)"
>{{ aitem.optionName }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
<!-- 填空题组合填空 --> <!-- 填空题组合填空 -->
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' || <div
item.questionType == 'COMBINATION_BLANKS_SUBJECT' v-if="
" class="tk"> item.questionType == 'FILL_IN_THE_BLANKS' ||
<el-input v-model="item.fillBlanksAnswer" placeholder="请输入答案" type="textarea" /> item.questionType == 'COMBINATION_BLANKS_SUBJECT'
"
class="tk"
>
<el-input
v-model="item.fillBlanksAnswer"
placeholder="请输入答案"
type="textarea"
/>
<!-- <el-input></el-input> --> <!-- <el-input></el-input> -->
</div> </div>
<!-- 日期填空题 --> <!-- 日期填空题 -->
<div v-if="item.questionType == 'DATE_BLANKS_SUBJECT'" style="margin: 20px 0 10px 30px"> <div
<el-date-picker @change="timepicker($event, index)" clearable v-model="item.fillBlanksAnswer" type="date" v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
value-format="yyyy-MM-dd" placeholder="选择日期"> style="margin: 20px 0 10px 30px"
>
<el-date-picker
@change="timepicker($event, index)"
clearable
v-model="item.fillBlanksAnswer"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker> </el-date-picker>
</div> </div>
<!-- 时间填空题 --> <!-- 时间填空题 -->
<div style="margin: 20px 0 10px 30px" v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"> <div
<el-time-select @change="timepickerselect($event, index)" clearable v-model="item.fillBlanksAnswer" style="margin: 20px 0 10px 30px"
v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>
<el-time-select
@change="timepickerselect($event, index)"
clearable
v-model="item.fillBlanksAnswer"
:picker-options="{ :picker-options="{
start: '08:30', start: '08:30',
step: '00:30', step: '00:30',
end: '23:30', end: '23:30',
}" placeholder="选择时间"> }"
placeholder="选择时间"
>
</el-time-select> </el-time-select>
</div> </div>
</div> </div>
@ -122,18 +236,36 @@
<div v-if="$route.query.taskType == 'PHONE_OUTBOUND'"> <div v-if="$route.query.taskType == 'PHONE_OUTBOUND'">
<div class="sport">电话外呼</div> <div class="sport">电话外呼</div>
<div class="nexttime"> <div class="nexttime">
<el-form ref="formlist" :model="formlist" label-width="110px" :inline="true" :rules="rulesphone"> <el-form
ref="formlist"
:model="formlist"
label-width="110px"
:inline="true"
:rules="rulesphone"
>
<!-- <br/> --> <!-- <br/> -->
<el-form-item label="电话" prop="patientPhone">
<el-input
disabled
v-model="formlist.patientPhone"
placeholder="请输入电话"
/>
</el-form-item>
<br />
<el-form-item label="是否接通" prop="phone"> <el-form-item label="是否接通" prop="phone">
<el-radio v-model="formlist.phoneConnectStatus" label="CONNECTED">已接通</el-radio> <el-radio
<el-radio v-model="formlist.phoneConnectStatus" label="NOTCONNECTED">未接通</el-radio> v-model="formlist.phoneConnectStatus"
label="CONNECTED"
>已接通</el-radio
>
<el-radio
v-model="formlist.phoneConnectStatus"
label="NOTCONNECTED"
>未接通</el-radio
>
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="任务处理信息" prop="routeHandleRemark">
<el-input v-model="formlist.routeHandleRemark" placeholder="请输入任务处理信息" />
</el-form-item>
<br />
<!-- <el-form-item label="话术名称" prop="scriptName"> <!-- <el-form-item label="话术名称" prop="scriptName">
<el-input <el-input
disabled disabled
@ -144,7 +276,11 @@
</el-form-item> --> </el-form-item> -->
<!-- <br /> --> <!-- <br /> -->
<el-form-item label="通用话术名称" prop="phoneTemplateName"> <el-form-item label="通用话术名称" prop="phoneTemplateName">
<el-input disabled v-model="formlist.phoneTemplateName" placeholder="请输入通用话术名称" /> <el-input
disabled
v-model="formlist.phoneTemplateName"
placeholder="请输入通用话术名称"
/>
</el-form-item> </el-form-item>
<br /> <br />
<!-- <el-form-item label="话术简介" prop="scriptIntroduction"> <!-- <el-form-item label="话术简介" prop="scriptIntroduction">
@ -164,58 +300,60 @@
/> />
</el-form-item> --> </el-form-item> -->
<!-- <br /> --> <!-- <br /> -->
<el-form-item label="电话推送" prop="phonePushSign">
<!-- <el-input
type="textarea"
v-model="formlist.routeHandleRemark"
placeholder="请输入任务处理信息"
/> -->
<!-- <el-switch
disabled
v-model="formlist.phonePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> -->
<el-radio disabled v-model="formlist.phonePushSign" label="1">已开启</el-radio>
<el-radio disabled v-model="formlist.phonePushSign" label="0">未开启</el-radio>
</el-form-item>
<br />
<el-form-item label="电话" prop="patientPhone">
<el-input disabled v-model="formlist.patientPhone" placeholder="请输入电话" />
</el-form-item>
<br />
<!-- <div style="background:red;width:200px;height:1600px"> --> <!-- <div style="background:red;width:200px;height:1600px"> -->
<el-form-item label="重复次数" prop="phoneRedialTimes"> <el-form-item label="重复次数" prop="phoneRedialTimes">
<el-select v-model="formlist.phoneRedialTimes" disabled style="width: 200px"> <!-- <div v-for="(item,index) in optionslistS" :key="index">
<div>{{ item.label }}</div>
</div> -->
<el-input
disabled
v-model="formlist.phoneRedialTimes"
placeholder=""
/>
<!-- <el-select v-model="formlist.phoneRedialTimes" disabled style="width: 200px">
<el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel" <el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue"> :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="电话短信提醒" prop="phone"> <el-form-item label="电话短信提醒" prop="phone">
<el-select disabled v-model="formlist.phoneMessageRemind" style="width: 200px"> <el-input
disabled
v-model="formlist.phoneMessageRemind"
placeholder=""
/>
<!-- <el-select disabled v-model="formlist.phoneMessageRemind" style="width: 200px">
<el-option v-for="item in optionslist" :key="item.dictValue" :label="item.dictLabel" <el-option v-for="item in optionslist" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue"> :value="item.dictValue">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="短信模板:" prop="phone"> <el-form-item label="短信模板:" prop="phone">
<span class="spanname"> <span class="spanname">
<message style="width: 200px;height:50px" @on-template="messageontemplateMESSAGE" <message
:templateId="formlist.phoneMessageTemplateId" :templateName="formlist.phoneMessageTemplateName"> style="width: 200px; height: 50px"
@on-template="messageontemplateMESSAGE"
:templateId="formlist.phoneMessageTemplateId"
:templateName="formlist.phoneMessageTemplateName"
>
</message> </message>
</span> </span>
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="话术图" prop="phone"> <el-form-item label="话术图" prop="phone">
<img :src="formlist.scriptFilePath" style="width: 250px; height: 200px" /> <!-- <img :src="formlist.scriptFilePath" style="width: 250px; height: 200px" /> -->
</el-form-item>
<br />
<el-form-item label="任务处理信息" prop="routeHandleRemark">
<el-input
type="textarea"
v-model="formlist.routeHandleRemark"
style="width: 500px"
placeholder="请输入任务处理信息"
/>
</el-form-item> </el-form-item>
<br /> <br />
</el-form> </el-form>
@ -290,33 +428,35 @@ export default {
routeHandlePerson: null, routeHandlePerson: null,
routeHandleId: null, routeHandleId: null,
}, },
parentDictCode: "",
}; };
}, },
created() { created() {
this.id = this.$route.query.manageRouteId; this.id = this.$route.query.manageRouteId;
this.info(); this.info();
this.infolistword() this.infolistword();
this.infolistMESSAGE();
if ( if (
this.$route.query.taskType == "QUESTIONNAIRE_SCALE" || this.$route.query.taskType == "QUESTIONNAIRE_SCALE" ||
this.$route.query.taskType == "ARTIFICIAL_FOLLOW_UP" this.$route.query.taskType == "ARTIFICIAL_FOLLOW_UP"
) { ) {
this.questioninfo(); this.questioninfo();
} else { } else {
selectPhonePush(this.$route.query.manageRouteNodeId).then((response) => { selectPhonePush(this.$route.query.manageRouteNodeId).then((response) => {
if (response.data) { if (response.data) {
this.formlist = response.data; this.formlist = response.data;
if(this.formlist.phonePushSign==0){ this.formlist.phoneRedialTimes = response.data.phoneRedialTimes;
this.formlist.phonePushSign='0' this.formlist.phoneMessageRemind = response.data.phoneMessageRemind;
}else if(this.formlist.phonePushSign==1){
this.formlist.phonePushSign='1' // console.log(this.formlist, " this.formlist.phoneRedialTimes");
this.infolistMESSAGE();
this.infolistword()
if (this.formlist.phonePushSign == 0) {
this.formlist.phonePushSign = "0";
} else if (this.formlist.phonePushSign == 1) {
this.formlist.phonePushSign = "1";
} }
} }
}); });
} }
}, },
methods: { methods: {
@ -326,6 +466,9 @@ export default {
getAgencytype(dictType).then((res) => { getAgencytype(dictType).then((res) => {
this.optionslist = res.data; this.optionslist = res.data;
// this.taskinfo(); // this.taskinfo();
this.formlist.phoneMessageRemind = this.optionslist.find(
(el) => el.dictValue == this.formlist.phoneMessageRemind
)?.dictLabel;
}); });
}, },
@ -341,6 +484,9 @@ export default {
var dictType = "redial_times"; var dictType = "redial_times";
getAgencytype(dictType).then((res) => { getAgencytype(dictType).then((res) => {
this.optionslistS = res.data; this.optionslistS = res.data;
this.formlist.phoneRedialTimes = this.optionslistS.find(
(el) => el.dictValue == this.formlist.phoneRedialTimes
)?.dictLabel;
}); });
}, },
// //
@ -351,7 +497,7 @@ export default {
timepickerselect(e, index) { timepickerselect(e, index) {
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e; this.questiondata.questionSubjectList[index].fillBlanksAnswer = e;
}, },
radioGroupChange(e, item) { }, radioGroupChange(e, item) {},
// radio // radio
radioChange(e, item, index) { radioChange(e, item, index) {
console.log(e, item, index, "选中某个单选框时"); console.log(e, item, index, "选中某个单选框时");
@ -383,7 +529,6 @@ export default {
info() { info() {
selectFollowPatientInfo(this.id).then((res) => { selectFollowPatientInfo(this.id).then((res) => {
this.list = res.data; this.list = res.data;
}); });
}, },
questioninfo() { questioninfo() {
@ -532,10 +677,8 @@ export default {
(this.form.diseaseTypeId = this.formlist.diseaseTypeId), (this.form.diseaseTypeId = this.formlist.diseaseTypeId),
(this.form.diseaseTypeName = this.formlist.diseaseTypeName), (this.form.diseaseTypeName = this.formlist.diseaseTypeName),
(this.form.routeHandleRemark = this.formlist.routeHandleRemark); (this.form.routeHandleRemark = this.formlist.routeHandleRemark);
(this.form.phoneConnectStatus = this.formlist.phoneConnectStatus); this.form.phoneConnectStatus = this.formlist.phoneConnectStatus;
(this.form.phoneMessageRemind = this.formlist.phoneMessageRemind); this.form.phoneMessageRemind = this.formlist.phoneMessageRemind;
(this.form.visitRecordId = this.$route.query.visitRecordId), (this.form.visitRecordId = this.$route.query.visitRecordId),
// console.log(this.form, 'this.form') // console.log(this.form, 'this.form')
@ -680,7 +823,7 @@ export default {
.bottomheader { .bottomheader {
overflow-y: scroll; overflow-y: scroll;
width: 99%; width: 99%;
height: 67vh; height: 60vh;
background-color: #fff; background-color: #fff;
margin: 10px auto; margin: 10px auto;
padding: 10px 20px; padding: 10px 20px;