Browse Source

follow

master
pengjun 1 year ago
parent
commit
22d3f12c4a
  1. 170
      src/components/follow/FollowCritical.vue
  2. 2
      src/components/follow/FollowCriticalCheck.vue
  3. 323
      src/components/follow/FollowList.vue
  4. 237
      src/components/follow/FollowPlan.vue
  5. 142
      src/components/follow/PhoneFollowUp.vue
  6. 147
      src/components/follow/SmsSend.vue

170
src/components/follow/FollowCritical.vue

@ -0,0 +1,170 @@
<template>
<div style="display: flex;">
<div :style="`width: ${window.pageWidth - 120}px;`">
<el-table :data="phoneFollowUp" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row show-summary ref="phoneFollowUp">
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="criticalRangeValue" label="危急值范围" min-width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.criticalValueContent" size="small" />
</template>
</el-table-column>
<el-table-column prop="isCriticalValue" label="危急值标志" min-width="100" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValue" size="small" true-label="Y" false-label="N" />
</template>
</el-table-column>
<el-table-column prop="criticalValueContent" label="危急值" min-width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.criticalValueContent" size="small" />
</template>
</el-table-column>
<el-table-column prop="isCriticalValueAudit" label="审核" min-width="60" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValueAudit" size="small" true-label="Y" false-label="N" />
</template>
</el-table-column>
<el-table-column prop="isReview" label="复查" min-width="60" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isReview" size="small" true-label="Y" false-label="N" />
</template>
</el-table-column>
<el-table-column prop="isCriticalValueSmsComplete" label="短信" min-width="60" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValueSmsComplete" size="small" true-label="Y" false-label="N" />
</template>
</el-table-column>
<el-table-column prop="isCriticalValuePhoneComplete" label="电话随访" min-width="100" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValuePhoneComplete" size="small" true-label="Y" false-label="N" />
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" min-width="80" align="center" />
<el-table-column prop="creationTime" label="登记日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
</el-table>
</div>
<div style="width: 120px;margin-top: 50px">
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnAdd">新增</el-button>
</div>
<div style="margin: 10px;">
<el-button class="commonbutton" type="primary" @click="btnEdit">编辑</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnDel">删除</el-button>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { dddw } from "../../utlis/proFunc";
import { getapi, postapi, putapi, deletapi } from "../../api/api";
export default {
components: {},
data() {
return {
phoneFollowUp: [], // 访
};
},
created() {
},
updated() {
this.$nextTick(() => {
this.$refs['phoneFollowUp'].doLayout()
})
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
},
methods: {
dddw, moment,
//
dictInit() {
//
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
})
},
//
setColor(checkCompleteFlag) {
let color = "#52555F"
switch (checkCompleteFlag) {
case '0':
color = "#FF5054"
break;
case '2':
color = "#396FFA"
break;
default:
break;
}
return color
},
//
btnAdd() {
},
//
btnEdit() {
},
//
btnDel() {
},
},
//
watch: {
//ID
"dataTransOpts.refresh.register_check_asbitem.M": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`);
// if (newVal != oldVal)
}
},
}
};
</script>
<style scoped>
@import "../../assets/css/global.css";
.box {
display: flex;
}
</style>

2
src/components/follow/FollowCriticalCheck.vue

@ -78,7 +78,7 @@ import {
} from "../../utlis/proFunc";
import FollowPlan from "../../components/follow/FollowPlan.vue";
import FollowPlan from "./PhoneFollowUp.vue";
export default {

323
src/components/follow/FollowList.vue

@ -1,8 +1,8 @@
<template>
<div>
<!--组件主体-->
<div style="display: flex">
<div :style="'width:' + (window.pageWidth - 125) + 'px;'" @contextmenu.prevent="onContextmenu">
<div>
<div :style="'width:' + (window.pageWidth - 10) + 'px;'" @contextmenu.prevent="onContextmenu">
<div>
<el-table :data="tableData" border
:height="window.pageHeight < 600 ? 248 : Math.floor(((window.pageHeight - 250) * 2) / 3)"
@ -105,117 +105,19 @@
<el-tabs v-model="tabChoosed" style="margin-top: -22px;">
<!-- 组合项目 -->
<el-tab-pane label="危急值" name="1">
<FollowCritical />
</el-tab-pane>
<el-tab-pane label="电话随访" name="2">
<FollowPlan />
<PhoneFollowUp />
</el-tab-pane>
<el-tab-pane label="短信随访" name="3">
<FollowPlan />
<SmsSend />
</el-tab-pane>
</el-tabs>
</div>
<div style="margin-left: 10px;">
<div class="listBtn">
<el-button type="success" class="commonbutton" @click="btnImportOrgData">制定随访计划</el-button>
</div>
<div class="listBtn">
<el-button type="success" class="commonbutton" @click="btnAdd">新增随访记录</el-button>
</div>
</div>
</div>
<!--组件弹窗-->
<div>
<!-- 体检人员登记 :title="patientRegister.patientRegisterRd.id ? '体检人员--编辑' : '体检人员--新增'" -->
<el-dialog :title="dataTransOpts.tableS.patient_register.id ? '体检人员--编辑' : '体检人员--新增'"
:visible.sync="dialogWin.PatientRegisterEdit" :close-on-click-modal="false" fullscreen
@close="close_dialogWin_PatientRegisterEdit">
<!-- :formInitData="patientRegister.patientRegisterRd" -->
<PatientRegisterEdit :isDoctor="'1'" :patientRegisterId="patientRegister.patientRegisterRd.id"
:editTimes="editTimes" :refFuncSetData="refFuncSetData" />
</el-dialog>
<!-- 修改信息 -->
<el-dialog :title="`修改信息--${upBaseInfo.label}`" :visible.sync="upBaseInfo.visble" width="400" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<div>
<div style="display: flex;margin-bottom: 20px;">
<span style="padding: 5px 0 0 10px; width:100px;">{{ upBaseInfo.label }}</span>
<el-input v-model="upBaseInfo.value" size="small"></el-input>
</div>
<div style="display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" @click="btnUpBaseInfo">提交</el-button>
<el-button class="commonbutton" @click="close_dialogWin_upBaseInfo">关闭</el-button>
</div>
</div>
</div>
</el-dialog>
<!-- 分诊排队 -->
<el-dialog title="分诊排队" :visible.sync="dialogWin.queue" width="800px" :append-to-body="true"
:close-on-click-modal="false">
<Queue :refParams="queueParams" />
</el-dialog>
<!-- 拍照 -->
<el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="800" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<Camera :id="patientRegister.patientRegisterId" />
</el-dialog>
<!-- 导入企业数据 -->
<el-dialog title="导入企业数据" :visible.sync="dialogWin.ImportOrgData" width="800px" :append-to-body="true"
:close-on-click-modal="false">
<ImportOrgData />
</el-dialog>
<!-- 列排序 -->
<el-dialog title="列排序" :visible.sync="dialogColSort" width="300px" :append-to-body="true"
:close-on-click-modal="false">
<el-table id="elTable_dragCol" :data="dragColDesign" row-key="prop" border height="600">
<el-table-column type="index" label="序号" width="40" align="center">
</el-table-column>
<el-table-column label="列名" prop="label" min-width="120" align="center"></el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="dialogColSort = false">取消</el-button>
<el-button class="commonbutton" @click="btnDragColDesignOk">确定</el-button>
</span>
</el-dialog>
<!-- 批量调整分组 -->
<el-dialog title="批量调整分组" :visible.sync="dialogWin.PatientRegisterEditGroupBatch" width="600px" height="800px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditGroupBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 批量调整项目 -->
<el-dialog title="批量调整项目" :visible.sync="dialogWin.PatientRegisterEditItemBatch" width="610px" height="800px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditItemBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 批量调整检查项目医生 -->
<el-dialog title="批量调整检查项目医生" :visible.sync="dialogWin.PatientRegisterEditDoctorBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditDoctorBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX />
</el-dialog>
<!--通用本地参数设置-->
<el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false"
:append-to-body="true" width="800px" height="600px">
<LocalConfig />
</el-dialog>
</div>
</div>
</template>
@ -236,13 +138,13 @@ import {
deepCopy, setPrStatusColor
} from "../../utlis/proFunc";
import FollowPlan from "../../components/follow/FollowPlan.vue";
import FollowCritical from "./FollowCritical.vue";
import PhoneFollowUp from "./PhoneFollowUp.vue";
import SmsSend from "./SmsSend.vue";
export default {
components: {
FollowPlan,
FollowCritical,PhoneFollowUp, SmsSend
},
data() {
return {
@ -735,207 +637,13 @@ export default {
// }
},
// ()
btnImportOrgData() {
//
this.dataTransOpts.plus.ImportOrgData++
this.dialogWin.ImportOrgData = true
},
//
btnAdd() {
if (!this.peisid || this.peisid == 'null') {
this.$message.warning({ showClose: true, message: "该用户未选归属体检中心,不能执行此操作!" });
return
}
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
this.$message.warning({ showClose: true, message: "请选择单位或个人" });
return;
}
// this.patientRegister.patientRegisterRdInit.customerOrgId = customerOrgId
// this.setForm(this.patientRegister.patientRegisterRdInit)
// this.patientRegister.patientRegisterAbs = [];
// this.patientRegister.patientRegisterRd.id = ''
// this.dialogWin.PatientRegisterEdit = true;
// this.editTimes++; //
// this.getPatientRegisterAbs();
this.dataTransOpts.tableS.patient_register.id = ''
this.dialogWin.PatientRegisterEdit = true;
this.dataTransOpts.plus.clearPatientRegisterQuery++ //
setTimeout(() => {
this.dataTransOpts.refresh.patient_register.S++ //
}, 10);
},
//
btnAddBatch(completeFlag) {
let patientRegisterIds = []
// start
// this.multipleSelection = [];
// this.tableData.forEach((e) => {
// if (e.choosed && e.completeFlag == '0') {
// this.multipleSelection.push(e);
// patientRegisterIds.push(e.id)
// }
// });
// end
if (this.multipleSelection.length < 1) {
this.$message.info({ showClose: true, message: "请勾选要操作的记录!" });
return;
}
this.multipleSelection.forEach(e => {
switch (completeFlag) {
case '0':
if (e.completeFlag == '1') patientRegisterIds.push(e.id)
break;
case '1':
if (e.completeFlag == '0') patientRegisterIds.push(e.id)
break;
}
});
if (patientRegisterIds.length == 0) {
this.$message.info({ showClose: true, message: "没有可操作的数据!" });
return;
}
let body = { completeFlag, patientRegisterIds }
postapi('/api/app/patientregister/updatepatientregistercompleteflagormedicalstartdate', body)
.then(res => {
if (res.code != -1) {
// console.log('')
patientRegisterIds.forEach(e => {
let lfind = arrayExistObj(this.tableData, 'id', e)
if (lfind > -1) this.tableData[lfind].completeFlag = completeFlag
});
}
})
.catch(err => {
this.$message.error({ showClose: true, message: `操作失败 ${err}` });
});
},
//
btnEdit() {
// if (!this.patientRegister.patientRegisterRd.id) {
if (!this.dataTransOpts.tableS.patient_register.id) {
this.$message.warning({ showClose: true, message: "请选择要操作的记录" });
return;
}
//// console.log(this.patientRegister.patientRegisterRd,this.tableData)
//
this.dataTransOpts.refresh.patient_register.S++ //()
this.dataTransOpts.plus.clearPatientRegisterQuery++ //
this.dialogWin.PatientRegisterEdit = true;
},
//
async close_dialogWin_PatientRegisterEdit() {
// dataTransOpts.tableS.patient_register.id ()
let id = this.dataTransOpts.tableS.patient_register.id
if (!id) {
id = this.tableDataCurrentRow.id
}
if (!id) return
this.dataTransOpts.tableS.patient_register.id = id
let res = await postapi('/api/app/patientregister/getlistinfilter', { patientRegisterNo: this.dataTransOpts.tableS.patient_register.patientRegisterNo })
if (res.code != 1) return
let currentRow = res.data.items[0]
// this.tableData.forEach(e => {
// e.choosed = false
// });
let lfind = arrayExistObj(this.tableData, 'id', this.dataTransOpts.tableS.patient_register.id)
if (lfind > -1) {
objCopy(currentRow, this.tableData[lfind])
} else {
lfind = this.tableData.length
currentRow.index = lfind
currentRow.choosed = true
this.tableData.push(currentRow)
}
// register_check_asbitem
if (lfind > -1) {
this.dataTransOpts.refresh.register_check_asbitem.M++
}
},
//
openCamera() {
if (!this.patientRegister.patientRegisterId) {
this.$message.warning({ showClose: true, message: "请选择要操作的记录" });
return;
}
this.patientRegister.cameraVisble = true;
},
//
// /api/app/patient-register/many?PatientRegisterIds=3a0c2cac-f44c-f407-9504-c1fc5e80a159&PatientRegisterIds=3a0c2cb3-d10c-ed70-db6a-b835e75ce641
btnDel() {
//start -------------------------
// this.multipleSelection = []
// this.tableData.forEach(e => {
// if (e.choosed) {
// this.multipleSelection.push(deepCopy(e))
// }
// })
// end -------------------------
if (this.multipleSelection.length < 1) {
this.$message.warning({ showClose: true, message: "请先勾选要操作的记录" });
return;
}
let patientRegisterIds = [];
for (let i = 0; i < this.multipleSelection.length; i++) {
patientRegisterIds.push(this.multipleSelection[i]["id"]);
}
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
})
.then(() => {
//// console.log('{patientRegisterIds}',{patientRegisterIds})
return postapi('/api/app/patient-register/delete-many', {
patientRegisterIds,
});
})
.then((res) => {
if (res.code != -1) {
// console.log("");
this.dataTransOpts.tableS.patient_register.id = ''
setTimeout(() => {
this.dataTransOpts.refresh.register_check_asbitem.M++
}, 10);
arrayReduce(this.tableData, this.multipleSelection, 'id=id') //
// this.setForm(this.patientRegister.patientRegisterRdInit)
// this.getPatientRegisterAbs();
}
})
.catch((err) => {
if (err == "cancel") {
this.$message.info({ showClose: true, message: "已取消操作" });
}
});
},
//
async Query() {
@ -1102,10 +810,7 @@ export default {
},
close_dialogWin_upBaseInfo() {
this.upBaseInfo.visble = false
this.close_dialogWin_PatientRegisterEdit()
},
btnUpBaseInfo() {
let body = {
patientRegisterId: this.upBaseInfo.patientRegisterId,

237
src/components/follow/FollowPlan.vue

@ -1,237 +0,0 @@
<template>
<div>
<el-table :data="dataTransOpts.tableM.register_check_asbitem" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row :summary-method="getSummaries" show-summary ref="patientRegister.patientRegisterAbs">
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="asbitemName" label="随访内容" min-width="250">
<template slot-scope="scope">
<div>
<i class="el-icon-view" style="font-size: 14px;color: black;cursor: pointer;" @click="getAsbItems(scope.row)" />
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left">
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on"
style="padding: 3px; font-size: 16px;color: purple;" />
</el-tooltip>
{{ scope.row.asbitemName }}
</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="客户回复" min-width="200" align="center" />
<el-table-column prop="creatorName" label="修改人" min-width="80" align="center" />
<el-table-column prop="creationTime" label="修改日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" min-width="80" align="center" />
<el-table-column prop="creationTime" label="登记日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { dddw } from "../../utlis/proFunc";
import { getapi, postapi, putapi, deletapi } from "../../api/api";
export default {
components: {},
data() {
return {
asbItems: [], //
};
},
created() {
},
updated() {
this.$nextTick(() => {
this.$refs['patientRegister.patientRegisterAbs'].doLayout()
})
},
//
mounted() {
this.dictInit()
this.retrieveregister_check_asbitem(this.dataTransOpts.tableS.patient_register.id)
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
},
methods: {
dddw, moment,
//
dictInit() {
//
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
})
},
//
getAsbItems(row) {
let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let content = ""
let length = asbItems.length
let modeBase = 1,count = 0,pWidth=390
if(length >= 39){
modeBase = 3
pWidth=130
}else if(length >= 20){
modeBase = 2
pWidth=195
}
//
asbItems.forEach((e,i) => {
if(modeBase == 1){
content += '<p>' + e.itemName + '</p>'
}else{
if(i==0){
count = 1
content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>'
}else if((i+1)%modeBase == 0){
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">'
count = 1
}else{
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>'
count++
}
}
});
if(modeBase > 1){
for (let index = 0; index < 3; index++) {
if(modeBase == count) break
content += '<p></p>'
count++
}
content += '</div>'
}
// console.log('content',content)
this.$alert(content, `${row.asbitemName} (共 ${asbItems.length} 项)`, {
dangerouslyUseHTMLString: true,
showClose: false
});
},
//
setColor(checkCompleteFlag) {
let color = "#52555F"
switch (checkCompleteFlag) {
case '0':
color = "#FF5054"
break;
case '2':
color = "#396FFA"
break;
default:
break;
}
return color
},
//
retrieveregister_check_asbitem(id) {
this.dataTransOpts.tableM.register_check_asbitem = []
if (!id) return
getapi(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`)
.then(res => {
console.log(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, res)
if (res.code != -1) {
res.data.forEach(e => {
e.standTotal = e.amount * e.standardPrice
e.total = e.amount * e.chargePrice
});
this.dataTransOpts.tableM.register_check_asbitem = res.data
}
})
},
// :row-class-name="tableRowClassName"
// tableRowClassName({ row, rowIndex }) {
// //console.log(row)
// if (row.groupPackageId) {
// //console.log('row.groupPackageId',row.groupPackageId)
// return 'purple-row'; //
// } else {
// return '';
// }
// },
//
getSummaries(param) {
const { columns, data } = param;
const sumCol = [2, 5]; //
const sums = [];
columns.forEach((column, index) => {
//
if (index === 1) {
sums[index] = "合计";
return;
}
//
if (sumCol.indexOf(index) == -1) {
sums[index] = "";
return;
}
const values = data.map((item) => Number(item[column.property]));
if (!values.every((value) => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] = Math.floor(sums[index]*100)/100;
sums[index] += " 元";
} else {
sums[index] = "N/A";
}
});
return sums;
},
},
//
watch: {
//ID
"dataTransOpts.refresh.register_check_asbitem.M": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`);
if (newVal != oldVal) this.retrieveregister_check_asbitem(this.dataTransOpts.tableS.patient_register.id)
}
},
}
};
</script>
<style scoped>
@import "../../assets/css/global.css";
.box {
display: flex;
}
</style>

142
src/components/follow/PhoneFollowUp.vue

@ -0,0 +1,142 @@
<template>
<div style="display: flex;">
<div :style="`width: ${window.pageWidth - 120}px;`">
<el-table :data="phoneFollowUp" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row show-summary ref="phoneFollowUp">
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="followUpContent" label="随访内容" min-width="250" />
<el-table-column prop="replyContent" label="客户回复" min-width="200" align="center" />
<el-table-column prop="isComplete" label="完成" min-width="40" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isComplete" true-label="Y" false-label="N" disabled />
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" min-width="80" align="center" />
<el-table-column prop="creationTime" label="登记日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
</el-table>
</div>
<div style="width: 120px;margin-top: 50px">
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnAdd" >新增随访</el-button>
</div>
<div style="margin: 10px;">
<el-button class="commonbutton" type="primary" @click="btnEdit">编辑随访</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnDel" >删除随访</el-button>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { dddw } from "../../utlis/proFunc";
import { getapi, postapi, putapi, deletapi } from "../../api/api";
export default {
components: {},
data() {
return {
phoneFollowUp: [], // 访
};
},
created() {
},
updated() {
this.$nextTick(() => {
this.$refs['phoneFollowUp'].doLayout()
})
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
},
methods: {
dddw, moment,
//
dictInit() {
//
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
})
},
//
setColor(checkCompleteFlag) {
let color = "#52555F"
switch (checkCompleteFlag) {
case '0':
color = "#FF5054"
break;
case '2':
color = "#396FFA"
break;
default:
break;
}
return color
},
//
btnAdd(){
},
//
btnEdit(){
},
//
btnDel(){
},
},
//
watch: {
//ID
"dataTransOpts.refresh.register_check_asbitem.M": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`);
// if (newVal != oldVal)
}
},
}
};
</script>
<style scoped>
@import "../../assets/css/global.css";
.box {
display: flex;
}
</style>

147
src/components/follow/SmsSend.vue

@ -0,0 +1,147 @@
<template>
<div style="display: flex;">
<div :style="`width: ${window.pageWidth - 120}px;`">
<el-table :data="phoneFollowUp" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row show-summary ref="phoneFollowUp">
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="patientName" label="姓名" min-width="80" />
<el-table-column prop="mobileTelephone" label="手机号" min-width="130" align="center" />
<el-table-column prop="smsTypeId" label="短信类别" min-width="80" align="center">
<template slot-scope="scope">
{{ scope.row.smsTypeId }}
</template>
</el-table-column>
<el-table-column prop="content" label="手机号" min-width="300" />
<el-table-column prop="isComplete" label="完成" min-width="40" align="center">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isComplete" true-label="Y" false-label="N" disabled />
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人" min-width="80" align="center" />
<el-table-column prop="lastModificationTime" label="修改日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" min-width="80" align="center" />
<el-table-column prop="creationTime" label="登记日期" min-width="100" align="center">
<template slot-scope="scope">
<div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
</template>
</el-table-column>
</el-table>
</div>
<div style="width: 120px;margin-top: 50px">
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnAdd" >新增随访</el-button>
</div>
<div style="margin: 10px;">
<el-button class="commonbutton" type="primary" @click="btnEdit">编辑随访</el-button>
</div>
<div style="margin-left: 10px">
<el-button class="commonbutton" type="primary" @click="btnDel" >删除随访</el-button>
</div>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { dddw } from "../../utlis/proFunc";
import { getapi, postapi, putapi, deletapi } from "../../api/api";
export default {
components: {},
data() {
return {
phoneFollowUp: [], // 访
};
},
created() {
},
updated() {
this.$nextTick(() => {
this.$refs['phoneFollowUp'].doLayout()
})
},
//
mounted() {
this.dictInit()
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
},
methods: {
dddw, moment,
//
dictInit() {
//
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1) this.asbItems = res.data
})
},
//
setColor(checkCompleteFlag) {
let color = "#52555F"
switch (checkCompleteFlag) {
case '0':
color = "#FF5054"
break;
case '2':
color = "#396FFA"
break;
default:
break;
}
return color
},
//
btnAdd(){
},
//
btnEdit(){
},
//
btnDel(){
},
},
//
watch: {
//ID
"dataTransOpts.refresh.register_check_asbitem.M": {
// immediate:true,
handler(newVal, oldVal) {
console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`);
// if (newVal != oldVal)
}
},
}
};
</script>
<style scoped>
@import "../../assets/css/global.css";
.box {
display: flex;
}
</style>
Loading…
Cancel
Save