|
|
<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 ref="phoneFollowUp" @row-click="rowick" > <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="planFollowDate" label="随访日期" min-width="100" align="center" > <template slot-scope="scope"> <div> {{ moment(scope.row.planFollowDate).format("yyyy-MM-DD") }} </div> </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> <el-dialog :title="title == 1 ? '新增' : '修改'" :visible.sync="dialogVisible" width="75%" :close-on-click-modal="false" > <el-form ref="form" :model="form" label-width="80px"> <el-row> <el-col :span="title==1?'4':'6'"> <el-form-item label="编号"> <el-input v-model="form.id" disabled size="small"></el-input> </el-form-item> </el-col> <el-col :span="6" v-if="title == 1"> <el-form-item label="生成模式"> <el-select v-model="mode" placeholder="生成模式" size="small"> <el-option v-for="item in modes" :key="item.id" :label="item.displayName" :value="item.id" ></el-option> </el-select> </el-form-item> </el-col> <el-col :span="4" v-if="title == 1&&mode == 1"> <el-form-item label="间隔天数"> <el-input v-model="form.intervalDays" size="small"></el-input> </el-form-item> </el-col> <el-col :span="4" v-if="title == 1&&mode == 1"> <el-form-item label="生成次数"> <el-input v-model="form.generateCount" size="small"></el-input> </el-form-item> </el-col> <el-col :span="4" v-if="title == 1&&mode == 1"> <el-form-item label="开始时间"> <el-date-picker placeholder="选择日期时间" size="small" v-model="form.startDate" value-format="yyyy-MM-dd" editable style="width: 177px" > </el-date-picker> </el-form-item> </el-col> <el-col :span="4" v-if="title == 1&&mode == 0"> <el-form-item label="随访日期"> <el-date-picker placeholder="选择日期时间" size="small" v-model="form.planFollowDate" value-format="yyyy-MM-dd" editable style="width: 177px" > </el-date-picker> </el-form-item> </el-col> <el-col :span="4" v-if="title != 1"> <el-form-item label="是否完成"> <el-checkbox v-model="form.isComplete" true-label="Y" false-label="N" /> </el-form-item> </el-col> <el-col :span="4" v-if="title !=1"> <el-form-item label="随访日期"> <el-date-picker placeholder="选择日期时间" size="small" v-model="form.planFollowDate" value-format="yyyy-MM-dd" editable style="width: 177px" > </el-date-picker> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="随访内容"> <!-- <el-input v-model="form.parmValue" size="small" ></el-input> --> <el-input v-model="form.followUpContent"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24" v-if="title != 1"> <el-form-item label="回复内容"> <!-- <el-input v-model="form.parmValue" size="small" ></el-input> --> <el-input v-model="form.replyContent"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-divider></el-divider> <el-col :span="4" style="margin-left: 15px"> <el-form-item label="创建者"> <el-input v-model="form.creatorName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="创建时间"> <el-input :value="form.creationTime | dateFormat" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="修改者"> <el-input v-model="form.lastModifierName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="修改时间"> <el-input style="width: 85%" :value="form.lastModificationTime | dateFormat" disabled size="small" ></el-input> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false" class="difference" >取 消</el-button > <el-button type="primary" @click="addoredit" class="commonbutton" >确 定</el-button > </span> </el-dialog> </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: [], // 电话随访
dialogVisible: false, curRow: {}, form: { followUpContent: "", replyContent: "", followUpId: "", planFollowDate: "", isComplete: "", generateCount: "", intervalDays: "", generateCount: "", replyContent:"" }, mode: "0", modes: [ { id: "0", displayName: "生成单条", }, { id: "1", displayName: "生成多条", }, ], title: "", }; },
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; }); }, getLists() { postapi("/api/app/PhoneFollowUp/GetList", { followUpId: this.dataTransOpts.tableS.patient_register.followUpId, }).then((res) => { if (res.code > -1) this.phoneFollowUp = res.data; }); }, addoredit() { if (this.title == 1) { if (this.mode == 1) { if (this.form.intervalDays == "") { this.$message.warning("请输入间隔天数"); } else if (this.form.startDate == "") { this.$message.warning("请选择开始时间"); } else if (this.form.generateCount == "") { this.$message.warning("请输入生成次数"); } else { postapi("/api/app/PhoneFollowUp/AutoCreate", { followUpId: this.dataTransOpts.tableS.patient_register.followUpId, intervalDays: this.form.intervalDays, startDate: this.form.startDate, followUpContent: this.form.followUpContent, generateCount: this.form.generateCount, }).then((res) => { if (res.code > -1) { this.getLists(); this.dialogVisible = false; this.mode = "0"; } }); } } else { if (this.form.planFollowDate == "") { this.$message.warning("请选择随访日期"); } else { postapi("/api/app/PhoneFollowUp/Create", { followUpId: this.dataTransOpts.tableS.patient_register.followUpId, planFollowDate: this.form.planFollowDate, followUpContent: this.form.followUpContent, replyContent: this.form.replyContent, }).then((res) => { if (res.code > -1) { this.getLists(); this.dialogVisible = false; this.mode = "0"; } }); } } } else { postapi("/api/app/PhoneFollowUp/Update", { phoneFollowUpId: this.form.id, planFollowDate: this.form.planFollowDate, followUpContent: this.form.followUpContent, replyContent: this.form.replyContent, isComplete: this.form.isComplete, }).then((res) => { if (res.code > -1) { this.getLists(); this.dialogVisible = false; this.mode = "0"; } }); } }, rowick(row) { this.curRow = { ...row }; }, // 设置颜色
setColor(checkCompleteFlag) { let color = "#52555F"; switch (checkCompleteFlag) { case "0": color = "#FF5054"; break; case "2": color = "#396FFA"; break; default: break; } return color; },
// 新增
btnAdd() { this.dialogVisible = true; this.title = 1; this.form = this.$options.data().form; },
// 编辑
btnEdit() { if (this.curRow.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.title = 2; this.dialogVisible = true; postapi("/api/app/PhoneFollowUp/Get", { phoneFollowUpId: this.curRow.id, }).then((res) => { if (res.code != -1) { this.form = res.data; } }); } },
// 删除
btnDel() { if (this.curRow.id == undefined) { this.$message.warning("请选择删除的数据"); } else { this.$confirm("是否确认删除,是否继续", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", cancelButtonClass: "difference", confirmButtonClass: "commonbutton", }) .then(() => { postapi("/api/app/PhoneFollowUp/Delete", { phoneFollowUpId: this.curRow.id, }).then((res) => { if (res.code != -1) { this.curRow = this.$options.data().curRow; this.getLists(); //this.$message.success("删除成功");
} }); }) .catch(() => {}); } }, },
//监听事件
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.getLists(); }, }, },};</script><style scoped>@import "../../assets/css/global.css";
.box { display: flex;}</style>
|