From 41b1f5280255ac539e40d4cd794532ae1829ce17 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 01 八月 2024 18:25:36 +0800 Subject: [PATCH] 测试完成 --- src/views/knowledge/questionbank/particulars/index.vue | 392 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 286 insertions(+), 106 deletions(-) diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index f7e1da4..ac445b6 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -5,19 +5,16 @@ <el-form :inline="true" :model="topicobj" class="demo-form-inline"> <div class="headline"> 棰樼洰璁剧疆璇︽儏 - <span style="margin-left: 30px" - ><el-button type="primary" @click="compileissue" - >淇� 瀛�</el-button - ></span - ><span style="margin-left: 30px" - ><el-button type="success" round @click="drawer = true" - >+閫夋嫨鎸囨爣</el-button - ></span - > + <span style="float: right; margin-right: 30px" + ><el-button type="success" @click="Saveproblem">棰勮</el-button> + </span> + <span style="float: right; margin-right: 30px" + ><el-button type="primary" @click="Saveproblem">淇� 瀛�</el-button> + </span> </div> <div style="margin-left: 8%"> <el-row :gutter="10"> - <el-col :span="10"> + <el-col :span="8"> <el-form-item label="闂鍒嗙被"> <el-select v-model="topicobj.categoryid" @@ -41,7 +38,7 @@ </el-select> </el-form-item> </el-col> - <el-col :span="10"> + <el-col :span="8"> <el-form-item label="璇勪环绫诲瀷"> <el-select v-model="topicobj.scoretype" @@ -57,13 +54,21 @@ </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" + v-model="topicobj.scriptTopic" placeholder="璇疯緭鍏ユ爣棰�" ></el-input> </el-form-item ></el-col> @@ -86,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" @@ -126,7 +131,7 @@ <el-col :span="8" ><el-form-item label="棰樼洰绫诲瀷"> <el-select - v-model="topicobj.scripttype" + v-model="topicobj.scriptType" size="medium" filterable placeholder="璇烽�夋嫨鍒嗙被" @@ -144,11 +149,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" @@ -164,9 +167,9 @@ <el-input style="width: 40vw" type="textarea" - id="script" - v-model="topicobj.script" - @focus="handleInput('script')" + id="scriptContent" + v-model="topicobj.scriptContent" + @focus="handleInput('scriptContent')" placeholder="璇疯緭鍏ラ鐩唴瀹�" ></el-input> </el-form-item> @@ -174,23 +177,49 @@ <el-input style="width: 40vw" type="textarea" - v-model="topicobj.scriptContent" + v-model="topicobj.scriptDesc" placeholder="璇疯緭鍏ヨ鏄�" ></el-input> + </el-form-item> + + <el-form-item label="棰樺共鏂囦欢" prop="sickness"> + <div style="width: 40vw"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + 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" + :src="topicobj.picturePath" + :preview-src-list="[...topicobj.picturePath]" + > + </el-image> + </div> + </div> </el-form-item> <el-row> <el-form-item label="鏍囩" prop="desc"> <div class="xinz-inf"> <el-tag - :key="tag" + :key="tag.tagname" type="success" v-for="tag in dynamicTags" closable :disable-transitions="false" @close="handleClosetag(tag)" > - {{ tag }} + {{ tag.tagname }} </el-tag> <el-select v-model="inputValue" @@ -198,6 +227,7 @@ @change="handleInputConfirm" filterable remote + allow-create reserve-keyword default-first-option :remote-method="remoteMethodtag" @@ -222,7 +252,7 @@ </div> </el-form-item> </el-row> - <el-row> + <!-- <el-row> <el-form-item label="閫傜敤鐤剧梾" prop="region"> <div class="xinz-inf"> <el-tag @@ -264,57 +294,22 @@ > </div> </el-form-item> - </el-row> - <!-- <el-form-item label="閫氱煡鍙橀噺" prop="name"> - <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-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> - <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> - <div v-if="topicobj.valueType == 1"> + + <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4"> <div class="headline"> 閫夐」璁剧疆<span style="margin-left: 30px" ><el-button type="primary" round @click="addoption" @@ -369,7 +364,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" @@ -378,7 +374,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 @@ -391,13 +394,34 @@ </el-input ></el-form-item> </el-row> + <el-form-item label="閫夐」鏂囦欢" prop="sickness"> + <div style="width: 40vw"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + accept=".jpg,.png,image/*" + :on-success="handleChange.bind(this, item)" + > + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + </el-upload> + <div style="margin: 20px"> + <el-image + style="width: 100px; height: 100px" + :src="item.picturePath" + :preview-src-list="[...item.picturePath]" + > + </el-image> + </div> + </div> + </el-form-item> </div> </div> </el-form> </el-card> </div> <el-drawer - title="娣诲姞閫夐」" + title="閫夋嫨鎸囨爣" :visible.sync="drawer" custom-class="demo-drawer" size="50%" @@ -410,9 +434,27 @@ :inline="true" label-width="98px" > - <el-form-item label="鏍囬" prop="userName"> + <el-form-item label="鎸囨爣鍚嶇О" prop="userName"> <el-input v-model="queryParams.targetname" + placeholder="璇疯緭鍏�" + clearable + 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="userName"> + <el-input + v-model="queryParams.tagName" placeholder="璇疯緭鍏�" clearable style="width: 200px" @@ -435,17 +477,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" /> @@ -496,13 +574,20 @@ illnesslistget, getillness, } from "@/api/AiCentre/index"; +import { getToken } from "@/utils/auth"; export default { data() { return { topicobj: { svyLibScriptOptions: [], + svyLibScriptTagList: [], + suitway: "1", }, + headers: { + Authorization: "Bearer " + getToken(), + }, + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", inputVisible: false, inputValue: "", currentInputId: "", @@ -519,6 +604,11 @@ { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, ], + url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg", + srcList: [ + "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", + "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg", + ], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -526,9 +616,9 @@ isavailable: "", }, optionlist: [ - { value: "topic", table: "topic" }, - { value: "topic", table: "topic" }, - { value: "topic", table: "topic" }, + { value: "scriptTopic", table: "scriptTopic" }, + { value: "scriptTopic", table: "scriptTopic" }, + { value: "scriptTopic", table: "scriptTopic" }, ], inputValueillness: "", required: [], @@ -548,6 +638,7 @@ { label: "鍒嗘暟", value: "1" }, { label: "ABC绛夌骇", value: "2" }, { label: "浼樿壇绛夌骇", value: "3" }, + { label: "鏃�", value: "4" }, ], optionstag: [], valuetype: [], @@ -559,8 +650,7 @@ created() { this.gettabList(); this.getissueinfo(); - this.test(); - this.gettargetInfo(); + // this.gettargetInfo(); this.mode = store.getters.mode; this.languagelist = store.getters.languagelist; this.usable = store.getters.usable; @@ -572,6 +662,9 @@ // 鍏叡鏂规硶--------------- getIndexInArray(arr, obj) { return arr.indexOf(obj); + }, + processElement(element) { + return { ...element, isoperation: 1 }; }, // 閫掑綊鎵佸钩鍖� flattenArray(arr) { @@ -602,8 +695,9 @@ } getissuelist({ id: this.id }).then((res) => { this.topicobj = res.rows[0]; - this.dynamicTags = this.topicobj.tag.split(","); - this.suitwaylist = this.topicobj.suitway.split(","); + this.dynamicTags = this.topicobj.svyLibScriptTagList.map( + this.processElement + ); this.variablelist = JSON.parse(this.topicobj.otherdata) ? JSON.parse(this.topicobj.otherdata) : this.variablelist; @@ -619,14 +713,22 @@ }); }, gettargetInfo() { + if (!this.topicobj.scriptType) { + this.$message({ + message: "璇峰厛閫夋嫨棰樼洰绫诲瀷", + type: "error", + }); + return; + } + this.queryParams.scriptType = this.topicobj.scriptType; gettargetInfo(this.queryParams).then((res) => { this.targetList = res.rows; this.total = res.total; + this.drawer = true; }); }, // 鏂板鎴栦慨鏀硅鎯� compileissue() { - console.log(11223); this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( (item) => { if (item.isoperation != 1 && item.isoperation != 3) { @@ -635,9 +737,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.tag = this.dynamicTags.join(","); - this.topicobj.suitway = this.suitwaylist.join(","); if (this.id) { this.topicobj.isoperation = 2; compileissue(this.topicobj).then((res) => { @@ -680,6 +784,48 @@ 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(score, "閿欒鍒嗗��"); + this.$message({ + message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�", + type: "warning", + }); + return false; + } + return true; + } else if (this.topicobj.scriptType == 3) { + return true; + } else { + this.$message({ + message: "閫夐」鍒嗗�兼湭璁剧疆", + type: "warning", + }); + return false; + } + }); + + if (isValid) { + this.compileissue(); + // console.log("鍒颁繚瀛樹簡"); + } + }, + Saveproblem() { + if (this.topicobj.scoretype == 1) { + this.Scorejudgment(); + } else { + this.compileissue(); + } + }, + // 鍒犻櫎閫夐」 deletexuanx(row) { const index = this.getIndexInArray( @@ -704,14 +850,17 @@ selectlabel(row) { this.$modal .confirm( - '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂淇℃伅锛�' + '鏄惁閫夋嫨鏍囬涓�"' + + row.targetname + + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�' ) .then(() => { console.log(row); - console.log(this.topicobj); - this.topicobj.topic = row.targetname; + 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 = []; @@ -735,14 +884,16 @@ tagcategoryid: "0", }; listtag(tagqueryParams).then((response) => { - console.log(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); this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); + this.topicobj.svyLibScriptTagList[lindex].delFlag = 1; }, handleInputConfirm() { let tagvalue = {}; @@ -764,7 +915,8 @@ }; } // this.dynamicTags.push(tagvalue); - this.dynamicTags.push(tagvalue.tagname); + this.topicobj.svyLibScriptTagList.push(tagvalue); + this.dynamicTags.push(tagvalue); }); } this.inputVisible = false; @@ -840,15 +992,20 @@ // this.illnessVisible = false; // this.$modal.msgSuccess("缂栬緫鎴愬姛"); // }, - resetQuery() {}, + resetQuery() { + this.queryParams = { + pageNum: 1, + pageSize: 10, + }; + this.gettargetInfo(); + }, // 渚挎嵎鏍囩 tsgnameto(row) { let inputValueArr = ""; let el = document.querySelector("#" + this.currentInputId); //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛� - if (this.currentInputId == "script") { - inputValueArr = this.topicobj.script.split(""); - console.log(123); + if (this.currentInputId == "scriptContent") { + inputValueArr = this.topicobj.scriptContent.split(""); } else if (this.currentInputId == "nomatchtext") { inputValueArr = this.topicobj.nomatchtext.split(""); } else if (this.currentInputId == "sliencetext") { @@ -869,8 +1026,8 @@ // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪�� inputValueArr = inputValueArr.join(""); console.log(inputValueArr); - if (this.currentInputId == "script") { - this.topicobj.script = inputValueArr; + if (this.currentInputId == "scriptContent") { + this.topicobj.scriptContent = inputValueArr; } else if (this.currentInputId == "nomatchtext") { this.topicobj.nomatchtext = inputValueArr; } else if (this.currentInputId == "sliencetext") { @@ -946,8 +1103,31 @@ // 绛涢�夐敊璇矾绾� screen(data) { const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21); - console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�"); + }, + // 閫夐」鏂囦欢涓婁紶 + handleChange(item, response, file, fileList) { + console.log(response); + if (response.code == 200) { + console.log(item); + let index = this.topicobj.svyLibScriptOptions.findIndex( + (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("鍥剧墖鎻掑叆澶辫触"); + } + }, + // 棰樺共鏂囦欢涓婁紶 + handleChangetg(response, file, fileList) { + if (response.code == 200) { + this.topicobj.picturePath = response.url; + } else { + this.$message.error("鍥剧墖鎻掑叆澶辫触"); + } }, }, }; @@ -966,12 +1146,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), @@ -1025,7 +1205,7 @@ border: 1px solid #dcdfe6; -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); - .topic-dev { + .scriptTopic-dev { margin-bottom: 25px; font-size: 20px !important; .dev-text { -- Gitblit v1.9.3