| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用科室" prop="region"> |
| | | <el-cascader |
| | | style="width: 500px" |
| | | v-model="tempDetpRelevanceslist" |
| | | :options="deptList" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | | clearable |
| | | > |
| | | <template slot-scope="{ node, data }"> |
| | | <span>{{ data.deptName }}</span> |
| | | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> |
| | | </template> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="通用库" prop="region"> |
| | | <el-select |
| | | style="width: 500px" |
| | | v-model="ruleForm.submoduleID" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择库(多选)" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in generallist" |
| | | :key="item.id" |
| | | :label="item.extName" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="随访前处理" prop="name"> |
| | | <el-input |
| | | type="textarea" |
| | | show-word-limit |
| | | v-model="ruleForm.revisitBefore" |
| | | ></el-input></el-form-item |
| | | ></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="随访后处理" prop="region"> |
| | | <el-input |
| | | type="textarea" |
| | | show-word-limit |
| | | v-model="ruleForm.revisitAfter" |
| | | ></el-input> </el-form-item |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | v-model="tempDetpRelevanceslist" |
| | | @remove-tag="removetag" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <el-select |
| | | v-model="tempbelongWards" |
| | | @remove-tag="removehpsp" |
| | | style="width: 55vw" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择科室" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in flatArray" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="静默时间(秒)" prop="name"> |
| | |
| | | getFollowuplist, |
| | | deltargetillness, |
| | | getillnesslist, |
| | | depthospgetson, |
| | | depthospgetsonlist, |
| | | illnesslistget, |
| | | getillness, |
| | | getgenerallist, |
| | | } from "@/api/AiCentre/index"; |
| | | import OptionalForm from "@/components/OptionalForm"; //正则组件 |
| | | import { getToken } from "@/utils/auth"; |
| | | import { deptTreeSelect } from "@/api/system/user"; |
| | | |
| | | export default { |
| | | name: "Tpuconfigurat", |
| | |
| | | optionstag: [], |
| | | prefollowuplist: [], |
| | | postfollowuplist: [], |
| | | tempDetpRelevanceslist: [], //科室数据 |
| | | tempDetpRelevanceslistform: [], //科室数据 |
| | | tempbelongWards: [], //病区数据 |
| | | tempbelongWardsform: [], //病区数据 |
| | | generallist: [ |
| | | { value: "1", label: "随访通用库一" }, |
| | | { value: "2", label: "随访二库" }, |
| | |
| | | { variatename: "病情", variate: "${illness}", default: 1 }, |
| | | ], |
| | | deptList: [], |
| | | flatArray:[], |
| | | props: { multiple: true, value: "deptId", label: "deptName" }, |
| | | |
| | | variablelist: [ |
| | |
| | | addvalue: "添加题目", |
| | | // 题目表格数据 |
| | | userList: [], |
| | | belongWards: [], |
| | | belongDepts: [], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | }; |
| | | }, |
| | | activated() { |
| | | console.log(this.id); |
| | | console.log(this.$route.query.id); |
| | | |
| | | if (this.id != this.$route.query.id) { |
| | | console.log(1); |
| | | |
| | | this.RoutingDataProcessing(); |
| | | this.gettabList(); |
| | | this.getvFollowup(); |
| | | this.auxiliary(); |
| | | } else { |
| | | this.tempDetpRelevanceslistform = []; |
| | | this.tempbelongWardsform = []; |
| | | } |
| | | }, |
| | | |
| | |
| | | this.gettabList(); |
| | | this.getvFollowup(); |
| | | this.auxiliary(); |
| | | this.getDeptTree(); |
| | | this.mode = store.getters.mode; |
| | | this.usable = store.getters.usable; |
| | | this.required = store.getters.required; |
| | |
| | | this.languagelist = store.getters.languagelist; |
| | | this.courtyardlist = store.getters.courtyardlist; |
| | | this.precedencetype = store.getters.precedencetype; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | }, |
| | | mounted() {}, |
| | | computed: { |
| | |
| | | RoutingDataProcessing() { |
| | | this.id = this.$route.query.id; |
| | | this.task = this.$route.query.task; |
| | | }, |
| | | // 获取科室树 |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | this.flatArray = this.flattenArray(response.data); |
| | | console.log(this.flatArray,'扩展数据'); |
| | | }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | | |
| | | // console.log(this.task, "task"); |
| | | // if (this.task) { |
| | | // this.id = this.$route.query.id; |
| | | // } |
| | | // 递归函数,用于将多级数组转换为一维数组 |
| | | function flatten(element, parentId) { |
| | | // 克隆元素以避免修改原始数据 |
| | | let item = JSON.parse(JSON.stringify(element)); |
| | | if (parentId !== undefined) { |
| | | item.parentId = parentId; // 使用字符串或数字作为键 |
| | | } |
| | | result.push(item); // 将元素添加到结果数组 |
| | | if (element.children && element.children.length > 0) { |
| | | element.children.forEach((child) => flatten(child, element.id)); // 递归处理子元素 |
| | | } |
| | | } |
| | | |
| | | multiArray.forEach((element) => flatten(element, null)); // 从顶层元素开始递归 |
| | | return result; // 返回一维数组 |
| | | }, |
| | | // 获取表单数据 |
| | | getvFollowup() { |
| | |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { |
| | | return Number(res); |
| | | }); |
| | | console.log( |
| | | this.ruleForm.submoduleID, |
| | | "this.ruleForm.submoduleID取" |
| | | ); |
| | | |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; |
| | | |
| | | this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( |
| | | this.processElement |
| | | ); |
| | | console.log(this.ruleForm.suitway); |
| | | this.sortFn(); |
| | | } |
| | | }); |
| | | getillness({ outid: this.id, type: 3 }).then((res) => { |
| | |
| | | item.icdname = item.icd10name; |
| | | }); |
| | | }); |
| | | } else { |
| | | this.ruleForm = { |
| | | templateName: "", |
| | | ivrLibaTemplateTagList: [], |
| | | ivrLibaTemplateScriptVOList: [], |
| | | tempDetpRelevances: [], |
| | | }; |
| | | this.deptOptions = []; |
| | | this.optionsillness = []; |
| | | this.illnesslistapi = []; |
| | | this.illnesslist = []; |
| | | this.dynamicTags = []; |
| | | this.tempDetpRelevanceslist = []; |
| | | } |
| | | |
| | | listDept(this.queryParams).then((response) => { |
| | |
| | | // 分类 |
| | | getFollowupclassify({}).then((res) => { |
| | | this.indexAssortlist = res.rows; |
| | | if (this.$route.query.assortid) { |
| | | this.ruleForm.assortid = Number(this.$route.query.assortid); |
| | | }); |
| | | this.tempDetpRelevanceslist = []; |
| | | this.tempbelongWards = []; |
| | | depthospgetsonlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | if (item.deptType == 1) { |
| | | this.deptlist.push(item); |
| | | this.tempDetpRelevanceslist.push(item.deptCode); |
| | | } else if (item.deptType == 2) { |
| | | this.hosplist.push(item); |
| | | this.tempbelongWards.push(item.deptCode); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | // 科室 |
| | |
| | | this.ruleForm.assortid = -1; |
| | | } |
| | | this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | this.ruleForm.campus = this.ruleForm.campus.join(","); |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); |
| | | if (Array.isArray(this.ruleForm.suitway)) |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | if (Array.isArray(this.ruleForm.campus)) |
| | | this.ruleForm.campus = this.ruleForm.campus.join(","); |
| | | if (Array.isArray(this.ruleForm.submoduleID)) |
| | | this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); |
| | | |
| | | // 提交 |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.forEach((res) => { |
| | |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | | this.$modal.loading("正在修正保存数据,请稍候..."); |
| | | this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList = |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.concat(this.delScriptVOList); |
| | | const result = this.tempDetpRelevanceslist.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | // id数组查数组对象 |
| | | result.forEach((item) => { |
| | | const condition = this.ruleForm.tempDetpRelevances.some( |
| | | (obj) => obj.deptId === item |
| | | ); |
| | | if (!condition) { |
| | | listDept({ deptId: item }).then((res) => { |
| | | res.data[0].type = 2; |
| | | this.ruleForm.tempDetpRelevances.push(res.data[0]); |
| | | this.tempDetpRelevanceslist.forEach((item) => { |
| | | console.log(item); |
| | | let result = this.deptlist.some((obj) => obj.deptCode == item); |
| | | console.log(this.result, "result"); |
| | | |
| | | if (!result) { |
| | | this.tempDetpRelevanceslistform.push({ |
| | | deptType: 1, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 1, |
| | | }); |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.tempDetpRelevances); |
| | | // 数组对象查id数组 |
| | | this.ruleForm.tempDetpRelevances.forEach((item) => { |
| | | const condition = result.some((obj) => obj === item.deptId); |
| | | if (!condition) { |
| | | const index = this.ruleForm.tempDetpRelevances.indexOf(item); |
| | | this.ruleForm.tempDetpRelevances[index].delFlag = 1; |
| | | this.tempbelongWards.forEach((item) => { |
| | | let result = this.hosplist.some((obj) => obj.deptCode == item); |
| | | if (!result) { |
| | | this.tempbelongWardsform.push({ |
| | | deptType: 2, |
| | | longTemp: this.ruleForm.longTemp, |
| | | deptCode: item, |
| | | tempid: this.id, |
| | | type: 1, |
| | | }); |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.tempDetpRelevances); |
| | | setTimeout(() => { |
| | | this.submitForm(); |
| | | }, 1000); |
| | | // this.submitForm(); |
| | | }, |
| | | // 保存科室/病区 |
| | | putbelongDepts(id) { |
| | | if (this.tempDetpRelevanceslistform.length > 0) { |
| | | depthospgetson(this.tempDetpRelevanceslistform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("科室新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | if (this.tempbelongWardsform.length > 0) { |
| | | depthospgetson(this.tempbelongWardsform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("院区新增成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 下一步 |
| | | nextstep() { |
| | |
| | | isoperation: 1, |
| | | }; |
| | | } |
| | | const exists = this.dynamicTags.some( |
| | | (department) => department.tagname === tagname |
| | | ); |
| | | if (exists) { |
| | | this.$modal.msgError("标签重复"); |
| | | return; |
| | | } |
| | | this.ruleForm.ivrLibaTemplateTagList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | }); |
| | |
| | | }); |
| | | }, |
| | | addtopic(row) { |
| | | console.log(row); |
| | | if ( |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.some( |
| | | (obj) => obj.scriptTopic == row.scriptTopic |
| | |
| | | }); |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data); |
| | | this.sortFn(); |
| | | this.$forceUpdate(); |
| | | this.$modal.msgSuccess("添加成功"); |
| | | }); |
| | | }, |
| | |
| | | sortFn() { |
| | | this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => { |
| | | item.sort = Number(index) + 1; |
| | | console.log(1); |
| | | console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length); |
| | | console.log(item.sort); |
| | | |
| | | if (item.sort == this.ruleForm.ivrLibaTemplateScriptVOList.length) { |
| | | item.nextScriptno = 0; |
| | |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | |
| | | // 科室删除触发 |
| | | removetag(row) { |
| | | let result = this.deptlist |
| | | .filter((item) => item.deptCode == row) |
| | | .map((item) => item.id); |
| | | console.log(result.length); |
| | | if (result.length) { |
| | | depthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 删除删除触发 |
| | | removehpsp(row) { |
| | | let result = this.hosplist |
| | | .filter((item) => item.deptCode == row) |
| | | .map((item) => item.id); |
| | | if (result.length) { |
| | | depthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 预览--------------- |
| | | preview() { |
| | | console.log(this.ruleForm); |
| | |
| | | .confirm("即将前往模板测试页面,请确认模板数据已保存。") |
| | | .then((res) => { |
| | | this.$router.push({ |
| | | path: "/knowledge/tpuconfigurat/measurement", |
| | | path: "/knowledge/templateku/configurat/measurement", |
| | | query: { id: this.id, name: this.ruleForm.templateName }, |
| | | }); |
| | | }) |