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