From f93cb40b76468c6f1063081a3be16027d69b4832 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 04 一月 2024 09:46:01 +0800 Subject: [PATCH] 指标完成 --- src/api/AiCentre/index.js | 5 src/api/AiCentre/questionnaire.js | 57 src/api/AiCentre/Qtemplate.js | 57 src/api/AiCentre/publicity.js | 62 src/views/knowledge/questionnaire/compilequer/index.vue | 487 +++- src/views/knowledge/questionbank/index.vue | 654 +++--- src/views/knowledge/education/index.vue | 828 +++---- src/api/AiCentre/general.js | 106 + src/views/repositoryai/general/index.vue | 793 ++++++++ src/views/repositoryai/verbaltrick/particulars/index.vue | 12 src/views/knowledge/questionbank/particulars/index.vue | 753 +++++-- src/views/repositoryai/general/particulars/index.vue | 307 +++ src/store/getters.js | 176 + src/views/knowledge/questionnaire/index.vue | 889 ++++---- src/views/repositoryai/intention/index.vue | 16 src/api/smartor/ivrtarget.js | 8 src/views/knowledge/education/compilequer/index.vue | 451 ++- src/views/repositoryai/templateku/index.vue | 16 18 files changed, 3,803 insertions(+), 1,874 deletions(-) diff --git a/src/api/AiCentre/Qtemplate.js b/src/api/AiCentre/Qtemplate.js new file mode 100644 index 0000000..3ffe179 --- /dev/null +++ b/src/api/AiCentre/Qtemplate.js @@ -0,0 +1,57 @@ +import request from "@/utils/request"; + +// 鏌ヨ闂嵎妯$増鍒楄〃 +export function getQtemplatelist(data) { + return request({ + url: "/smartor/svytitle/selectSvyLibTitlelist", + method: "post", + data: data, + }); +} +// 闂嵎妯$増璇︽儏 +export function Qtemplateinfo(Id) { + return request({ + url: "/smartor/svytitle/" + Id, + method: "get", + }); +} +// 鍒犻櫎闂嵎妯$増 +export function delQtemplateinfo(Id) { + return request({ + url: "/smartor/svytitle/remove/" + Id, + method: "get", + }); + } +// 鏂板鎴栦慨鏀归棶鍗锋ā鐗堣鎯� +export function compileQtemplate(data) { + return request({ + url: "/smartor/svytitle/saveOrUpdateTitle", + method: "post", + data: data, + }); + } + + + // 鏂板闂嵎妯$増鍒嗙被 + export function addQtemplateclassify(data) { + return request({ + url: "/smartor/svyLibTitleCategory/addtree", + method: "post", + data: data, + }); + } + // 鍒犻櫎闂嵎妯$増鍒嗙被 +export function delQtemplateclassify(Id) { + return request({ + url: "/smartor/svyLibTitleCategory/remove/" + Id, + method: "get", + }); +} + // 鏌ヨ闂嵎妯$増鍒嗙被鏍� + export function getQtemplateclassify(data) { + return request({ + url: "/smartor/svyLibTitleCategory/selectIvrLibasvytitleList", + method: "post", + data: data, + }); + } \ No newline at end of file diff --git a/src/api/AiCentre/general.js b/src/api/AiCentre/general.js new file mode 100644 index 0000000..08cb9a4 --- /dev/null +++ b/src/api/AiCentre/general.js @@ -0,0 +1,106 @@ +import request from "@/utils/request"; + +// 鏌ヨ閫氱敤妯$増鍒楄〃 +export function getgenerallist(data) { + return request({ + url: "/smartor/extemplate/list", + method: "post", + data: data, + }); +} + +// 鍒犻櫎閫氱敤妯$増 +export function delgeneralinfo(Id) { + return request({ + url: "/smartor/extemplate/remove/" + Id, + method: "get", + }); + } + // 鏌ヨ閫氱敤妯$増璇︽儏鍒楄〃 + export function getgeneralinfo(Id) { + return request({ + url: "/smartor/extemplate/" + Id, + method: "get", + }); + } +// 鏂板妯$増 +export function addgeneral(data) { + return request({ + url: "/smartor/extemplate/add", + method: "post", + data: data, + }); + } +// 淇敼閫氱敤妯$増 + export function editgeneral(data) { + return request({ + url: "/smartor/extemplate/edit", + method: "post", + data: data, + }); + } + + + // 鏂板閫氱敤妯$増鍒嗙被鏍� + export function addgeneralclassify(data) { + return request({ + url: "/smartor/category/add", + method: "post", + data: data, + }); + } + // 鍒犻櫎閫氱敤妯$増鍒嗙被 +export function delgeneralclassify(Id) { + return request({ + url: "/smartor/category/remove/" + Id, + method: "get", + }); +} + // 鏌ヨ閫氱敤妯$増鍒嗙被鏍� + export function getgeneralclassify(data) { + return request({ + url: "/smartor/category/list", + method: "post", + data: data, + }); + } + // 鏌ヨ閫氱敤妯$増璇濇湳鍒楄〃 +export function getgeneravaluellist(data) { + return request({ + url: "/smartor/extemplatescript/list", + method: "post", + data: data, + }); + } + + // 鍒犻櫎閫氱敤妯$増璇濇湳 + export function delgeneravaluelinfo(Id) { + return request({ + url: "/smartor/extemplatescript/remove/" + Id, + method: "get", + }); + } + // 鏌ヨ閫氱敤妯$増璇濇湳璇︽儏 + export function getgeneravaluelinfo(Id) { + return request({ + url: "/smartor/extemplatescript/" + Id, + method: "get", + }); + } + // 鏂板妯$増璇濇湳 + export function addgeneravaluel(data) { + return request({ + url: "/smartor/extemplatescript/add", + method: "post", + data: data, + }); + } + // 淇敼閫氱敤妯$増璇濇湳 + export function editgeneravaluel(data) { + return request({ + url: "/smartor/extemplatescript/edit", + method: "post", + data: data, + }); + } + \ No newline at end of file diff --git a/src/api/AiCentre/index.js b/src/api/AiCentre/index.js index 1f9bae7..bb246c2 100644 --- a/src/api/AiCentre/index.js +++ b/src/api/AiCentre/index.js @@ -1,3 +1,8 @@ export * from './indicator' export * from './Problemspeaking' export * from './Followup' +export * from './general' +export * from './publicity' +export * from './Qtemplate' +export * from './questionnaire' + diff --git a/src/api/AiCentre/publicity.js b/src/api/AiCentre/publicity.js new file mode 100644 index 0000000..76c553c --- /dev/null +++ b/src/api/AiCentre/publicity.js @@ -0,0 +1,62 @@ +import request from "@/utils/request"; + +// 鏌ヨ瀹f暀妯$増鍒楄〃 +export function getlibrarylist(data) { + return request({ + url: "/smartor/library/list", + method: "post", + data: data, + }); +} + +// 鍒犻櫎瀹f暀妯$増 +export function dellibraryinfo(Id) { + return request({ + url: "/smartor/library/remove/" + Id, + method: "get", + }); + } + // 鏌ヨ瀹f暀妯$増璇︽儏鍒楄〃 + export function getlibraryinfo(data) { + return request({ + url: "/smartor/library/selectInfoByCondition", + method: "post", + data: data, + }); + } +// 鏂板鎴栦慨鏀瑰鏁欐ā鐗� +export function compilelibrary(data) { + return request({ + url: "/smartor/library/saveOrUpdateScript", + method: "post", + data: data, + }); + } + + + + // 鏂板瀹f暀妯$増鍒嗙被鏍� + export function addheLibraryAssort(data) { + return request({ + url: "/smartor/heLibraryAssort/addtree", + method: "post", + data: data, + }); + } + // 鍒犻櫎瀹f暀妯$増鍒嗙被 +export function delheLibraryAssort(Id) { + return request({ + url: "/smartor/heLibraryAssort/remove/" + Id, + method: "get", + }); +} + // 鏌ヨ瀹f暀妯$増鍒嗙被鏍� + export function getheLibraryAssort(data) { + return request({ + url: "/smartor/heLibraryAssort/selectHeLibraryAssortList", + method: "post", + data: data, + }); + } + + \ No newline at end of file diff --git a/src/api/AiCentre/questionnaire.js b/src/api/AiCentre/questionnaire.js new file mode 100644 index 0000000..ad2942d --- /dev/null +++ b/src/api/AiCentre/questionnaire.js @@ -0,0 +1,57 @@ +import request from "@/utils/request"; + +// 鏌ヨ闂嵎闂鍒楄〃 +export function getissuelist(data) { + return request({ + url: "/smartor/svytopic/list", + method: "post", + data: data, + }); +} +// 闂嵎闂璇︽儏 +export function issueinfo(Id) { + return request({ + url: "/smartor/svytopic/getInfo/" + Id, + method: "get", + }); +} +// 鍒犻櫎闂嵎闂 +export function delissueinfo(Id) { + return request({ + url: "/smartor/svytopic/remove/" + Id, + method: "get", + }); + } +// 鏂板鎴栦慨鏀归棶鍗烽棶棰樿鎯� +export function compileissue(data) { + return request({ + url: "/smartor/svytopic/saveOrUpdateTopic", + method: "post", + data: data, + }); + } + + + // 鏂板闂嵎闂鍒嗙被 + export function addissueclassify(data) { + return request({ + url: "/smartor/svyLibTopicCategory/addtree", + method: "post", + data: data, + }); + } + // 鍒犻櫎闂嵎闂鍒嗙被 +export function delissueclassify(Id) { + return request({ + url: "/smartor/svyLibTopicCategory/remove/" + Id, + method: "get", + }); +} + // 鏌ヨ闂嵎闂鍒嗙被鏍� + export function getissueclassify(data) { + return request({ + url: "/smartor/svyLibTopicCategory/selectIvrLibasvytitleList", + method: "post", + data: data, + }); + } \ No newline at end of file diff --git a/src/api/smartor/ivrtarget.js b/src/api/smartor/ivrtarget.js index 19cf14c..f93e8e8 100644 --- a/src/api/smartor/ivrtarget.js +++ b/src/api/smartor/ivrtarget.js @@ -10,9 +10,9 @@ } // 鏌ヨ鎸囨爣搴撹缁� -export function getIvrtarget(targetID) { +export function getIvrtarget(targetid) { return request({ - url: '/smartor/ivrtarget/' + targetID, + url: '/smartor/ivrtarget/' + targetid, method: 'get' }) } @@ -36,9 +36,9 @@ } // 鍒犻櫎鎸囨爣搴� -export function delIvrtarget(targetID) { +export function delIvrtarget(targetid) { return request({ - url: '/smartor/ivrtarget/remove/' + targetID, + url: '/smartor/ivrtarget/remove/' + targetid, method: 'get' }) } diff --git a/src/store/getters.js b/src/store/getters.js index ccdf439..7eaf251 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -72,7 +72,7 @@ // 鏄惁鍙敤 usable: (state) => [ { - value: '0', + value: "0", label: "鍙敤", raw: { cssClass: "", @@ -80,7 +80,7 @@ }, }, { - value: '1', + value: "1", label: "鍋滅敤", raw: { cssClass: "", @@ -91,7 +91,7 @@ // 浼樺厛鎵ц precedencetype: (state) => [ { - value: '0', + value: "0", label: "璇煶浼樺厛", raw: { cssClass: "", @@ -99,7 +99,7 @@ }, }, { - value: '1', + value: "1", label: "鏂囧瓧浼樺厛", raw: { cssClass: "", @@ -107,59 +107,131 @@ }, }, ], - // 閫傜敤闄㈠尯 - courtyardlist: (state) => [ - { - value: '1', - label: "涔嬫睙闄㈠尯", - raw: { - cssClass: "", - listClass: "", - }, + // 閫傜敤闄㈠尯 + courtyardlist: (state) => [ + { + value: "1", + label: "涔嬫睙闄㈠尯", + raw: { + cssClass: "", + listClass: "", }, - { - value: '2', - label: "搴嗘槬闄㈠尯", - raw: { - cssClass: "", - listClass: "", - }, + }, + { + value: "2", + label: "搴嗘槬闄㈠尯", + raw: { + cssClass: "", + listClass: "", }, - { - value: '3', - label: "浣欐澀闄㈠尯", - raw: { - cssClass: "", - listClass: "", - }, + }, + { + value: "3", + label: "浣欐澀闄㈠尯", + raw: { + cssClass: "", + listClass: "", }, - ], - // 璇█ - languagelist: (state) => [ - { - value: "鏅�氳瘽", - label: "鏅�氳瘽", - raw: { - cssClass: "", - listClass: "", }, - }, - { - value: "绮よ", - label: "绮よ", - raw: { - cssClass: "", - listClass: "", + ], + // 璇█ + languagelist: (state) => [ + { + value: "鏅�氳瘽", + label: "鏅�氳瘽", + raw: { + cssClass: "", + listClass: "", + }, }, - }, - { - value: "鑻辫", - label: "鑻辫", - raw: { - cssClass: "", - listClass: "", + { + value: "绮よ", + label: "绮よ", + raw: { + cssClass: "", + listClass: "", + }, }, - }, -],}; + { + value: "鑻辫", + label: "鑻辫", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], + // 瀹f暀鏂瑰紡 + editableTabs: (state) => [ + { + value: "鐭俊", + label: "1", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "閽夐拤", + label: "2", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "寰俊", + label: "3", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "鐢佃瘽", + label: "4", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "绾夸笅", + label: "5", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "鏅鸿兘璇煶", + label: "6", + raw: { + cssClass: "", + listClass: "", + }, + }, + ], + // 棰樼洰绫诲埆 + xjxsoptions:(state) => [ + { + value: "1", + label: "鍗曢��", + raw: { + cssClass: "", + listClass: "", + }, + }, + { + value: "2", + label: "澶氶��", + raw: { + cssClass: "", + listClass: "", + }, + }, + + ], +}; export default getters; diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue index b48ef43..8ec30df 100644 --- a/src/views/knowledge/education/compilequer/index.vue +++ b/src/views/knowledge/education/compilequer/index.vue @@ -13,9 +13,7 @@ <div class="leftvlue"> <!-- 鍩烘湰淇℃伅 --> <div v-if="Editprogress == 1"> - <div class="leftvlue-jbxx"> - 鍩烘湰淇℃伅<span>褰撳墠鐗堟湰:{{ currentVersion }}</span> - </div> + <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div> <el-form :model="ruleForm" :rules="rules" @@ -25,25 +23,29 @@ > <el-form-item label="瀹f暀鍒嗙被" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.groupID" size="medium" - multiple filterable placeholder="璇烽�夋嫨鍒嗙被" > <el-option class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in sortlist" + :key="item.id" + :label="item.assortname" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item label="瀹f暀鏍囬" prop="name"> + <el-form-item label="瀹f暀鏍囬" prop="extName"> <div style="width: 30%"> - <el-input v-model="ruleForm.name"></el-input> + <el-input v-model="ruleForm.extName"></el-input> + </div> + </el-form-item> + <el-form-item label="瀹f暀鎻忚堪" prop="extName"> + <div style="width: 30%"> + <el-input v-model="ruleForm.note"></el-input> </div> </el-form-item> <el-form-item label="閫氱煡鍙橀噺" prop="name"> @@ -89,29 +91,32 @@ <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="handleClose(tag)" + @close="handleClosetag(tag)" > - {{ tag }} + {{ tag.tagname }} </el-tag> <el-select v-model="inputValue" v-if="inputVisible" @change="handleInputConfirm" filterable - allow-create - default-first-option + remote + reserve-keyword + default-first-option + :remote-method="remoteMethodtag" + :loading="loading" placeholder="璇烽�夋嫨" > <el-option v-for="item in optionstag" - :key="item.tagname" - :label="item.tagname" - :value="item.tagname" + :key="item.tagid" + :label="item.tagname" + :value="item.tagname" > </el-option> </el-select> @@ -127,12 +132,12 @@ <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> - <el-input v-model="currentVersion"></el-input> </el-form-item + <el-input v-model="ruleForm.version"></el-input> </el-form-item ></el-col> <el-col :span="9"> <el-form-item label="鍙敤鐘舵��" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.isEnable" size="medium" multiple filterable @@ -140,7 +145,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in usable" :key="item.value" :label="item.label" :value="item.value" @@ -168,24 +173,47 @@ </el-select> </el-form-item> <el-form-item label="閫傜敤鐤剧梾" prop="region"> - <el-select - v-model="ruleForm.illness" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + <div class="xinz-infs"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" > - </el-option> - </el-select> + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValue" + v-if="illnessVisible" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="illnessshowInput" + >+ 鏂板鐤剧梾</el-button + > + </div> </el-form-item> - <el-form-item label="浣跨敤闄㈠尯" prop="region"> + <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select v-model="ruleForm.courtyard" size="medium" @@ -194,7 +222,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -225,9 +253,7 @@ >涓嬩竴姝�</el-button > <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> - <el-button type="info" @click="closeFm('ruleForm')" - >鍏抽棴</el-button - > + <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> </el-form-item> </el-form> </div> @@ -303,10 +329,23 @@ <script> import { quillEditor } from "vue-quill-editor"; +import { + getheLibraryAssort, + delheLibraryAssort, + addheLibraryAssort, + addtargetillness, + getlibrarylist, + dellibraryinfo, + compilelibrary, + getlibraryinfo, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; // import * as Quill from "quill"; import Quill from "quill"; import { listtag } from "@/api/system/label"; - +import store from "@/store"; // 杩欓噷寮曞叆淇敼杩囩殑video妯″潡骞舵敞鍐� import Video from "./video"; @@ -354,8 +393,9 @@ }, ], content: "", //鏈�缁堜繚瀛樼殑鍐呭 - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + dynamicTags: [], inputVisible: false, + illnessVisible: false, inputValue: "", // 瀵屾枃鏈� editorOption: { @@ -405,88 +445,31 @@ radioas: "", //濉┖棰樼瓟妗� // 鎬绘潯鏁� total: 1, - ruleForm: { - name: "", - shape: "", - classify: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "", - templatevalue: "", - data2: "", - }, + ruleForm: {}, rules: {}, - rulesa: { - name: [ - { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" }, - { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" }, - ], - region: [ - { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" }, - ], - date1: [ - { - type: "date", - required: true, - message: "璇烽�夋嫨鏃ユ湡", - trigger: "change", - }, - ], - date2: [ - { - type: "date", - required: true, - message: "璇烽�夋嫨鏃堕棿", - trigger: "change", - }, - ], - type: [ - { - type: "array", - required: true, - message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川", - trigger: "change", - }, - ], - resource: [ - { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" }, - ], - desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }], - }, - options: [ - { - value: "閫夐」1", - label: "鐤剧梾瀹f暀", - }, - { - value: "閫夐」2", - label: "鍏ラ櫌瀹f暀", - }, - { - value: "閫夐」3", - label: "鎵嬫湳瀹f暀", - }, - { - value: "閫夐」4", - label: "鎶ょ悊瀹f暀", - }, - ], - optionstag:[], + rulesa: {}, + mode: [], + editableTabs: [], + sortlist: [], + usable: [], + courtyardlist: [], + precedencetype: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + options: [], + optionstag: [], xjxsoptions: [ { - value: "閫夐」1", + value: "1", label: "鍥炬枃", }, { - value: "閫夐」2", + value: "2", label: "瑙嗛", }, { - value: "閫夐」3", + value: "3", label: "闊抽", }, ], @@ -498,25 +481,7 @@ }, ], addvalue: "娣诲姞棰樼洰", - // 棰樼洰琛ㄦ牸鏁版嵁 - userList: [ - { - userid: "1", - userName: "涓�鍙峰鏁�", - }, - { - userid: "2", - userName: "浜屽彿瀹f暀", - }, - { - userid: "3", - userName: "涓夊彿瀹f暀", - }, - { - userid: "4", - userName: "鍥涘彿瀹f暀", - }, - ], + variablelist: [ { variable: "paitent", @@ -527,17 +492,19 @@ queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, }; }, created() { this.gettabList(); + this.getList(); + this.illnessUpdate(); + this.mode = store.getters.mode; + this.editableTabs = store.getters.editableTabs; + this.usable = store.getters.usable; + this.precedencetype = store.getters.precedencetype; + this.courtyardlist = store.getters.courtyardlist; }, watch: { content(newVal, oldVal) { @@ -548,6 +515,28 @@ }, methods: { + getList() { + this.loading = true; + getlibraryinfo({ id: this.$route.query.id }).then((res) => { + this.ruleForm = res.data; + }); + getheLibraryAssort({}).then((res) => { + this.sortlist = res.rows; + console.log(res); + }); + }, + /** 鏌ヨ鏍囩鍒楄〃 */ + gettabList() { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((response) => { + console.log(response); + this.optionstag = response.rows; + }); + }, // 瀹屾垚 submitForm(formName) { this.rules = this.rulesa; @@ -572,48 +561,26 @@ this.Editprogress = this.Editprogress - 1; }, // 鍏抽棴 - closeFm(){ - this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - this.$router.go(-1) - }).catch(() => { + closeFm() { + this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.$router.go(-1); + }) + .catch(() => { this.$message({ - type: 'info', - message: '宸插彇娑�' - }); + type: "info", + message: "宸插彇娑�", + }); }); }, // 淇濆瓨棰樼洰淇℃伅 - Saveproblem(){}, + Saveproblem() {}, /** 鏌ヨ棰樼洰鍒楄〃 */ - getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); - // this.userList = response.data; - // this.total = response.total; - // this.loading = false; - console.log(this.userList); - }); - // const { rows } = await listUser(); - // console.log(rows); - // this.list = rows; - }, - /** 鏌ヨ鏍囩鍒楄〃 */ - gettabList() { - const tagqueryParams = { - pageNum: 1, - pageSize: 1000, - tagcategoryid: "0", - }; - listtag(tagqueryParams).then((response) => { - console.log(response); - this.optionstag = response.rows; - }); - }, + // 鏂板鍙橀噺 addvariable() { this.variablelist.push({ @@ -635,23 +602,135 @@ this.fileList = fileList.slice(-3); }, // 鏍囩----------------- - handleClose(tag) { + gettabList() { + const tagqueryParams = { + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + }; + listtag(tagqueryParams).then((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.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3; }, handleInputConfirm() { - let inputValue = this.inputValue; - if (inputValue) { - this.dynamicTags.push(inputValue); + let tagvalue = {}; + let tagname = this.inputValue; + if (tagname) { + listtag({ + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + tagname: tagname, + }).then((res) => { + if (res.rows[0]) { + tagvalue = res.rows[0]; + tagvalue.isoperation = 1; + } else { + tagvalue = { + tagname: tagname, + isoperation: 1, + }; + } + this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.dynamicTags.push(tagvalue); + }); } this.inputVisible = false; this.inputValue = ""; }, + remoteMethodtag(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { + this.optionstag = res.rows; + }); + }, 200); + } else { + this.optionstag = []; + } + }, showInput() { this.inputVisible = true; - // 鑷姩鑾峰彇鐒︾偣 - // this.$nextTick((_) => { - // this.$refs.saveTagInput.$refs.input.focus(); - // }); + }, + // 鐤剧梾----------------------- + illnessUpdate() { + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: this.$route.query.id, type: 6 }).then((res) => { + this.illnesslist = res.rows; + console.log(res); + }); + }, + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValue; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.indexid; + opeavalue.type = 6; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisible = false; + this.inputValue = ""; + }, + 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("缂栬緫鎴愬姛"); + }, + illnessshowInput() { + this.illnessVisible = true; }, // -------------------------- diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue index e8aacfe..013025c 100644 --- a/src/views/knowledge/education/index.vue +++ b/src/views/knowledge/education/index.vue @@ -13,84 +13,34 @@ class="input-with-select" size="medium" > - <el-button - @click="sidecolumnss" - slot="append" - icon="el-icon-search" - ></el-button> </el-input> </div> - <div class="bottom-fl"> - <el-menu - default-active="3" - class="el-menu-vertical-demo" - @open="handleOpen" - @close="handleClose" - @select="handleSelect" + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" > - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-location"></i> - <span>鍒嗙被涓�</span> - </template> - - <el-menu-item index="1-1">閫夐」1</el-menu-item> - <el-menu-item index="1-2">閫夐」2</el-menu-item> - <el-menu-item index="1-3">閫夐」3</el-menu-item> - <el-menu-item index="1-4">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="2"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>鍒嗙被浜�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - <el-menu-item index="2-2">閫夐」2</el-menu-item> - <el-menu-item index="2-3">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="3"> - <template slot="title"> - <i class="el-icon-document"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - <el-submenu index="4"> - <template slot="title"> - <i class="el-icon-setting"></i> - <span>鍒嗙被鍥�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - </el-menu> - <!-- <el-tabs tab-position="right"> - <el-tab-pane :label="`鍏ㄩ儴 (${numberlb})`"></el-tab-pane> - <el-tab-pane - class="tab-paness" - :key="item.title" - v-for="(item, index) in editableTabs" - > - <span slot="label"> - {{ - item.title + " (" + item.number + ")" - }}   <el-popover - placement="top-start" - width="100" - trigger="hover" + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" > - <div style="text-align: center"> - <el-button type="text" @click="popoveramend(item)" - >淇敼</el-button - ><el-button type="text" @click="deletefenlei(item)" - ><span style="color: rgb(173, 55, 55)" - >鍒犻櫎</span - ></el-button - > - </div> - <i slot="reference" class="el-icon-share"></i> </el-popover - ></span> - </el-tab-pane> - </el-tabs> --> + </el-button> + </span> + </span> + </el-tree> </div> </div> <!-- 鍙充晶鏁版嵁 --> @@ -161,10 +111,10 @@ placeholder="璇烽�夋嫨" > <el-option - v-for="(item, index) in editableTabsky" - :key="index++" - :label="item.title" - :value="index++" + v-for="item in qyoptions" + :key="item.value" + :label="item.value" + :value="item.label" > </el-option> </el-select> @@ -215,11 +165,7 @@ <!-- <el-col :span="1.5"> </el-col> --> </el-row> - <!-- <right-toolbar - :showSearch.sync="showSearch" - @queryTable="getList" - :columns="columns" - ></right-toolbar> --> + <el-table v-loading="loading" :data="userList" @@ -227,28 +173,23 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" align="center" /> - <el-table-column - label="搴忓彿" - align="center" - key="userid" - prop="userid" - /> + <el-table-column label="搴忓彿" align="center" key="id" prop="id" /> <el-table-column label="鏍囬" align="center" - key="userName" - prop="userName" + key="extName" + prop="extName" :show-overflow-tooltip="true" /> <el-table-column label="鐗堟湰" align="center" - key="nickName" - prop="nickName" + key="version" + prop="version" :show-overflow-tooltip="true" /> <el-table-column - label="涓昏鍐呭" + label="涓昏鍐呭(缂�)" align="center" key="userNamevalue" prop="userNamevalue" @@ -256,20 +197,33 @@ /> <el-table-column - label="閫傜敤鐤剧梾" + label="閫傜敤鐤剧梾(缂�)" align="center" key="aphonenumber" prop="aphonenumber" width="120" - /><el-table-column - label="閫傜敤绉戝" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="illnessUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-date"></i>璇︽儏</span + ></el-button + > + </template> + </el-table-column> + <el-table-column + label="閫傜敤绉戝(缂�)" align="center" key="bphonenumber" prop="bphonenumber" width="120" /> <el-table-column - label="鏍囩" + label="鏍囩(缂�)" align="center" key="tagList" prop="tagList" @@ -281,31 +235,31 @@ </template> </el-table-column> <el-table-column - label="瀹f暀鏂瑰紡" + label="瀹f暀鏂瑰紡(缂�)" align="center" key="cphonenumber" prop="cphonenumber" width="120" /> <el-table-column - label="璧勬枡褰㈠紡" + label="璧勬枡褰㈠紡(缂�)" align="center" - key="cphonenumber" - prop="cphonenumber" + key="cphonenumbers" + prop="cphonenumbers" width="120" /> <el-table-column label="鏈�杩戜慨鏀�" align="center" - key="cphonenumber" - prop="cphonenumber" + key="updateTime" + prop="updateTime" width="120" /> <el-table-column label="鏄惁鍙敤" align="center" - key="cphonenumber" - prop="cphonenumber" + key="isEnable" + prop="isEnable" width="120" /> @@ -366,134 +320,32 @@ /> </el-col> </el-row> - - <!-- 娣诲姞鎴栦慨鏀瑰鏁欓厤缃璇濇 --> - <el-dialog - :title="title" - :visible.sync="open" - width="900px" - append-to-body - > - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> - <el-row> - <el-col :span="12"> - <el-form-item label="濮撳悕" prop="nickName"> - <el-input - v-model="form.nickName" - placeholder="璇疯緭鍏ュ鍚�" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鎬у埆" prop="deptId"> - <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> - <el-option - v-for="dict in dict.type.sys_user_sex" - :key="dict.value" - :label="dict.label" - :value="dict.value" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="璇佷欢绫诲瀷" prop="phonenumber"> - <el-input - v-model="form.phonenumber" - placeholder="璇烽�夋嫨璇佷欢绫诲瀷" - maxlength="11" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="璇佷欢鍙�" prop="email"> - <el-input - v-model="form.email" - placeholder="璇疯緭鍏ヨ瘉浠跺彿" - maxlength="50" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName"> - <el-input - v-model="form.userName" - placeholder="璇疯緭鍏ユ墜鏈哄彿" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜插睘鎵嬫満鍙�" prop="password"> - <el-input - v-model="form.password" - placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" - type="password" - maxlength="20" - show-password - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鎮h�呮爣绛�"> - <el-cascader - :options="optionss" - :props="propss" - clearable - ></el-cascader> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="24"> - <el-form-item label="澶囨敞"> - <el-input - v-model="form.remark" - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> </div> </div> <!-- 娣诲姞绫诲埆寮规 --> - <el-dialog - :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" - width="30%" - :visible.sync="dialogFormVisible" - > + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> + <el-divider></el-divider> <el-form :model="classifyform"> - <el-form-item label="璇烽�夋嫨瀹f暀澶х被"> - <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> <el-option - v-for="item in optionss" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in deptOptions" + :key="item.id" + :label="item.assortname" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item - :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'" - > + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> <el-input - v-model="classifyform.categoryname" + v-model="classifyform.assortname" autocomplete="off" ></el-input> </el-form-item> @@ -503,18 +355,52 @@ <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> - <!-- 鍒犻櫎绫诲埆纭妗� --> - <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> - <div style="font-size: 20px; color: rgb(247, 76, 76)"> - 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span - >]? - </div> - <div style="font-size: 20px"> - 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� + <!-- 鐤剧梾寮规 --> + <el-dialog title="鎸囨爣鐤剧梾" :visible.sync="illnessVisible" width="50%"> + <div> + <div class="xinz-infs"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" + > + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鐤剧梾</el-button + > + </div> </div> <span slot="footer" class="dialog-footer"> - <el-button @click="deleteVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> + <el-button @click="illnessVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button> </span> </el-dialog> <!-- 浜岀淮鐮佸睍绀哄脊妗� --> @@ -530,8 +416,22 @@ </template> <script> -import { listUser, delUser, addUser, updateUser } from "@/api/system/user"; +import { + getheLibraryAssort, + delheLibraryAssort, + addheLibraryAssort, + addtargetillness, + getlibrarylist, + dellibraryinfo, + compilelibrary, + getlibraryinfo, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; +import store from "@/store"; + import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { @@ -555,13 +455,25 @@ total: 0, nameeducation: "", haoeducation: "", + indexid: null, + inputValue: "", + radio: "涓诲垎绫�", + inputVisible: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + defaultProps: { + children: "heLibraryAssortList", + label: "assortname", + }, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: [ { userid: 1, userName: "涓夊彿瀹f暀", nickName: "1.2.4", - aphonenumber: "鍏宠妭鐐庣棁", bphonenumber: "寰堟", cphonenumber: "2022-12-12", @@ -593,224 +505,42 @@ classifyform: { categoryname: "", }, //绫诲埆琛ㄥ崟 - optionss: [ - { - value: 1, - label: "绫诲瀷涓�", - }, - { - value: 2, - label: "绫诲瀷浜�", - }, - { - value: 3, - label: "绫诲瀷涓�", - }, - { - value: 4, - label: "绫诲瀷鍥�", - }, - ], - xjxsoptions: [ - { - value: 1, - label: "瑙嗛", - }, - { - value: 2, - label: "璁插骇", - }, - { - value: 3, - label: "璇煶", - }, - ], - editableTabsky: [ - { - title: "鍙敤", - number: "1", - }, - { - title: "鍋滅敤", - number: "2", - }, - ], + optionss: [], + mode: [], + languagelist: [], + qyoptions: [], + precedencetype: [], + xjxsoptions: [], + //绫诲埆鍒楄〃 - editableTabs: [ - { - title: "鐭俊", - number: "1", - }, - { - title: "閽夐拤", - number: "2", - }, - { - title: "寰俊", - number: "3", - }, - { - title: "鐢佃瘽", - number: "4", - }, - { - title: "绾夸笅", - number: "5", - }, - { - title: "鏅鸿兘璇煶", - number: "6", - }, - ], + editableTabs: [], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - sickness: "", - classifyvalue: "", - shapevalue: "", - userName: undefined, - }, - // 鍒椾俊鎭� - columns: [ - { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true }, - { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true }, - { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true }, - { key: 3, label: `閮ㄩ棬`, visible: true }, - { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, - { key: 5, label: `鐘舵�乣, visible: true }, - { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, - ], - // 琛ㄥ崟鏍¢獙 - rules: { - userName: [ - { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 2, - max: 20, - message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - nickName: [ - { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }, - ], - password: [ - { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 5, - max: 20, - message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - email: [ - { - type: "email", - message: "璇疯緭鍏ユ纭殑閭鍦板潃", - trigger: ["blur", "change"], - }, - ], - phonenumber: [ - { - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, - message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", - trigger: "blur", - }, - ], - IDnumber: [ - { - pattern: - /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, - message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", - trigger: "blur", - }, - ], }, }; }, watch: {}, created() { this.getList(); + this.getDeptTree(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.usable; + this.precedencetype = store.getters.precedencetype; }, methods: { - /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ + /** 鏌ヨ瀹f暀鍒楄〃 */ getList() { // this.loading = true; - listUser().then((response) => { + getlibrarylist(this.queryParams).then((response) => { console.log(response); - // this.userList = response.data; - // this.total = response.total; - // this.loading = false; - console.log(this.userList); + this.userList = response.rows; }); - // const { rows } = await listUser(); - // console.log(rows); - // this.list = rows; }, - // 娣诲姞绫诲埆 - submitsidecolumn() { - this.dialogFormVisible = false; - }, - // 淇敼鍒嗙被寮规 - popoveramend(tagcategoryid) { - this.idds = tagcategoryid; - this.amendtag = true; - this.dialogFormVisible = true; - }, - // 娣诲姞銆佷慨鏀圭被鍒� - submitsidecolumn() { - if (this.amendtag) { - this.classifyform.tagcategoryid = this.idds; - // toamendtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } else { - // addtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } - this.classifyform = { - categoryname: "", - }; - this.idds = ""; - this.dialogFormVisible = false; - }, - //鍒犻櫎鍒嗙被 - deletefenlei(row) { - if (this.deleteVisible) { - // deletetagcategory(this.idds).then((response) => { - // console.log(response); - // this.gitclasify(); - // }); - this.deleteVisible = false; - this.idds = ""; - } else { - this.deleteVisible = true; - this.idds = row.tagcategoryid; - this.deletefenl = row.title; - } - }, - handleOpen(key, keyPath) { - console.log(key, keyPath); - }, - handleClose(key, keyPath) { - console.log(key, keyPath); - }, - handleSelect(key, keyPath) { - console.log(key, keyPath); - }, - //鎼滅储绫诲埆 - sidecolumnss() {}, - // 鍒囨崲鍏变韩/鏈湴 - tophandleClick() {}, + // 鍙栨秷鎸夐挳 cancel() { this.open = false; @@ -823,20 +553,7 @@ }, // 琛ㄥ崟閲嶇疆 reset() { - this.form = { - userId: undefined, - deptId: undefined, - userName: undefined, - nickName: undefined, - password: undefined, - phonenumber: undefined, - email: undefined, - sex: undefined, - status: "0", - remark: undefined, - postIds: [], - roleIds: [], - }; + this.form = {}; this.resetForm("form"); }, /** 鎼滅储鎸夐挳鎿嶄綔 */ @@ -879,39 +596,171 @@ }); }, - /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ - submitForm: function () { - this.$refs["form"].validate((valid) => { - if (valid) { - if (this.form.userId != undefined) { - updateUser(this.form).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - addUser(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { const userIds = row.userId || this.ids; this.$modal .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') .then(function () { - return delUser(userIds); + return delFollowupinfo(userIds); }) .then(() => { this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) .catch(() => {}); + }, + + // 鍒嗙被鏍�----------------------------------------- + // 淇敼鍒嗙被寮规 + popoveramend(tagcategoryid) { + this.idds = tagcategoryid; + this.amendtag = true; + this.dialogFormVisible = true; + }, + // 鏌ヨ鏍� + getDeptTree() { + getheLibraryAssort({}).then((res) => { + this.deptOptions = res.rows; + console.log(res); + }); + }, + + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.assortname && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.id == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + calssvalue.heLibraryAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.assortname) { + this.classifyform.pid = null; + this.classifyform.heLibraryAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + addheLibraryAssort(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.classifyform = {}; + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.assortname + '"鐨勬暟鎹」锛�') + .then(function () { + return delheLibraryAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.assortname + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delheLibraryAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.assortname.indexOf(value) !== -1; + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); + }, + // 鐤剧梾----------------------- + illnessUpdate(row) { + this.illnessVisible = true; + this.indexid = row.id; + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: row.id, type: 6 }).then((res) => { + this.illnesslist = res.rows; + console.log(res); + }); + }, + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValue; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.indexid; + opeavalue.type = 6; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisible = false; + this.inputValue = ""; + }, + 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("缂栬緫鎴愬姛"); + }, + showInput() { + this.inputVisible = true; }, }, }; @@ -1010,6 +859,45 @@ font-size: 20px; } } +.xinz-infs { + font-size: 18px; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} .button-text { color: rgb(70, 204, 238); } diff --git a/src/views/knowledge/questionbank/index.vue b/src/views/knowledge/questionbank/index.vue index e3390af..a2f1567 100644 --- a/src/views/knowledge/questionbank/index.vue +++ b/src/views/knowledge/questionbank/index.vue @@ -13,56 +13,34 @@ class="input-with-select" size="medium " > - <el-button - @click="sidecolumnss" - slot="append" - icon="el-icon-search" - ></el-button> </el-input> </div> - <div class="bottom-fl"> - <el-menu - default-active="3" - class="el-menu-vertical-demo" - @open="handleOpen" - @close="handleClose" - @select="handleSelect" + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" > - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-location"></i> - <span>鍒嗙被涓�</span> - </template> - - <el-menu-item index="1-1">閫夐」1</el-menu-item> - <el-menu-item index="1-2">閫夐」2</el-menu-item> - <el-menu-item index="1-3">閫夐」3</el-menu-item> - <el-menu-item index="1-4">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="2"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>鍒嗙被浜�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - <el-menu-item index="2-2">閫夐」2</el-menu-item> - <el-menu-item index="2-3">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="3"> - <template slot="title"> - <i class="el-icon-document"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - <el-submenu index="4"> - <template slot="title"> - <i class="el-icon-setting"></i> - <span>鍒嗙被鍥�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - </el-menu> + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" + > + </el-button> + </span> + </span> + </el-tree> </div> </div> <!-- 鍙充晶鏁版嵁 --> @@ -175,18 +153,19 @@ <el-table-column label="搴忓彿" align="center" - key="userId" - prop="userId" + key="topicid" + prop="topicid" /> <el-table-column label="棰樼洰鏍囬" align="center" - key="userName" - prop="userName" + key="topic" + prop="topic" + width="200" :show-overflow-tooltip="true" /> <el-table-column - label="棰樼洰鍐呭" + label="棰樼洰鍐呭(缂�)" align="center" key="nickName" prop="nickName" @@ -194,23 +173,34 @@ :show-overflow-tooltip="true" /> - /><el-table-column - label="閫傜敤鏂瑰紡" + label="閫傜敤鏂瑰紡(缂�)" align="center" key="application" prop="application" width="120" /> /><el-table-column - label="閫傜敤鐤剧梾" + label="閫傜敤鐤剧梾(缂�)" align="center" key="Applicable" prop="Applicable" width="120" - /> + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="illnessUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-date"></i>璇︽儏</span + ></el-button + > + </template> + </el-table-column> <el-table-column - label="鏍囩" + label="鏍囩(缂�)" align="center" key="tagList" prop="tagList" @@ -221,16 +211,9 @@ <span v-for="item in scope.row.tagList">{{ item }} </span> </template> </el-table-column> - <el-table-column - label="璇█" - align="center" - key="indicator" - prop="indicator" - width="120" - /> <el-table-column - label="鍙敤" + label="鍙敤(缂�)" align="center" key="usable" prop="usable" @@ -239,20 +222,10 @@ <el-table-column label="鏈�杩戜慨鏀�" align="center" - key="Recentrevision" - prop="Recentrevision" + key="updateTime" + prop="updateTime" width="120" /> - <el-table-column label="鏄惁鍙敤" align="center" key="status"> - <template slot-scope="scope"> - <el-switch - v-model="scope.row.status" - active-value="0" - inactive-value="1" - @change="handleStatusChange(scope.row)" - ></el-switch> - </template> - </el-table-column> <el-table-column label="鎿嶄綔" @@ -304,28 +277,29 @@ </div> </div> <!-- 娣诲姞绫诲埆寮规 --> - <el-dialog - :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" - width="30%" - :visible.sync="dialogFormVisible" - > + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> + <el-divider></el-divider> <el-form :model="classifyform"> - <el-form-item label="璇烽�夋嫨闂嵎棰樼洰澶х被"> - <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> <el-option - v-for="item in editableTabs" - :key="item.title" - :label="item.title" - :value="item.title" + v-for="item in deptOptions" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item - :label="amendtag ? '璇疯緭鍏ユ柊鐨勫瓙绫诲埆鍚嶇О' : '璇疯緭鍏ュ瓙绫诲埆鍚嶇О'" - > + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> <el-input - v-model="classifyform.categoryname" + v-model="classifyform.indexAssortName" autocomplete="off" ></el-input> </el-form-item> @@ -335,37 +309,79 @@ <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> - <!-- 鍒犻櫎绫诲埆纭妗� --> - <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> - <div style="font-size: 20px; color: rgb(247, 76, 76)"> - 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span - >]? - </div> - <div style="font-size: 20px"> - 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� + <!-- 娣诲姞鐤剧梾瀵硅瘽妗� --> + <el-dialog title="鎸囨爣鐤剧梾" :visible.sync="illnessVisible" width="50%"> + <div> + <div class="xinz-infs"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" + > + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鐤剧梾</el-button + > + </div> </div> <span slot="footer" class="dialog-footer"> - <el-button @click="deleteVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> + <el-button @click="illnessVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button> </span> </el-dialog> </div> </template> <script> +import store from "@/store"; import { - listUser, - getUser, - delUser, - addUser, - updateUser, -} from "@/api/system/user"; + getissueclassify, + delissueclassify, + addissueclassify, + getissuelist, + issueinfo, + compileissue, + delissueinfo, + Followupinfo, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "questionnaire", - dicts: ["sys_normal_disable", "sys_user_sex"], components: { Treeselect }, data() { return { @@ -393,17 +409,7 @@ categoryname: "", }, //绫诲埆琛ㄥ崟 // 琛ㄦ牸鏁版嵁 - userList: [ - { - userid: 1, - userName: "琛�甯歌銆佸翱甯歌", - nickName: "璐", - aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", - bphonenumber: "閫夋嫨", - cphonenumber: "鏅�氳瘽", - status: "0", - }, - ], + userList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -423,205 +429,213 @@ sidecolumnval: "", //绫诲埆鎼滅储 indexopen: false, //寮规灞曠ず鍚� propss: { multiple: true }, - languagelist: [ - { - value: 1, - label: "姹夎", - }, - { - value: 3, - label: "鑻辫", - }, - ], //璇█鍒楄〃 - qyoptions: [ - { - value: 1, - label: "鍙敤", - }, - { - value: 2, - label: "绂佺敤", - }, - ], - //绫诲埆鍒楄〃 - editableTabs: [ - { - title: "闂鍒嗙被涓�", - number: "1", - }, - { - title: "闂鍒嗙被浜�", - number: "2", - }, - { - title: "闂鍒嗙被涓�", - number: "2", - }, - { - title: "闂鍒嗙被鍥�", - number: "2", - }, - { - title: "闂鍒嗙被浜�", - number: "2", - }, - ], + indexid: null, + inputValue: "", + radio: "涓诲垎绫�", + inputVisible: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + defaultProps: { + children: "svyLibTopicCategoryList", + label: "indexAssortName", + }, + mode: [], + languagelist: [], + qyoptions: [], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, // 琛ㄥ崟鏍¢獙 - rules: { - userName: [ - { required: true, message: "涓绘棬涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 2, - max: 20, - message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - nickName: [ - { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }, - ], - password: [ - { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 5, - max: 20, - message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - email: [ - { - type: "email", - message: "璇疯緭鍏ユ纭殑閭鍦板潃", - trigger: ["blur", "change"], - }, - ], - phonenumber: [ - { - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, - message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", - trigger: "blur", - }, - ], - IDnumber: [ - { - pattern: - /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, - message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", - trigger: "blur", - }, - ], - }, + rules: {}, }; }, watch: {}, created() { this.getList(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.usable; }, methods: { /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); + this.loading = true; + getissuelist(this.queryParams).then((res) => { + this.loading = false; + this.userList = res.rows; + this.total = res.total; console.log(this.userList); }); }, - // 娣诲姞銆佷慨鏀圭被鍒� - submitsidecolumn() { - if (this.amendtag) { - this.classifyform.tagcategoryid = this.idds; - // toamendtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } else { - // addtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } - this.classifyform = { - categoryname: "", - }; - this.idds = ""; - this.dialogFormVisible = false; - }, - //鍒犻櫎鍒嗙被 - deletefenlei(row) { - if (this.deleteVisible) { - // deletetagcategory(this.idds).then((response) => { - // console.log(response); - // this.gitclasify(); - // }); - this.deleteVisible = false; - this.idds = ""; - } else { - this.deleteVisible = true; - this.idds = row.tagcategoryid; - this.deletefenl = row.title; - } - }, + compileUpdate(row) { this.$router.push({ path: "/knowledge/questionbank/particulars/", - query: { id: "1" }, + query: { id: row.topicid }, }); }, - // 棰樼洰鐘舵�佷慨鏀� - handleStatusChange(row) { - let text = row.status === "0" ? "鍙敤" : "鍋滅敤"; - this.$modal - .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵') - .then(function () { - return changeUserStatus(row.userId, row.status); - }) - .then(() => { - this.$modal.msgSuccess(text + "鎴愬姛"); - }) - .catch(function () { - row.status = row.status === "0" ? "1" : "0"; + // 鐤剧梾----------------------- + illnessUpdate(row) { + this.illnessVisible = true; + this.indexid = row.topicid; + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: row.topicid, type: 4 }).then((res) => { + this.illnesslist = res.rows; + console.log(res); + }); + }, + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; }); + }, 200); }, - // 渚ц竟-------------- - handleOpen(key, keyPath) { - console.log(key, keyPath); + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValue; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.indexid; + opeavalue.type = 4; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisible = false; + this.inputValue = ""; }, - handleClose(key, keyPath) { - console.log(key, keyPath); + 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("缂栬緫鎴愬姛"); }, - handleSelect(key, keyPath) { - console.log(key, keyPath); + showInput() { + this.inputVisible = true; }, - //鎼滅储绫诲埆 - sidecolumnss() {}, - // 渚挎嵎鏍囩 - tsgnameto() {}, - // 鍙栨秷鎸夐挳 - cancel() { - this.indexopen = false; - this.reset(); + + // 鍒嗙被鏍�----------------------------------------- + // 淇敼鍒嗙被寮规 + popoveramend(tagcategoryid) { + this.idds = tagcategoryid; + this.amendtag = true; + this.dialogFormVisible = true; + }, + // 鏌ヨ鏍� + getDeptTree() { + getissueclassify({}).then((res) => { + this.deptOptions = res.rows; + console.log(res); + }); + }, + + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.indexAssortName && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.id == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + calssvalue.ivrLibaTemplateAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTemplateAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + addissueclassify(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�') + .then(function () { + return delissueclassify(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.indexAssortName + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delissueclassify(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.indexAssortName.indexOf(value) !== -1; + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); }, // 琛ㄥ崟閲嶇疆 reset() { this.form = { - userId: undefined, + topicid: undefined, deptId: undefined, userName: undefined, nickName: undefined, @@ -651,7 +665,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.topicid); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -659,7 +673,7 @@ handleAdd() { this.$router.push({ path: "/knowledge/verbaltrick/particulars/", - query: { id: "1" }, + query: { id: "" }, }); }, // 淇敼鍒嗙被寮规 @@ -669,33 +683,13 @@ this.dialogFormVisible = true; }, - /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ - submitForm: function () { - this.$refs["form"].validate((valid) => { - if (valid) { - if (this.form.userId != undefined) { - updateUser(this.form).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.indexopen = false; - this.getList(); - }); - } else { - addUser(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.indexopen = false; - this.getList(); - }); - } - } - }); - }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.userId || this.ids; + const topicids = row.topicid || this.ids; this.$modal - .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + topicids + '"鐨勬暟鎹」锛�') .then(function () { - return delUser(userIds); + return delissueinfo(topicids); }) .then(() => { this.getList(); @@ -815,6 +809,46 @@ font-size: 20px; } } +.xinz-infs { + font-size: 18px; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} + +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} .button-text { color: rgb(70, 204, 238); } diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue index 841e5cb..e05bd41 100644 --- a/src/views/knowledge/questionbank/particulars/index.vue +++ b/src/views/knowledge/questionbank/particulars/index.vue @@ -11,166 +11,213 @@ ></span > </div> + <div style="margin-left: 8%"> + <el-row :gutter="10"> + <el-col :span="6" + ><el-form-item label="棰樼洰鏍囬"> + <el-input + v-model="topicobj.topic" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> </el-form-item + ></el-col> + <el-col :span="6" + ><el-form-item label="鏄惁鍙敤"> + <el-select + v-model="topicobj.ishide" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="璇█(缂�)"> + <el-select + v-model="topicobj.languageh" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in languagelist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </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-col :span="6" + ><el-form-item label="棰樼洰绫诲瀷"> + <el-select + v-model="topicobj.topictype" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in xjxsoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="閫傜敤鏂瑰紡(缂�)"> + <el-select + v-model="topicobj.languageh" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option + class="topicobjaa" + v-for="item in mode" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> </el-select></el-form-item + ></el-col> + </el-row> + <el-form-item label="棰樼洰鍐呭(缂�)"> + <el-input + style="width: 40vw" + type="textarea" + v-model="topicobj.topic" + placeholder="璇疯緭鍏ユ爣棰�" + ></el-input> + </el-form-item> - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item label="棰樼洰鏍囬"> - <el-input - v-model="topicobj.title" - placeholder="璇疯緭鍏ユ爣棰�" - ></el-input> </el-form-item - ></el-col> - <el-col :span="6" - ><el-form-item label="鏄惁闅愯棌"> - <el-radio-group v-model="topicobj.resourcea"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item - ></el-col> - <el-col :span="6" - ><el-form-item label="璇█"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" + <el-row> + <el-form-item label="鏍囩" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="tag.tagname" + type="success" + v-for="tag in dynamicTags" + closable + :disable-transitions="false" + @close="handleClosetag(tag)" > - </el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item label="鏄惁蹇呯瓟"> - <el-radio-group v-model="topicobj.resource"> - <el-radio label="鏄�"></el-radio> - <el-radio label="鍚�"></el-radio> - </el-radio-group> </el-form-item - ></el-col> - <el-col :span="12" - ><el-form-item label="棰樼洰绫诲瀷"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" + {{ tag.tagname }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="handleInputConfirm" + filterable + remote + reserve-keyword + default-first-option + :remote-method="remoteMethodtag" + :loading="loading" + placeholder="璇烽�夋嫨" > - </el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-form-item label="棰樼洰鍐呭"> - <el-input - style="width: 40vw" - type="textarea" - v-model="topicobj.title" - placeholder="璇疯緭鍏ユ爣棰�" - ></el-input> - </el-form-item> - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item label="閫傜敤鏂瑰紡"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" + <el-option + v-for="item in optionstag" + :key="item.tagid" + :label="item.tagname" + :value="item.tagname" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鏍囩</el-button > - </el-option> </el-select></el-form-item - ></el-col> - <el-col :span="12" - ><el-form-item label="閫傜敤鐤剧梾"> - <el-select - v-model="topicobj.languageh" - size="medium" - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="topicobjaa" - v-for="item in xjxsoptions" - :key="item.value" - :label="item.label" - :value="item.value" + </div> + </el-form-item> + </el-row> + <el-row> + <el-form-item label="閫傜敤鐤剧梾" prop="region"> + <div class="xinz-inf"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" > - </el-option> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-form-item label="鏍囩" prop="desc"> - <div class="xinz-inf"> - <el-tag - :key="tag" - type="success" - v-for="tag in dynamicTags" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - <el-select - v-model="inputValue" - v-if="inputVisible" - @change="handleInputConfirm" - filterable - allow-create - default-first-option - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in optionstag" - :key="item.tagname" - :label="item.tagname" - :value="item.tagname" - > - </el-option> - </el-select> - <el-button - v-else - class="button-new-tag" - size="small" - @click="showInput" - >+ 鏂板鏍囩</el-button - > - </div> - </el-form-item> + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValueillness" + v-if="inputVisibleillness" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="inputVisibleillness = true" + >+ 鏂板鐤剧梾</el-button + > + </div> + </el-form-item> + </el-row> + </div> + <div class="headline"> 閫夐」璁剧疆<span style="margin-left: 30px" - ><el-button type="primary" @click="addoption" + ><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> <div class="topicxq" v-for="item in optionlist"> <el-row :gutter="10"> <el-col :span="11" - ><el-form-item label="閫夐」"> + ><el-form-item label="棰樺彿"> <el-input type="text" - placeholder="璇疯緭鍏ラ�夐」" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.optionid" show-word-limit > </el-input> </el-form-item @@ -179,28 +226,20 @@ ><el-form-item label="鍒嗗��"> <el-input type="text" - placeholder="璇疯緭鍏ュ垎鍊�" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.score" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="2"> - <el-button - type="danger" - icon="el-icon-delete" - circle - ></el-button> - </el-col> </el-row> <el-row :gutter="10"> <el-col :span="11" - ><el-form-item label="閫変腑鎻愮ず"> + ><el-form-item label="閫夐」"> <el-input type="text" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="text" - maxlength="10" + placeholder="璇疯緭鍏ラ�夐」" + v-model="item.optioncontent" show-word-limit > </el-input> </el-form-item @@ -210,21 +249,147 @@ <el-input type="text" placeholder="璇疯緭鍏ラ鍙�" - v-model="text" + v-model="item.jump" show-word-limit > </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-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> </el-form> </el-card> </div> + <el-drawer + title="娣诲姞棰樼洰" + :visible.sync="drawer" + custom-class="demo-drawer" + width="50%" + > + <div class="preview-left"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" + > + <el-form-item label="鏍囬" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </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" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + <el-table v-loading="loading" :data="userList"> + <el-table-column + label="鏍囬" + align="center" + key="userid" + prop="userid" + width="100" + /> + <el-table-column + label="闂鍐呭" + align="center" + key="userName" + prop="userName" + width="200" + :show-overflow-tooltip="true" + /> + + <el-table-column + label="鎿嶄綔" + align="center" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="selectlabel(scope.row)" + ><span class="button-textxg" + ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span + ></el-button + > + </template> + </el-table-column> + </el-table> + </div> + </el-drawer> </div> </template> <script> import { listtag } from "@/api/system/label"; +import store from "@/store"; +import { + getissueclassify, + delissueclassify, + addissueclassify, + getissuelist, + issueinfo, + compileissue, + delissueinfo, + Followupinfo, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; export default { data() { @@ -232,50 +397,130 @@ topicobj: {}, inputVisible: false, inputValue: "", - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + drawer: false, + loading: false, + id: [], + userList: [ + { + userid: "1", + userName: "鎸囨爣", + }, + { + userid: "2", + userName: "浜屽彿闂嵎", + }, + ], + dynamicTags: [], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + }, optionlist: [ { value: "topic", table: "topic" }, { value: "topic", table: "topic" }, { value: "topic", table: "topic" }, ], - options: [ - { - value: "閫夐」1", - label: "蹇冭绠�", - }, - { - value: "閫夐」2", - label: "楠ㄧ", - }, - { - value: "閫夐」3", - label: "濡囩", - }, - ], - optionstag:[], - xjxsoptions: [ - { - value: "1", - label: "鍗曢��", - }, - { - value: "2", - label: "澶氶��", - }, - ], + inputValueillness: "", + themelist: [], + languagelist: [], + courtyardlist: [], + precedencetype: [], + inputVisible: false, + inputVisibleillness: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + + optionstag: [], + xjxsoptions: [], + usable: [], + mode: [], //鏂瑰紡 }; }, created() { this.gettabList(); + this.getissueinfo(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.usable = store.getters.usable; + this.xjxsoptions = store.getters.xjxsoptions; }, methods: { Submittopicobj() {}, + getIndexInArray(arr, obj) { + return arr.indexOf(obj); + }, + + // 鑾峰彇鏁版嵁 + getissueinfo() { + this.id = this.$route.query.id; + issueinfo(this.id).then((res) => { + this.topicobj = res.data; + }); + getillnesslist({ + pageNum: 1, + pageSize: 100, + }).then((response) => { + this.optionsillness = response.rows; + }); + getillness({ outid: this.id, type: 4 }).then((res) => { + this.illnesslist = res.rows; + }); + }, + // 鏂板鎴栦慨鏀硅鎯� + compileissue() { + if (this.id) { + this.topicobj.isoperation = 1; + compileissue(this.topicobj).then((res) => { + if (res.code == 1) { + this.$message({ + message: "淇敼鎴愬姛", + type: "success", + }); + this.$router.go(-1); + } else { + this.$message({ + message: "淇敼澶辫触", + type: "error", + }); + } + }); + } else { + this.topicobj.isoperation = 2; + compileissue(this.topicobj).then((res) => { + if (res.code == 1) { + this.$message({ + message: "鏂板鎴愬姛", + type: "success", + }); + this.$router.go(-1); + } else { + this.$message({ + message: "鏂板澶辫触", + type: "error", + }); + } + }); + } + }, + // 鍒犻櫎閫夐」 + deletexuanx(row) { + const index = this.getIndexInArray(this.optionlist, row); + this.optionlist.splice(index, 1); + }, // 鏂板閫夐」 - addoption() {}, + addoption() { + this.optionlist.push({ value: "topic", table: "topic" }); + }, + // 閫夋嫨鎸囨爣 + selectlabel(row) {}, + // 鏍囩----------------- - /** 鏌ヨ鏍囩鍒楄〃 */ gettabList() { const tagqueryParams = { pageNum: 1, @@ -284,27 +529,115 @@ }; listtag(tagqueryParams).then((response) => { console.log(response); - this.options = response.rows; + this.optionstag = response.rows; }); }, - handleClose(tag) { + 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 inputValue = this.inputValue; - if (inputValue) { - this.dynamicTags.push(inputValue); + let tagvalue = {}; + let tagname = this.inputValue; + if (tagname) { + listtag({ + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + tagname: tagname, + }).then((res) => { + if (res.rows[0]) { + tagvalue = res.rows[0]; + tagvalue.isoperation = 1; + } else { + tagvalue = { + tagname: tagname, + isoperation: 1, + }; + } + // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.dynamicTags.push(tagvalue); + }); } this.inputVisible = false; this.inputValue = ""; }, + remoteMethodtag(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { + this.optionstag = res.rows; + }); + }, 200); + } else { + this.optionstag = []; + } + }, showInput() { this.inputVisible = true; - // 鑷姩鑾峰彇鐒︾偣 - // this.$nextTick((_) => { - // this.$refs.saveTagInput.$refs.input.focus(); - // }); }, + // 鐤剧梾----------------------- + + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValueillness; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.id; + opeavalue.type = 4; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + 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("缂栬緫鎴愬姛"); + }, + // 鏌ヨ棰樺簱 + handleQuery() {}, + resetQuery() {}, }, }; </script> @@ -322,13 +655,18 @@ margin: 15px 0; } .topicxq { - width: 50%; + width: 68%; background-color: #e2f5fc; border-radius: 4px; - margin-top: 10px; + margin-top: 15px; + margin-left: 10%; padding-left: 10px; padding-top: 15px; + 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); } + .xinz-inf { font-size: 18px; white-space: nowrap; @@ -353,4 +691,25 @@ } } } +.preview-left { + margin: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + 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 { + margin-bottom: 25px; + font-size: 20px !important; + .dev-text { + margin-bottom: 10px; + } + } +} +::v-deep.ruleFormaa.el-select { + display: inline-block; + position: relative; + width: 700px; +} </style> diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue index 556466a..26c78ac 100644 --- a/src/views/knowledge/questionnaire/compilequer/index.vue +++ b/src/views/knowledge/questionnaire/compilequer/index.vue @@ -17,9 +17,7 @@ <div class="leftvlue"> <!-- 鍩烘湰淇℃伅 --> <div v-if="Editprogress == 1"> - <div class="leftvlue-jbxx"> - 鍩烘湰淇℃伅 - </div> + <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div> <el-divider></el-divider> <el-form :model="ruleForm" @@ -30,7 +28,7 @@ > <el-form-item label="闂嵎鍒嗙被" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.categoryid" size="medium" multiple filterable @@ -38,7 +36,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in optionsclass" :key="item.value" :label="item.label" :value="item.value" @@ -48,16 +46,32 @@ </el-form-item> <el-form-item label="闂嵎鏍囬" prop="name"> <div style="width: 30%"> - <el-input v-model="ruleForm.name"></el-input> + <el-input v-model="ruleForm.svyname"></el-input> </div> </el-form-item> + <el-form-item label="闂嵎鎻忚堪"> + <el-input + style="width: 40vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="ruleForm.description" + > + </el-input + ></el-form-item> <el-form-item label="閫氱煡鍙橀噺" prop="name"> <el-row v-for="item in variablelist"> <el-col :span="4"> - <el-input v-model="item.variable"></el-input> + <el-input + v-model="item.name" + placeholder="璇疯緭鍏ュ彉閲忓悕" + ></el-input> </el-col> <el-col :span="8" :offset="1"> - <el-input v-model="item.value"></el-input> + <el-input + v-model="item.value" + placeholder="璇疯緭鍏ュ彉閲忓唴瀹�" + ></el-input> </el-col> <el-col :span="4" :offset="1"> <el-button @@ -67,6 +81,7 @@ @click="addvariable(item)" ></el-button> <el-button + v-if="item" type="danger" icon="el-icon-delete" circle @@ -91,53 +106,101 @@ </el-upload> </div> </el-form-item> - <el-form-item label="鏍囩" prop="desc"> - <div class="xinz-inf"> - <el-tag - :key="tag" - type="success" - v-for="tag in dynamicTags" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag }} - </el-tag> - <el-select - v-model="inputValue" - v-if="inputVisible" - @change="handleInputConfirm" - filterable - allow-create + <el-row> + <el-form-item label="鏍囩" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="tag.tagname" + type="success" + v-for="tag in dynamicTags" + closable + :disable-transitions="false" + @close="handleClosetag(tag)" + > + {{ tag.tagname }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="handleInputConfirm" + filterable + remote + reserve-keyword default-first-option - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in optionstag" - :key="item.tagname" + :remote-method="remoteMethodtag" + :loading="loading" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in optionstag" + :key="item.tagid" :label="item.tagname" :value="item.tagname" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鏍囩</el-button > - </el-option> - </el-select> - <el-button - v-else - class="button-new-tag" - size="small" - @click="showInput" - >+ 鏂板鏍囩</el-button - > - </div> - </el-form-item> + </div> + </el-form-item> + </el-row> + <el-row> + <el-form-item label="閫傜敤鐤剧梾" prop="region"> + <div class="xinz-inf"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" + > + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValueillness" + v-if="inputVisibleillness" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="inputVisibleillness = true" + >+ 鏂板鐤剧梾</el-button + > + </div> + </el-form-item> + </el-row> <el-row :gutter="20"> <el-col :span="6"> <el-form-item label="鐗堟湰鍙�" prop="name"> - <el-input v-model="currentVersion"></el-input> </el-form-item + <el-input v-model="ruleForm.version"></el-input> </el-form-item ></el-col> <el-col :span="9"> <el-form-item label="鍙敤鐘舵��" prop="region"> <el-select - v-model="ruleForm.classify" + v-model="ruleForm.isenable" size="medium" multiple filterable @@ -145,7 +208,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in usable" :key="item.value" :label="item.label" :value="item.value" @@ -154,7 +217,7 @@ </el-select> </el-form-item ></el-col> </el-row> - <el-form-item label="闂嵎鏂瑰紡" prop="region"> + <el-form-item label="闂嵎鏂瑰紡(缂�)" prop="region"> <el-select v-model="ruleForm.way" size="medium" @@ -172,24 +235,7 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="閫傜敤鐤剧梾" prop="region"> - <el-select - v-model="ruleForm.illness" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> + <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select v-model="ruleForm.courtyard" @@ -199,7 +245,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -217,7 +263,7 @@ > <el-option class="ruleFormaa" - v-for="item in options" + v-for="item in courtyardlist" :key="item.value" :label="item.label" :value="item.value" @@ -345,51 +391,70 @@ ></el-col> </el-row> <div class="headline">閫夐」璁剧疆</div> - <div class="topicxq" v-for="item in 2"> + <div class="topicxq" v-for="item in optionlist"> <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="閫夐」"> + <el-col :span="11" + ><el-form-item label="棰樺彿"> <el-input type="text" - placeholder="璇疯緭鍏ラ�夐」" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.optionid" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="12" + <el-col :span="11" ><el-form-item label="鍒嗗��"> <el-input type="text" - placeholder="璇疯緭鍏ュ垎鍊�" - v-model="text" + placeholder="璇疯緭鍏�" + v-model="item.score" show-word-limit > </el-input> </el-form-item ></el-col> </el-row> <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="閫変腑鎻愮ず"> + <el-col :span="11" + ><el-form-item label="閫夐」"> <el-input type="text" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model="text" - maxlength="10" + placeholder="璇疯緭鍏ラ�夐」" + v-model="item.optioncontent" show-word-limit > </el-input> </el-form-item ></el-col> - <el-col :span="12" + <el-col :span="11" ><el-form-item label="涓嬮璺宠浆"> <el-input type="text" placeholder="璇疯緭鍏ラ鍙�" - v-model="text" + v-model="item.jump" show-word-limit > </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-row :gutter="10"> + <el-form-item label="閫変腑鎻愮ず"> + <el-input + style="width: 20vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="item.prompt" + > + </el-input + ></el-form-item> </el-row> </div> </el-form> @@ -483,22 +548,13 @@ /> </el-form-item> <el-form-item label="涓婚" prop="sickness"> - <el-select - v-model="ruleForm.classify" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨鍒嗙被" - > - <el-option - class="ruleFormaa" - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item> <el-button @@ -554,6 +610,22 @@ <script> import { listtag } from "@/api/system/label"; +import store from "@/store"; +import { + getQtemplateclassify, + delQtemplateclassify, + addQtemplateclassify, + getQtemplatelist, + Qtemplateinfo, + compileissue, + delQtemplateinfo, + Followupinfo, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; export default { data() { @@ -566,27 +638,20 @@ radio: "false", //鍗曢�夐閫変腑 radios: [], //澶氶�夐閫変腑 radioas: "", //濉┖棰樼瓟妗� - dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"], + dynamicTags: [], inputVisible: false, inputValue: "", topicobj: {}, // 鎬绘潯鏁� total: 1, - ruleForm: { - name: "", - region: "", - date1: "", - date2: "", - delivery: false, - type: [], - resource: "", - desc: "", - templatevalue: "", - data2: "", - }, + ruleForm: {}, rules: {}, rulesa: {}, - optionstag:[], + optionsclass: [], //鍒嗙被鍒楄〃 + optionlist: [ + { value: "topic", table: "topic" }, + { value: "topic", table: "topic" }, + ], xjxsoptions: [ { value: "閫夐」1", @@ -620,14 +685,6 @@ value: "閫夐」2", label: "鍏ラ櫌闂嵎", }, - { - value: "閫夐」3", - label: "鎵嬫湳闂嵎", - }, - { - value: "閫夐」4", - label: "鎶ょ悊闂嵎", - }, ], variablelist: [ { @@ -654,15 +711,24 @@ userid: "2", userName: "浜屽彿闂嵎", }, - { - userid: "3", - userName: "涓夊彿闂嵎", - }, - { - userid: "4", - userName: "鍥涘彿闂嵎", - }, ], + themelist: [], + languagelist: [], + courtyardlist: [], + precedencetype: [], + inputValueillness: "", + inputVisible: false, + inputVisibleillness: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + + optionstag: [], + xjxsoptions: [], + usable: [], + mode: [], //鏂瑰紡 // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -678,22 +744,35 @@ created() { this.gettabList(); - + this.getissueinfo(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.usable = store.getters.usable; + this.xjxsoptions = store.getters.xjxsoptions; + this.courtyardlist = store.getters.courtyardlist; }, methods: { - submitForm(formName) { - this.rules = this.rulesa; - // 鎻愪氦 - this.$refs[formName].validate((valid) => { - if (valid) { - alert("submit!"); - } else { - console.log("error submit!!"); - return false; - } + getIndexInArray(arr, obj) { + return arr.indexOf(obj); + }, + // 鑾峰彇鏁版嵁 + getissueinfo() { + this.id = this.$route.query.id; + Qtemplateinfo(this.id).then((res) => { + this.ruleForm = res.data; + }); + getillnesslist({ + pageNum: 1, + pageSize: 100, + }).then((response) => { + this.optionsillness = response.rows; + }); + getillness({ outid: this.id, type: 5 }).then((res) => { + this.illnesslist = res.rows; }); }, + submitForm(formName) {}, // 涓嬩竴姝� nextstep() { if (this.Editprogress <= 2) { @@ -706,17 +785,19 @@ }, // 鍏抽棴 closeFm() { - this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - this.$router.go(-1) - }).catch(() => { + this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + this.$router.go(-1); + }) + .catch(() => { this.$message({ - type: 'info', - message: '宸插彇娑�' - }); + type: "info", + message: "宸插彇娑�", + }); }); }, // 淇濆瓨棰樼洰淇℃伅 @@ -758,8 +839,7 @@ this.fileList = fileList.slice(-3); }, // 鏍囩----------------- - /** 鏌ヨ鏍囩鍒楄〃 */ - gettabList() { + gettabList() { const tagqueryParams = { pageNum: 1, pageSize: 1000, @@ -770,23 +850,108 @@ this.optionstag = response.rows; }); }, - handleClose(tag) { + 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 inputValue = this.inputValue; - if (inputValue) { - this.dynamicTags.push(inputValue); + let tagvalue = {}; + let tagname = this.inputValue; + if (tagname) { + listtag({ + pageNum: 1, + pageSize: 1000, + tagcategoryid: "0", + tagname: tagname, + }).then((res) => { + if (res.rows[0]) { + tagvalue = res.rows[0]; + tagvalue.isoperation = 1; + } else { + tagvalue = { + tagname: tagname, + isoperation: 1, + }; + } + // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue); + this.dynamicTags.push(tagvalue); + }); } this.inputVisible = false; this.inputValue = ""; }, + remoteMethodtag(query) { + if (query !== "") { + this.loading = true; + setTimeout(() => { + this.loading = false; + listtag({ tagname: query, tagcategoryid: "0" }).then((res) => { + this.optionstag = res.rows; + }); + }, 200); + } else { + this.optionstag = []; + } + }, showInput() { this.inputVisible = true; - // 鑷姩鑾峰彇鐒︾偣 - // this.$nextTick((_) => { - // this.$refs.saveTagInput.$refs.input.focus(); - // }); + }, + // 鐤剧梾----------------------- + + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValueillness; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.id; + opeavalue.type = 5; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + 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("缂栬緫鎴愬姛"); }, // -------------------------- // 鏌ヨ棰樺簱 @@ -833,9 +998,9 @@ } .leftvlue-jbxx { font-size: 24px; - border-left: 5px solid #41a1be; - padding-left: 5px; - margin: 15px 0; + border-left: 5px solid #41a1be; + padding-left: 5px; + margin: 15px 0; } .demo-cascader { margin-right: 20px; diff --git a/src/views/knowledge/questionnaire/index.vue b/src/views/knowledge/questionnaire/index.vue index 118b7bb..e4c3562 100644 --- a/src/views/knowledge/questionnaire/index.vue +++ b/src/views/knowledge/questionnaire/index.vue @@ -13,84 +13,34 @@ class="input-with-select" size="medium " > - <el-button - @click="sidecolumnss" - slot="append" - icon="el-icon-search" - ></el-button> </el-input> </div> - <div class="bottom-fl"> - <el-menu - default-active="3" - class="el-menu-vertical-demo" - @open="handleOpen" - @close="handleClose" - @select="handleSelect" + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" > - <el-submenu index="1"> - <template slot="title"> - <i class="el-icon-location"></i> - <span>鍒嗙被涓�</span> - </template> - - <el-menu-item index="1-1">閫夐」1</el-menu-item> - <el-menu-item index="1-2">閫夐」2</el-menu-item> - <el-menu-item index="1-3">閫夐」3</el-menu-item> - <el-menu-item index="1-4">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="2"> - <template slot="title"> - <i class="el-icon-menu"></i> - <span>鍒嗙被浜�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - <el-menu-item index="2-2">閫夐」2</el-menu-item> - <el-menu-item index="2-3">閫夐」3</el-menu-item> - </el-submenu> - <el-submenu index="3"> - <template slot="title"> - <i class="el-icon-document"></i> - <span>鍒嗙被涓�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - <el-submenu index="4"> - <template slot="title"> - <i class="el-icon-setting"></i> - <span>鍒嗙被鍥�</span> - </template> - <el-menu-item index="2-1">閫夐」1</el-menu-item> - </el-submenu> - </el-menu> - <!-- <el-tabs tab-position="right"> - <el-tab-pane :label="`鍏ㄩ儴 (${numberlb})`"></el-tab-pane> - <el-tab-pane - class="tab-paness" - :key="item.title" - v-for="(item, index) in editableTabs" - > - <span slot="label"> - {{ - item.title + " (" + item.number + ")" - }}   <el-popover - placement="top-start" - width="100" - trigger="hover" + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" > - <div style="text-align: center"> - <el-button type="text" @click="popoveramend(item)" - >淇敼</el-button - ><el-button type="text" @click="deletefenlei(item)" - ><span style="color: rgb(173, 55, 55)" - >鍒犻櫎</span - ></el-button - > - </div> - <i slot="reference" class="el-icon-share"></i> </el-popover - ></span> - </el-tab-pane> - </el-tabs> --> + </el-button> + </span> + </span> + </el-tree> </div> </div> <!-- 鍙充晶鏁版嵁 --> @@ -119,7 +69,7 @@ <el-form-item label="閫傜敤绉戝" prop="sickness"> <el-cascader v-model="queryParams.sickness" - :options="optionss" + :options="editableTabs" :props="propss" clearable ></el-cascader> @@ -136,7 +86,7 @@ <el-form-item label="閫傜敤鏂瑰紡" prop="shape"> <el-cascader v-model="queryParams.shapevalue" - :options="optionss" + :options="editableTabs" :props="propss" clearable ></el-cascader> @@ -161,7 +111,7 @@ placeholder="璇烽�夋嫨" > <el-option - v-for="(item, index) in editableTabsky" + v-for="(item, index) in editableTabs" :key="index++" :label="item.title" :value="index++" @@ -223,46 +173,58 @@ <el-table-column label="搴忓彿" align="center" - key="userId" - prop="userId" + key="svyid" + prop="svyid" /> <el-table-column label="闂嵎鏍囬" align="center" - key="userName" - prop="userName" + key="svyname" + prop="svyname" + width="160" :show-overflow-tooltip="true" /> <el-table-column label="鐗堟湰" align="center" - key="nickName" - prop="nickName" + key="version" + prop="version" :show-overflow-tooltip="true" /> <el-table-column label="涓昏鍐呭" align="center" - key="bphonenumber" - prop="bphonenumber" - width="120" + key="description" + prop="description" + width="260" /><el-table-column - label="閫傜敤鐤剧梾" + label="閫傜敤鐤剧梾(缂�)" align="center" - key="aphonenumber" - prop="aphonenumber" - width="120" - /> + key="Applicable" + prop="Applicable" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="illnessUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-date"></i>璇︽儏</span + ></el-button + > + </template> + </el-table-column> <el-table-column - label="閫傜敤绉戝" + label="閫傜敤绉戝(缂�)" align="center" key="administrative" prop="administrative" width="120" /> <el-table-column - label="鏍囩" + label="鏍囩(缂�)" align="center" key="tagList" prop="tagList" @@ -273,20 +235,9 @@ <span v-for="item in scope.row.tagList">{{ item }} </span> </template> </el-table-column> + <el-table-column - label="瀹f暀鏂瑰紡" - align="center" - key="wayList" - prop="wayList" - width="160" - :show-overflow-tooltip="true" - > - <template slot-scope="scope"> - <span v-for="item in scope.row.wayList">{{ item }} </span> - </template> - </el-table-column> - <el-table-column - label="璧勬枡褰㈠紡" + label="璧勬枡褰㈠紡(缂�)" align="center" key="cphonenumaber" prop="cphonenumaber" @@ -295,15 +246,19 @@ <el-table-column label="鍙敤" align="center" - key="cphonenumbker" - prop="cphonenumbker" + key="isenable" + prop="isenable" width="120" - /> + > + <template slot-scope="scope"> + <dict-tag :options="qyoptions" :value="scope.row.isenable" /> + </template> + </el-table-column> <el-table-column label="鏈�杩戠紪杈�" align="center" - key="cphonenumber" - prop="cphonenumber" + key="updateTime" + prop="updateTime" width="120" /> @@ -364,134 +319,32 @@ /> </el-col> </el-row> - - <!-- 娣诲姞鎴栦慨鏀归棶鍗烽厤缃璇濇 --> - <el-dialog - :title="title" - :visible.sync="open" - width="900px" - append-to-body - > - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> - <el-row> - <el-col :span="12"> - <el-form-item label="濮撳悕" prop="nickName"> - <el-input - v-model="form.nickName" - placeholder="璇疯緭鍏ュ鍚�" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="鎬у埆" prop="deptId"> - <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> - <el-option - v-for="dict in dict.type.sys_user_sex" - :key="dict.value" - :label="dict.label" - :value="dict.value" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="璇佷欢绫诲瀷" prop="phonenumber"> - <el-input - v-model="form.phonenumber" - placeholder="璇烽�夋嫨璇佷欢绫诲瀷" - maxlength="11" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="璇佷欢鍙�" prop="email"> - <el-input - v-model="form.email" - placeholder="璇疯緭鍏ヨ瘉浠跺彿" - maxlength="50" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鏈汉鎵嬫満鍙�" prop="userName"> - <el-input - v-model="form.userName" - placeholder="璇疯緭鍏ユ墜鏈哄彿" - maxlength="30" - /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="浜插睘鎵嬫満鍙�" prop="password"> - <el-input - v-model="form.password" - placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿" - type="password" - maxlength="20" - show-password - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鎮h�呮爣绛�"> - <el-cascader - :options="optionss" - :props="propss" - clearable - ></el-cascader> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="24"> - <el-form-item label="澶囨敞"> - <el-input - v-model="form.remark" - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - ></el-input> - </el-form-item> - </el-col> - </el-row> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> </div> </div> <!-- 娣诲姞绫诲埆寮规 --> - <el-dialog - :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" - width="30%" - :visible.sync="dialogFormVisible" - > + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> + <el-divider></el-divider> <el-form :model="classifyform"> - <el-form-item label="璇烽�夋嫨闂嵎澶х被"> - <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> <el-option - v-for="item in optionss" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in deptOptions" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" > </el-option> </el-select> </el-form-item> - <el-form-item - :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'" - > + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> <el-input - v-model="classifyform.categoryname" + v-model="classifyform.indexAssortName" autocomplete="off" ></el-input> </el-form-item> @@ -501,18 +354,52 @@ <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> </div> </el-dialog> - <!-- 鍒犻櫎绫诲埆纭妗� --> - <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> - <div style="font-size: 20px; color: rgb(247, 76, 76)"> - 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span - >]? - </div> - <div style="font-size: 20px"> - 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� + <!-- 娣诲姞鐤剧梾瀵硅瘽妗� --> + <el-dialog title="鎸囨爣鐤剧梾" :visible.sync="illnessVisible" width="50%"> + <div> + <div class="xinz-infs"> + <el-tag + :key="item.icd10name" + type="warning" + v-for="item in illnesslist" + closable + :disable-transitions="false" + @close="handleCloseillness(item)" + > + {{ item.icd10name }} + </el-tag> + <el-select + v-model="inputValue" + v-if="inputVisible" + @change="illnessConfirm" + :remote-method="remoteMethod" + filterable + remote + allow-create + default-first-option + placeholder="璇烽�夋嫨/鏌ヨ" + :loading="loading" + > + <el-option + v-for="item in optionsillness" + :key="item.icdid" + :label="item.icdname" + :value="item.icdid" + > + </el-option> + </el-select> + <el-button + v-else + class="button-new-tag" + size="small" + @click="showInput" + >+ 鏂板鐤剧梾</el-button + > + </div> </div> <span slot="footer" class="dialog-footer"> - <el-button @click="deleteVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> + <el-button @click="illnessVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button> </span> </el-dialog> <!-- 浜岀淮鐮佸睍绀哄脊妗� --> @@ -528,19 +415,28 @@ </template> <script> +import store from "@/store"; + import { - listUser, - getUser, - delUser, - addUser, - updateUser, -} from "@/api/system/user"; + getQtemplateclassify, + delQtemplateclassify, + addQtemplateclassify, + getQtemplatelist, + issueinfo, + compileissue, + delQtemplateinfo, + Followupinfo, + deltargetillness, + addtargetillness, + getillnesslist, + illnesslistget, + getillness, +} from "@/api/AiCentre/index"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "questionnaire", - dicts: ["sys_normal_disable", "sys_user_sex"], components: { Treeselect }, data() { return { @@ -560,20 +456,8 @@ namequestionnaire: "", haoquestionnaire: "", // 鐢ㄦ埛琛ㄦ牸鏁版嵁 - userList: [ - { - userid: 1, - userName: "涓夊彿闂嵎", - nickName: "1.2.4", - aphonenumber: "鍏宠妭鐐庣棁", - bphonenumber: "寰堟", - cphonenumber: "2022-12-12 ", - }, - ], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, + userList: [], + // 鏃ユ湡鑼冨洿 dateRange: [], // 宀椾綅閫夐」 @@ -582,8 +466,7 @@ roleOptions: [], // 琛ㄥ崟鍙傛暟 form: {}, - numberlb: 22, - numberlbs: 2, + sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 goQRCodeVisible: false, //浜岀淮鐮佸脊妗� sidecolumnval: "", //绫诲埆鎼滅储 @@ -591,208 +474,55 @@ idds: "", amendtag: false, //鏄惁淇敼绫诲埆 dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 - deleteVisible: false, //鍒嗙被鍒犻櫎寮规 - deletefenl: "楂樿鍘�", //鍒犻櫎椤� - classifyform: { - categoryname: "", - }, //绫诲埆琛ㄥ崟 - optionss: [ - { - value: 1, - label: "涓滃崡", - }, - { - value: 2, - label: "瑗垮寳", - }, - { - value: 3, - label: "浠ㄤ花浠�", - }, - { - value: 4, - label: "鍏椋掗", - }, - ], - //绫诲埆鍒楄〃 - editableTabs: [ - { - title: "闂嵎鍒嗙被涓�", - number: "1", - }, - { - title: "闂嵎鍒嗙被浜�", - number: "2", - }, - { - title: "闂嵎鍒嗙被涓�", - number: "2", - }, - { - title: "闂嵎鍒嗙被鍥�", - number: "2", - }, - { - title: "闂嵎鍒嗙被浜�", - number: "2", - }, - ], - editableTabsky: [ - { - title: "鍙敤", - number: "1", - }, - { - title: "鍋滅敤", - number: "2", - }, - ], + classifyform: {}, //绫诲埆琛ㄥ崟 + indexid: null, + inputValue: "", + radio: "涓诲垎绫�", + inputVisible: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + deptOptions: [], + optionsillness: [], + illnesslistapi: [], + illnesslist: [], + defaultProps: { + children: "svyLibTopicCategoryList", + label: "indexAssortName", + }, + mode: [], + languagelist: [], + qyoptions: [], + editableTabs: [], + // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, pageSize: 10, - userName: undefined, - phonenumber: undefined, - status: undefined, - deptId: undefined, - IDnumber: undefined, }, - // 鍒椾俊鎭� - columns: [ - { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true }, - { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true }, - { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true }, - { key: 3, label: `閮ㄩ棬`, visible: true }, - { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, - { key: 5, label: `鐘舵�乣, visible: true }, - { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, - ], // 琛ㄥ崟鏍¢獙 - rules: { - userName: [ - { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 2, - max: 20, - message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - nickName: [ - { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }, - ], - password: [ - { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - { - min: 5, - max: 20, - message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - trigger: "blur", - }, - ], - email: [ - { - type: "email", - message: "璇疯緭鍏ユ纭殑閭鍦板潃", - trigger: ["blur", "change"], - }, - ], - phonenumber: [ - { - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, - message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", - trigger: "blur", - }, - ], - IDnumber: [ - { - pattern: - /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, - message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", - trigger: "blur", - }, - ], - }, + rules: {}, }; }, watch: {}, created() { this.getList(); + // this.getDeptTree(); + this.mode = store.getters.mode; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.usable; + this.editableTabs = store.getters.editableTabs; }, methods: { /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ getList() { - // this.loading = true; - listUser().then((response) => { - console.log(response); - // this.userList = response.data; - // this.total = response.total; - // this.loading = false; - console.log(this.userList); + this.loading = true; + getQtemplatelist(this.queryParams).then((response) => { + this.userList = response.rows; + this.total = response.total; + this.loading = false; }); - // const { rows } = await listUser(); - // console.log(rows); - // this.list = rows; }, - // 娣诲姞銆佷慨鏀圭被鍒� - submitsidecolumn() { - if (this.amendtag) { - this.classifyform.tagcategoryid = this.idds; - // toamendtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } else { - // addtagcategory(this.addDateRange(this.classifyform)).then( - // (response) => { - // console.log(response); - // this.gitclasify(); - // } - // ); - } - this.classifyform = { - categoryname: "", - }; - this.idds = ""; - this.dialogFormVisible = false; - }, - //鍒犻櫎鍒嗙被 - deletefenlei(row) { - if (this.deleteVisible) { - // deletetagcategory(this.idds).then((response) => { - // console.log(response); - // this.gitclasify(); - // }); - this.deleteVisible = false; - this.idds = ""; - } else { - this.deleteVisible = true; - this.idds = row.tagcategoryid; - this.deletefenl = row.title; - } - }, - // 渚ц竟-------------- - handleOpen(key, keyPath) { - console.log(key, keyPath); - }, - handleClose(key, keyPath) { - console.log(key, keyPath); - }, - handleSelect(key, keyPath) { - console.log(key, keyPath); - }, - //鎼滅储绫诲埆 - sidecolumnss() {}, - // 鍒囨崲鍏变韩/鏈湴 - tophandleClick() {}, - // 鍙栨秷鎸夐挳 - cancel() { - this.open = false; - this.reset(); - }, + goQRCode(row) { this.goQRCodeVisible = true; this.namequestionnaire = row.userName; @@ -801,7 +531,7 @@ // 琛ㄥ崟閲嶇疆 reset() { this.form = { - userId: undefined, + svyid: undefined, deptId: undefined, userName: undefined, nickName: undefined, @@ -831,7 +561,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.userId); + this.ids = selection.map((item) => item.svyid); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -845,44 +575,217 @@ handleUpdate(row) { this.$router.push({ path: "/knowledge/questionnaire/compilequer/", - query: { id: "1" }, + query: { id: row.svyid }, }); }, // 鏌ョ湅闂嵎 - ViewQuestionnaire() { + ViewQuestionnaire(row) { this.$router.push({ path: "/knowledge/questionnaire/examine/", + query: { id: row.svyid }, + }); + }, + + // 鐤剧梾----------------------- + illnessUpdate(row) { + this.illnessVisible = true; + this.indexid = row.svyid; + this.illnesslistapi = []; + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + }; + getillnesslist(illnessqueryParams).then((response) => { + console.log(response); + this.optionsillness = response.rows; + }); + getillness({ outid: row.svyid, type: 5 }).then((res) => { + this.illnesslist = res.rows; + console.log(res); + }); + }, + handleCloseillness(tag) { + this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); + if (tag.id) { + this.illnesslistapi.push(tag.id); + } + }, + remoteMethod(value) { + console.log(value); + const illnessqueryParams = { + pageNum: 1, + pageSize: 100, + icdname: value, + }; + this.loading = true; + setTimeout(() => { + this.loading = false; + getillnesslist(illnessqueryParams).then((response) => { + this.optionsillness = response.rows; + }); + }, 200); + }, + illnessConfirm(item) { + let opeavalue = {}; + let tagname = this.inputValue; + illnesslistget(item).then((res) => { + opeavalue = res.data; + opeavalue.outid = this.indexid; + opeavalue.type = 5; + opeavalue.icd10id = opeavalue.icdid; + opeavalue.icd10name = opeavalue.icdname; + opeavalue.icd10code = opeavalue.icdcode; + if (tagname) { + this.illnesslist.push(opeavalue); + } + }); + console.log(this.illnesslist); + this.inputVisible = false; + this.inputValue = ""; + }, + 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("缂栬緫鎴愬姛"); + }, + showInput() { + this.inputVisible = true; + }, + + // 鍒嗙被鏍�----------------------------------------- + // 淇敼鍒嗙被寮规 + + // 鏌ヨ鏍� + getDeptTree() { + getQtemplateclassify({}).then((res) => { + this.deptOptions = res.rows; + console.log(res); + }); + }, + + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.indexAssortName && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.id == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + calssvalue.ivrLibaTemplateAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTemplateAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + addQtemplateclassify(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�') + .then(function () { + return delQtemplateclassify(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.indexAssortName + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delQtemplateclassify(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.indexAssortName.indexOf(value) !== -1; + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); + }, + + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + svyid: undefined, + deptId: undefined, + userName: undefined, + nickName: undefined, + password: undefined, + phonenumber: undefined, + email: undefined, + sex: undefined, + status: "0", + remark: undefined, + postIds: [], + roleIds: [], + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.queryParams.deptId = undefined; + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.svyid); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.$router.push({ + path: "/knowledge/verbaltrick/particulars/", query: { id: "1" }, }); }, - /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ - submitForm: function () { - this.$refs["form"].validate((valid) => { - if (valid) { - if (this.form.userId != undefined) { - updateUser(this.form).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - addUser(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.userId || this.ids; + const svyids = row.svyid || this.ids; this.$modal - .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + svyids + '"鐨勬暟鎹」锛�') .then(function () { - return delUser(userIds); + return delQtemplateinfo(svyids); }) .then(() => { this.getList(); @@ -987,6 +890,46 @@ font-size: 20px; } } +.xinz-infs { + font-size: 18px; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} + +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} .button-text { color: rgb(70, 204, 238); } diff --git a/src/views/repositoryai/general/index.vue b/src/views/repositoryai/general/index.vue new file mode 100644 index 0000000..4388313 --- /dev/null +++ b/src/views/repositoryai/general/index.vue @@ -0,0 +1,793 @@ +<template> + <div class="Questionnairemanagement"> + <!-- 宸︿晶鏍� --> + <div class="sidecolumn"> + <div class="sidecolumn-top"> + <div class="top-wj">閫氱敤搴撶被鍨�</div> + <div class="top-tj" @click="dialogFormVisible = true">+娣诲姞</div> + </div> + <div class="center-ss"> + <el-input + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="sidecolumnval" + class="input-with-select" + size="medium " + > + </el-input> + </div> + + <div class="head-container" style="margin-top: 20px"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" + > + <span class="custom-tree-node" slot-scope="{ node, data }"> + <span>{{ node.label }}</span> + <span> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" + > + </el-button> + </span> + </span> + </el-tree> + </div> + </div> + <!-- 鍙充晶鏁版嵁 --> + <div class="leftvlue"> + <div class="leftvlue-bg"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-col :span="24" :xs="24"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="閫氱敤搴撳悕绉�" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="闂涓婚" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + + <el-form-item label="閫傜敤鏂瑰紡" prop="shape"> + <el-select v-model="queryParams.value" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in mode" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + + <el-form-item label="閫傜敤闄㈠尯" prop="classify"> + <el-select + v-model="queryParams.classifyvalue" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="(item, index) in courtyardlist" + :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" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + @click="handleAdd" + v-hasPermi="['system:user:add']" + >鏂板</el-button + > + </el-col> + + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button + > + </el-col> + </el-row> + <el-table + v-loading="loading" + :data="targetList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="50" align="center" /> + <el-table-column + label="搴忓彿" + align="center" + key="targetid" + prop="targetid" + /> + <el-table-column + label="閫氱敤搴撳悕绉�" + align="center" + key="extName" + prop="extName" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="閫氱敤搴撹鏄�" + align="center" + key="note" + width="250" + prop="note" + :show-overflow-tooltip="true" + > + </el-table-column> + <el-table-column + label="鐗堟湰鍙�" + align="center" + key="version" + prop="version" + /><el-table-column + label="閫傜敤鏂瑰紡" + align="center" + key="suitWay" + prop="suitWay" + width="120" + > + <template slot-scope="scope"> + <span v-for="item in scope.row.suitWay">{{ item }}</span> + </template> + </el-table-column> + + <el-table-column + label="璇█" + align="center" + key="language" + prop="language" + width="120" + /> + + <el-table-column + label="鏄惁鍙敤" + align="center" + key="isEnable" + prop="isEnable" + > + <template slot-scope="scope"> + <dict-tag :options="usable" :value="scope.row.isEnable" /> + </template> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + align="center" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button + > + + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + ><span class="button-textsc" + ><i class="el-icon-delete"></i>鍒犻櫎</span + ></el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </el-col> + </el-row> + </div> + </div> + + <!-- 娣诲姞绫诲埆寮规 --> + <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible"> + <!-- <div style="text-align: center; margin-bottom: 20px"> + <el-radio-group v-model="radio"> + <el-radio-button label="涓诲垎绫�"></el-radio-button> + <el-radio-button label="瀛愬垎绫�"></el-radio-button> + </el-radio-group> + </div> --> + <!-- <el-divider></el-divider> --> + + <el-form :model="classifyform"> + <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'"> + <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in deptOptions" + :key="item.intertcatid" + :label="item.categoryname" + :value="item.intertcatid" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> + <el-input + v-model="classifyform.categoryname" + autocomplete="off" + ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { + getgenerallist, + addgeneral, + editgeneral, + delgeneralinfo, + delgeneralclassify, + getgeneralclassify, + addgeneralclassify, +} from "@/api/AiCentre/index"; +import { getToken } from "@/utils/auth"; +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +import { listtag } from "@/api/system/label"; +import store from "@/store"; + +export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, + data() { + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + // 閬僵灞� + loading: false, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + measurement: false, + languagelist: [], + usable: [], + indexid: null, + // 鎬绘潯鏁� + total: 0, + idds: "", + amendtag: false, //鏄惁淇敼绫诲埆 + dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 + deleteVisible: false, //鍒嗙被鍒犻櫎寮规 + deletefenl: "楂樿鍘�", //鍒犻櫎椤� + radio: "涓诲垎绫�", + testvalue: "", + testgovalue: "", + classifyform: { + categoryname: "", + }, //绫诲埆琛ㄥ崟 + // 琛ㄦ牸鏁版嵁 + targetList: null, + testuserList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + + // 娣诲姞銆佷慨鏀瑰弬鏁� + indexform: {}, + + sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 + dialogFormVisible: false, //娣诲姞绫诲埆寮规 + sidecolumnval: "", //绫诲埆鎼滅储 + indexopen: false, //寮规灞曠ず鍚� + courtyardlist: [], + mode: [], + optionstag: [], + targetoptionList: [], + deptOptions: [], + defaultProps: { + children: "ivrLibaTargetAssortList", + label: "categoryname", + }, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + }, + + // 琛ㄥ崟鏍¢獙 + rules: {}, + }; + }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + sidecolumnval(val) { + this.$refs.tree.filter(val); + }, + }, + created() { + this.getList(); + this.getDeptTree(); + this.mode = store.getters.mode; + this.valuetype = store.getters.valuetype; + this.languagelist = store.getters.languagelist; + this.courtyardlist = store.getters.courtyardlist; + this.usable = store.getters.usable; + }, + + methods: { + /** 鏌ヨ閫氱敤搴撳垪琛� */ + getList() { + this.loading = true; + getgenerallist(this.queryParams).then((res) => { + this.targetList = res.rows; + this.total = res.total; + console.log(this.targetList); + this.loading = false; + }); + }, + + processElement(element) { + return { ...element, isoperation: 1 }; + }, + getIndexInArray(arr, obj) { + return arr.indexOf(obj); + }, + + //鍒犻櫎鍒嗙被 + deletefenlei(row) { + if (this.deleteVisible) { + // deletetagcategory(this.idds).then((response) => { + // console.log(response); + // this.gitclasify(); + // }); + this.deleteVisible = false; + this.idds = ""; + } else { + this.deleteVisible = true; + this.idds = row.tagcategoryid; + this.deletefenl = row.title; + } + }, + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + getDeptTree() { + getgeneralclassify({}).then((res) => { + this.deptOptions = res.rows; + console.log(res); + }); + }, + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.categoryname.indexOf(value) !== -1; + }, + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + let calssvalue = {}; + if ( + this.classifyform.pid && + this.classifyform.categoryname && + this.radio == "瀛愬垎绫�" + ) { + const index = this.deptOptions.findIndex( + (obj) => obj.intertcatid == this.classifyform.pid + ); + calssvalue = this.deptOptions[index]; + console.log(calssvalue); + calssvalue.ivrLibaTargetAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.categoryname) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTargetAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + + addgeneralclassify(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.categoryname + '"鐨勬暟鎹」锛�') + .then(function () { + return delgeneralclassify(b.intertcatid); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.categoryname + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delgeneralclassify(b.intertcatid); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + handleNodeClick(data) { + this.queryParams.groupID = data.intertcatid; + this.getList(); + }, + + // 鍙栨秷鎸夐挳 + cancel() { + this.indexopen = false; + this.reset(); + }, + + // 琛ㄥ崟閲嶇疆 + reset() { + this.indexform = { + suitWay: undefined, + targetid: undefined, + targetdesc: undefined, + baseTagList: [], + targetoptionList: [], + }; + this.resetForm("indexform"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.queryParams = { + pageNum: 1, + pageSize: 10, + }; + this.resetForm("queryForm"); + this.getList(); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.targetid); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.title = "鏂板閫氱敤搴�"; + this.indexform = { + baseTagList: [], + targetoptionList: [], + }; + this.testuserList = [ + { + guid: 1, + isoperation: 1, + targettype: "1", + targetvalue: "", + targetregex: "", + }, + ]; + this.indexopen = true; + this.measurement = false; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.$router.push({ + path: "/knowledge/general/particulars/", + query: { id: row.id }, + }); + }, + handlemeasurement(row) { + this.reset(); + this.title = "閫氱敤搴撹鎯�"; + this.indexopen = true; + this.measurement = true; + }, + // 淇敼鍒嗙被寮规 + popoveramend(tagcategoryid) { + this.idds = tagcategoryid; + this.amendtag = true; + this.dialogFormVisible = true; + }, + + /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ + submitForm: function () { + // this.indexform.targetoptionList=[] + this.$refs["indexform"].validate((valid) => { + this.indexform.targetoptionList = this.testuserList.concat( + this.targetoptionList + ); + if (valid) { + if (this.indexform.targetid != undefined) { + this.indexform.isoperation = 2; + editgeneral(this.indexform).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } else { + this.indexform.targettype = "1"; + this.indexform.isoperation = 1; + addgeneral(this.indexform).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.targetid || this.ids; + this.$modal + .confirm('鏄惁纭鍒犻櫎閫氱敤搴撳悕绉颁负"' + row.targetname + '"鐨勬暟鎹」锛�') + .then(function () { + return delgeneralinfo(userIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + }, +}; +</script> + +<style lang="scss" scoped> +.Questionnairemanagement { + display: flex; +} +.xinz-inf { + font-size: 18px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} +.xinz-infs { + font-size: 18px; + overflow: hidden; + text-overflow: ellipsis; + + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } + .button-new-tag { + margin-left: 10px; + height: 32px; + line-height: 30px; + padding-top: 0; + padding-bottom: 0; + } + .input-new-tag { + width: 90px; + margin-left: 10px; + vertical-align: bottom; + } +} +.sidecolumn { + width: 300px; + min-height: 100vh; + text-align: center; + // display: flex; + margin-top: 20px; + margin: 20px; + padding: 30px; + background: #edf1f7; + 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); + .sidecolumn-top { + display: flex; + justify-content: space-between; + .top-wj { + font-size: 20px; + } + .top-tj { + font-size: 18px; + + color: rgb(0, 89, 255); + cursor: pointer; + } + } + .center-ss { + margin-top: 30px; + .input-with-select { + height: 40px !important; + } + } + .bottom-fl { + margin-top: 30px; + display: center !important; + } +} +.qrcode-dialo { + text-align: center; + // display: flex; + margin: 20px; + padding: 30px; + background: #edf1f7; + 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); + .qrcode-text { + font-size: 20px; + span { + margin-left: 20px; + } + } + .qrcode-img { + width: 300px; + height: 400px; + } +} +::v-deep.el-tabs--left, +.el-tabs--right { + overflow: hidden; + align-items: center; + display: flex; +} +::v-deep.el-input--medium .el-input__inner { + height: 40px !important; +} +::v-deep.el-tabs--right .el-tabs__active-bar.is-right { + height: 40px; + width: 5px; + left: 0; +} +::v-deep.el-tabs--right .el-tabs__item.is-right { + display: block; + font-size: 20px; +} +.leftvlue { + // display: flex; + // flex: 1; + width: 80%; + margin-top: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + 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); + .mulsz { + font-size: 20px; + } +} +::v-deep .el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 46px; + font-size: 20px; + cursor: pointer; +} +::v-deep .el-button--mini.is-circle { + padding: 7px; + margin: 0; + color: red; +} +.button-text { + color: rgb(70, 204, 238); +} +.button-textcs { + color: rgb(39, 167, 67); +} +.button-textxg { + color: rgb(35, 81, 233); +} +.button-textsc { + color: rgb(235, 23, 23); +} +</style> diff --git a/src/views/repositoryai/general/particulars/index.vue b/src/views/repositoryai/general/particulars/index.vue new file mode 100644 index 0000000..be402e9 --- /dev/null +++ b/src/views/repositoryai/general/particulars/index.vue @@ -0,0 +1,307 @@ +<template> + <div> + <el-card style="margin: 20px" class="box-card"> + <div class="elcardiv"> + <div class="leftvlue-jbxx">璇濇湳鍒楄〃</div> + <el-divider></el-divider> + + <el-table :data="targetList" :row-class-name="tableRowClassName"> + <el-table-column + label="搴忓彿" + align="center" + key="targetid" + prop="targetid" + /> + <el-table-column + label="闂涓婚锛堢己锛�" + align="center" + key="extName" + prop="extName" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="闂鏂囨湰" + align="center" + key="switchText" + width="250" + prop="switchText" + :show-overflow-tooltip="true" + > + </el-table-column> + <el-table-column + label="鍥炲璇煶锛堢己锛�" + align="center" + key="switchTexty" + width="200" + prop="switchTexty" + :show-overflow-tooltip="true" + > + </el-table-column> + <el-table-column + label="閫傜敤鏂瑰紡锛堢己锛�" + align="center" + key="suitWay" + prop="suitWay" + > + <template slot-scope="scope"> + <span v-for="item in scope.row.suitWay">{{ item }}</span> + </template> + </el-table-column> + + <el-table-column + label="璇█锛堢己锛�" + align="center" + key="language" + prop="language" + width="120" + /> + <el-table-column + label="鏄惁鍙敤锛堟敼锛�" + align="center" + key="isEnable" + prop="isEnable" + > + <template slot-scope="scope"> + <dict-tag :options="usable" :value="scope.row.isEnable" /> + </template> + </el-table-column> + <el-table-column + label="鏈�杩戜慨鏀�" + align="center" + key="updateTime" + width="250" + prop="updateTime" + :show-overflow-tooltip="true" + > + </el-table-column> + + <el-table-column + label="鎿嶄綔" + align="center" + width="200" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button + > + + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + ><span class="button-textsc" + ><i class="el-icon-delete"></i>鍒犻櫎</span + ></el-button + > + </template> + </el-table-column> + </el-table> + <div style="margin: 15px; margin-top: 50px"> + <div class="leftvlue-jbxx">璇濇湳缂栬緫</div> + <el-divider></el-divider> + <el-form + :model="ruleForm" + :rules="rules" + ref="ruleForm" + label-width="100px" + class="demo-ruleForm" + > + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="闂涓婚" prop="name"> + <el-input v-model="ruleForm.name" placeholder="璇疯緭鍏�"></el-input> </el-form-item + ></el-col> + <el-col :span="12"> + <el-form-item label="鏄惁鍙敤" prop="resource"> + <el-select + v-model="ruleForm.assortid" + placeholder="璇烽�夋嫨鐘舵��" + > + <el-option + v-for="item in usable" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </el-row> + + <el-form-item label="闂鏂囨湰" prop="name"> + <el-input v-model="ruleForm.name" placeholder="璇疯緭鍏�"></el-input> + </el-form-item> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="璇█" prop="resource"> + <el-select v-model="ruleForm.language" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in languagelist" + :key="item.label" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閫傜敤鏂瑰紡" prop="resource"> + <el-select v-model="ruleForm.mode" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in mode" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </el-row> + <el-form-item label="闂璇煶" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + action="https://jsonplaceholder.typicode.com/posts/" + :on-change="handleChange" + :file-list="fileList" + :limit="1" + :on-exceed="handleExceed" + > + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + </el-upload> + <!-- <el-input v-model="indexform.userName" maxlength="30" /> --> + </el-form-item> + + <el-form-item label="鍖归厤鏂囨湰" prop="desc"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ尮閰嶆鍒�" v-model="ruleForm.desc"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm('ruleForm')" + >绔嬪嵆鍒涘缓</el-button + > + <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button> + </el-form-item> + </el-form> + </div> + </div> + </el-card> + </div> +</template> + +<script> +import store from "@/store"; +import { + editgeneravaluel, + addgeneravaluel, + getgeneravaluelinfo, + delgeneravaluelinfo, + getgeneravaluellist, +} from "@/api/AiCentre/index"; +export default { + data() { + return { + loading: false, + id: null, + usable: [], + languagelist: [], + mode: [], + pitchon: "杩樺ソ鍚�", + targetList: [{ switchText: "杩樺ソ鍚�" }, { switchText: "杩樹笉閿�" }], + fileList: [ + { + name: "food.jpeg", + url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", + }, + ], + ruleForm: { + name: "", + region: "", + date1: "", + date2: "", + delivery: false, + type: [], + resource: "", + desc: "*(浜簗鎵搢鐝晩|鍞旂郴鐪熶汉(杈箌鍜絴鍜�)*(鍗曚綅|鍦版柟鍖婚櫌|涓績|鍗敓|璁憳|鏈嶅姟)", + }, + rules: {}, + }; + }, + + created() { + // this.getList(); + this.usable = store.getters.usable; + this.languagelist = store.getters.languagelist; + this.mode = store.getters.mode; + }, + + methods: { + getList() { + this.loading = true; + this.id = this.$route.query.id; + getgeneravaluelinfo({ pid: this.id }).then((res) => { + this.targetList = res.rows; + console.log(this.targetList); + this.loading = false; + }); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() {}, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.pitchon = row.switchText; + }, + submitForm() {}, + resetForm() {}, + // 鏂囦欢---------------------- + // 鎺у埗鏂囦欢 + handleChange(file, fileList) { + this.fileList = fileList.slice(-3); + }, + // 鏂囦欢瓒呭嚭涓暟闄愬埗鏃剁殑閽╁瓙 + handleExceed(files, fileList) { + this.$message.warning( + `褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${ + files.length + fileList.length + } 涓枃浠禶 + ); + }, + tableRowClassName({ row, rowIndex }) { + if (row.switchText == this.pitchon) { + console.log(123); + return "warning-row"; + } + return ""; + }, + }, +}; +</script> + +<style lang="scss" scoped> +.elcardiv { + padding: 10px; + .leftvlue-jbxx { + font-size: 24px; + border-left: 5px solid #5788fe; + padding-left: 5px; + margin: 15px 0; + } +} +.button-textxg { + color: rgb(35, 81, 233); +} +.button-textsc { + color: rgb(235, 23, 23); +} +::v-deep.el-table .warning-row { + background: rgb(193, 208, 250); +} +</style> diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue index 80ce5cb..b7ae1d0 100644 --- a/src/views/repositoryai/intention/index.vue +++ b/src/views/repositoryai/intention/index.vue @@ -173,8 +173,8 @@ <el-table-column label="搴忓彿" align="center" - key="targetID" - prop="targetID" + key="targetid" + prop="targetid" /> <el-table-column label="鍊肩被鍨�" @@ -827,7 +827,7 @@ // 鐤剧梾----------------------- illnessUpdate(row) { this.illnessVisible = true; - this.indexid = row.targetID; + this.indexid = row.targetid; this.illnesslistapi = []; const illnessqueryParams = { pageNum: 1, @@ -837,7 +837,7 @@ console.log(response); this.optionsillness = response.rows; }); - getillness({ outid: row.targetID, type: 1 }).then((res) => { + getillness({ outid: row.targetid, type: 1 }).then((res) => { this.illnesslist = res.rows; console.log(res); }); @@ -1082,7 +1082,7 @@ reset() { this.indexform = { suitWay: undefined, - targetID: undefined, + targetid: undefined, targetdesc: undefined, baseTagList: [], targetoptionList: [], @@ -1104,7 +1104,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.ids = selection.map((item) => item.targetID); + this.ids = selection.map((item) => item.targetid); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -1161,7 +1161,7 @@ this.targetoptionList ); if (valid) { - if (this.indexform.targetID != undefined) { + if (this.indexform.targetid != undefined) { this.indexform.isoperation = 2; gettargetInfoedit(this.indexform).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); @@ -1182,7 +1182,7 @@ }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { - const userIds = row.targetID || this.ids; + const userIds = row.targetid || this.ids; this.$modal .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�') .then(function () { diff --git a/src/views/repositoryai/templateku/index.vue b/src/views/repositoryai/templateku/index.vue index 0cca167..d09ab6b 100644 --- a/src/views/repositoryai/templateku/index.vue +++ b/src/views/repositoryai/templateku/index.vue @@ -210,7 +210,7 @@ > <template slot-scope="scope"> <div v-if="scope.row.deptNames"> - <span v-for="item in scope.row.deptNames.split(",")" + <span v-for="item in scope.row.deptNames.split(',')" >{{ item }} </span> </div> @@ -225,15 +225,15 @@ width="160" :show-overflow-tooltip="true" > - <template slot-scope="scope" > + <template slot-scope="scope"> <div v-if="scope.row.labelInfo"> - <span v-for="item in JSON.parse(scope.row.labelInfo)" - >{{ item.tagname }}</span> + <span v-for="item in JSON.parse(scope.row.labelInfo)">{{ + item.tagname + }}</span> </div> <div v-else> <span>鏃�</span> </div> - </span> </template> </el-table-column> <el-table-column @@ -244,9 +244,11 @@ width="160" :show-overflow-tooltip="true" > - <template slot-scope="scope" > + <template slot-scope="scope"> <div v-if="scope.row.campus"> - <span v-for="item in JSON.parse(scope.row.campus)">{{ item.label }} </span> + <span v-for="item in JSON.parse(scope.row.campus)" + >{{ item.label }} + </span> </div> <div v-else> <span>鏃�</span> diff --git a/src/views/repositoryai/verbaltrick/particulars/index.vue b/src/views/repositoryai/verbaltrick/particulars/index.vue index f1d3662..0d3bd1b 100644 --- a/src/views/repositoryai/verbaltrick/particulars/index.vue +++ b/src/views/repositoryai/verbaltrick/particulars/index.vue @@ -157,7 +157,7 @@ @click="addvariable(item)" ></el-button> <el-button - v-if="item" + v-if="item" type="danger" icon="el-icon-delete" circle @@ -578,9 +578,7 @@ ], qyoptions: [], options: [], - variablelist: [ - - ], + variablelist: [], addvalue: "娣诲姞棰樼洰", languagelist: [], //璇█鍒楄〃 @@ -613,7 +611,9 @@ getverbaltrick({ id: id }).then((res) => { this.indexform = res.data; this.indexform.assortid = parseInt(this.indexform.assortid); - this.variablelist = JSON.parse(this.indexform.parameter)?JSON.parse(this.indexform.parameter):[{name:'',value:''}]; + this.variablelist = JSON.parse(this.indexform.parameter) + ? JSON.parse(this.indexform.parameter) + : [{ name: "", value: "" }]; this.dynamicTags = this.indexform.ivrLibaScriptTagList.map( this.processElement ); @@ -671,7 +671,7 @@ if (this.indexform.ivrLibaScriptTargetoptionList.length) { return this.Editprogress++; } - gettargetInfo({ targetID: this.indexform.targetid }).then((res) => { + gettargetInfo({ targetid: this.indexform.targetid }).then((res) => { this.indexform.isenable = res.rows[0].isenable; this.indexform.targetname = res.rows[0].targetname; res.rows[0].targetoptionList.forEach((item) => { -- Gitblit v1.9.3