| | |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <div style="height: 200px"> |
| | | <el-steps direction="vertical" :active="Editprogress"> |
| | | <el-step title="基础信息设置"></el-step> |
| | | <el-step title="宣教内容"></el-step> |
| | | </el-steps> |
| | | </div> |
| | | <el-steps finish-status="success" :active="Editprogress" simple> |
| | | <el-step> |
| | | <template slot="title"> |
| | | <span style="cursor: pointer" @click="Editprogress = 1" |
| | | >基础信息设置</span |
| | | > |
| | | </template> |
| | | </el-step> |
| | | <el-step> |
| | | <template slot="title"> |
| | | <span style="cursor: pointer" @click="Editprogress = 2" |
| | | >宣教内容</span |
| | | > |
| | | </template> |
| | | </el-step> |
| | | </el-steps> |
| | | </div> |
| | | <!-- 右侧数据 --> |
| | | <div class="leftvlue"> |
| | |
| | | > |
| | | <el-form-item label="宣教分类" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.groupID" |
| | | v-model="ruleForm.assortid" |
| | | size="medium" |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in sortlist" |
| | | :key="item.id" |
| | | :label="item.assortname" |
| | | :value="item.id" |
| | | <el-option-group |
| | | v-for="group in sortlist" |
| | | :key="group.id" |
| | | :label="group.assortname" |
| | | > |
| | | </el-option> |
| | | <el-option |
| | | v-for="item in group.heLibraryAssortList" |
| | | :key="item.id" |
| | | :label="item.assortname" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="宣教标题" prop="extName"> |
| | | <el-row> |
| | | <el-col :span="12"> </el-col> |
| | | <el-col :span="12"> </el-col> |
| | | </el-row> |
| | | <el-form-item label="宣教标题" prop="preachname"> |
| | | <div style="width: 30%"> |
| | | <el-input v-model="ruleForm.extName"></el-input> |
| | | <el-input |
| | | v-model="ruleForm.preachname" |
| | | placeholder="请输入标题" |
| | | ></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="宣教描述" prop="extName"> |
| | | <div style="width: 30%"> |
| | | <el-input v-model="ruleForm.note"></el-input> |
| | | <el-form-item label="宣教描述" prop="preachcontent"> |
| | | <div style="width: 60%"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | v-model="ruleForm.preachcontent" |
| | | placeholder="请输入描述" |
| | | ></el-input> |
| | | </div> |
| | | </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.variable"></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input v-model="item.value"></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 |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="margin-bottom: 5px" v-for="item in variablelist"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-input |
| | | v-model="item.variatename" |
| | | placeholder="请输入变量名" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-input |
| | | v-model="item.variate" |
| | | placeholder="请输入变量内容" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="8" :offset="1"> |
| | | <el-button |
| | | type="success" |
| | | icon="el-icon-plus" |
| | | circle |
| | | @click="addvariable(item)" |
| | | ></el-button> |
| | | <el-button |
| | | v-if="!item.default" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | @click="delvariable(item)" |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="文件" prop="sickness"> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="版本号" prop="name"> |
| | | <el-input v-model="ruleForm.version"></el-input> </el-form-item |
| | | <el-input |
| | | v-model="ruleForm.version" |
| | | placeholder="默认1.0.1" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="可用状态" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.isEnable" |
| | | v-model="ruleForm.isavailable" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | |
| | | </el-row> |
| | | <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" |
| | | :key="item.value" |
| | | v-for="item in mode" |
| | | :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"> |
| | | <div class="xinz-infs"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="item.icd10name" |
| | | type="warning" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="适用院区" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.courtyard" |
| | | v-model="ruleForm.campus" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择分类" |
| | | > |
| | |
| | | </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 options" |
| | | :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 @click="resetForm('ruleForm')">重置</el-button> |
| | | <el-button type="success" @click="Departmenttreatment('ruleForm')" |
| | | >保存</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')">关闭</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | <el-col :span="12"> |
| | | <div> |
| | | <el-button @click="laststep('ruleForm')">上一步</el-button> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | <el-button type="success" @click="Departmenttreatment('ruleForm')" |
| | | >保存</el-button |
| | | > |
| | | <el-button type="warning" @click="submitForm('ruleForm')" |
| | | <el-button type="warning" @click="Departmenttreatment('ruleForm')" |
| | | >另存新版本</el-button |
| | | > |
| | | <el-button type="info" @click="closeFm('ruleForm')" |
| | |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <div style="display: flex; margin-left: 66px; margin-bottom: 10px"> |
| | | <div |
| | | v-for="item in variablelist" |
| | | class="tsgname" |
| | | @click="tsgnameto(item)" |
| | | > |
| | | {{ item.variatename }} |
| | | </div> |
| | | </div> |
| | | </el-col></el-row |
| | | > |
| | | |
| | | <div> |
| | | <el-form |
| | |
| | | addtargetillness, |
| | | getlibrarylist, |
| | | dellibraryinfo, |
| | | deltargetillness, |
| | | compilelibrary, |
| | | getlibraryinfo, |
| | | getillnesslist, |
| | | illnesslistget, |
| | | getillness, |
| | | } from "@/api/AiCentre/index"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | // import * as Quill from "quill"; |
| | | import Quill from "quill"; |
| | | import { listtag } from "@/api/system/label"; |
| | |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | uploadImgUrl: "/v1/admin/common/upload", |
| | | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", |
| | | uploadUrlPath: "没有文件上传", |
| | | quillUpdateImg: false, |
| | | fileList: [ |
| | |
| | | radioas: "", //填空题答案 |
| | | // 总条数 |
| | | total: 1, |
| | | ruleForm: {}, |
| | | ruleForm: { |
| | | campus: [], |
| | | heLibraryTagList: [], |
| | | tempDetpRelevances: [], |
| | | version: "1.0.1", |
| | | }, |
| | | rules: {}, |
| | | rulesa: {}, |
| | | mode: [], |
| | |
| | | illnesslist: [], |
| | | options: [], |
| | | optionstag: [], |
| | | deptList: [], |
| | | tempDetpRelevanceslist: [], |
| | | props: { multiple: true, value: "deptId", label: "deptName" }, |
| | | xjxsoptions: [ |
| | | { |
| | | value: "1", |
| | |
| | | addvalue: "添加题目", |
| | | |
| | | variablelist: [ |
| | | { |
| | | variable: "paitent", |
| | | value: "表示患者的标识", |
| | | }, |
| | | { variatename: "姓名", variate: "${name}", default: 1 }, |
| | | { variatename: "电话", variate: "${phone}", default: 1 }, |
| | | { variatename: "病情", variate: "${illness}", default: 1 }, |
| | | ], |
| | | // 查询参数 |
| | | queryParams: { |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | processElement(element) { |
| | | return { ...element, isoperation: null }; |
| | | }, |
| | | // 获取页面数据 |
| | | getList() { |
| | | this.loading = true; |
| | | getlibraryinfo({ id: this.$route.query.id }).then((res) => { |
| | | this.ruleForm = res.data; |
| | | }); |
| | | this.id = this.$route.query.id; |
| | | if (this.id) { |
| | | getlibraryinfo({ id: this.id }).then((res) => { |
| | | this.ruleForm = res.data[0]; |
| | | this.ruleForm.campus = this.ruleForm.campus.split(","); |
| | | this.dynamicTags = res.data[0].heLibraryTagList.map( |
| | | this.processElement |
| | | ); |
| | | |
| | | if (this.ruleForm.deptNames) { |
| | | this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); |
| | | } |
| | | if (this.ruleForm.suitway) { |
| | | this.ruleForm.suitway = this.ruleForm.suitway.split(","); |
| | | } |
| | | this.variablelist = this.ruleForm.otherdata |
| | | ? JSON.parse(this.ruleForm.otherdata) |
| | | : this.variablelist; |
| | | }); |
| | | } |
| | | // 宣教分类 |
| | | getheLibraryAssort({}).then((res) => { |
| | | this.sortlist = res.rows; |
| | | console.log(res); |
| | | }); |
| | | }, |
| | | /** 查询标签列表 */ |
| | | gettabList() { |
| | | const tagqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | tagcategoryid: "0", |
| | | }; |
| | | listtag(tagqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | // 部门 |
| | | listDept(this.queryParams).then((response) => { |
| | | this.deptList = this.handleTree(response.data, "deptId"); |
| | | }); |
| | | this.loading = false; |
| | | }, |
| | | // 完成 |
| | | |
| | | submitForm(formName) { |
| | | this.rules = this.rulesa; |
| | | // 提交 |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | alert("submit!"); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | let tgs = []; |
| | | this.dynamicTags.forEach((item) => { |
| | | tgs.push(item.tagname); |
| | | }); |
| | | this.ruleForm.campus = this.ruleForm.campus.join(","); |
| | | this.ruleForm.labelInfo = tgs.length != 0 ? tgs.join(", ") : ""; |
| | | this.ruleForm.otherdata = JSON.stringify(this.variablelist); |
| | | console.log(22); |
| | | this.ruleForm.suitway = |
| | | this.ruleForm.suitway.length != 0 |
| | | ? this.ruleForm.suitway.join(",") |
| | | : ""; |
| | | if (this.id) { |
| | | this.ruleForm.isoperation = 2; |
| | | } else { |
| | | this.ruleForm.isoperation = 1; |
| | | } |
| | | this.illnesslist.forEach((item, index) => { |
| | | if (!item.id) { |
| | | addtargetillness(item).then((res) => {}); |
| | | } |
| | | }); |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | compilelibrary(this.ruleForm).then((res) => { |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | this.$router.go(-1); |
| | | }); |
| | | }, |
| | | // 下一步 |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | | this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); |
| | | 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) => { |
| | | console.log("dept"); |
| | | res.data[0].type = 2; |
| | | this.ruleForm.tempDetpRelevances.push(res.data[0]); |
| | | }); |
| | | } |
| | | }); |
| | | // 数组对象查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; |
| | | } |
| | | }); |
| | | setTimeout(() => { |
| | | this.submitForm(); |
| | | }, 1000); |
| | | // this.submitForm(); |
| | | }, |
| | | // 保存题目信息 |
| | | Saveproblem() {}, |
| | | /** 查询题目列表 */ |
| | |
| | | // 新增变量 |
| | | addvariable() { |
| | | this.variablelist.push({ |
| | | variable: "", |
| | | value: "", |
| | | variatename: "", |
| | | variate: "", |
| | | }); |
| | | }, |
| | | // 删除变量 |
| | |
| | | tagcategoryid: "0", |
| | | }; |
| | | listtag(tagqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | handleClosetag(tag) { |
| | | console.log(tag); |
| | | console.log(this.dynamicTags.indexOf(tag)); |
| | | const lindex = this.dynamicTags.indexOf(tag); |
| | | const lindex = this.ruleForm.heLibraryTagList.findIndex( |
| | | (item) => item.tagname == tag.tagname |
| | | ); |
| | | console.log(lindex); |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; |
| | | this.ruleForm.heLibraryTagList[lindex].isoperation = 3; |
| | | }, |
| | | handleInputConfirm() { |
| | | let tagvalue = {}; |
| | |
| | | isoperation: 1, |
| | | }; |
| | | } |
| | | this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); |
| | | this.ruleForm.heLibraryTagList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | }); |
| | | } |
| | |
| | | pageSize: 100, |
| | | }; |
| | | getillnesslist(illnessqueryParams).then((response) => { |
| | | console.log(response); |
| | | this.optionsillness = response.rows; |
| | | }); |
| | | getillness({ outid: this.$route.query.id, type: 6 }).then((res) => { |
| | | this.illnesslist = res.rows; |
| | | console.log(res); |
| | | }); |
| | | }, |
| | | handleCloseillness(tag) { |
| | |
| | | } |
| | | }, |
| | | remoteMethod(value) { |
| | | console.log(value); |
| | | const illnessqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | |
| | | let tagname = this.inputValue; |
| | | illnesslistget(item).then((res) => { |
| | | opeavalue = res.data; |
| | | opeavalue.outid = this.indexid; |
| | | opeavalue.outid = this.id; |
| | | opeavalue.type = 6; |
| | | opeavalue.icd10id = opeavalue.icdid; |
| | | opeavalue.icd10name = opeavalue.icdname; |
| | |
| | | this.illnesslist.push(opeavalue); |
| | | } |
| | | }); |
| | | console.log(this.illnesslist); |
| | | this.inputVisible = false; |
| | | this.illnessVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | confirmillness() { |
| | | this.illnesslist.forEach((item, index) => { |
| | | if (!item.id) { |
| | | addtargetillness(item).then((res) => {}); |
| | | } |
| | | }); |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | this.illnessVisible = false; |
| | | this.$modal.msgSuccess("编辑成功"); |
| | | }, |
| | | |
| | | illnessshowInput() { |
| | | this.illnessVisible = true; |
| | | }, |
| | |
| | | // this.$emit('upload',res, file) |
| | | console.log(res, file); |
| | | //拼接出上传的图片在服务器的完整地址 |
| | | let imgUrl = res.data.url; |
| | | let imgUrl = res.url; |
| | | let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1); |
| | | console.log(type); |
| | | // 获取富文本组件实例 |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | // display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // width: 300px; |
| | | // min-height: 100vh; |
| | | // text-align: center; |
| | | // display: flex; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | margin-bottom: 0; |
| | | padding: 30px; |
| | | padding: 20px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |