From 1811ac2572dc2e7116f8ba4ea537abf7d57dd61e Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 02 八月 2024 16:31:01 +0800 Subject: [PATCH] 测试完成 --- src/views/repositoryai/intention/index.vue | 1567 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,562 insertions(+), 5 deletions(-) diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue index 4d9a53b..5950bd3 100644 --- a/src/views/repositoryai/intention/index.vue +++ b/src/views/repositoryai/intention/index.vue @@ -1,17 +1,1574 @@ <template> - <div>鎰忓浘搴�</div> + <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 v-if="data.id > 0"> + <el-button + type="text" + icon="el-icon-delete" + circle + size="mini" + @click="() => remove(node, data)" + > + </el-button> + </span> + <span v-if="data.id > 0"> + <el-button + type="text" + circle + size="mini" + @click="() => altertag(node, data)" + ><span class="button-textxg" + ><i class="el-icon-edit-outline"></i + ></span> + </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.targetname" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鏍囩鍚嶇О" prop="userName"> + <el-input + v-model="queryParams.tagName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="閫傜敤鍦烘櫙" prop="shape"> + <el-select v-model="queryParams.suitWay" 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.scriptType" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="(item, index) in qyoptions" + :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.isAvailable" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="(item, index) in usable" + :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-col :span="1.5"> </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="搴忓彿" + fixed + align="center" + key="id" + prop="id" + /> --> + <el-table-column + label="鎸囨爣绫诲瀷" + fixed + align="center" + key="scriptType" + prop="scriptType" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + <dict-tag + :options="valuetypelb" + :value="scope.row.scriptType" + /> + </template> + </el-table-column> + <el-table-column + label="鎸囨爣鍚嶇О" + align="center" + key="targetname" + prop="targetname" + :show-overflow-tooltip="true" + > + </el-table-column> + + <!-- <el-table-column + label="姝e父鍊艰寖鍥�" + align="center" + key="warndown" + prop="warndown" + width="200" + > + <template slot-scope="scope"> + <span>{{ scope.row.warnup }}~{{ scope.row.warndown }}</span> + </template> + </el-table-column> --> + <el-table-column + label="鎸囨爣鎻忚堪" + align="center" + key="targetdesc" + prop="targetdesc" + width="200" + /><el-table-column + label="閫傜敤鍦烘櫙" + align="center" + key="suitWayList" + prop="suitWayList" + width="120" + > + <template slot-scope="scope"> + <dict-tag :options="mode" :value="scope.row.suitWayList" /> + </template> + </el-table-column> + <el-table-column + label="閫傜敤鐤剧梾" + align="center" + key="suitDisease" + prop="suitDisease" + 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="璇█" + align="center" + key="language" + prop="language" + width="120" + /> + <el-table-column + label="鏄惁鍙敤" + align="center" + key="isAvailable" + prop="isAvailable" + > + <template slot-scope="scope"> + <dict-tag :options="usable" :value="scope.row.isAvailable" /> + </template> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + fixed="right" + 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="handlemeasurement(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textcs" + ><i class="el-icon-help"></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> + + <!-- 娣诲姞鎴栦慨鏀规寚鏍囬厤缃璇濇 --> + <el-dialog + :title="title" + :visible.sync="indexopen" + :close-on-click-modal="false" + width="900px" + append-to-body + > + <el-form + ref="indexform" + :model="indexform" + :rules="rules" + label-width="100px" + > + <el-row v-if="!measurement"> + <el-col :span="12"> + <el-form-item label="鎸囨爣鍚嶇О" prop="targetname"> + <el-input + v-model="indexform.targetname" + placeholder="璇疯緭鍏ユ寚鏍囧悕绉�" + maxlength="40" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鐗堟湰鍙�" prop="deptId"> + <el-input + v-model="indexform.version" + placeholder="榛樿1.0" + maxlength="40" + /> + </el-form-item> + </el-col> + </el-row> + <!-- deptOptions --> + <el-row v-if="!measurement"> + <el-col :span="8"> + <el-form-item label="鎸囨爣鍒嗙被" prop="assortid"> + <el-select + v-model="indexform.assortid" + size="medium" + filterable + placeholder="璇烽�夋嫨鍒嗙被" + > + <el-option-group + v-for="group in deptOptions" + :key="group.id" + :label="group.indexAssortName" + > + <el-option + v-for="item in group.ivrLibaTargetAssortList" + :key="item.id" + :label="item.indexAssortName" + :value="item.id" + > + </el-option> + </el-option-group> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="璇█" prop="language"> + <el-select + v-model="indexform.language" + placeholder="璇烽�夋嫨璇█" + > + <el-option + v-for="index in languagelist" + :key="index.value" + :label="index.label" + :value="index.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鏄惁鍙敤" prop="isAvailable"> + <el-select + v-model="indexform.isAvailable" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="index in qyoptions" + :key="index.value" + :label="index.label" + :value="index.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row v-if="!measurement"> + <el-col :span="24"> + <el-form-item label="鎸囨爣鎻忚堪" prop="targetdesc"> + <el-input + v-model="indexform.targetdesc" + placeholder="璇疯緭鍏ユ寚鏍囨弿杩�" + id="targetdesc" + @focus="currentInputId = 'targetdesc'" + maxlength="40" + /> + </el-form-item> </el-col + ></el-row> + <el-form-item label="鎻掑叆濉┖" prop="scriptContent"> + <div style="display: flex; margin-bottom: 10px"> + <div class="tsgname" @click="tsgnameto">鎻掑叆濉┖</div> + </div> + </el-form-item> + <el-form-item label="鏍囩" prop="desc" v-if="!measurement"> + <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 + allow-create + default-first-option + 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 + > + </div> + </el-form-item> + <el-row v-if="!measurement"> + <el-col :span="24"> + <el-form-item label="鍊肩被鍨�"> + <el-radio-group v-model="indexform.valueType"> + <el-radio :label="1">閫夐」</el-radio> + <el-radio :label="2">鏂囨湰</el-radio> + <el-radio :label="3">鏁板��</el-radio> + </el-radio-group> + </el-form-item> + </el-col></el-row + > + <el-row v-if="!measurement"> + <el-col :span="24"> + <el-form-item label="棰樼洰绫诲瀷"> + <el-radio-group + @input="Changtype" + v-model="indexform.scriptType" + > + <el-radio :label="1">鍗曢��</el-radio> + <el-radio :label="2">澶氶��</el-radio> + <el-radio :label="3">濉┖</el-radio> + <el-radio :label="4">闂瓟</el-radio> + </el-radio-group> + </el-form-item> + </el-col></el-row + > + + <el-row v-if="!measurement"> + <el-col :span="24"> + <el-form-item label="閫傜敤鍦烘櫙" prop="suitWayList"> + <el-select + class="el-select1" + v-model="indexform.suitWayList" + multiple + @change="changeselect" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="index in mode" + :key="index.value" + :label="index.label" + :value="index.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + + <el-card + class="box-card" + style="margin-bottom: 20px" + v-if="indexform.scriptType == 1 || indexform.scriptType == 2" + > + <Regular + :TargetoptionList="testuserList" + :intent="false" + :hasValue="hasValue" + @addoption="addoption" + @deloption="deloption" + @syioption="syioption" + @xiayioption="xiayioption" + /> + </el-card> + <div v-if="indexform.scriptType == 3"> + <el-form-item label="鏀堕泦淇℃伅"> + <el-card class="box-card"> + <div v-for="item in indexform.targetoptionList"> + <span>{{ "(" + item.orderno + ")" }}</span> + <el-input + type="text" + placeholder="濉叆鏀堕泦淇℃伅" + v-model="indexform.optiondesc" + > + </el-input> + </div> + </el-card> + </el-form-item> + </div> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="娴嬭瘯杈撳叆" prop="nickName"> + <el-input + v-model="indexform.content" + placeholder="璇疯緭鍏ユ祴璇曞唴瀹�" + maxlength="40" + /> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-button type="success" @click="testtagerlist" + >寮�濮嬫祴璇�</el-button + > + </el-col> + </el-row> + </el-form> + <div> + <el-input + type="textarea" + :rows="4" + placeholder="姝ゅ灞曠ず璇嗗埆缁撴灉" + v-model="testgovalue" + > + </el-input> + </div> + <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="鎸囨爣鐤剧梾" :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="illnessVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmillness">纭� 瀹�</el-button> + </span> + </el-dialog> + <!-- 娣诲姞绫诲埆寮规 --> + <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.id" + :label="item.indexAssortName" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇疯緭鍏ョ被鍒悕绉�"> + <el-input + v-model="classifyform.indexAssortName" + autocomplete="off" + ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="getDeptTree()">鍙� 娑�</el-button> + <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> + </div> + </el-dialog> + </div> </template> <script> +import { + gettargetInfo, + particulartarget, + gettargetInfoedit, + testtagerlist, + addtarget, + deletetarget, + getillnesslist, + illnesslistget, + getillness, + deltargetillness, + addtargetillness, + selectIvrLibaTargetAssortList, + addtreeselectIvrLibaTargetAssort, + edittreeselectIvrLibaTargetAssort, + delselectIvrLibaTargetAssort, +} from "@/api/AiCentre/index"; +import { getToken } from "@/utils/auth"; +import Treeselect from "@riophae/vue-treeselect"; +import Regular from "@/components/Regular"; //姝e垯缁勪欢 +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, Regular }, data() { - return {}; + 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: "", + creatype:'',//鎸囨爣涓存椂绫诲瀷 + hasValue: true, + classifyform: { + categoryname: "", + }, //绫诲埆琛ㄥ崟 + // 琛ㄦ牸鏁版嵁 + targetList: null, + testuserList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 宀椾綅閫夐」 + postOptions: [], + // 瑙掕壊閫夐」 + roleOptions: [], + // 娣诲姞銆佷慨鏀瑰弬鏁� + indexform: {}, + numberlb: 22, + numberlbs: 2, + deptOptions: [], + defaultProps: { + children: "ivrLibaTargetAssortList", + label: "indexAssortName", + }, + sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 + dialogFormVisible: false, //娣诲姞绫诲埆寮规 + sidecolumnval: "", //绫诲埆鎼滅储 + indexopen: false, //寮规灞曠ず鍚� + inputVisible: false, + illnessVisible: false, //鎸囨爣鐤剧梾寮规 + inputValue: "", + propss: { multiple: true }, + dynamicTags: [], + illnesslist: [], + illnesslistapi: [], + optionsillness: [], + qyoptions: [], + mode: [], + optionstag: [], + targetoptionList: [], + + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + }, + valuetypelb: [], + + // 琛ㄥ崟鏍¢獙 + rules: { + targetname: [ + { required: true, message: "鎸囨爣鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, + ], + assortid: [ + { required: true, message: "鎸囨爣鍒嗙被涓嶈兘涓虹┖", trigger: "blur" }, + ], + language: [ + { required: true, message: "鎸囨爣璇█涓嶈兘涓虹┖", trigger: "blur" }, + ], + isAvailable: [ + { required: true, message: "鎸囨爣璇█涓嶈兘涓虹┖", trigger: "blur" }, + ], + }, + }; }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + sidecolumnval(val) { + console.log(val); + this.$refs.tree.filter(val); + }, + }, + created() { + // 鍒濆鍖栨暟鎹� + this.getList(); + this.gettabList(); + this.getDeptTree(); + this.mode = store.getters.mode; + this.valuetypelb = store.getters.askvaluetype; + this.languagelist = store.getters.languagelist; + this.qyoptions = store.getters.askvaluetype; + this.usable = store.getters.usable; + }, + methods: { + /** 鏌ヨ鎸囨爣鍒楄〃 */ + getList() { + this.loading = true; + gettargetInfo(this.queryParams).then((res) => { + this.targetList = res.rows; + this.total = res.total; + console.log(this.targetList); + this.loading = false; + }); + }, - created() {}, + processElement(element) { + // 杩斿洖涓�涓柊鐨勫璞★紝灏唀lement瀵硅薄鐨勫睘鎬soperation璁剧疆涓�1 + return { ...element, isoperation: 1 }; + }, + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 + getIndexInArray(arr, obj) { + // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩 + return arr.indexOf(obj); + }, + changeselect(row) { + console.log(row); + this.hasValue = row.includes("2"); + }, + //鍒犻櫎鍒嗙被 + 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; + } + }, + // 渚挎嵎鏍囩 + tsgnameto(row) { + let inputValueArr = ""; + let value = indexform.targetoptionList.length + 1; - methods: {}, + let el = document.querySelector("#" + this.currentInputId); + //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛� + if (this.currentInputId == "targetdesc") { + inputValueArr = this.indexform.targetdesc.split(""); + } else { + return; + } + //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣� + // inputValueArr = this.inputValue.split(""); + // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級 + let selectLength = el.selectionEnd - el.selectionStart; + // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛� + inputValueArr.splice( + el.selectionStart, + selectLength, + "__" + value + "__" + ); + this.indexform.targetoptionList.push({ + orderno: value, + optiondesc: "", + }); + // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪�� + inputValueArr = inputValueArr.join(""); + console.log(inputValueArr); + if (this.currentInputId == "targetdesc") { + this.indexform.targetdesc = inputValueArr; + } else { + return; + } + }, + Changtype(item) { + console.log(item, "閫夐」鍙樻洿鐨勫鐞�"); + if (item==3) { + this.$modal + .confirm('鏇存敼绫诲瀷涓哄~绌哄悗閫夐」灏嗘竻绌烘槸鍚︾户缁紵') + .then(() => { + + }) + .catch(() => { + + }); + } + }, + // 鐤剧梾----------------------- + 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: 1 }).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) { + 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 = "1"; + 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("缂栬緫鎴愬姛"); + }, + + // 鏍囩----------------- + 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.indexform.ivrLibaTargetTagList[lindex].delFlag = 3; + }, + handleInputConfirm() { + 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, + }; + } + console.log(tagvalue); + this.indexform.ivrLibaTargetTagList.push(tagvalue); + this.dynamicTags.push(tagvalue); + console.log(this.indexform.ivrLibaTargetTagList); + console.log(this.dynamicTags); + }); + } + this.inputVisible = false; + this.inputValue = ""; + }, + showInput() { + this.inputVisible = true; + }, + //娴嬭瘯琛ㄥ崟 -------------------------- + addoption() { + const objvakue = { + guid: 1, + id: this.indexform.id, + targettype: this.indexform.targettype, + isoperation: 1, + isabnormal: 0, + targetvalue: "", + targetregex: "", + targetregex2: "", + picturePath: "", + dynamiccruxs: [], + nodynamiccruxs: [], + dynamiccruxsJson: "", + nodynamiccruxsJson: "", + }; + this.testuserList.push(objvakue); + // this.indexform.targetoptionList.push(objvakue); + console.log(this.testuserList); + this.sortFn(); + }, + deloption(item) { + const index = this.testuserList.indexOf(item); + if (index !== -1) { + this.testuserList[index].isoperation = 3; + this.targetoptionList.push(this.testuserList[index]); + console.log(this.targetoptionList, "aaaa.targetoptionList"); + this.testuserList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� + this.sortFn(); + } else { + console.log("鏈壘鍒拌瀵硅薄"); + } + }, + syioption(row) { + const index = this.getIndexInArray(this.testuserList, row); + const item = this.testuserList.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.testuserList.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + this.sortFn(); + }, + xiayioption(row) { + const index = this.getIndexInArray(this.testuserList, row); + const item = this.testuserList.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓� + this.testuserList.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� + this.sortFn(); + }, + sortFn() { + this.testuserList = this.testuserList.map((item, index) => { + return { + guid: index + 1, + targetvalue: item.targetvalue, + targetregex2: item.targetregex2, + targetregex: item.targetregex, + id: this.indexform.id, + targettype: this.indexform.targettype, + isoperation: item.targetoptionid ? 2 : 1, + categoryName: item.categoryName, + language: item.language, + dynamiccruxs: item.dynamiccruxs, + nodynamiccruxs: item.nodynamiccruxs, + dynamiccruxsJson: item.dynamiccruxsJson, + nodynamiccruxsJson: item.nodynamiccruxsJson, + targetoptionid: item.targetoptionid, + isabnormal: item.isabnormal, + picturePath: item.picturePath, + }; + }); + console.log(this.testuserList); + }, + // --------------------- + + /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ + getDeptTree() { + selectIvrLibaTargetAssortList({}).then((res) => { + this.deptOptions = res.rows; + this.dialogFormVisible = false; + }); + }, + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + return data.indexAssortName.indexOf(value) !== -1; + }, + // 娣诲姞绫诲埆鏍� + submitsidecolumn() { + if (this.classifyform.id) { + edittreeselectIvrLibaTargetAssort(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.classifyform = {}; + this.dialogFormVisible = false; + }); + return; + } + 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]; + console.log(calssvalue); + calssvalue.ivrLibaTargetAssortList.push(this.classifyform); + } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) { + this.classifyform.pid = null; + this.classifyform.ivrLibaTargetAssortList = []; + } else { + return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�"); + } + + addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => { + this.getDeptTree(); + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.classifyform = {}; + this.dialogFormVisible = false; + }); + }, + remove(a, b) { + if (b.pid) { + this.$modal + .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�') + .then(function () { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } else { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + + b.indexAssortName + + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�' + ) + .then(() => { + return delselectIvrLibaTargetAssort(b.id); + }) + .then(() => { + this.getDeptTree(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + } + }, + altertag(a, b) { + this.dialogFormVisible = true; + if (!b.pid) { + this.radio = "涓诲垎绫�"; + } else { + this.radio = "瀛愬垎绫�"; + } + this.classifyform = b; + this.dialogFormVisible = true; + }, + handleNodeClick(data) { + this.queryParams.assortid = data.id; + this.getList(); + }, + + // 鍙栨秷鎸夐挳 + cancel() { + this.indexform = null; + this.indexopen = false; + this.reset(); + }, + + // 琛ㄥ崟閲嶇疆 + reset() { + this.indexform = { + suitWayList: undefined, + id: undefined, + targetdesc: undefined, + ivrLibaTargetTagList: [], + targetoptionList: [], + }; + // this.resetForm("indexform"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.queryParams = { + pageNum: 1, + pageSize: 10, + }; + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.title = "鏂板鎸囨爣"; + this.indexform = { + ivrLibaTargetTagList: [], + targetoptionList: [], + }; + this.dynamicTags = []; + this.testuserList = [ + { + targettype: "1", + targetvalue: "", + targetregex: "", + targetregex2: "", + isoperation: 1, + picturePath: "", + dynamiccruxs: [], + nodynamiccruxs: [], + dynamiccruxsJson: "", + nodynamiccruxsJson: "", + }, + ]; + this.indexopen = true; + this.measurement = false; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + this.title = "鎸囨爣璇︽儏"; + this.indexform = {}; + this.indexform = row; + this.indexform.scriptType = Number(row.scriptType); + if (!row.targetoptionList[0]) { + row.targetoptionList = [ + { + targettype: "1", + targetvalue: "", + targetregex: "", + targetregex2: "", + isoperation: 1, + dynamiccruxs: [], + nodynamiccruxs: [], + dynamiccruxsJson: "", + nodynamiccruxsJson: "", + }, + ]; + } + this.dynamicTags = row.ivrLibaTargetTagList.map(this.processElement); + this.testuserList = row.targetoptionList; + console.log(this.testuserList, "bbbb"); + this.testvalue = ""; + this.indexopen = true; + this.measurement = false; + }, + 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.indexform.targetoptionList.map( + // (res) => { + // res.isoperation = 2; + // return res; + // } + // ); + + this.$refs["indexform"].validate((valid) => { + this.indexform.targetoptionList = this.testuserList.concat( + this.targetoptionList + ); + console.log(this.indexform.targetoptionList, "11"); + this.indexform.targetoptionList.forEach((item) => { + if (item.isoperation != 3 && item.targetoptionid) { + console.log(item, "item"); + item.isoperation = 2; + } else { + } + }); + if (valid) { + this.indexform.optionDesc = this.testuserList + .filter((item) => item.isoperation != 3) + .map((item) => item.targetvalue) + .join(", "); + if (!this.indexform.version) this.indexform.version = "1.0"; + if (this.indexform.id != undefined) { + this.indexform.isoperation = 2; + gettargetInfoedit(this.indexform).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } else { + this.indexform.targettype = "1"; + this.indexform.isoperation = 1; + gettargetInfoedit(this.indexform).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } + } + }); + }, + // 娴嬭瘯琛ㄥ崟 + testtagerlist() { + if (this.indexform.content) { + let data = this.indexform; + data.targetoptionList = this.testuserList.concat(this.targetoptionList); + testtagerlist(data).then((res) => { + this.$modal.msgSuccess("娴嬭瘯鎴愬姛"); + this.testgovalue = res.msg; + this.getList(); + }); + } else { + this.$modal.msgError("璇峰~鍐欐祴璇曞唴瀹�"); + return; + } + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.id || this.ids; + this.$modal + .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�') + .then(function () { + return deletetarget(userIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + }, }; </script> -<style lang="scss" scoped></style> +<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: #fff; + 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; + } +} +.tsgname { + width: 90px; + margin-right: 10px; + text-align: center; + cursor: pointer; + height: 40px; + line-height: 40px; + background: #66c18c; + color: #ffff; + font-size: 18px; + border-radius: 5px; +} +.tsgname:hover { + background: #20894d; +} +.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; + } +} +.el-select { + width: 40%; +} +::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-tree { + position: relative; + cursor: default; + border-radius: 5px; + background: #eff8fe; + color: #606266; + border: 1px solid #bbe1fa; + // 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); +} +::v-deep + .el-tree--highlight-current + .el-tree-node.is-current + > .el-tree-node__content { + background-color: #7799fb; + color: #fff; +} +::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> -- Gitblit v1.9.3