From a46f2000f85c91b0e118a0af1bc6022a16feadcb Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 04 七月 2024 17:15:57 +0800
Subject: [PATCH] 测试完成
---
src/views/knowledge/questionnaire/compilequer/index.vue | 437 ++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 327 insertions(+), 110 deletions(-)
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 880cbd3..bcfe6f8 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -39,28 +39,48 @@
label-width="100px"
class="demo-ruleForm"
>
- <el-form-item label="闂嵎鍒嗙被" prop="region">
- <el-select
- v-model="ruleForm.categoryid"
- size="medium"
- filterable
- placeholder="璇烽�夋嫨鍒嗙被"
- >
- <el-option-group
- v-for="group in optionsclass"
- :key="group.id"
- :label="group.name"
- >
- <el-option
- v-for="item in group.svyLibTitleCategoryList"
- :key="item.id"
- :label="item.name"
- :value="item.id"
+ <el-row :gutter="10">
+ <el-col :span="10">
+ <el-form-item label="闂嵎鍒嗙被" prop="region">
+ <el-select
+ v-model="ruleForm.categoryid"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
>
- </el-option>
- </el-option-group>
- </el-select>
- </el-form-item>
+ <el-option-group
+ v-for="group in optionsclass"
+ :key="group.id"
+ :label="group.name"
+ >
+ <el-option
+ v-for="item in group.svyLibTemplateCategoryList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="10">
+ <el-form-item label="璇勪环绫诲瀷">
+ <el-select
+ v-model="ruleForm.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-row>
<el-form-item label="闂嵎鏍囬" prop="name">
<div style="width: 30%">
<el-input v-model="ruleForm.svyname"></el-input>
@@ -267,37 +287,54 @@
<div v-if="Editprogress == 2">
<div class="leftvlue-jbxx">闂嵎棰樼洰璁剧疆</div>
<el-divider></el-divider>
- <div class="addtopic">
- <el-button
- type="primary"
- icon="el-icon-plus"
- round
- @click="getaddtopiclist"
- >娣诲姞棰樼洰</el-button
- >
+ <div style="display: flex; justify-content: space-between">
+ <div>
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ round
+ @click="getaddtopiclist"
+ >娣诲姞棰樼洰</el-button
+ >
+ </div>
+ <div style="display: flex">
+ <span
+ style="
+ width: 180px;
+ font-size: 20px;
+ font-weight: normal;
+ color: red;
+ "
+ >闂嵎鎬诲垎锛�</span
+ >
+ <el-input
+ v-model="ruleForm.scriptScore"
+ placeholder="璇疯緭鍏ュ垎鏁�"
+ ></el-input>
+ </div>
</div>
<div class="presentation">
<div class="presentation-left">
<el-card class="box-card" style="min-height: 688px">
- <el-table v-loading="loading" :data="ruleForm.svyLibTopics">
+ <el-table v-loading="loading" :data="ruleForm.svyLibScripts">
<el-table-column
label="搴忓彿"
align="center"
- key="guid"
- prop="guid"
+ key="sort"
+ prop="sort"
/>
<el-table-column
- label="棰樼洰"
+ label="棰樼洰鏍囬"
align="center"
key="topic"
prop="topic"
:show-overflow-tooltip="true"
/>
<el-table-column
- label="涓昏鍐呭"
+ label="棰樼洰鍐呭"
align="center"
- key="topicContent"
- prop="topicContent"
+ key="script"
+ prop="script"
:show-overflow-tooltip="true"
/>
@@ -393,29 +430,40 @@
<div class="headline">閫夐」璁剧疆</div>
<div
class="topicxq"
- v-for="item in topicobj.svyLibTopicoptions"
+ v-for="item in topicobj.svyLibTemplateTargetoptions"
>
<el-row :gutter="10">
- <el-col :span="11"
- ><el-form-item label="棰樺彿">
+ <el-col :span="11">
+ <el-form-item v-if="topicobj.scoretype == 1" label="鍒嗗��">
<el-input
type="text"
- placeholder="璇疯緭鍏�"
- v-model="item.topicid"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
- <el-col :span="11"
- ><el-form-item label="鍒嗗��">
- <el-input
- type="text"
- placeholder="璇疯緭鍏�"
+ placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
v-model="item.score"
show-word-limit
>
- </el-input> </el-form-item
- ></el-col>
+ </el-input>
+ </el-form-item>
+ <el-form-item
+ v-else-if="topicobj.scoretype == 2"
+ label="ABC绛夌骇"
+ >
+ <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-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-row>
<el-row :gutter="10">
<el-col :span="11"
@@ -433,19 +481,19 @@
<el-input
type="text"
placeholder="璇疯緭鍏ラ鍙�"
- v-model="item.jump"
+ v-model="item.nextQuestion"
show-word-limit
>
</el-input> </el-form-item
></el-col>
- <el-col :span="2">
+ <!-- <el-col :span="2">
<el-button
type="danger"
icon="el-icon-delete"
circle
@click="deletexuanx(item)"
></el-button>
- </el-col>
+ </el-col> -->
</el-row>
<el-row :gutter="10">
<el-form-item label="閫変腑鎻愮ず">
@@ -470,7 +518,9 @@
>
<el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
<el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
- <el-button @click="Departmenttreatment('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button>
+ <el-button @click="Departmenttreatment('ruleForm')"
+ >淇濆瓨棰樼洰鏁版嵁</el-button
+ >
</div>
<!-- 闂嵎棰勮 -->
<div v-if="Editprogress == 3">
@@ -531,7 +581,7 @@
title="娣诲姞棰樼洰"
:visible.sync="drawer"
custom-class="demo-drawer"
- width="50%"
+ size="50%"
>
<div class="preview-left">
<el-form
@@ -541,9 +591,9 @@
:inline="true"
label-width="98px"
>
- <el-form-item label="鏍囬" prop="userName">
+ <el-form-item label="闂鏍囬" prop="topic">
<el-input
- v-model="queryParams.userName"
+ v-model="queryParams.topic"
placeholder="璇疯緭鍏�"
clearable
style="width: 200px"
@@ -575,8 +625,8 @@
<el-table-column
label="闂鍐呭"
align="center"
- key="topicContent"
- prop="topicContent"
+ key="script"
+ prop="script"
width="200"
:show-overflow-tooltip="true"
/>
@@ -595,6 +645,13 @@
</template>
</el-table-column>
</el-table>
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getaddtopiclist"
+ />
</div>
</el-drawer>
</div>
@@ -640,13 +697,18 @@
topicobj: {},
// 鎬绘潯鏁�
total: 1,
- ruleForm: {},
+ ruleForm: { svyLibScripts: [], tempDetpRelevances: [] },
rules: {},
rulesa: {},
optionsclass: [], //鍒嗙被鍒楄〃
optionlist: [
{ value: "topic", table: "topic" },
{ value: "topic", table: "topic" },
+ ],
+ appraiselist: [
+ { label: "鍒嗘暟", value: "1" },
+ { label: "ABC绛夌骇", value: "2" },
+ { label: "浼樿壇绛夌骇", value: "3" },
],
fileList: [
@@ -694,27 +756,52 @@
illnesslist: [],
tempDetpRelevanceslist: [],
optionstag: [],
- xjxsoptions: [],
- usable: [],
- required: [],
+ valuetype: [],
+ usable: [
+ { value: "0", label: "鍙敤" },
+ { value: "1", label: "鍋滅敤" },
+ ],
+ required: [
+ { value: "1", label: "蹇呭~" },
+ { value: "2", label: "涓嶅繀濉�" },
+ ],
mode: [], //鏂瑰紡
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
pageSize: 10,
},
+ arr: [
+ [
+ { id: 1, grade: "5" },
+ { id: 2, grade: "5" },
+ { id: 3, grade: "5" },
+ { id: 4, grade: "5" },
+ ],
+ [
+ { id: 1, grade: "5" },
+ { id: 3, grade: "5" },
+ { id: 4, grade: "5" },
+ ],
+ [
+ { id: 1, grade: "5" },
+ { id: 2, grade: "5" },
+ { id: 4, grade: "5" },
+ ],
+ ],
};
},
created() {
this.gettabList();
this.getissueinfo();
- this.mode = store.getters.mode;
+ this.mode = store.getters.Askmode;
this.languagelist = store.getters.languagelist;
this.usable = store.getters.usable;
this.required = store.getters.required;
- this.xjxsoptions = store.getters.xjxsoptions;
+ this.valuetype = store.getters.valuetype;
this.courtyardlist = store.getters.courtyardlist;
+ this.test();
},
methods: {
@@ -727,11 +814,11 @@
let result = [];
arr.forEach((item) => {
result.push(item);
- if (item.svyLibTitleCategoryList) {
+ if (item.svyLibTemplateCategoryList) {
result = result.concat(
- this.flattenArray(item.svyLibTitleCategoryList)
+ this.flattenArray(item.svyLibTemplateCategoryList)
);
- delete item.svyLibTitleCategoryList;
+ delete item.svyLibTemplateCategoryList;
}
});
return result;
@@ -740,21 +827,23 @@
// 鑾峰彇鏁版嵁
getissueinfo() {
this.id = this.$route.query.id;
- getQtemplatelist({ svyid: this.id }).then((res) => {
- this.ruleForm = res.rows[0];
- this.dynamicTags = this.ruleForm.labelInfo.split(",");
- this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
- this.ruleForm.suitway = this.ruleForm.suitway.split(",");
- console.log(this.tempDetpRelevanceslist);
- });
+ if (this.id) {
+ getQtemplatelist({ svyid: this.id }).then((res) => {
+ this.ruleForm = res.rows[0];
+ this.dynamicTags = this.ruleForm.labelInfo.split(",");
+ this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+ this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+ console.log(this.tempDetpRelevanceslist);
+ });
+ getillness({ outid: this.id, type: 5 }).then((res) => {
+ this.illnesslist = res.rows;
+ });
+ }
getillnesslist({
pageNum: 1,
pageSize: 100,
}).then((response) => {
this.optionsillness = response.rows;
- });
- getillness({ outid: this.id, type: 5 }).then((res) => {
- this.illnesslist = res.rows;
});
listDept(this.queryParams).then((response) => {
this.deptList = this.handleTree(response.data, "deptId");
@@ -766,19 +855,28 @@
});
},
submitForm(formName) {
+ this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��...");
+
this.ruleForm.labelInfo = this.dynamicTags.join(",");
this.ruleForm.suitway = this.ruleForm.suitway.join(",");
if (this.id) {
this.ruleForm.isoperation = 2;
- compileQtemplate(this.ruleForm).then((response) => {
+ compileQtemplate(this.ruleForm).then((res) => {
this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.confirmillness();
+ this.$modal.closeLoading();
+
this.$router.go(-1);
});
} else {
this.ruleForm.isoperation = 1;
- compileQtemplate(this.ruleForm).then((response) => {
+ compileQtemplate(this.ruleForm).then((res) => {
this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.confirmillness(res.data);
+
+ this.$modal.closeLoading();
+
this.$router.go(-1);
});
}
@@ -787,14 +885,13 @@
Departmenttreatment() {
this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
console.log(this.tempDetpRelevanceslist);
- this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.concat(
+ this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.concat(
this.delScriptVOList
);
- console.log(this.ruleForm.svyLibTopics, "this.ruleForm.svyLibTopics");
+ console.log(this.tempDetpRelevanceslist, "this.tempDetpRelevanceslist");
const result = this.tempDetpRelevanceslist.map(
(subArr) => subArr[subArr.length - 1]
);
- console.log(result, "result");
// id鏁扮粍鏌ユ暟缁勫璞�
result.forEach((item) => {
const condition = this.ruleForm.tempDetpRelevances.some(
@@ -808,7 +905,6 @@
});
}
});
- console.log(this.ruleForm.tempDetpRelevances);
// 鏁扮粍瀵硅薄鏌d鏁扮粍
this.ruleForm.tempDetpRelevances.forEach((item) => {
const condition = result.some((obj) => obj === item.deptId);
@@ -818,7 +914,6 @@
this.ruleForm.tempDetpRelevances[index].delFlag = 1;
}
});
- console.log(this.ruleForm.tempDetpRelevances);
setTimeout(() => {
this.submitForm();
}, 1000);
@@ -853,6 +948,7 @@
// 鑾峰彇棰樼洰鍒楄〃
getaddtopiclist() {
this.drawer = true;
+ this.queryParams.scoretype = this.ruleForm.scoreType;
getissuelist(this.queryParams).then((res) => {
this.loading = false;
this.userList = res.rows;
@@ -863,15 +959,17 @@
// 鏂板棰樼洰
addtopic(row) {
row.isoperation = 1;
- row.svyLibTopicoptions.forEach((item) => {
+ row.svyLibScriptOptions.forEach((item) => {
item.isoperation = 1;
});
- this.ruleForm.svyLibTopics.push(row);
+ row.svyLibTemplateTargetoptions = row.svyLibScriptOptions;
+ this.ruleForm.svyLibScripts.push(row);
+ this.$modal.msgSuccess("鏂板鎴愬姛");
},
handleDelete(row) {
- let index = this.ruleForm.svyLibTopics.indexOf(row);
- this.ruleForm.svyLibTopics.splice(index, 1);
- row.isoperation=3;
+ let index = this.ruleForm.svyLibScripts.indexOf(row);
+ this.ruleForm.svyLibScripts.splice(index, 1);
+ row.isoperation = 3;
this.delScriptVOList.push(row);
this.sortFn();
},
@@ -882,29 +980,22 @@
// });
},
syioption(row) {
- const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
- const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
- this.ruleForm.svyLibTopics.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+ const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
+ const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+ this.ruleForm.svyLibScripts.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
this.sortFn();
},
xiayioption(row) {
- const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
- const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
- this.ruleForm.svyLibTopics.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+ const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
+ const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+ this.ruleForm.svyLibScripts.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
this.sortFn();
},
sortFn() {
- this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.map(
- (item, index) => {
- return {
- guid: index + 1,
- svyid: item.svyid,
- topic: item.topic,
- topicContent: item.topicContent,
- };
- }
- );
- console.log(this.ruleForm.svyLibTopics);
+ this.ruleForm.svyLibScripts.forEach((item, index) => {
+ item.sort = index + 1;
+ });
+ console.log(this.ruleForm.svyLibScripts);
},
// 淇敼棰樼洰淇℃伅
@@ -1032,8 +1123,11 @@
this.inputValueillness = "";
},
// 淇濆瓨
- confirmillness() {
+ confirmillness(guid) {
this.illnesslist.forEach((item, index) => {
+ if (guid) {
+ item.outid = guid;
+ }
if (!item.id) {
addtargetillness(item).then((res) => {});
}
@@ -1052,6 +1146,129 @@
resetForm(formName) {
this.$refs[formName].resetFields();
},
+ // 闂嵎鍒嗘暟闄愬埗绠楁硶
+ // 娣峰悎璺嚎
+ 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 arraysa = [
+ {
+ id: 1,
+ grade: "5",
+ arr: [
+ { name: "涓嶉敊", skip: 2 },
+ { name: "涓�鑸�", skip: 2 },
+ { name: "杩樹笉閿�", skip: 2 },
+ { name: "寰堟", skip: 3 },
+ ],
+ },
+
+ {
+ id: 2,
+ grade: "5",
+ arr: [
+ { name: "浼樼", skip: 3 },
+ { name: "鑹ソ", skip: 3 },
+ { name: "涓�鑸�", skip: 3 },
+ { name: "杈冨樊", skip: 4 },
+ ],
+ },
+ {
+ id: 3,
+ grade: "5",
+ arr: [
+ { name: "鏄殑", skip: 4 },
+ { name: "涓嶆竻妤�", skip: 4 },
+ { name: "杩樺彲", skip: 4 },
+ { name: "涓�鑸�", skip: 4 },
+ ],
+ },
+ {
+ id: 4,
+ grade: "5",
+ arr: [
+ { name: "鐪熶笉閿�", skip: null },
+ { name: "杩樺彲浠�", skip: null },
+ { name: "涓�鑸埇", skip: null },
+ { name: "涓嶆竻妤�", skip: null },
+ ],
+ },
+ ];
+
+ // const newMixArray = this.generateCombinations(arrays);
+ const newMixArray = this.getExecutionOrders(arraysa);
+
+ console.log(newMixArray, "鍏ㄩ儴璺嚎");
+ this.screen(newMixArray);
+ },
+ getExecutionOrders(data) {
+ let orders = [];
+
+ const explore = (currentOrder, id) => {
+ console.log(currentOrder, "currentOrder", id);
+ const currentQuestion = data[currentOrder[currentOrder.length - 1]];
+ if (
+ currentQuestion.arr.some(
+ (option) =>
+ option.skip !== null && !currentOrder.includes(option.skip)
+ )
+ ) {
+ currentQuestion.arr.forEach((option) => {
+ if (option.skip !== null && !currentOrder.includes(option.skip)) {
+ explore([...currentOrder, option.skip]);
+ }
+ });
+ } else {
+ orders.push(
+ currentOrder.map((id) => ({
+ id: data[id].id,
+ grade: data[id].grade,
+ }))
+ );
+ }
+ };
+ console.log(data, "data");
+ data.forEach((entry) => {
+ explore([entry.id], entry.id);
+ });
+
+ return orders;
+ },
+
+ // 鏁扮粍姹傚拰
+ 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