| | |
| | | <div>基础信息</div> |
| | | </div> |
| | | <div class="jic-value"> |
| | | <el-form ref="form" :model="form" label-width="105px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="125px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务名称"> |
| | | ><el-form-item label="任务名称" prop="taskName"> |
| | | <el-input |
| | | style="width: 220px" |
| | | v-model="form.taskName" |
| | | placeholder="请输入任务名称" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务类型"> |
| | | <el-select |
| | | v-model="serviceType" |
| | | placeholder="请选择新增类型" |
| | | > |
| | | <el-option |
| | | v-for="item in tasktypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="任务描述"> |
| | | <el-form-item label="任务描述" prop="taskDesc"> |
| | | <el-input |
| | | type="textarea" |
| | | v-model="form.taskDesc" |
| | | placeholder="请输入任务描述" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="发送设置:"> |
| | | <el-form-item label="服务形式" prop="taskDesc"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="执行设置" prop="sendType"> |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段发送</el-radio> |
| | | <el-radio :label="3">时间点发送</el-radio> |
| | | <el-radio :label="2">即刻发送</el-radio> |
| | | <el-radio :label="1">时间段执行</el-radio> |
| | | <el-radio :label="3">时间点执行</el-radio> |
| | | <el-radio :label="2">即刻执行</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="发送日期:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行日期" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <el-date-picker |
| | | v-model="daytime" |
| | | @change="changeTimeday" |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间点:" v-if="form.sendType == 3"> |
| | | <el-form-item |
| | | label="执行时间点" |
| | | v-if="form.sendType == 3" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <el-date-picker |
| | |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间段:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行时间段" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段一</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">①</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段二</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">②</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段三</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">③</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="10" |
| | | ><el-form-item label="模板名称"> |
| | | <el-input |
| | | style="width: 300px" |
| | | :disabled="true" |
| | | v-model="form.templatename" |
| | | placeholder="请在下列选择" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="4"> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>任务使用模板</div> |
| | | <div style="margin-left: 20px"> |
| | | <el-form :model="form"> |
| | | <el-form-item label=""> |
| | | <el-input |
| | | style="width: 300px" |
| | | :disabled="true" |
| | | v-model="form.templatename" |
| | | placeholder="请点击右侧选择" |
| | | /> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-edit" |
| | |
| | | ></el-button> |
| | | |
| | | <el-button |
| | | v-if="this.form.libtemplateid" |
| | | v-if="this.form.libtemplateid" |
| | | type="success" |
| | | icon="el-icon-search" |
| | | @click="previewfnmb" |
| | | circle |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>变量匹配量参</div> |
| | | </div> |
| | | |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <div style="margin-bottom: 10px">模板中使用的变量:</div> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-table :data="variableList" style="width: 100%"> |
| | | <el-table-column |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="患者名称:"> |
| | | <el-form-item label="患者:"> |
| | | <el-input |
| | | v-model="patientqueryParams.name" |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | questionList: [], |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | // { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人(缺)", width: "", prop: "update_by" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ], |
| | | |
| | | tableLabelwj: [ |
| | |
| | | label: "体检病人", |
| | | }, |
| | | ], |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "监测评估", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "出院随访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "门诊随访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣教关怀", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "复诊管理", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "满意度调查", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "患者报告", |
| | | }, |
| | | |
| | | { |
| | | value: 8, |
| | | label: "其他通知", |
| | | }, |
| | | ], |
| | | rules: { |
| | | taskName: [ |
| | | { required: true, message: "任务名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "任务名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | |
| | | taskDesc: [ |
| | | { required: true, message: "任务描述不能为空", trigger: "blur" }, |
| | | ], |
| | | sendType: [ |
| | | { required: true, message: "发送设置不能为空", trigger: "blur" }, |
| | | ], |
| | | daytime: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | }, |
| | | quote: false, |
| | | serviceType:null, |
| | | serviceType: null, |
| | | }; |
| | | }, |
| | | components: { SFtable }, |
| | |
| | | }, |
| | | // 保存 |
| | | submitForm(formName) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | |
| | | if (!this.form.patTaskRelevances[0]) { |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" |
| | | ); |
| | | console.log(filteredArray, "存前变量"); |
| | | this.form.textParam = this.convertFormat2ToFormat1(filteredArray); |
| | | if (this.form.taskid) { |
| | | this.form.isoperation = 2; |
| | | } else { |
| | | this.form.isoperation = 1; |
| | | } |
| | | if (!this.form.type) { |
| | | this.form.type = this.$route.query.type; |
| | | } |
| | | this.form.serviceType=this.serviceType; |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.checkList[0]) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | } else { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.$modal.msgError("请选择服务类型"); |
| | | return; |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/tasklist", |
| | | query: { tasktopic: this.form.serviceType }, |
| | | if (!this.form.patTaskRelevances[0]) { |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && |
| | | item.name !== "电话" && |
| | | item.name !== "地址" |
| | | ); |
| | | this.form.textParam = this.convertFormat2ToFormat1(filteredArray); |
| | | if (this.form.taskid) { |
| | | this.form.isoperation = 2; |
| | | } else { |
| | | this.form.isoperation = 1; |
| | | } |
| | | if (!this.form.type) { |
| | | this.form.type = this.$route.query.type; |
| | | } |
| | | this.form.serviceType = this.serviceType; |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | } else { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/tasklist", |
| | | query: { tasktopic: this.form.serviceType }, |
| | | }); |
| | | } |
| | | }); |
| | | }else{ |
| | | this.$modal.msgError("表单内容未完善,请检查"); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "主任医师", width: "", prop: "drname" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "诊断", width: "", prop: "diagname" }, |
| | |
| | | }, |
| | | // 获取详情 |
| | | Getdetails() { |
| | | this.form= { |
| | | this.form = { |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | }; |
| | | this.questionList=[]; |
| | | this.questionList = []; |
| | | if (this.id) { |
| | | Questionnairetaskget({ taskid: this.id }).then((res) => { |
| | | let filteredArray = ""; |
| | | if (res.code == 200) { |
| | | this.form = res.data; |
| | | this.form.serviceType=this.serviceType; |
| | | this.form.serviceType = this.serviceType; |
| | | this.form.patTaskRelevances = this.form.patTaskRelevances |
| | | ? this.form.patTaskRelevances |
| | | : []; |
| | |
| | | margin: 20px; |
| | | .headline { |
| | | font-size: 24px; |
| | | height: 40px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | // justify-content: space-between; |
| | | .Add-details { |
| | | font-size: 18px; |
| | | color: #02a7f0; |