|  |  |  | 
|---|
|  |  |  | ><el-form-item label="题目类型"> | 
|---|
|  |  |  | <el-select | 
|---|
|  |  |  | v-model="topicobj.scriptType" | 
|---|
|  |  |  | @change="changefn" | 
|---|
|  |  |  | size="medium" | 
|---|
|  |  |  | filterable | 
|---|
|  |  |  | placeholder="请选择分类" | 
|---|
|  |  |  | 
|---|
|  |  |  | placeholder="请输入题目内容" | 
|---|
|  |  |  | ></el-input> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item | 
|---|
|  |  |  | label="" | 
|---|
|  |  |  | prop="scriptContent" | 
|---|
|  |  |  | v-if="topicobj.scriptType == 3" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <div style="display: flex; margin-bottom: 10px"> | 
|---|
|  |  |  | <div class="tsgnames" @click="tsgnametos">插入填空</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <el-col :span="20"> | 
|---|
|  |  |  | <el-form-item label="收集信息" v-if="topicobj.scriptType == 3"> | 
|---|
|  |  |  | <el-card class="box-card" style="width: 200%"> | 
|---|
|  |  |  | <div | 
|---|
|  |  |  | v-for="item in topicobj.svyLibScriptOptions" | 
|---|
|  |  |  | style="margin-bottom: 10px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="填入内容信息" | 
|---|
|  |  |  | v-model="item.aaa" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | slot="append" | 
|---|
|  |  |  | @click="deletexuanx(item)" | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | icon="el-icon-delete" | 
|---|
|  |  |  | circle | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | <span slot="prepend">{{ | 
|---|
|  |  |  | "(" + item.orderno + ")" | 
|---|
|  |  |  | }}</span> | 
|---|
|  |  |  | </el-input> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-card> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-form-item label="题目说明"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | style="width: 40vw" | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row> | 
|---|
|  |  |  | <!-- <el-row> | 
|---|
|  |  |  | <el-form-item label="适用疾病" prop="region"> | 
|---|
|  |  |  | <div class="xinz-inf"> | 
|---|
|  |  |  | <el-tag | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4"> | 
|---|
|  |  |  | <div class="headline"> | 
|---|
|  |  |  | 选项设置<span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" round @click="addoption" | 
|---|
|  |  |  | >+新增</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-row> --> | 
|---|
|  |  |  | <el-form-item label="选中指标:"> | 
|---|
|  |  |  | <span style="margin-left: 30px" | 
|---|
|  |  |  | >选中指标:<el-tag type="success" effect="dark">{{ | 
|---|
|  |  |  | ><el-tag type="success" effect="dark">{{ | 
|---|
|  |  |  | topicobj.targetname ? topicobj.targetname : "未选择" | 
|---|
|  |  |  | }}</el-tag></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="success" round @click="gettargetInfo" | 
|---|
|  |  |  | >+选择指标</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4"> | 
|---|
|  |  |  | <div class="headline"> | 
|---|
|  |  |  | 选项设置<span style="margin-left: 30px" | 
|---|
|  |  |  | ><el-button type="primary" round @click="addoption" | 
|---|
|  |  |  | >+新增</el-button | 
|---|
|  |  |  | ></span | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | <el-col :span="2"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-col :span="2" :offsset="topicobj.scoretype == 4 ? 11 : 0"> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | icon="el-icon-delete" | 
|---|
|  |  |  | 
|---|
|  |  |  | ></el-button> | 
|---|
|  |  |  | </el-col> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-form-item label="预警提醒"> | 
|---|
|  |  |  | <el-radio-group v-model="item.isabnormal"> | 
|---|
|  |  |  | <el-radio :label="1">是</el-radio> | 
|---|
|  |  |  | <el-radio :label="0">否</el-radio> | 
|---|
|  |  |  | </el-radio-group> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </el-row> | 
|---|
|  |  |  | <el-row :gutter="10"> | 
|---|
|  |  |  | <el-form-item label="选中提示"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | 
|---|
|  |  |  | :inline="true" | 
|---|
|  |  |  | label-width="98px" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-form-item label="标题" prop="userName"> | 
|---|
|  |  |  | <el-form-item label="指标名称" prop="userName"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="queryParams.targetname" | 
|---|
|  |  |  | placeholder="请输入" | 
|---|
|  |  |  | 
|---|
|  |  |  | @keyup.enter.native="gettargetInfo" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="指标标签" prop="userName"> | 
|---|
|  |  |  | <el-input | 
|---|
|  |  |  | v-model="queryParams.tagName" | 
|---|
|  |  |  | placeholder="请输入" | 
|---|
|  |  |  | clearable | 
|---|
|  |  |  | style="width: 200px" | 
|---|
|  |  |  | @keyup.enter.native="gettargetInfo" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-form-item label="指标类型" prop="scriptType"> | 
|---|
|  |  |  | <el-select v-model="queryParams.scriptType" placeholder="请选择"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in qyoptions" | 
|---|
|  |  |  | :key="item.value" | 
|---|
|  |  |  | :label="item.label" | 
|---|
|  |  |  | :value="item.value" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | <el-table v-loading="loading" :data="targetList"> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="标题" | 
|---|
|  |  |  | label="指标名称" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetname" | 
|---|
|  |  |  | prop="targetname" | 
|---|
|  |  |  | width="100" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="问题内容" | 
|---|
|  |  |  | label="指标说明" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetdesc" | 
|---|
|  |  |  | prop="targetdesc" | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="语言" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetdesc" | 
|---|
|  |  |  | prop="targetdesc" | 
|---|
|  |  |  | key="language" | 
|---|
|  |  |  | prop="language" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="问题内容" | 
|---|
|  |  |  | label="是否可用" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="targetdesc" | 
|---|
|  |  |  | prop="targetdesc" | 
|---|
|  |  |  | key="isAvailable" | 
|---|
|  |  |  | prop="isAvailable" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <dict-tag :options="usable" :value="scope.row.isAvailable" /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="问题类型" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="scriptType" | 
|---|
|  |  |  | prop="scriptType" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <dict-tag :options="valuetype" :value="scope.row.scriptType" /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="选项说明" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | key="optionDesc" | 
|---|
|  |  |  | prop="optionDesc" | 
|---|
|  |  |  | width="200" | 
|---|
|  |  |  | :show-overflow-tooltip="true" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | 
|---|
|  |  |  | inputVisible: false, | 
|---|
|  |  |  | inputValue: "", | 
|---|
|  |  |  | currentInputId: "", | 
|---|
|  |  |  | scriptTypels: "", | 
|---|
|  |  |  | total: 0, | 
|---|
|  |  |  | drawer: false, | 
|---|
|  |  |  | loading: false, | 
|---|
|  |  |  | 
|---|
|  |  |  | pageNum: 1, | 
|---|
|  |  |  | pageSize: 10, | 
|---|
|  |  |  | isavailable: "", | 
|---|
|  |  |  | scriptType: "", | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | optionlist: [ | 
|---|
|  |  |  | { value: "scriptTopic", table: "scriptTopic" }, | 
|---|
|  |  |  | 
|---|
|  |  |  | inputVisibleillness: false, | 
|---|
|  |  |  | illnessVisible: false, //指标疾病弹框 | 
|---|
|  |  |  | deptOptions: [], | 
|---|
|  |  |  | qyoptions: [], | 
|---|
|  |  |  | optionsillness: [], | 
|---|
|  |  |  | illnesslistapi: [], | 
|---|
|  |  |  | illnesslist: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | { label: "分数", value: "1" }, | 
|---|
|  |  |  | { label: "ABC等级", value: "2" }, | 
|---|
|  |  |  | { label: "优良等级", value: "3" }, | 
|---|
|  |  |  | { label: "无", value: "4" }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | optionstag: [], | 
|---|
|  |  |  | valuetype: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | this.usable = store.getters.usable; | 
|---|
|  |  |  | this.valuetype = store.getters.askvaluetype; | 
|---|
|  |  |  | this.required = store.getters.required; | 
|---|
|  |  |  | this.qyoptions = store.getters.askvaluetype; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | 
|---|
|  |  |  | this.dynamicTags = this.topicobj.svyLibScriptTagList.map( | 
|---|
|  |  |  | this.processElement | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | this.scriptTypels = this.topicobj.scriptType; | 
|---|
|  |  |  | this.variablelist = JSON.parse(this.topicobj.otherdata) | 
|---|
|  |  |  | ? JSON.parse(this.topicobj.otherdata) | 
|---|
|  |  |  | : this.variablelist; | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.queryParams.scriptType = this.topicobj.scriptType; | 
|---|
|  |  |  | if (this.topicobj.scriptType) { | 
|---|
|  |  |  | this.queryParams.scriptType = this.topicobj.scriptType; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.queryParams.suitWay = 1; | 
|---|
|  |  |  | gettargetInfo(this.queryParams).then((res) => { | 
|---|
|  |  |  | this.targetList = res.rows; | 
|---|
|  |  |  | this.total = res.total; | 
|---|
|  |  |  | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | console.log(score, "错误分值"); | 
|---|
|  |  |  | this.$message({ | 
|---|
|  |  |  | message: | 
|---|
|  |  |  | "选项分值必须在0到" + this.topicobj.score + "分之间", | 
|---|
|  |  |  | message: "选项分值必须在0到" + this.topicobj.score + "分之间", | 
|---|
|  |  |  | type: "warning", | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | 
|---|
|  |  |  | this.compileissue(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 判断指标 | 
|---|
|  |  |  | changefn(item) { | 
|---|
|  |  |  | console.log(item); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if ( | 
|---|
|  |  |  | this.topicobj.targetname || | 
|---|
|  |  |  | this.topicobj.svyLibScriptOptions[0].optioncontent | 
|---|
|  |  |  | ) { | 
|---|
|  |  |  | this.$modal | 
|---|
|  |  |  | .confirm("更改类型后选项将清空是否继续?") | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | this.scriptTypels = this.topicobj.scriptType; | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch(() => { | 
|---|
|  |  |  | this.topicobj.scriptType = this.scriptTypels; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 删除选项 | 
|---|
|  |  |  | deletexuanx(row) { | 
|---|
|  |  |  | 
|---|
|  |  |  | selectlabel(row) { | 
|---|
|  |  |  | this.$modal | 
|---|
|  |  |  | .confirm( | 
|---|
|  |  |  | '是否选择标题为"' + row.targetname + '"的指标并替换填充问题信息?' | 
|---|
|  |  |  | '是否选择标题为"' + | 
|---|
|  |  |  | row.targetname + | 
|---|
|  |  |  | '"的指标并替换填充问题及选项信息?' | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | .then(() => { | 
|---|
|  |  |  | console.log(row); | 
|---|
|  |  |  | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | this.gettargetInfo(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 便捷标签 | 
|---|
|  |  |  | tsgnameto(row) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 便捷标签插入填空 | 
|---|
|  |  |  | tsgnametos(row) { | 
|---|
|  |  |  | let inputValueArr = ""; | 
|---|
|  |  |  | let value = this.testuserList.length + 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | let el = document.querySelector("#" + this.currentInputId); | 
|---|
|  |  |  | //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) | 
|---|
|  |  |  | if (this.currentInputId == "scriptContent") { | 
|---|
|  |  |  | inputValueArr = this.topicobj.scriptContent.split(""); | 
|---|
|  |  |  | } else if (this.currentInputId == "nomatchtext") { | 
|---|
|  |  |  | inputValueArr = this.topicobj.nomatchtext.split(""); | 
|---|
|  |  |  | } else if (this.currentInputId == "sliencetext") { | 
|---|
|  |  |  | inputValueArr = this.topicobj.sliencetext.split(""); | 
|---|
|  |  |  | } else if (this.currentInputId == "noclearlytext") { | 
|---|
|  |  |  | inputValueArr = this.topicobj.noclearlytext.split(""); | 
|---|
|  |  |  | } else if (this.currentInputId == "submoduletext") { | 
|---|
|  |  |  | inputValueArr = this.topicobj.submoduletext.split(""); | 
|---|
|  |  |  | if (this.currentInputId == "targetdesc") { | 
|---|
|  |  |  | inputValueArr = this.indexform.targetdesc.split(""); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | // 拿到选中文字的长度(后续可以用来替换选中的文字) | 
|---|
|  |  |  | let selectLength = el.selectionEnd - el.selectionStart; | 
|---|
|  |  |  | // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串) | 
|---|
|  |  |  | inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`); | 
|---|
|  |  |  | inputValueArr.splice( | 
|---|
|  |  |  | el.selectionStart, | 
|---|
|  |  |  | selectLength, | 
|---|
|  |  |  | "__" + value + "__" | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | this.testuserList.push({ | 
|---|
|  |  |  | orderno: value, | 
|---|
|  |  |  | optiondesc: "", | 
|---|
|  |  |  | isoperation: 1, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | // 把数组重新转换为字符串并赋值 | 
|---|
|  |  |  | inputValueArr = inputValueArr.join(""); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | console.log(inputValueArr); | 
|---|
|  |  |  | if (this.currentInputId == "scriptContent") { | 
|---|
|  |  |  | this.topicobj.scriptContent = inputValueArr; | 
|---|
|  |  |  | } else if (this.currentInputId == "nomatchtext") { | 
|---|
|  |  |  | this.topicobj.nomatchtext = inputValueArr; | 
|---|
|  |  |  | } else if (this.currentInputId == "sliencetext") { | 
|---|
|  |  |  | this.topicobj.sliencetext = inputValueArr; | 
|---|
|  |  |  | } else if (this.currentInputId == "noclearlytext") { | 
|---|
|  |  |  | this.topicobj.noclearlytext = inputValueArr; | 
|---|
|  |  |  | } else if (this.currentInputId == "submoduletext") { | 
|---|
|  |  |  | this.topicobj.submoduletext = inputValueArr; | 
|---|
|  |  |  | if (this.currentInputId == "targetdesc") { | 
|---|
|  |  |  | this.indexform.targetdesc = inputValueArr; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | margin: 15px 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .topicxq { | 
|---|
|  |  |  | width: 68%; | 
|---|
|  |  |  | width: 72%; | 
|---|
|  |  |  | background-color: #e2f5fc; | 
|---|
|  |  |  | border-radius: 4px; | 
|---|
|  |  |  | margin-top: 15px; | 
|---|
|  |  |  | margin-left: 10%; | 
|---|
|  |  |  | padding-left: 10px; | 
|---|
|  |  |  | padding-left: 20px; | 
|---|
|  |  |  | padding-top: 15px; | 
|---|
|  |  |  | border: 1px solid #dcdfe6; | 
|---|
|  |  |  | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
|---|
|  |  |  | 
|---|
|  |  |  | .tsgname:hover { | 
|---|
|  |  |  | background: #3366f5; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .tsgnames { | 
|---|
|  |  |  | width: 90px; | 
|---|
|  |  |  | margin-right: 10px; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | height: 40px; | 
|---|
|  |  |  | line-height: 40px; | 
|---|
|  |  |  | background: #66c18c; | 
|---|
|  |  |  | color: #ffff; | 
|---|
|  |  |  | font-size: 18px; | 
|---|
|  |  |  | border-radius: 5px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .tsgnames:hover { | 
|---|
|  |  |  | background: #20894d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .preview-left { | 
|---|
|  |  |  | margin: 20px; | 
|---|
|  |  |  | //   margin: 20px; | 
|---|