| | |
| | | <el-select |
| | | v-model="ruleForm.categoryid" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in optionsclass" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | |
| | | > |
| | | </el-input |
| | | ></el-form-item> |
| | | <el-form-item label="通知变量" prop="name"> |
| | | <el-row v-for="item in variablelist"> |
| | | <el-col :span="4"> |
| | | <el-input |
| | | v-model="item.name" |
| | | placeholder="请输入变量名" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input |
| | | v-model="item.value" |
| | | placeholder="请输入变量内容" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="4" :offset="1"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | circle |
| | | @click="addvariable(item)" |
| | | ></el-button> |
| | | <el-button |
| | | v-if="item" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="文件" prop="sickness"> |
| | | <div style="width: 40%"> |
| | |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | | :key="tag" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClosetag(tag)" |
| | | > |
| | | {{ tag.tagname }} |
| | | {{ tag }} |
| | | </el-tag> |
| | | <el-select |
| | | v-model="inputValue" |
| | |
| | | <el-select |
| | | v-model="ruleForm.isenable" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="问卷方式(缺)" prop="region"> |
| | | <el-form-item label="问卷方式" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.way" |
| | | v-model="ruleForm.suitway" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in xjxsoptions" |
| | | v-for="item in mode" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | |
| | | <el-form-item label="适用院区" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.courtyard" |
| | | v-model="ruleForm.campus" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in courtyardlist" |
| | | :key="item.value" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :value="item.label" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.administrative" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | <el-cascader |
| | | v-model="tempDetpRelevanceslist" |
| | | :options="deptList" |
| | | :props="props" |
| | | :show-all-levels="false" |
| | | clearable |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in courtyardlist" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <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> |
| | | <el-button type="success" @click="nextstep('ruleForm')" |
| | | >下一步</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button @click="submitForm('ruleForm')" |
| | | <el-button @click="Departmenttreatment('ruleForm')" |
| | | >保存问卷基础信息</el-button |
| | | > |
| | | </el-form-item> |
| | |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | round |
| | | @click="drawer = true" |
| | | @click="getaddtopiclist" |
| | | >添加题目</el-button |
| | | > |
| | | </div> |
| | | <div class="presentation"> |
| | | <div class="presentation-left"> |
| | | <el-card class="box-card" style="min-height: 688px"> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table v-loading="loading" :data="ruleForm.svyLibTopics"> |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | key="topicid" |
| | | prop="topicid" |
| | | /> |
| | | <el-table-column |
| | | label="题目" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | key="topic" |
| | | prop="topic" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="主要内容" |
| | | align="center" |
| | | key="maincontent" |
| | | prop="maincontent" |
| | | key="topicContent" |
| | | prop="topicContent" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-card> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | <div class="presentation-right"> |
| | | <el-card class="box-card"> |
| | |
| | | </div> |
| | | <el-form-item label="题目标题"> |
| | | <el-input |
| | | v-model="topicobj.title" |
| | | v-model="topicobj.topic" |
| | | placeholder="请输入标题" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否必答"> |
| | | <el-radio-group v-model="topicobj.resource"> |
| | | <el-radio label="是"></el-radio> |
| | | <el-radio label="否"></el-radio> |
| | | </el-radio-group> </el-form-item |
| | | ><el-form-item label="是否必填"> |
| | | <el-select |
| | | v-model="topicobj.ismandatory" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in required" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="是否隐藏"> |
| | | <el-radio-group v-model="topicobj.resourcea"> |
| | | <el-radio label="是"></el-radio> |
| | | <el-radio label="否"></el-radio> |
| | | </el-radio-group> </el-form-item |
| | | ><el-form-item label="是否可用"> |
| | | <el-select |
| | | v-model="topicobj.isavailable" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in usable" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <div class="headline">选项设置</div> |
| | | <div class="topicxq" v-for="item in optionlist"> |
| | | <div |
| | | class="topicxq" |
| | | v-for="item in topicobj.svyLibTopicoptions" |
| | | > |
| | | <el-row :gutter="10"> |
| | | <el-col :span="11" |
| | | ><el-form-item label="题号"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请输入" |
| | | v-model="item.optionid" |
| | | v-model="item.topicid" |
| | | show-word-limit |
| | | > |
| | | </el-input> </el-form-item |
| | |
| | | > |
| | | <el-button type="primary" @click="laststep()">上一步</el-button> |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | <el-button @click="Saveproblem('ruleForm')">保存题目数据</el-button> |
| | | <el-button @click="submitForm('ruleForm')">保存题目数据</el-button> |
| | | </div> |
| | | <!-- 问卷预览 --> |
| | | <div v-if="Editprogress == 3"> |
| | |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | @keyup.enter.native="getaddtopiclist" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="主题" prop="sickness"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请输入" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | @click="getaddtopiclist" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | |
| | | <el-table-column |
| | | label="标题" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | key="topic" |
| | | prop="topic" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="问题内容" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | key="topicContent" |
| | | prop="topicContent" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | <el-button size="medium" type="text" @click="addtopic(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-circle-plus-outline"></i>添加</span |
| | | ></el-button |
| | |
| | | |
| | | <script> |
| | | import { listtag } from "@/api/system/label"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | import store from "@/store"; |
| | | import { |
| | | getQtemplateclassify, |
| | | delQtemplateclassify, |
| | | addQtemplateclassify, |
| | | getQtemplatelist, |
| | | compileQtemplate, |
| | | Qtemplateinfo, |
| | | compileissue, |
| | | delQtemplateinfo, |
| | | Followupinfo, |
| | | getissuelist, |
| | | deltargetillness, |
| | | addtargetillness, |
| | | getillnesslist, |
| | |
| | | { value: "topic", table: "topic" }, |
| | | { value: "topic", table: "topic" }, |
| | | ], |
| | | xjxsoptions: [ |
| | | { |
| | | value: "选项1", |
| | | label: "图文", |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "视频", |
| | | }, |
| | | { |
| | | value: "选项3", |
| | | label: "音频", |
| | | }, |
| | | ], |
| | | |
| | | fileList: [ |
| | | { |
| | | name: "food.jpeg", |
| | |
| | | url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | value: "选项1", |
| | | label: "疾病问卷", |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "入院问卷", |
| | | }, |
| | | ], |
| | | |
| | | variablelist: [ |
| | | { |
| | | variable: "paitent", |
| | |
| | | ], |
| | | addvalue: "添加题目", |
| | | // 题目表格数据 |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "一号问卷", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "二号问卷", |
| | | }, |
| | | ], |
| | | userList: [], |
| | | deptList: [], |
| | | props: { multiple: true, value: "deptId", label: "deptName" }, |
| | | themelist: [], |
| | | languagelist: [], |
| | | courtyardlist: [], |
| | |
| | | optionsillness: [], |
| | | illnesslistapi: [], |
| | | illnesslist: [], |
| | | |
| | | tempDetpRelevanceslist: [], |
| | | optionstag: [], |
| | | xjxsoptions: [], |
| | | usable: [], |
| | | required: [], |
| | | mode: [], //方式 |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | this.mode = store.getters.mode; |
| | | this.languagelist = store.getters.languagelist; |
| | | this.usable = store.getters.usable; |
| | | this.required = store.getters.required; |
| | | this.xjxsoptions = store.getters.xjxsoptions; |
| | | this.courtyardlist = store.getters.courtyardlist; |
| | | }, |
| | |
| | | // 获取数据 |
| | | getissueinfo() { |
| | | this.id = this.$route.query.id; |
| | | Qtemplateinfo(this.id).then((res) => { |
| | | this.ruleForm = res.data; |
| | | getQtemplatelist({ svyid: this.id }).then((res) => { |
| | | this.ruleForm = res.rows[0]; |
| | | this.dynamicTags = this.ruleForm.labelInfo.split(","); |
| | | this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | console.log(this.tempDetpRelevanceslist); |
| | | }); |
| | | getillnesslist({ |
| | | pageNum: 1, |
| | |
| | | getillness({ outid: this.id, type: 5 }).then((res) => { |
| | | this.illnesslist = res.rows; |
| | | }); |
| | | listDept(this.queryParams).then((response) => { |
| | | this.deptList = this.handleTree(response.data, "deptId"); |
| | | }); |
| | | getQtemplateclassify({}).then((res) => { |
| | | this.optionsclass = res.rows; |
| | | }); |
| | | }, |
| | | submitForm(formName) {}, |
| | | submitForm(formName) { |
| | | this.ruleForm.labelInfo = this.dynamicTags.join(","); |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | |
| | | if (this.id) { |
| | | this.ruleForm.isoperation = 2; |
| | | compileQtemplate(this.ruleForm).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.$router.go(-1); |
| | | }); |
| | | } else { |
| | | this.ruleForm.isoperation = 1; |
| | | compileQtemplate(this.ruleForm).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.$router.go(-1); |
| | | }); |
| | | } |
| | | }, |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | | this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); |
| | | console.log(this.tempDetpRelevanceslist); |
| | | const result = this.tempDetpRelevanceslist.map( |
| | | (subArr) => subArr[subArr.length - 1] |
| | | ); |
| | | console.log(result); |
| | | // id数组查数组对象 |
| | | result.forEach((item) => { |
| | | const condition = this.ruleForm.tempDetpRelevances.some( |
| | | (obj) => obj.deptId === item |
| | | ); |
| | | if (!condition) { |
| | | listDept({ deptId: item }).then((res) => { |
| | | console.log(res.data[0]); |
| | | res.data[0].type = 2; |
| | | this.ruleForm.tempDetpRelevances.push(res.data[0]); |
| | | }); |
| | | } |
| | | }); |
| | | 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; |
| | | } |
| | | }); |
| | | console.log(this.ruleForm.tempDetpRelevances); |
| | | setTimeout(() => { |
| | | this.submitForm(); |
| | | }, 1000); |
| | | // this.submitForm(); |
| | | }, |
| | | // 下一步 |
| | | nextstep() { |
| | | if (this.Editprogress <= 2) { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | // 保存题目信息 |
| | | Saveproblem() {}, |
| | | /** 查询题目列表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | // 获取题目列表 |
| | | getaddtopiclist() { |
| | | this.drawer = true; |
| | | getissuelist(this.queryParams).then((res) => { |
| | | this.loading = false; |
| | | this.userList = res.rows; |
| | | this.total = res.total; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // 新增题目 |
| | | addtopic(row) { |
| | | row.isoperation = 1; |
| | | this.ruleForm.svyLibTopics.push(row); |
| | | }, |
| | | handleDelete(row) { |
| | | this.ruleForm.svyLibTopics.splice( |
| | | this.ruleForm.svyLibTopics.indexOf(row), |
| | | 1 |
| | | ); |
| | | }, |
| | | handleUpdate(row) { |
| | | console.log(row); |
| | | this.topicobj = row; |
| | | }, |
| | | |
| | | // 修改题目信息 |
| | | Submittopicobj() {}, |
| | | // 新增变量 |
| | |
| | | handleClosetag(tag) { |
| | | console.log(tag); |
| | | console.log(this.dynamicTags.indexOf(tag)); |
| | | const lindex = this.dynamicTags.indexOf(tag); |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; |
| | | // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; |
| | | }, |
| | | handleInputConfirm() { |
| | | let tagvalue = {}; |
| | |
| | | }; |
| | | } |
| | | // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | // this.dynamicTags.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue.tagname); |
| | | }); |
| | | } |
| | | this.inputVisible = false; |
| | |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | }, |
| | | // -------------------------- |
| | | // 查询题库 |
| | | handleQuery() {}, |
| | | resetQuery() {}, |
| | | resetQuery() { |
| | | this.queryParams = { pageNum: 1, pageSize: 10 }; |
| | | this.getaddtopiclist(); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |