From d1367a2eafbc26cadf07abb3caa94a0d64d09cab Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 13 八月 2024 14:14:12 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionbank/particulars/index.vue | 334 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 238 insertions(+), 96 deletions(-) diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index 5b3670c..b6da7c2 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -91,7 +91,7 @@ </el-select> </el-form-item ></el-col> <el-col :span="8" - ><el-form-item label="璇█(缂�)"> + ><el-form-item label="璇█"> <el-select v-model="topicobj.language" size="medium" @@ -132,6 +132,7 @@ ><el-form-item label="棰樼洰绫诲瀷"> <el-select v-model="topicobj.scriptType" + @change="changefn" size="medium" filterable placeholder="璇烽�夋嫨鍒嗙被" @@ -149,11 +150,9 @@ <el-col :span="8" ><el-form-item label="閫傜敤鏂瑰紡"> <el-select - v-model="suitwaylist" - size="medium" - filterable - multiple - placeholder="璇烽�夋嫨鍒嗙被" + v-model="topicobj.suitway" + disabled + placeholder="璇烽�夋嫨" > <el-option class="topicobjaa" @@ -175,6 +174,50 @@ 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 && topicobj.svyLibScriptOptions.length + " + > + <el-card class="box-card" style="width: 200%"> + <div + v-for="item in topicobj.svyLibScriptOptions" + v-if="item.isoperation != 3" + 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" @@ -190,11 +233,15 @@ class="upload-demo" :action="uploadImgUrl" :headers="headers" - :accept="'image/*,video/*'" + accept=".jpg,.png,image/*" :on-success="handleChangetg" > <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + <div slot="tip" class="el-upload__tip"> + 鍙兘涓婁紶jpg/png绫诲瀷鏂囦欢 + </div> </el-upload> + <div style="margin: 20px"> <el-image style="width: 100px; height: 100px" @@ -250,63 +297,26 @@ </div> </el-form-item> </el-row> - <el-row> - <el-form-item label="閫傜敤鐤剧梾" prop="region"> - <div class="xinz-inf"> - <el-tag - :key="item.icd10name" - type="warning" - v-for="item in illnesslist" - closable - :disable-transitions="false" - @close="handleCloseillness(item)" - > - {{ item.icd10name }} - </el-tag> - <el-select - v-model="inputValueillness" - v-if="inputVisibleillness" - @change="illnessConfirm" - :remote-method="remoteMethod" - filterable - remote - allow-create - default-first-option - placeholder="璇烽�夋嫨/鏌ヨ" - :loading="loading" - > - <el-option - v-for="item in optionsillness" - :key="item.icdid" - :label="item.icdname" - :value="item.icdid" - > - </el-option> - </el-select> - <el-button - v-else - class="button-new-tag" - size="small" - @click="inputVisibleillness = true" - >+ 鏂板鐤剧梾</el-button - > - </div> - </el-form-item> - </el-row> + + <el-form-item label="閫変腑鎸囨爣锛�"> + <span style="margin-left: 30px" + ><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 - > - <span style="margin-left: 30px" - >閫変腑鎸囨爣锛歿{ topicobj.scriptTopic }}</span - > - <span style="margin-left: 30px" - ><el-button type="success" round @click="gettargetInfo" - >+閫夋嫨鎸囨爣</el-button ></span > </div> @@ -357,7 +367,8 @@ </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" @@ -366,7 +377,14 @@ ></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 @@ -385,7 +403,7 @@ class="upload-demo" :action="uploadImgUrl" :headers="headers" - :accept="'image/*,video/*'" + accept=".jpg,.png,image/*" :on-success="handleChange.bind(this, item)" > <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> @@ -419,7 +437,7 @@ :inline="true" label-width="98px" > - <el-form-item label="鏍囬" prop="userName"> + <el-form-item label="鎸囨爣鍚嶇О" prop="userName"> <el-input v-model="queryParams.targetname" placeholder="璇疯緭鍏�" @@ -427,6 +445,26 @@ style="width: 200px" @keyup.enter.native="gettargetInfo" /> + </el-form-item> + <el-form-item label="鎸囨爣璇存槑" prop="userName"> + <el-input + v-model="queryParams.targetdesc" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="gettargetInfo" + /> + </el-form-item> + <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> @@ -444,17 +482,53 @@ </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" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="璇█" + align="center" + key="language" + prop="language" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鏄惁鍙敤" + align="center" + 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" /> @@ -513,6 +587,7 @@ topicobj: { svyLibScriptOptions: [], svyLibScriptTagList: [], + suitway: "1", }, headers: { Authorization: "Bearer " + getToken(), @@ -521,6 +596,7 @@ inputVisible: false, inputValue: "", currentInputId: "", + scriptTypels: "", total: 0, drawer: false, loading: false, @@ -544,6 +620,7 @@ pageNum: 1, pageSize: 10, isavailable: "", + scriptType: "", }, optionlist: [ { value: "scriptTopic", table: "scriptTopic" }, @@ -560,6 +637,7 @@ inputVisibleillness: false, illnessVisible: false, //鎸囨爣鐤剧梾寮规 deptOptions: [], + qyoptions: [], optionsillness: [], illnesslistapi: [], illnesslist: [], @@ -568,6 +646,7 @@ { label: "鍒嗘暟", value: "1" }, { label: "ABC绛夌骇", value: "2" }, { label: "浼樿壇绛夌骇", value: "3" }, + { label: "鏃�", value: "4" }, ], optionstag: [], valuetype: [], @@ -585,6 +664,7 @@ this.usable = store.getters.usable; this.valuetype = store.getters.askvaluetype; this.required = store.getters.required; + this.qyoptions = store.getters.askvaluetype; }, methods: { @@ -627,7 +707,7 @@ this.dynamicTags = this.topicobj.svyLibScriptTagList.map( this.processElement ); - this.suitwaylist = this.topicobj.suitway.split(","); + this.scriptTypels = this.topicobj.scriptType; this.variablelist = JSON.parse(this.topicobj.otherdata) ? JSON.parse(this.topicobj.otherdata) : this.variablelist; @@ -643,7 +723,17 @@ }); }, gettargetInfo() { - this.queryParams.scriptType = this.topicobj.scriptType; + if (!this.topicobj.scriptType) { + this.$message({ + message: "璇峰厛閫夋嫨棰樼洰绫诲瀷", + type: "error", + }); + return; + } + 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; @@ -660,8 +750,11 @@ return item; } ); + this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions + .filter((item) => item.isoperation != 3) + .map((item) => item.optioncontent) + .join(", "); this.topicobj.otherdata = JSON.stringify(this.variablelist); - this.topicobj.suitway = this.suitwaylist.join(","); if (this.id) { this.topicobj.isoperation = 2; compileissue(this.topicobj).then((res) => { @@ -711,12 +804,12 @@ if (score.score) { console.log(Number(score.score), this.topicobj.score, "鍒嗗��"); if ( - Number(score.score) <= 0 || + Number(score.score) < 0 || Number(score.score) > Number(this.topicobj.score) ) { console.log(score, "閿欒鍒嗗��"); this.$message({ - message: "閫夐」鍒嗗�煎繀椤诲ぇ浜�0灏忎簬绛変簬" + this.topicobj.score + "鍒�", + message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�", type: "warning", }); return false; @@ -740,20 +833,42 @@ }, Saveproblem() { if (this.topicobj.scoretype == 1) { - console.log(321); this.Scorejudgment(); } else { 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; + this.topicobj.svyLibScriptOptions = []; + }) + .catch(() => { + this.topicobj.scriptType = this.scriptTypels; + }); + } + }, + // 鍒犻櫎閫夐」 deletexuanx(row) { const index = this.getIndexInArray( this.topicobj.svyLibScriptOptions, row ); + console.log(this.topicobj.svyLibScriptOptions); + if (this.topicobj.svyLibScriptOptions[index].id) { + console.log(2); + this.topicobj.svyLibScriptOptions[index].isoperation = 3; } else { this.topicobj.svyLibScriptOptions.splice(index, 1); @@ -771,14 +886,17 @@ selectlabel(row) { this.$modal .confirm( - '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂淇℃伅锛�' + '鏄惁閫夋嫨鏍囬涓�"' + + row.targetname + + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�' ) .then(() => { console.log(row); - console.log(this.topicobj); this.topicobj.scriptTopic = row.targetname; this.topicobj.valueType = row.valueType; this.topicobj.scriptContent = row.targetdesc; + this.topicobj.targetid = row.id; + this.topicobj.targetname = row.targetname; this.topicobj.isavailable = "0"; this.topicobj.language = "鏅�氳瘽"; this.topicobj.svyLibScriptOptions = []; @@ -910,22 +1028,25 @@ // this.illnessVisible = false; // this.$modal.msgSuccess("缂栬緫鎴愬姛"); // }, - resetQuery() {}, - // 渚挎嵎鏍囩 - tsgnameto(row) { + resetQuery() { + this.queryParams = { + pageNum: 1, + pageSize: 10, + }; + this.gettargetInfo(); + }, + + // 渚挎嵎鏍囩鎻掑叆濉┖ + tsgnametos(row) { let inputValueArr = ""; + let value = this.topicobj.svyLibScriptOptions.length + 1; + let el = document.querySelector("#" + this.currentInputId); //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛� if (this.currentInputId == "scriptContent") { + console.log(1); 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(""); + console.log(2); } else { return; } @@ -934,20 +1055,22 @@ // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級 let selectLength = el.selectionEnd - el.selectionStart; // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛� - inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`); + inputValueArr.splice( + el.selectionStart, + selectLength, + "__" + value + "__" + ); + this.topicobj.svyLibScriptOptions.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; } else { return; } @@ -1021,10 +1144,14 @@ handleChange(item, response, file, fileList) { console.log(response); if (response.code == 200) { + console.log(item); let index = this.topicobj.svyLibScriptOptions.findIndex( - (obj) => obj.id == item.id && obj.name == item.name + (obj) => obj.optioncontent == item.optioncontent ); + console.log(index); this.topicobj.svyLibScriptOptions[index].picturePath = response.url; + console.log(this.topicobj.svyLibScriptOptions[index]); + this.$forceUpdate(); } else { this.$message.error("鍥剧墖鎻掑叆澶辫触"); } @@ -1054,12 +1181,12 @@ 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), @@ -1105,6 +1232,21 @@ .tsgname:hover { background: #3366f5; } +.tsgnames { + width: 120px; + 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; -- Gitblit v1.9.3