From e8c62bd430b9697d3f954125b7ec9f61f18347a2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 20 十月 2025 11:19:34 +0800
Subject: [PATCH] 测试完成
---
src/views/knowledge/questionnaire/compilequer/index.vue | 244 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 174 insertions(+), 70 deletions(-)
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 6e47417..fa849d3 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -261,9 +261,9 @@
>
<el-option
class="ruleFormaa"
- v-for="item in belongDepts"
- :key="item.deptCode"
- :label="item.deptName"
+ v-for="item in flatArray"
+ :key="item.id"
+ :label="item.label"
:value="item.deptCode"
>
</el-option>
@@ -284,10 +284,10 @@
>
<el-option
class="ruleFormaa"
- v-for="item in belongWards"
- :key="item.districtCode"
- :label="item.districtName"
- :value="item.districtCode"
+ v-for="item in flatArray"
+ :key="item.id"
+ :label="item.label"
+ :value="item.deptCode"
>
</el-option>
</el-select> </el-form-item
@@ -310,7 +310,7 @@
>涓嬩竴姝�</el-button
>
<el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
- <el-button @click="Departmenttreatment('ruleForm')"
+ <el-button @click="toExamine('ruleForm')"
>淇濆瓨闂嵎鍩虹淇℃伅</el-button
>
</el-form-item>
@@ -435,7 +435,6 @@
align="center"
key="nextScriptno"
prop="nextScriptno"
- :show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span>{{
@@ -544,12 +543,32 @@
<el-col :span="12">
<el-form-item
label="闂鍒嗗��"
- v-if="topicobj.scoretype == 1"
+ v-if="ruleForm.scoreType == 1"
>
<el-input
v-model="topicobj.score"
placeholder="璇疯緭鍏ラ鍙�"
></el-input>
+ </el-form-item>
+
+ <el-form-item prop="valueType">
+ <template #label>
+ 缁撴灉绫诲瀷
+ <el-tooltip
+ class="item"
+ effect="light"
+ content="鏈被鍨嬩负缁撴灉鏀堕泦绫诲瀷锛涢�夐」鐢ㄤ簬鎸囧悜鎬ч鐩鏄惁绛夛紱鏂囨湰閫傜敤澶嶆潅鎯呭喌锛涙暟鍊肩敤浜庢敹闆嗘暟鍊煎瀷鏁版嵁"
+ placement="top-start"
+ >
+ <i class="el-icon-warning-outline"></i>
+ </el-tooltip>
+ <!-- 鍦ㄦ爣绛惧悗鎻掑叆绾㈣壊鏄熷彿 -->
+ </template>
+ <el-radio-group v-model="topicobj.valueType">
+ <el-radio :label="1">閫夐」</el-radio>
+ <el-radio :label="2">鏂囨湰</el-radio>
+ <el-radio :label="3">鏁板��</el-radio>
+ </el-radio-group>
</el-form-item>
</el-col>
</el-row>
@@ -567,10 +586,10 @@
</el-form-item></el-col
>
<el-col :span="12"
- ><el-form-item label="鏄惁鍙敤">
- <el-radio-group v-model="topicobj.isenable">
+ ><el-form-item label="鏄惁闅愯棌">
+ <el-radio-group v-model="topicobj.ishide">
<el-radio
- v-for="(item, index) in usable"
+ v-for="(item, index) in hides"
:label="item.value"
>{{ item.label }}</el-radio
>
@@ -583,8 +602,8 @@
v-if="topicobj.scriptType == 1"
>
<el-radio-group v-model="topicobj.branchFlag">
- <el-radio :label="1">鏄�</el-radio>
- <el-radio :label="0">鍚�</el-radio>
+ <el-radio label="1">鏄�</el-radio>
+ <el-radio label="0">鍚�</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1">
@@ -606,7 +625,7 @@
v-for="item in topicobj.svyLibTemplateTargetoptions"
>
<el-row :gutter="5">
- <el-col :span="16"
+ <el-col :span="12"
><el-form-item label="閫夐」鍚嶇О">
<el-input
type="text"
@@ -616,9 +635,9 @@
>
</el-input> </el-form-item
></el-col>
- <el-col :span="8">
+ <el-col :span="12">
<el-form-item
- v-if="topicobj.scoretype == 1"
+ v-if="ruleForm.scoreType == 1"
label="閫夐」鍒嗗��"
>
<el-input
@@ -631,17 +650,17 @@
</el-input>
</el-form-item>
<el-form-item
- v-else-if="topicobj.scoretype == 2"
+ v-else-if="ruleForm.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 :label="1">A</el-radio>
+ <el-radio :label="2">B</el-radio>
+ <el-radio :label="3">C</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
- v-else-if="topicobj.scoretype == 3"
+ v-else-if="ruleForm.scoreType == 3"
label="浼樿壇绛夌骇"
>
<el-radio-group v-model="item.score">
@@ -657,6 +676,12 @@
<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-form-item label="鏄惁閫変腑鏀堕泦闄勫姞淇℃伅">
+ <el-radio-group v-model="item.appendflag">
+ <el-radio label="1">鏄�</el-radio>
+ <el-radio label="0">鍚�</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
@@ -692,7 +717,9 @@
<el-image
style="width: 100px; height: 100px"
:src="item.picturePath"
- :preview-src-list="[...item.picturePath]"
+ :preview-src-list="
+ item.picturePath ? [item.picturePath] : []
+ "
>
</el-image>
</div>
@@ -748,9 +775,7 @@
>
<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="toExamine('ruleForm')">淇濆瓨闂鏁版嵁</el-button>
</div>
<!-- 闂嵎棰勮 -->
<div v-if="Editprogress == 3">
@@ -982,7 +1007,7 @@
<el-col :span="12">
<el-form-item label="璇勪环绫诲瀷">
<el-select
- v-model="indexform.scoretype"
+ v-model="indexform.scoreType"
placeholder="璇烽�夋嫨鍒嗙被"
>
<el-option
@@ -1131,7 +1156,7 @@
></el-col>
<el-col :span="11">
<el-form-item
- v-if="indexform.scoretype == 1"
+ v-if="indexform.scoreType == 1"
label="鍒嗗��"
>
<el-input
@@ -1143,17 +1168,17 @@
</el-input>
</el-form-item>
<el-form-item
- v-else-if="indexform.scoretype == 2"
+ v-else-if="indexform.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 :label="1">A</el-radio>
+ <el-radio :label="2">B</el-radio>
+ <el-radio :label="3">C</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
- v-else-if="indexform.scoretype == 3"
+ v-else-if="indexform.scoreType == 3"
label="浼樿壇绛夌骇"
>
<el-radio-group v-model="item.score">
@@ -1166,7 +1191,7 @@
<el-col
:span="2"
- :offsset="indexform.scoretype == 4 ? 11 : 0"
+ :offsset="indexform.scoreType == 4 ? 11 : 0"
>
<el-button
type="danger"
@@ -1213,7 +1238,9 @@
<el-image
style="width: 100px; height: 100px"
:src="item.picturePath"
- :preview-src-list="[...item.picturePath]"
+ :preview-src-list="
+ item.picturePath ? [item.picturePath] : []
+ "
>
</el-image>
</div>
@@ -1263,6 +1290,7 @@
} from "@/api/AiCentre/index";
import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
import { getToken } from "@/utils/auth";
+import { deptTreeSelect } from "@/api/system/user";
export default {
name: "Questionnaireinfo",
@@ -1295,6 +1323,7 @@
svyTemplateLibScripts: [],
tempDetpRelevances: [],
svyLibTemplateTagList: [],
+ suitway: [],
scoreType: "4",
isenable: "0",
longTemp: "0",
@@ -1383,6 +1412,7 @@
illnessVisible: false, //鎸囨爣鐤剧梾寮规
Operateit: true,
deptOptions: [],
+ flatArray: [],
optionsillness: [],
delScriptVOList: [],
illnesslistapi: [],
@@ -1399,6 +1429,10 @@
usable: [
{ value: "0", label: "鍙敤" },
{ value: "1", label: "鍋滅敤" },
+ ],
+ hides: [
+ { value: 0, label: "姝e父" },
+ { value: 1, label: "闅愯棌" },
],
longtype: [
{ value: "0", label: "鏅�氫换鍔�" },
@@ -1446,6 +1480,7 @@
created() {
this.getissueinfo();
this.gettabList();
+ this.getDeptTree();
this.mode = store.getters.Askmode;
this.languagelist = store.getters.languagelist;
this.usable = store.getters.usable;
@@ -1537,21 +1572,49 @@
});
this.tempDetpRelevanceslist = [];
this.tempbelongWards = [];
-
- depthospgetsonlist(this.queryParamsdept).then((res) => {
- if (res.code == 200) {
- let arr = res.rows;
- arr.forEach((item) => {
- if (item.deptType == 1) {
- this.deptlist.push(item);
- this.tempDetpRelevanceslist.push(item.deptCode);
- } else if (item.deptType == 2) {
- this.hosplist.push(item);
- this.tempbelongWards.push(item.deptCode);
- }
- });
- }
+ if (this.queryParamsdept.tempid) {
+ depthospgetsonlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (item.deptType == 1) {
+ this.deptlist.push(item);
+ this.tempDetpRelevanceslist.push(item.deptCode);
+ } else if (item.deptType == 2) {
+ this.hosplist.push(item);
+ this.tempbelongWards.push(item.deptCode);
+ }
+ });
+ }
+ });
+ }
+ },
+ // 鑾峰彇绉戝鏍�
+ getDeptTree() {
+ // 绉戝鍒楄〃
+ deptTreeSelect().then((response) => {
+ this.deptOptions = response.data;
+ this.flatArray = this.flattenArray(response.data);
});
+ },
+ flattenArray(multiArray) {
+ let result = [];
+
+ // 閫掑綊鍑芥暟锛岀敤浜庡皢澶氱骇鏁扮粍杞崲涓轰竴缁存暟缁勶紝鍙寘鍚渶搴曞眰鐨勫厓绱�
+ function flatten(element) {
+ // 濡傛灉褰撳墠鍏冪礌鏈夊瓙鍏冪礌锛岀户缁�掑綊
+ if (element.children && element.children.length > 0) {
+ element.children.forEach((child) => flatten(child));
+ } else {
+ // 鍏嬮殕鍏冪礌浠ラ伩鍏嶄慨鏀瑰師濮嬫暟鎹�
+ let item = JSON.parse(JSON.stringify(element));
+ result.push(item); // 灏嗘渶搴曞眰鐨勫厓绱犳坊鍔犲埌缁撴灉鏁扮粍
+ }
+ }
+
+ // 浠庨《灞傚厓绱犲紑濮嬮�掑綊
+ multiArray.forEach((element) => flatten(element));
+ return result; // 杩斿洖鍙寘鍚渶搴曞眰鍏冪礌鐨勪竴缁存暟缁�
},
submitForm(formName) {
this.$modal.loading("姝e湪淇淇濆瓨鏁版嵁锛岃绋嶅��...");
@@ -1562,23 +1625,24 @@
this.ruleForm.categoryid = -1;
}
// 棰樼洰淇濆瓨澶勭悊
- // 鎻愪氦
- this.ruleForm.svyTemplateLibScripts.forEach((res) => {
+ // 鎻愪氦
+ this.ruleForm.svyTemplateLibScripts.forEach((res) => {
if (!res.isoperation) {
res.isoperation = 2;
}
- res.ivrLibaScriptTargetoptionList =
- res.svyLibTemplateTargetoptions.map((item) => {
+ res.ivrLibaScriptTargetoptionList = res.svyLibTemplateTargetoptions.map(
+ (item) => {
if (!item.isoperation) {
item.isoperation = 2;
item.templateID = this.ruleForm.id;
}
return item;
- });
+ }
+ );
});
- this.delScriptVOList.forEach((item)=>{
- this.ruleForm.svyTemplateLibScripts.push(item)
- })
+ this.delScriptVOList.forEach((item) => {
+ this.ruleForm.svyTemplateLibScripts.push(item);
+ });
if (this.id) {
this.ruleForm.isoperation = 2;
this.ruleForm.tempDetpRelevances = null;
@@ -1587,8 +1651,8 @@
this.confirmillness();
this.putbelongDepts();
this.$modal.closeLoading();
- // this.$router.go(-1);
- window.location.reload();
+ this.$router.go(-1);
+ // window.location.reload();
});
} else {
this.ruleForm.isoperation = 1;
@@ -1605,6 +1669,44 @@
});
}
},
+ // 棰樼洰鏍¢獙
+ toExamine() {
+ // 閬嶅巻棰樼洰闆嗗悎
+ for (let i = 0; i < this.ruleForm.svyTemplateLibScripts.length; i++) {
+ const question = this.ruleForm.svyTemplateLibScripts[i];
+
+ // 濡傛灉 scriptType 涓� 4锛屽垯璺宠繃褰撳墠棰樼洰
+ if (question.scriptType === 4) {
+ continue;
+ }
+ // 鑾峰彇褰撳墠棰樼洰鐨勯�夐」闆嗗悎
+ const options = question.svyLibTemplateTargetoptions;
+
+ // 鍒涘缓涓�涓� Set 鏉ュ瓨鍌ㄩ�夐」鍚嶇О锛岀敤浜庢娴嬮噸澶�
+ const optionNames = new Set();
+
+ // 閬嶅巻閫夐」闆嗗悎
+ for (let j = 0; j < options.length; j++) {
+ const option = options[j];
+ const optionContent = option.optioncontent;
+
+ // 濡傛灉閫夐」鍚嶇О宸茬粡瀛樺湪浜� Set 涓紝璇存槑閲嶅
+ if (optionNames.has(optionContent)) {
+ this.$message.error(
+ `棰樼洰 ${question.id} 鐨勯�夐」鍚嶇О "${optionContent}" 閲嶅`
+ );
+ return false; // 杩斿洖 false 琛ㄧず鏍¢獙澶辫触
+ }
+ // 灏嗛�夐」鍚嶇О娣诲姞鍒� Set 涓�
+ optionNames.add(optionContent);
+ }
+ }
+
+ // 濡傛灉鎵�鏈夐鐩兘鏍¢獙閫氳繃锛岃繑鍥� true
+ console.log("鎵�鏈夐鐩牎楠岄�氳繃锛岄�夐」鍚嶇О鏃犻噸澶�");
+ this.Departmenttreatment();
+ },
+
// 绉戝/闄㈠尯澶勭悊
Departmenttreatment() {
this.tempDetpRelevanceslist.forEach((item) => {
@@ -1695,7 +1797,7 @@
// 鑾峰彇闂鍒楄〃
getaddtopiclist() {
this.drawer = true;
- this.queryParams.scoretype = this.ruleForm.scoreType;
+ this.queryParams.scoreType = this.ruleForm.scoreType;
getissuelist(this.queryParams).then((res) => {
this.loading = false;
this.userList = res.rows;
@@ -1884,13 +1986,12 @@
},
// 淇濆瓨绉戝/鐥呭尯
putbelongDepts(id) {
- this.tempDetpRelevanceslistform.forEach(item=>{
- if (!item.tempid) item.tempid=id;
- })
-
- this.tempbelongWardsform.forEach(item=>{
- if (!item.tempid) item.tempid=id;
- })
+ this.tempDetpRelevanceslistform.forEach((item) => {
+ if (!item.tempid) item.tempid = id;
+ });
+ this.tempbelongWardsform.forEach((item) => {
+ if (!item.tempid) item.tempid = id;
+ });
if (this.tempDetpRelevanceslistform.length > 0) {
depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
if (res.code == 200) {
@@ -2316,7 +2417,10 @@
display: flex;
.presentation-left {
width: 45%;
- // height: 500px;
+ max-height: 80vh;
+ padding: 0 20px;
+ font-size: 18px;
+ overflow: auto;
.button-textxg {
color: #024df0;
}
@@ -2336,7 +2440,7 @@
}
.presentation-right {
width: 55%;
- max-height: 688px;
+ max-height: 80vh;
padding: 0 20px;
font-size: 18px;
overflow: auto;
--
Gitblit v1.9.3