|  |  |  | 
|---|
|  |  |  | method: "post", | 
|---|
|  |  |  | data: data, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 新增或修改删除单一任务 | 
|---|
|  |  |  | export function getTasklist(data) { | 
|---|
|  |  |  | return request({ | 
|---|
|  |  |  | url: "/smartor/taskcall/list", | 
|---|
|  |  |  | method: "post", | 
|---|
|  |  |  | data: data, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | width="120" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <dict-tag :options="usable" :value="scope.row.isavailable" /> | 
|---|
|  |  |  | <dict-tag :options="qyoptions" :value="scope.row.usestate" /> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | 
|---|
|  |  |  | mode: [], | 
|---|
|  |  |  | languagelist: [], | 
|---|
|  |  |  | editabshape: [], | 
|---|
|  |  |  | usable: [], | 
|---|
|  |  |  | qyoptions: [], | 
|---|
|  |  |  | precedencetype: [], | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | this.mode = store.getters.mode; | 
|---|
|  |  |  | this.languagelist = store.getters.languagelist; | 
|---|
|  |  |  | this.usable = store.getters.usable; | 
|---|
|  |  |  | this.qyoptions = store.getters.usable; | 
|---|
|  |  |  | this.precedencetype = store.getters.precedencetype; | 
|---|
|  |  |  | this.editabshape = store.getters.editabshape; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | listUser, | 
|---|
|  |  |  | getUser, | 
|---|
|  |  |  | delUser, | 
|---|
|  |  |  | addUser, | 
|---|
|  |  |  | 
|---|
|  |  |  | resetUserPwd, | 
|---|
|  |  |  | changeUserStatus, | 
|---|
|  |  |  | } from "@/api/system/user"; | 
|---|
|  |  |  | import { getTasklist, getlibrarylist } from "@/api/AiCentre/index"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
|---|
|  |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 查询参数 | 
|---|
|  |  |  | topqueryParams: { | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 10, | 
|---|
|  |  |  | pageSize: 1000, | 
|---|
|  |  |  | userName: undefined, | 
|---|
|  |  |  | tagid: undefined, | 
|---|
|  |  |  | topic: undefined, | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | /** 查询门诊随访列表 */ | 
|---|
|  |  |  | /** 查询任务列表 */ | 
|---|
|  |  |  | getList() { | 
|---|
|  |  |  | this.loading = true; | 
|---|
|  |  |  | listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( | 
|---|
|  |  |  | (response) => { | 
|---|
|  |  |  | console.log(response); | 
|---|
|  |  |  | this.userList = response.rows; | 
|---|
|  |  |  | this.total = response.total; | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | // this.loading = true; | 
|---|
|  |  |  | getTasklist(this.topqueryParams).then((response) => { | 
|---|
|  |  |  | this.userList = response.rows; | 
|---|
|  |  |  | this.total = response.total; | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 查看门诊随访详情 | 
|---|
|  |  |  | Referencequestion(row) { | 
|---|
|  |  |  | 
|---|
|  |  |  | ></el-step> | 
|---|
|  |  |  | <el-step | 
|---|
|  |  |  | icon="el-icon-user" | 
|---|
|  |  |  | title="宣教对象" | 
|---|
|  |  |  | description="在本部选择宣教病人" | 
|---|
|  |  |  | title="任主体" | 
|---|
|  |  |  | description="在本部选择服务患者" | 
|---|
|  |  |  | ></el-step> | 
|---|
|  |  |  | <el-step icon="el-icon-user" title="模版确认"></el-step> | 
|---|
|  |  |  | </el-steps> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-radio :label="3">即刻发送</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | label="发送日期:" | 
|---|
|  |  |  | v-if="currenttype != 2 && form.sendType == 1" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="发送日期:" v-if="form.sendType == 1"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="daytime" | 
|---|
|  |  |  | @change="changeTimeday" | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | label="发送时间段:" | 
|---|
|  |  |  | v-if="currenttype != 2 && form.sendType == 1" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="发送时间段:" v-if="form.sendType == 1"> | 
|---|
|  |  |  | <div style="display: flex"> | 
|---|
|  |  |  | <div style="margin-right: 10px"> | 
|---|
|  |  |  | <span style="font-size: 18px; margin-right: 10px" | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-row :gutter="20"> | 
|---|
|  |  |  | <el-table :data="variableList" style="width: 100%"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="variablename" | 
|---|
|  |  |  | prop="name" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="变量名称" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="character" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | label="匹配符" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column prop="value" align="center" label="匹配符"> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column label="替换值" align="center"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="scope.row.Replacementvalue" | 
|---|
|  |  |  | :disabled="scope.row.default" | 
|---|
|  |  |  | v-model="scope.row.fill" | 
|---|
|  |  |  | placeholder="请输入内容" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | gethetaskinfo, | 
|---|
|  |  |  | delhetaskinfo, | 
|---|
|  |  |  | Editsingletask, | 
|---|
|  |  |  | getvFollowup, | 
|---|
|  |  |  | } from "@/api/AiCentre/index"; | 
|---|
|  |  |  | import SFtable from "@/components/SFtable"; //表格组件 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | { label: "宣教描述", width: "", prop: "note" }, | 
|---|
|  |  |  | { label: "宣教形式", width: "", prop: "playType" }, | 
|---|
|  |  |  | { label: "适用方式", width: "", prop: "suitway" }, | 
|---|
|  |  |  | { label: "创建日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tableLabelmz: [ | 
|---|
|  |  |  | { label: "随访名称", width: "118", prop: "templateName" }, | 
|---|
|  |  |  | { label: "随访模版", width: "130", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "创建日期", width: "136", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "130", prop: "update_by" }, | 
|---|
|  |  |  | { label: "随访名称", width: "", prop: "templateName" }, | 
|---|
|  |  |  | { label: "主要内容", width: "", prop: "note" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "updateTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tableLabelcy: [ | 
|---|
|  |  |  | { label: "随访名称", width: "118", prop: "templateName" }, | 
|---|
|  |  |  | { label: "随访计划", width: "130", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "创建日期", width: "136", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "130", prop: "update_by" }, | 
|---|
|  |  |  | { label: "随访名称", width: "", prop: "templateName" }, | 
|---|
|  |  |  | { label: "随访计划", width: "", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tableLabelfz: [ | 
|---|
|  |  |  | { label: "通知名称", width: "118", prop: "templateName" }, | 
|---|
|  |  |  | { label: "通知模版", width: "130", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "创建日期", width: "136", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "130", prop: "update_by" }, | 
|---|
|  |  |  | { label: "通知名称", width: "", prop: "templateName" }, | 
|---|
|  |  |  | { label: "通知模版", width: "", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tableLabeltj: [ | 
|---|
|  |  |  | { label: "通知名称", width: "118", prop: "name" }, | 
|---|
|  |  |  | { label: "通知模版", width: "130", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "创建日期", width: "136", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "130", prop: "update_by" }, | 
|---|
|  |  |  | { label: "通知名称", width: "", prop: "name" }, | 
|---|
|  |  |  | { label: "通知模版", width: "", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tableLabelwj: [ | 
|---|
|  |  |  | { label: "问卷名称", width: "118", prop: "name" }, | 
|---|
|  |  |  | { label: "问卷模版", width: "130", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "创建日期", width: "136", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "130", prop: "update_by" }, | 
|---|
|  |  |  | { label: "问卷名称", width: "", prop: "name" }, | 
|---|
|  |  |  | { label: "问卷模版", width: "", prop: "impTemplate" }, | 
|---|
|  |  |  | { label: "修改日期", width: "", prop: "uploadTime" }, | 
|---|
|  |  |  | { label: "创建人(缺)", width: "", prop: "update_by" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | // 变量 | 
|---|
|  |  |  | tableLabelvariable: [ | 
|---|
|  |  |  | 
|---|
|  |  |  | sonuserList: [], //选中患者列表 | 
|---|
|  |  |  | variableList: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | variablename: "姓名", | 
|---|
|  |  |  | character: "${name}", | 
|---|
|  |  |  | Replacementvalue: "龙傲天", | 
|---|
|  |  |  | name: "姓名", | 
|---|
|  |  |  | value: "${name}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | variablename: "地址", | 
|---|
|  |  |  | character: "${dzz}", | 
|---|
|  |  |  | Replacementvalue: "龙宫", | 
|---|
|  |  |  | name: "地址", | 
|---|
|  |  |  | value: "${dzz}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | variablename: "电话", | 
|---|
|  |  |  | character: "${dhh}", | 
|---|
|  |  |  | Replacementvalue: "八个八", | 
|---|
|  |  |  | name: "电话", | 
|---|
|  |  |  | value: "${dhh}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], //变量列表 | 
|---|
|  |  |  | transitionList: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: "姓名", | 
|---|
|  |  |  | value: "${name}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: "地址", | 
|---|
|  |  |  | value: "${dzz}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: "电话", | 
|---|
|  |  |  | value: "${dhh}", | 
|---|
|  |  |  | fill: "派发时自动匹配", | 
|---|
|  |  |  | default: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | variableListTime: [], | 
|---|
|  |  |  | tasktopic: null, //新增类型 | 
|---|
|  |  |  | SelectPatientslist: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | // 保存 | 
|---|
|  |  |  | submitForm(formName) { | 
|---|
|  |  |  | this.form.serviceform = this.checkList.join(","); | 
|---|
|  |  |  | this.form.textParam = { | 
|---|
|  |  |  | 姓名: { "${name}": "龙傲天" }, | 
|---|
|  |  |  | 地址: { "${dzz}": "龙宫" }, | 
|---|
|  |  |  | 电话: { "${dhh}": "八个八" }, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | const filteredArray = this.variableList.filter( | 
|---|
|  |  |  | (item) => | 
|---|
|  |  |  | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | console.log(filteredArray, "存前变量"); | 
|---|
|  |  |  | this.form.textParam = this.convertFormat2ToFormat1(filteredArray); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.form.id) { | 
|---|
|  |  |  | this.form.isoperation = 2; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // ----------------------表格子组件事件 | 
|---|
|  |  |  | // 选择 | 
|---|
|  |  |  | // 选择模版 | 
|---|
|  |  |  | selectfn(row, type) { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | console.log(type); | 
|---|
|  |  |  | // 模版情况下获取模版信息 | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | this.form.templatename = row.preachname; | 
|---|
|  |  |  | this.form.templateid = row.templateid; | 
|---|
|  |  |  | if ( | 
|---|
|  |  |  | this.currenttype == 2 || | 
|---|
|  |  |  | this.currenttype == 4 || | 
|---|
|  |  |  | this.currenttype == 3 | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | this.form.templatename = row.templateName; | 
|---|
|  |  |  | this.form.templateid = row.id; | 
|---|
|  |  |  | } else if (this.currenttype == 1) { | 
|---|
|  |  |  | this.form.templatename = row.preachname; | 
|---|
|  |  |  | this.form.templateid = row.id; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | getvFollowup({ id: row.id }).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | const data = res.data; | 
|---|
|  |  |  | this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else if (type == 2) { | 
|---|
|  |  |  | } else if (type == 3) { | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 处理问题层变量 | 
|---|
|  |  |  | Variablehandling(arr, type) { | 
|---|
|  |  |  | let Variablist = []; | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | console.log(arr); | 
|---|
|  |  |  | // 循环问题 | 
|---|
|  |  |  | arr.forEach((res) => { | 
|---|
|  |  |  | console.log(JSON.parse(res.otherdata), "ss"); | 
|---|
|  |  |  | // 循环选项 | 
|---|
|  |  |  | JSON.parse(res.otherdata).forEach((item) => { | 
|---|
|  |  |  | if (item.default != 1) { | 
|---|
|  |  |  | Variablist.push({ | 
|---|
|  |  |  | value: item.variate, | 
|---|
|  |  |  | fill: "", | 
|---|
|  |  |  | name: item.variatename, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | console.log(Variablist, "Variablist"); | 
|---|
|  |  |  | const Aarr = Variablist.filter( | 
|---|
|  |  |  | (obj, index, self) => | 
|---|
|  |  |  | index === | 
|---|
|  |  |  | self.findIndex((t) => t.name === obj.name && t.value === obj.value) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | this.variableList = this.transitionList.concat(Aarr); | 
|---|
|  |  |  | // this.form.textParam = this.convertFormat2ToFormat1(this.variableList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 子任务二级弹框 | 
|---|
|  |  |  | handleAddpatient(row) { | 
|---|
|  |  |  | getTaskpatient(this.patientqueryParams).then((response) => { | 
|---|
|  |  |  | 
|---|
|  |  |  | item.isoperation = 1; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.ruleForm.ivrLibaTemplateScriptVOList.push(res.data); | 
|---|
|  |  |  | this.sortFn(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleDelete(row) { | 
|---|
|  |  |  | 
|---|
|  |  |  | testgovalue: "", | 
|---|
|  |  |  | topicobj: {}, | 
|---|
|  |  |  | indexform: { | 
|---|
|  |  |  | ivrLibaScriptTargetoptionList:[], | 
|---|
|  |  |  | ivrLibaScriptTagList:[] | 
|---|
|  |  |  | ivrLibaScriptTargetoptionList: [], | 
|---|
|  |  |  | ivrLibaScriptTagList: [], | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | mode: [], | 
|---|
|  |  |  | questionclass: [], | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 保存详细信息 | 
|---|
|  |  |  | Saveproblem() { | 
|---|
|  |  |  | console.log(this.variablelist); | 
|---|
|  |  |  | console.log(this.indexform); | 
|---|
|  |  |  | this.indexform.otherdata = JSON.stringify(this.variablelist); | 
|---|
|  |  |  | this.indexform.suitway = this.indexform.suitway.join(","); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.indexform.suitway) { | 
|---|
|  |  |  | this.indexform.suitway = this.indexform.suitway.join(","); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.indexform.id) { | 
|---|
|  |  |  | this.indexform.ivrLibaScriptTargetoptionList = | 
|---|
|  |  |  | this.indexform.ivrLibaScriptTargetoptionList.map((res) => { | 
|---|
|  |  |  | if (res.isoperation!=1) { | 
|---|
|  |  |  | res.isoperation = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.indexform.ivrLibaScriptTargetoptionList.map((res) => { | 
|---|
|  |  |  | if (res.isoperation != 1) { | 
|---|
|  |  |  | res.isoperation = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.indexform.isoperation = 2; | 
|---|
|  |  |  | compileverbaltrick(this.indexform).then((res) => { | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|