From ca2d35abcaab8bbc170b26a4a08aa3641ac10431 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期一, 25 三月 2024 11:10:49 +0800
Subject: [PATCH] 指标完成
---
src/views/knowledge/questionbank/particulars/index.vue | 406 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 303 insertions(+), 103 deletions(-)
diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index e05bd41..93ed503 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -6,12 +6,34 @@
<div class="headline">
棰樼洰璁剧疆璇︽儏
<span style="margin-left: 30px"
- ><el-button type="primary" @click="Submittopicobj"
+ ><el-button type="primary" @click="compileissue"
>淇濆瓨</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-form-item label="棰樼洰鏍囬">
@@ -23,7 +45,7 @@
<el-col :span="6"
><el-form-item label="鏄惁鍙敤">
<el-select
- v-model="topicobj.ishide"
+ v-model="topicobj.isavailable"
size="medium"
filterable
placeholder="璇烽�夋嫨鍒嗙被"
@@ -41,7 +63,7 @@
<el-col :span="8"
><el-form-item label="璇█(缂�)">
<el-select
- v-model="topicobj.languageh"
+ v-model="topicobj.language"
size="medium"
filterable
placeholder="璇烽�夋嫨鍒嗙被"
@@ -59,13 +81,23 @@
</el-row>
<el-row :gutter="10">
<el-col :span="6"
- ><el-form-item label="鏄惁蹇呯瓟">
- <el-radio-group v-model="topicobj.ismandatory">
- <el-radio label="1">鏄�</el-radio>
- <el-radio label="2">鍚�</el-radio>
- </el-radio-group>
- </el-form-item></el-col
- >
+ ><el-form-item label="鏄惁蹇呭~">
+ <el-select
+ v-model="topicobj.ismandatory"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
+ >
+ <el-option
+ class="topicobjaa"
+ v-for="item in required"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
<el-col :span="6"
><el-form-item label="棰樼洰绫诲瀷">
<el-select
@@ -85,9 +117,9 @@
</el-select> </el-form-item
></el-col>
<el-col :span="8"
- ><el-form-item label="閫傜敤鏂瑰紡(缂�)">
+ ><el-form-item label="閫傜敤鏂瑰紡">
<el-select
- v-model="topicobj.languageh"
+ v-model="topicobj.suitway"
size="medium"
filterable
placeholder="璇烽�夋嫨鍒嗙被"
@@ -102,11 +134,13 @@
</el-option> </el-select></el-form-item
></el-col>
</el-row>
- <el-form-item label="棰樼洰鍐呭(缂�)">
+ <el-form-item label="棰樼洰鍐呭">
<el-input
style="width: 40vw"
type="textarea"
- v-model="topicobj.topic"
+ id="topicContent"
+ v-model="topicobj.topicContent"
+ @focus="handleInput('topicContent')"
placeholder="璇疯緭鍏ユ爣棰�"
></el-input>
</el-form-item>
@@ -115,14 +149,14 @@
<el-form-item label="鏍囩" prop="desc">
<div class="xinz-inf">
<el-tag
- :key="tag.tagname"
+ :key="tag"
type="success"
v-for="tag in dynamicTags"
closable
:disable-transitions="false"
@close="handleClosetag(tag)"
>
- {{ tag.tagname }}
+ {{ tag }}
</el-tag>
<el-select
v-model="inputValue"
@@ -197,6 +231,54 @@
</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-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 class="headline">
@@ -210,14 +292,18 @@
></span
>
</div>
- <div class="topicxq" v-for="item in optionlist">
+ <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-form-item label="閫夐」">
<el-input
type="text"
- placeholder="璇疯緭鍏�"
- v-model="item.optionid"
+ placeholder="璇疯緭鍏ラ�夐」"
+ v-model="item.optioncontent"
show-word-limit
>
</el-input> </el-form-item
@@ -232,28 +318,6 @@
>
</el-input> </el-form-item
></el-col>
- </el-row>
- <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 label="涓嬮璺宠浆">
- <el-input
- type="text"
- placeholder="璇疯緭鍏ラ鍙�"
- v-model="item.jump"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
<el-col :span="2">
<el-button
type="danger"
@@ -263,6 +327,7 @@
></el-button>
</el-col>
</el-row>
+
<el-row :gutter="10">
<el-form-item label="閫変腑鎻愮ず">
<el-input
@@ -280,10 +345,10 @@
</el-card>
</div>
<el-drawer
- title="娣诲姞棰樼洰"
+ title="娣诲姞閫夐」"
:visible.sync="drawer"
custom-class="demo-drawer"
- width="50%"
+ width="66%"
>
<div class="preview-left">
<el-form
@@ -295,37 +360,20 @@
>
<el-form-item label="鏍囬" prop="userName">
<el-input
- v-model="queryParams.userName"
+ v-model="queryParams.targetname"
placeholder="璇疯緭鍏�"
clearable
style="width: 200px"
- @keyup.enter.native="handleQuery"
+ @keyup.enter.native="gettargetInfo"
/>
</el-form-item>
- <el-form-item label="涓婚" prop="sickness">
- <el-select
- v-model="queryParams.classify"
- size="medium"
- multiple
- filterable
- placeholder="璇烽�夋嫨鍒嗙被"
- >
- <el-option
- class="ruleFormaa"
- v-for="item in optionsclass"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
+
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="medium"
- @click="handleQuery"
+ @click="gettargetInfo"
>鎼滅储</el-button
>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
@@ -333,19 +381,19 @@
>
</el-form-item>
</el-form>
- <el-table v-loading="loading" :data="userList">
+ <el-table v-loading="loading" :data="targetList">
<el-table-column
label="鏍囬"
align="center"
- key="userid"
- prop="userid"
+ key="targetname"
+ prop="targetname"
width="100"
/>
<el-table-column
label="闂鍐呭"
align="center"
- key="userName"
- prop="userName"
+ key="targetdesc"
+ prop="targetdesc"
width="200"
:show-overflow-tooltip="true"
/>
@@ -367,6 +415,13 @@
</template>
</el-table-column>
</el-table>
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="gettargetInfo"
+ />
</div>
</el-drawer>
</div>
@@ -376,14 +431,13 @@
import { listtag } from "@/api/system/label";
import store from "@/store";
import {
- getissueclassify,
- delissueclassify,
- addissueclassify,
+ gettargetInfo,
getissuelist,
issueinfo,
compileissue,
delissueinfo,
Followupinfo,
+ getissueclassify,
deltargetillness,
addtargetillness,
getillnesslist,
@@ -394,27 +448,29 @@
export default {
data() {
return {
- topicobj: {},
+ topicobj: {
+ svyLibTopicoptions: [],
+ },
inputVisible: false,
inputValue: "",
+ currentInputId: "",
+ total: 0,
drawer: false,
loading: false,
id: [],
- userList: [
- {
- userid: "1",
- userName: "鎸囨爣",
- },
- {
- userid: "2",
- userName: "浜屽彿闂嵎",
- },
- ],
+ targetList: [],
dynamicTags: [],
+ optionsclass: [],
+ variablelist: [
+ { variatename: "濮撳悕", variate: "${name}", default: 1 },
+ { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+ { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+ ],
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
pageSize: 10,
+ isavailable: "",
},
optionlist: [
{ value: "topic", table: "topic" },
@@ -422,6 +478,7 @@
{ value: "topic", table: "topic" },
],
inputValueillness: "",
+ required: [],
themelist: [],
languagelist: [],
courtyardlist: [],
@@ -433,7 +490,7 @@
optionsillness: [],
illnesslistapi: [],
illnesslist: [],
-
+ classifylist: [],
optionstag: [],
xjxsoptions: [],
usable: [],
@@ -444,23 +501,47 @@
created() {
this.gettabList();
this.getissueinfo();
+ this.gettargetInfo();
this.mode = store.getters.mode;
this.languagelist = store.getters.languagelist;
this.usable = store.getters.usable;
this.xjxsoptions = store.getters.xjxsoptions;
+ this.required = store.getters.required;
},
methods: {
- Submittopicobj() {},
+ // 鍏叡鏂规硶---------------
getIndexInArray(arr, obj) {
return arr.indexOf(obj);
},
-
+ // 閫掑綊鎵佸钩鍖�
+ flattenArray(arr) {
+ let result = [];
+ arr.forEach((item) => {
+ result.push(item);
+ if (item.svyLibTopicCategoryList) {
+ console.log(2);
+ result = result.concat(
+ this.flattenArray(item.svyLibTopicCategoryList)
+ );
+ delete item.svyLibTopicCategoryList;
+ }
+ });
+ return result;
+ },
+ // -----------------------------
// 鑾峰彇鏁版嵁
getissueinfo() {
this.id = this.$route.query.id;
- issueinfo(this.id).then((res) => {
- this.topicobj = res.data;
+ if (!this.id) {
+ return;
+ }
+ getissuelist({ topicid: this.id }).then((res) => {
+ this.topicobj = res.rows[0];
+ this.dynamicTags = this.topicobj.tag.split(",");
+ this.variablelist = JSON.parse(this.topicobj.otherdata)
+ ? JSON.parse(this.topicobj.otherdata)
+ : this.variablelist;
});
getillnesslist({
pageNum: 1,
@@ -471,13 +552,33 @@
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) => {
+ this.targetList = res.rows;
+ this.total = res.total;
+ });
},
// 鏂板鎴栦慨鏀硅鎯�
compileissue() {
+ this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map(
+ (item) => {
+ if (item.isoperation != 1 && item.isoperation != 3) {
+ item.isoperation = 2;
+ }
+ return item;
+ }
+ );
+ this.topicobj.otherdata = JSON.stringify(this.variablelist);
+ this.topicobj.tag = this.dynamicTags.join(",");
if (this.id) {
- this.topicobj.isoperation = 1;
+ this.topicobj.isoperation = 2;
compileissue(this.topicobj).then((res) => {
- if (res.code == 1) {
+ if (res.code == 200) {
this.$message({
message: "淇敼鎴愬姛",
type: "success",
@@ -491,9 +592,9 @@
}
});
} else {
- this.topicobj.isoperation = 2;
+ this.topicobj.isoperation = 1;
compileissue(this.topicobj).then((res) => {
- if (res.code == 1) {
+ if (res.code == 200) {
this.$message({
message: "鏂板鎴愬姛",
type: "success",
@@ -507,18 +608,41 @@
}
});
}
+ this.illnesslist.forEach((item, index) => {
+ if (!item.id) {
+ addtargetillness(item).then((res) => {});
+ }
+ });
+ if (this.illnesslistapi.length) {
+ deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+ }
},
// 鍒犻櫎閫夐」
deletexuanx(row) {
- const index = this.getIndexInArray(this.optionlist, row);
- this.optionlist.splice(index, 1);
+ const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row);
+ if (this.topicobj.svyLibTopicoptions[index].topicid) {
+ this.topicobj.svyLibTopicoptions[index].isoperation = 3;
+ } else {
+ this.topicobj.svyLibTopicoptions.splice(index, 1);
+ }
},
// 鏂板閫夐」
addoption() {
- this.optionlist.push({ value: "topic", table: "topic" });
+ this.topicobj.svyLibTopicoptions.push({
+ score: "",
+ isoperation: 1,
+ });
},
// 閫夋嫨鎸囨爣
- selectlabel(row) {},
+ selectlabel(row) {
+ const labellist = row.targetoptionList;
+ labellist.forEach((item) => {
+ this.topicobj.svyLibTopicoptions.push({
+ optioncontent: item.targetvalue,
+ isoperation: 1,
+ });
+ });
+ },
// 鏍囩-----------------
gettabList() {
@@ -535,9 +659,7 @@
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.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
},
handleInputConfirm() {
let tagvalue = {};
@@ -558,8 +680,8 @@
isoperation: 1,
};
}
- // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
- this.dynamicTags.push(tagvalue);
+ // this.dynamicTags.push(tagvalue);
+ this.dynamicTags.push(tagvalue.tagname);
});
}
this.inputVisible = false;
@@ -635,9 +757,72 @@
this.illnessVisible = false;
this.$modal.msgSuccess("缂栬緫鎴愬姛");
},
- // 鏌ヨ棰樺簱
- handleQuery() {},
resetQuery() {},
+ // 渚挎嵎鏍囩
+ tsgnameto(row) {
+ let inputValueArr = "";
+ let el = document.querySelector("#" + this.currentInputId);
+ //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
+ if (this.currentInputId == "topicContent") {
+ inputValueArr = this.topicobj.topicContent.split("");
+ console.log(123);
+ } else if (this.currentInputId == "nomatchtext") {
+ inputValueArr = this.topicobj.nomatchtext.split("");
+ } else if (this.currentInputId == "sliencetext") {
+ inputValueArr = this.topicobj.sliencetext.split("");
+ } else if (this.currentInputId == "noclearlytext") {
+ inputValueArr = this.topicobj.noclearlytext.split("");
+ } else if (this.currentInputId == "submoduletext") {
+ inputValueArr = this.topicobj.submoduletext.split("");
+ } else {
+ return;
+ }
+ //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣�
+ // inputValueArr = this.inputValue.split("");
+ // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
+ let selectLength = el.selectionEnd - el.selectionStart;
+ // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
+ inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
+ // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
+ inputValueArr = inputValueArr.join("");
+ console.log(inputValueArr);
+ if (this.currentInputId == "topicContent") {
+ this.topicobj.topicContent = inputValueArr;
+ } else if (this.currentInputId == "nomatchtext") {
+ this.topicobj.nomatchtext = inputValueArr;
+ } else if (this.currentInputId == "sliencetext") {
+ this.topicobj.sliencetext = inputValueArr;
+ } else if (this.currentInputId == "noclearlytext") {
+ this.topicobj.noclearlytext = inputValueArr;
+ } else if (this.currentInputId == "submoduletext") {
+ this.topicobj.submoduletext = inputValueArr;
+ } else {
+ return;
+ }
+ },
+
+ // 鏂板鍙橀噺
+ addvariable() {
+ this.variablelist.push({
+ variatename: "",
+ variate: "",
+ });
+ },
+ // 鍒犻櫎鍙橀噺
+ delvariable(item) {
+ const index = this.variablelist.indexOf(item);
+ if (index !== -1) {
+ this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
+ } else {
+ console.log("鏈壘鍒拌瀵硅薄");
+ }
+ },
+ // 杈撳叆鑾峰彇id
+ handleInput(id) {
+ this.currentInputId = id;
+ console.log("杈撳叆妗嗙殑鍊煎凡鏇存柊:", this.currentInputId);
+ // 鍦ㄨ繖閲屾墽琛屾洿鏂版暟鎹殑閫昏緫
+ },
},
};
</script>
@@ -691,6 +876,21 @@
}
}
}
+.tsgname {
+ width: 90px;
+ margin-right: 10px;
+ text-align: center;
+ cursor: pointer;
+ height: 40px;
+ line-height: 40px;
+ background: #7799fa;
+ color: #ffff;
+ font-size: 18px;
+ border-radius: 5px;
+}
+.tsgname:hover {
+ background: #3366f5;
+}
.preview-left {
margin: 20px;
// margin: 20px;
--
Gitblit v1.9.3