From 76c30727c77065c808b1c0fb3146080e423e5fe6 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 27 六月 2024 09:45:30 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionbank/particulars/index.vue | 442 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 309 insertions(+), 133 deletions(-) diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index f7495b4..3a09165 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -6,43 +6,76 @@ <div class="headline"> 棰樼洰璁剧疆璇︽儏 <span style="margin-left: 30px" - ><el-button type="primary" @click="compileissue" - >淇濆瓨</el-button + ><el-button type="primary" @click="Saveproblem" + >淇� 瀛�</el-button + > </span + ><span style="margin-left: 30px" + ><el-button type="success" round @click="drawer = true" + >+閫夋嫨鎸囨爣</el-button ></span > </div> <div style="margin-left: 8%"> - <el-form-item label="闂鍒嗙被"> - <el-select - v-model="topicobj.categoryid" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option-group - v-for="group in classifylist" - :key="group.id" - :label="group.name" - > - <el-option - v-for="item in group.svyLibTopicCategoryList" - :key="item.id" - :label="item.name" - :value="item.id" - > - </el-option> - </el-option-group> - </el-select> - </el-form-item> <el-row :gutter="10"> - <el-col :span="6" + <el-col :span="8"> + <el-form-item label="闂鍒嗙被"> + <el-select + v-model="topicobj.categoryid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option-group + v-for="group in classifylist" + :key="group.id" + :label="group.name" + > + <el-option + v-for="item in group.svyLibScriptCategoryList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="璇勪环绫诲瀷"> + <el-select + v-model="topicobj.scoretype" + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + v-for="group in appraiselist" + :key="group.value" + :label="group.label" + :value="group.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8" v-if="topicobj.scoretype == 1"> + <el-form-item label="棰樼洰寰楀垎"> + <el-input + v-model="topicobj.score" + placeholder="璇疯緭鍏ュ垎鏁�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row :gutter="10"> + <el-col :span="8" ><el-form-item label="棰樼洰鏍囬"> <el-input v-model="topicobj.topic" placeholder="璇疯緭鍏ユ爣棰�" ></el-input> </el-form-item ></el-col> - <el-col :span="6" + <el-col :span="8" ><el-form-item label="鏄惁鍙敤"> <el-select v-model="topicobj.isavailable" @@ -80,7 +113,7 @@ ></el-col> </el-row> <el-row :gutter="10"> - <el-col :span="6" + <el-col :span="8" ><el-form-item label="鏄惁蹇呭~"> <el-select v-model="topicobj.ismandatory" @@ -98,17 +131,17 @@ </el-option> </el-select> </el-form-item ></el-col> - <el-col :span="6" + <el-col :span="8" ><el-form-item label="棰樼洰绫诲瀷"> <el-select - v-model="topicobj.topictype" + v-model="topicobj.scripttype" size="medium" filterable placeholder="璇烽�夋嫨鍒嗙被" > <el-option class="topicobjaa" - v-for="item in xjxsoptions" + v-for="item in valuetype" :key="item.value" :label="item.label" :value="item.value" @@ -119,9 +152,10 @@ <el-col :span="8" ><el-form-item label="閫傜敤鏂瑰紡"> <el-select - v-model="topicobj.suitway" + v-model="suitwaylist" size="medium" filterable + multiple placeholder="璇烽�夋嫨鍒嗙被" > <el-option @@ -138,10 +172,18 @@ <el-input style="width: 40vw" type="textarea" - id="topicContent" - v-model="topicobj.topicContent" - @focus="handleInput('topicContent')" - placeholder="璇疯緭鍏ユ爣棰�" + id="script" + v-model="topicobj.script" + @focus="handleInput('script')" + placeholder="璇疯緭鍏ラ鐩唴瀹�" + ></el-input> + </el-form-item> + <el-form-item label="棰樼洰璇存槑"> + <el-input + style="width: 40vw" + type="textarea" + v-model="topicobj.scriptContent" + placeholder="璇疯緭鍏ヨ鏄�" ></el-input> </el-form-item> @@ -231,7 +273,7 @@ </div> </el-form-item> </el-row> - <el-form-item label="閫氱煡鍙橀噺" prop="name"> + <!-- <el-form-item label="閫氱煡鍙橀噺" prop="name"> <div style="margin-bottom: 5px" v-for="item in variablelist"> <el-row> <el-col :span="5"> @@ -278,68 +320,86 @@ </div> </div> </el-col></el-row - > + > --> </div> - - <div class="headline"> - 閫夐」璁剧疆<span style="margin-left: 30px" - ><el-button type="primary" round @click="addoption" - >+鏂板</el-button - ></span - ><span style="margin-left: 30px" - ><el-button type="success" round @click="drawer = true" - >+閫夋嫨鎸囨爣</el-button - ></span + <div v-if="topicobj.valueType == 1"> + <div class="headline"> + 閫夐」璁剧疆<span style="margin-left: 30px" + ><el-button type="primary" round @click="addoption" + >+鏂板</el-button + ></span + > + </div> + <div + class="topicxq" + v-for="item in topicobj.svyLibScriptOptions" + v-if="item.isoperation != 3" > - </div> - <div - class="topicxq" - v-for="item in topicobj.svyLibTopicoptions" - v-if="item.isoperation != 3" - > - <el-row :gutter="10"> - <el-col :span="11" - ><el-form-item label="閫夐」"> - <el-input - type="text" - placeholder="璇疯緭鍏ラ�夐」" - v-model="item.optioncontent" - show-word-limit + <el-row :gutter="10"> + <el-col :span="11" + ><el-form-item label="閫夐」"> + <el-input + type="text" + placeholder="璇疯緭鍏ラ�夐」" + v-model="item.optioncontent" + show-word-limit + > + </el-input> </el-form-item + ></el-col> + <el-col :span="11"> + <el-form-item v-if="topicobj.scoretype == 1" label="鍒嗗��"> + <el-input + type="text" + placeholder="璇疯緭鍏ラ�夐」鍒嗗��" + v-model="item.score" + show-word-limit + > + </el-input> + </el-form-item> + <el-form-item + v-else-if="topicobj.scoretype == 2" + label="ABC绛夌骇" > - </el-input> </el-form-item - ></el-col> - <el-col :span="11" - ><el-form-item label="鍒嗗��"> - <el-input - type="text" - placeholder="璇疯緭鍏�" - v-model="item.score" - show-word-limit + <el-radio-group v-model="item.score"> + <el-radio label="A">A</el-radio> + <el-radio label="B">B</el-radio> + <el-radio label="C">C</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item + v-else-if="topicobj.scoretype == 3" + label="浼樿壇绛夌骇" > - </el-input> </el-form-item - ></el-col> - <el-col :span="2"> - <el-button - type="danger" - icon="el-icon-delete" - circle - @click="deletexuanx(item)" - ></el-button> - </el-col> - </el-row> + <el-radio-group v-model="item.score"> + <el-radio label="浼�">浼�</el-radio> + <el-radio label="鑹�">鑹�</el-radio> + <el-radio label="宸�">宸�</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="2"> + <el-button + type="danger" + icon="el-icon-delete" + circle + @click="deletexuanx(item)" + ></el-button> + </el-col> + </el-row> - <el-row :gutter="10"> - <el-form-item label="閫変腑鎻愮ず"> - <el-input - style="width: 40vw" - type="textarea" - autosize - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="item.prompt" - > - </el-input - ></el-form-item> - </el-row> + <el-row :gutter="10"> + <el-form-item label="閫変腑鎻愮ず"> + <el-input + style="width: 40vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="item.prompt" + > + </el-input + ></el-form-item> + </el-row> + </div> </div> </el-form> </el-card> @@ -348,7 +408,7 @@ title="娣诲姞閫夐」" :visible.sync="drawer" custom-class="demo-drawer" - width="66%" + size="50%" > <div class="preview-left"> <el-form @@ -409,7 +469,7 @@ type="text" @click="selectlabel(scope.row)" ><span class="button-textxg" - ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span + ><i class="el-icon-circle-plus-outline"></i>閫夋嫨</span ></el-button > </template> @@ -449,7 +509,7 @@ data() { return { topicobj: { - svyLibTopicoptions: [], + svyLibScriptOptions: [], }, inputVisible: false, inputValue: "", @@ -458,6 +518,7 @@ drawer: false, loading: false, id: [], + suitwaylist: [], targetList: [], dynamicTags: [], optionsclass: [], @@ -491,8 +552,13 @@ illnesslistapi: [], illnesslist: [], classifylist: [], + appraiselist: [ + { label: "鍒嗘暟", value: "1" }, + { label: "ABC绛夌骇", value: "2" }, + { label: "浼樿壇绛夌骇", value: "3" }, + ], optionstag: [], - xjxsoptions: [], + valuetype: [], usable: [], mode: [], //鏂瑰紡 }; @@ -505,7 +571,7 @@ this.mode = store.getters.mode; this.languagelist = store.getters.languagelist; this.usable = store.getters.usable; - this.xjxsoptions = store.getters.xjxsoptions; + this.valuetype = store.getters.askvaluetype; this.required = store.getters.required; }, @@ -533,12 +599,18 @@ // 鑾峰彇鏁版嵁 getissueinfo() { this.id = this.$route.query.id; + // 鍒嗙被 + getissueclassify({}).then((res) => { + this.classifylist = res.rows; + console.log(this.classifylist, "鍒嗙被"); + }); if (!this.id) { return; } - getissuelist({ topicid: this.id }).then((res) => { + getissuelist({ id: this.id }).then((res) => { this.topicobj = res.rows[0]; this.dynamicTags = this.topicobj.tag.split(","); + this.suitwaylist = this.topicobj.suitway.split(","); this.variablelist = JSON.parse(this.topicobj.otherdata) ? JSON.parse(this.topicobj.otherdata) : this.variablelist; @@ -552,10 +624,6 @@ getillness({ outid: this.id, type: 4 }).then((res) => { this.illnesslist = res.rows; }); - // 鍒嗙被 - getissueclassify({}).then((res) => { - this.classifylist = res.rows; - }); }, gettargetInfo() { gettargetInfo(this.queryParams).then((res) => { @@ -565,7 +633,7 @@ }, // 鏂板鎴栦慨鏀硅鎯� compileissue() { - this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map( + this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( (item) => { if (item.isoperation != 1 && item.isoperation != 3) { item.isoperation = 2; @@ -575,6 +643,7 @@ ); this.topicobj.otherdata = JSON.stringify(this.variablelist); this.topicobj.tag = this.dynamicTags.join(","); + this.topicobj.suitway = this.suitwaylist.join(","); if (this.id) { this.topicobj.isoperation = 2; compileissue(this.topicobj).then((res) => { @@ -617,31 +686,95 @@ deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); } }, + // 鍒ゆ柇鍒嗗�� + Scorejudgment() { + let scorearr = this.topicobj.svyLibScriptOptions; + let isValid = scorearr.every((score) => { + if (score.score) { + console.log(Number(score.score), this.topicobj.score, "鍒嗗��"); + if ( + Number(score.score) <= 0 || + Number(score.score) > Number(this.topicobj.score) + ) { + console.log(22); + this.$message({ + message: "閫夐」鍒嗗�煎繀椤诲ぇ浜�0灏忎簬绛変簬" + this.topicobj.score + "鍒�", + type: "warning", + }); + return false; + } + return true; + } else { + this.$message({ + message: "閫夐」鍒嗗�兼湭璁剧疆", + type: "warning", + }); + return false; + } + }); + + if (isValid) { + this.compileissue(); + // console.log("鍒颁繚瀛樹簡"); + } + }, + Saveproblem() { + if (this.topicobj.scoretype == 1) { + console.log(321); + this.Scorejudgment(); + } else { + this.compileissue(); + } + }, + // 鍒犻櫎鏍囩 + handleClose(tag) { + this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); + }, // 鍒犻櫎閫夐」 deletexuanx(row) { - const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row); - if (this.topicobj.svyLibTopicoptions[index].topicid) { - this.topicobj.svyLibTopicoptions[index].isoperation = 3; + const index = this.getIndexInArray( + this.topicobj.svyLibScriptOptions, + row + ); + if (this.topicobj.svyLibScriptOptions[index].id) { + this.topicobj.svyLibScriptOptions[index].isoperation = 3; } else { - this.topicobj.svyLibTopicoptions.splice(index, 1); + this.topicobj.svyLibScriptOptions.splice(index, 1); } }, // 鏂板閫夐」 addoption() { - this.topicobj.svyLibTopicoptions.push({ + console.log(this.topicobj, "obj"); + this.topicobj.svyLibScriptOptions.push({ score: "", isoperation: 1, }); }, // 閫夋嫨鎸囨爣 selectlabel(row) { - const labellist = row.targetoptionList; - labellist.forEach((item) => { - this.topicobj.svyLibTopicoptions.push({ - optioncontent: item.targetvalue, - isoperation: 1, - }); - }); + this.$modal + .confirm( + '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂淇℃伅锛�' + ) + .then(() => { + console.log(row); + console.log(this.topicobj); + this.topicobj.topic = row.targetname; + this.topicobj.valueType = row.valueType; + this.topicobj.scriptContent = row.targetdesc; + this.topicobj.isavailable = "0"; + this.topicobj.language = "鏅�氳瘽"; + this.topicobj.svyLibScriptOptions = []; + const labellist = row.targetoptionList; + labellist.forEach((item) => { + this.topicobj.svyLibScriptOptions.push({ + optioncontent: item.targetvalue, + isoperation: 1, + }); + }); + this.drawer = false; + }) + .catch(() => {}); }, // 鏍囩----------------- @@ -744,27 +877,27 @@ this.inputVisibleillness = false; this.inputValueillness = ""; }, - // 淇濆瓨 - 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("缂栬緫鎴愬姛"); - }, + // // 淇濆瓨 + // 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("缂栬緫鎴愬姛"); + // }, resetQuery() {}, // 渚挎嵎鏍囩 tsgnameto(row) { let inputValueArr = ""; let el = document.querySelector("#" + this.currentInputId); //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛� - if (this.currentInputId == "topicContent") { - inputValueArr = this.topicobj.topicContent.split(""); + if (this.currentInputId == "script") { + inputValueArr = this.topicobj.script.split(""); console.log(123); } else if (this.currentInputId == "nomatchtext") { inputValueArr = this.topicobj.nomatchtext.split(""); @@ -786,8 +919,8 @@ // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪�� inputValueArr = inputValueArr.join(""); console.log(inputValueArr); - if (this.currentInputId == "topicContent") { - this.topicobj.topicContent = inputValueArr; + if (this.currentInputId == "script") { + this.topicobj.script = inputValueArr; } else if (this.currentInputId == "nomatchtext") { this.topicobj.nomatchtext = inputValueArr; } else if (this.currentInputId == "sliencetext") { @@ -823,6 +956,49 @@ console.log("杈撳叆妗嗙殑鍊煎凡鏇存柊:", this.currentInputId); // 鍦ㄨ繖閲屾墽琛屾洿鏂版暟鎹殑閫昏緫 }, + // 娣峰悎璺嚎 + generateCombinations(arrays, currentIndex = 0, currentCombination = []) { + if (currentIndex === arrays.length) { + return [currentCombination]; + } + + const currentArray = arrays[currentIndex]; + const newCombinations = []; + + for (const item of currentArray) { + const newCombination = [...currentCombination, item]; + const combinations = this.generateCombinations( + arrays, + currentIndex + 1, + newCombination + ); + newCombinations.push(...combinations); + } + return newCombinations; + }, + // 鎵ц + test() { + const arrays = [ + ["2", "3", "4", "5"], + ["1", "2", "5", "6"], + ["3", "4", "5", "3"], + ["3", "2", "5", "7"], + ]; + + const newMixArray = this.generateCombinations(arrays); + console.log(newMixArray, "鍏ㄩ儴璺嚎"); + this.screen(newMixArray); + }, + // 鏁扮粍姹傚拰 + sumArray(arr) { + return arr.reduce((acc, curr) => acc + parseInt(curr), 0); + }, + // 绛涢�夐敊璇矾绾� + screen(data) { + const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21); + + console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�"); + }, }, }; </script> -- Gitblit v1.9.3