From 3dcfdb6a9a1035cc3c4ff34d29f7af0ee2534068 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期五, 10 一月 2025 13:47:27 +0800 Subject: [PATCH] 丽水提交 --- src/views/repositoryai/templateku/configurat/index.vue | 1904 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 1,425 insertions(+), 479 deletions(-) diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue index 32e0931..93e2318 100644 --- a/src/views/repositoryai/templateku/configurat/index.vue +++ b/src/views/repositoryai/templateku/configurat/index.vue @@ -14,13 +14,13 @@ <el-step> <template slot="title"> <span style="cursor: pointer" @click="Editprogress = 2" - >闅忚妯$増棰樼洰</span + >闅忚妯℃澘棰樼洰</span > </template> </el-step> - <el-step description="鏌ョ湅闅忚妯$増棰勮锛屽彲瀵煎嚭PDF"> + <el-step description="鏌ョ湅闅忚妯℃澘棰勮锛屽彲瀵煎嚭PDF"> <template slot="title"> - <span style="cursor: pointer" @click="preview">闅忚妯$増棰勮</span> + <span style="cursor: pointer" @click="preview">闅忚妯℃澘棰勮</span> </template> </el-step> </el-steps> @@ -41,7 +41,7 @@ > <el-row> <el-col :span="12"> - <el-form-item label="妯$増鍚嶇О" prop="region"> + <el-form-item label="妯℃澘鍚嶇О" prop="region"> <div> <el-input v-model="ruleForm.templateName" @@ -51,7 +51,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="闅忚妯$増鍒嗙被" prop="region"> + <el-form-item label="闅忚妯℃澘鍒嗙被" prop="region"> <el-select v-model="ruleForm.assortid" size="medium" @@ -75,16 +75,20 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="妯℃澘绠�浠�" prop="note"> + <div> + <el-input + type="textarea" + placeholder="璇疯緭鍏ョ畝浠�" + v-model="ruleForm.note" + ></el-input> + </div> + </el-form-item> + </el-col> + </el-row> - <el-form-item label="妯$増绠�浠�" prop="note"> - <div style="width: 50%"> - <el-input - type="textarea" - placeholder="璇疯緭鍏ョ畝浠�" - v-model="ruleForm.note" - ></el-input> - </div> - </el-form-item> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="鐗堟湰鍙�" prop="version"> @@ -97,7 +101,7 @@ <el-col :span="12"> <el-form-item label="鍙敤鐘舵��" prop="region"> <el-select - v-model="ruleForm.usestate" + v-model="ruleForm.isenable" size="medium" placeholder="璇烽�夋嫨" > @@ -188,6 +192,7 @@ @change="handleInputConfirm" filterable remote + allow-create reserve-keyword default-first-option :remote-method="remoteMethodtag" @@ -211,47 +216,42 @@ > </div> </el-form-item> - - <el-form-item label="閫傜敤鐤剧梾" prop="region"> - <div class="xinz-inf"> + <div class="xinz-infs"> + <el-form-item label="閫傜敤鐤剧梾" prop="region"> <el-tag - :key="item.icd10name" + v-for="tag in displayedTags" + :key="tag.icdid" type="warning" - v-for="item in illnesslist" - closable :disable-transitions="false" - @close="handleCloseillness(item)" > - {{ item.icd10name }} + {{ tag.icdname }} </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-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> + </el-form-item> + </div> + <div style="margin-left: 120px; margin-bottom: 10px"> + <el-button type="warning" @click="$refs.child.handleAddpatient()" + >鐤剧梾璇︽儏</el-button + > + </div> + <el-form-item label="閫傜敤閫氱敤搴�" prop="region"> + <el-select + style="width: 500px" + v-model="ruleForm.submoduleID" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨閫氱敤搴�" + > + <el-option + class="ruleFormaa" + v-for="item in generallist" + :key="item.id" + :label="item.extName" + :value="item.id" > - <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-option> + </el-select> </el-form-item> <el-form-item label="閫傜敤闄㈠尯" prop="region"> <el-select @@ -272,58 +272,73 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="閫傜敤绉戝" prop="region"> - <el-cascader - style="width: 500px" - v-model="tempDetpRelevanceslist" - :options="deptList" - :props="props" - :show-all-levels="false" - clearable - > - <template slot-scope="{ node, data }"> - <span>{{ data.deptName }}</span> - <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> - </template> - </el-cascader> - </el-form-item> - <el-form-item label="閫氱敤搴�" prop="region"> - <el-select - style="width: 500px" - v-model="ruleForm.submoduleID" - size="medium" - multiple - filterable - placeholder="璇烽�夋嫨搴擄紙澶氶�夛級" - > - <el-option - class="ruleFormaa" - v-for="item in generallist" - :key="item.id" - :label="item.extName" - :value="item.id" - > - </el-option> - </el-select> - </el-form-item> - <el-row :gutter="20"> - <el-col :span="12"> - <el-form-item label="闅忚鍓嶅鐞�" prop="name"> - <el-input - type="textarea" - show-word-limit - v-model="ruleForm.revisitBefore" - ></el-input></el-form-item - ></el-col> - <el-col :span="12"> - <el-form-item label="闅忚鍚庡鐞�" prop="region"> - <el-input - type="textarea" - show-word-limit - v-model="ruleForm.revisitAfter" - ></el-input> </el-form-item + <el-row> + <el-col :span="20" + ><el-form-item label="閫傜敤绉戝" prop="region"> + <el-select + v-model="tempDetpRelevanceslist" + @remove-tag="removetag" + style="width: 55vw" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨绉戝" + > + <el-option + class="ruleFormaa" + v-for="item in flatArray" + :key="item.deptCode" + :label="item.label" + :value="item.deptCode" + > + </el-option> + </el-select> </el-form-item ></el-col> </el-row> + <el-row> + <el-col :span="20" + ><el-form-item label="閫傜敤鐥呭尯" prop="region"> + <el-select + v-model="tempbelongWards" + @remove-tag="removehpsp" + style="width: 55vw" + size="medium" + multiple + filterable + placeholder="璇烽�夋嫨绉戝" + > + <el-option + class="ruleFormaa" + v-for="item in flatArray" + :key="item.deptCode" + :label="item.label" + :value="item.deptCode" + > + </el-option> + </el-select> </el-form-item + ></el-col> + </el-row> + <el-row> + <el-col :span="12" + ><el-form-item label="寮�鍦虹櫧" prop="revisitBefore"> + <el-input + type="textarea" + :rows="3" + v-model="ruleForm.revisitBefore" + placeholder="璇疯緭鍏ュ紑鍦虹櫧" + /> </el-form-item + ></el-col> + <el-col :span="12" + ><el-form-item label="缁撴潫璇�" prop="revisitAfter"> + <el-input + type="textarea" + :rows="3" + v-model="ruleForm.revisitAfter" + placeholder="璇疯緭鍏ョ粨鏉熻" + /> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="8"> <el-form-item label="闈欓粯鏃堕棿(绉�)" prop="name"> @@ -354,14 +369,14 @@ <el-button type="success" @click="Departmenttreatment('ruleForm')" - >{{ task ? "淇濆瓨鍒颁换鍔℃ā鐗�" : "淇濆瓨闅忚妯$増鍩虹淇℃伅" }}</el-button + >{{ task ? "淇濆瓨鍒颁换鍔℃ā鏉�" : "淇濆瓨闅忚妯℃澘鍩虹淇℃伅" }}</el-button > </el-form-item> </el-form> </div> - <!-- 闅忚妯$増璁剧疆 --> + <!-- 闅忚妯℃澘璁剧疆 --> <div v-if="Editprogress == 2"> - <div class="leftvlue-jbxx">闅忚妯$増棰樼洰璁剧疆</div> + <div class="leftvlue-jbxx">闅忚妯℃澘棰樼洰璁剧疆</div> <el-divider></el-divider> <div class="addtopic"> <el-button @@ -371,9 +386,16 @@ @click="getaddtopiclist" >娣诲姞棰樼洰</el-button > + <el-button + type="success" + icon="el-icon-edit-outline" + round + @click="Operateit = !Operateit" + >{{ !Operateit ? "缂栬緫棰樼洰" : "瀹屾暣淇℃伅灞曠ず" }}</el-button + > </div> <div class="presentation"> - <div class="presentation-left"> + <div :class="Operateit ? 'presentation-left' : 'spresentation-left'"> <el-card class="box-card" style="min-height: 688px"> <el-table v-loading="loading" @@ -382,26 +404,51 @@ <el-table-column label="缂栧彿" align="center" - key="targetid" - prop="targetid" + key="sort" + prop="sort" /> <el-table-column label="鏍囬" align="center" - key="questiontitle" - prop="questiontitle" + key="scriptTopic" + prop="scriptTopic" :show-overflow-tooltip="true" /> <el-table-column + v-if="!Operateit" label="闂璇濇湳" align="center" - key="questionText" - prop="questionText" + key="scriptContent" + prop="scriptContent" :show-overflow-tooltip="true" /> + <el-table-column + v-if="!Operateit" + label="闂璇濇湳" + align="center" + key="scriptContent" + prop="scriptContent" + :show-overflow-tooltip="true" + /> + <el-table-column + label="涓嬮璺宠浆" + align="center" + key="nextScriptno" + prop="nextScriptno" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + <span>{{ + scope.row.nextScriptno == 0 + ? "宸叉槸鏈�鍚庝竴棰�" + : scope.row.nextScriptno + }}</span> + </template> + </el-table-column> <el-table-column label="鎿嶄綔" + v-if="Operateit" align="center" width="250" class-name="small-padding fixed-width" @@ -436,34 +483,52 @@ </el-table> </el-card> </div> - <div class="presentation-right"> + <div class="presentation-right" v-if="Operateit"> <el-card class="box-card"> <el-form - :inline="true" :model="topicobj" + :inline="true" class="demo-form-inline" > - <div class="headline"> - 棰樼洰璁剧疆璇︽儏 - <span style="margin-left: 30px" - ><el-button type="primary" @click="Submittopicobj" - >淇濆瓨</el-button - ></span - > - </div> - <el-form-item label="棰樼洰鏍囬"> - <el-input - v-model="topicobj.questiontitle" - placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" - ></el-input> - </el-form-item> - <el-form-item label="闂鑺傜偣"> - <el-input - v-model="topicobj.targetid" - placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" - :disabled="true" - ></el-input> - </el-form-item> + <div class="headline">棰樼洰璁剧疆璇︽儏</div> + <el-row> + <el-col :span="24" + ><el-form-item label="棰樼洰鏍囬"> + <el-input + v-model="topicobj.scriptTopic" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row> + <el-col :span="24" + ><el-form-item label="闂璇濇湳"> + <el-input + type="textarea" + style="width: 600px" + v-model="topicobj.scriptContent" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12" + ><el-form-item label="闂鑺傜偣"> + <el-input + v-model="topicobj.sort" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + :disabled="true" + ></el-input> </el-form-item + ></el-col> + <el-col :span="12" + ><el-form-item label="涓嬮璺宠浆"> + <el-input + v-model="topicobj.nextScriptno" + placeholder="璇疯緭鍏ラ鍙�" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="10"> <el-col :span="12" ><el-form-item label="鏄惁蹇呭~"> @@ -481,14 +546,14 @@ </el-select> </el-form-item ></el-col> <el-col :span="12" - ><el-form-item label="鍙栧�肩被鍨�"> + ><el-form-item label="棰樼洰绫诲瀷"> <el-select - v-model="topicobj.valueType" + v-model="topicobj.scriptType" placeholder="璇烽�夋嫨" :disabled="true" > <el-option - v-for="item in valuetype" + v-for="item in askvaluetype" :key="item.value" :label="item.label" :value="item.value" @@ -497,10 +562,78 @@ </el-select> </el-form-item ></el-col> </el-row> - <div - class="topicxq" - v-if="topicobj.valueType == 2 || topicobj.valueType == 3" + <el-form-item + label="鏄惁鐢遍�夐」閰嶇疆璺宠浆" + v-if="topicobj.scriptType == 1" > + <el-radio-group v-model="topicobj.branchFlag"> + <el-radio :label="'1'">鏄�</el-radio> + <el-radio :label="'0'">鍚�</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1"> + <el-input + style="width: 24vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="topicobj.prompt" + > + </el-input + ></el-form-item> + <el-row> + <el-col :span="24" + ><el-form-item label="璇煶鏂囨湰"> + <el-input + type="textarea" + style="width: 600px" + v-model="topicobj.ivrtext" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="璇煶鏂囦欢" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + :show-file-list="false" + :on-success=" + (response, file) => handleChanges(response, file, 1) + " + accept=".wav,.mp3" + :limit="1" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 18px; margin-top: 10px" + v-if="topicobj.ivrVoice" + >{{ + topicobj.ivrVoice.substring( + topicobj.ivrVoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + topicobj.ivrVoice + ? topicobj.ivrVoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> + </el-row> + <div class="topicxq" v-if="topicobj.scriptType == 4"> <el-row> <el-col :span="20"> <el-form-item label="鏀堕泦鍐呭"> @@ -530,15 +663,19 @@ <Regular :TargetoptionList="topicobj.ivrLibaScriptTargetoptionList" @deloption="deloption" + @branchFlagfn="branchFlagfn" + :branchFlag="topicobj.branchFlag ? true : false" :controlsc="false" + :scriptType="topicobj.scriptType" /> <!-- 鏃犲尮閰嶇被鍨� --> <div class="topicxq"> <el-row :gutter="10"> - <el-col :span="12" + <el-col :span="20" ><el-form-item label="鏃犲尮閰嶈瘽鏈�"> <el-input - type="text" + type="textarea" + style="width: 400px" placeholder="璇疯緭鍏�" v-model="topicobj.noMatchText" show-word-limit @@ -546,46 +683,56 @@ </el-input> </el-form-item ></el-col> </el-row> - <!-- <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="澶勭悊"> - <el-input - type="text" - placeholder="(榛樿)鏃犲0" - v-model="topicobj.text" - maxlength="10" - show-word-limit - > - </el-input> </el-form-item - ></el-col> - </el-row> --> - - <el-row :gutter="10"> - <el-col :span="16"> - <el-form-item label="璇煶鏂囦欢"> + <el-row> + <el-col :span="6"> + <el-form-item label="鏃犲尮閰嶈闊�" prop="verbaltrickyy"> <el-upload class="upload-demo" - style="display: flex" - action="https://jsonplaceholder.typicode.com/posts/" - :on-change="handleChange" - :file-list="fileList" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChanges(response, file, 2) + " + accept=".wav,.mp3" :limit="1" - :on-exceed="handleExceed" > <el-button size="small" type="primary" >鐐瑰嚮涓婁紶</el-button > </el-upload> - </el-form-item></el-col - > + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="topicobj.nomatchvoice" + >{{ + topicobj.nomatchvoice.substring( + topicobj.nomatchvoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + topicobj.nomatchvoice + ? topicobj.nomatchvoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> </el-row> </div> <div class="topicxq"> <el-row :gutter="10"> - <el-col :span="12" + <el-col :span="20" ><el-form-item label="鍚笉娓呰瘽鏈�"> <el-input - type="text" + style="width: 400px" + type="textarea" placeholder="璇疯緭鍏�" v-model="topicobj.noClearlyText" show-word-limit @@ -593,46 +740,57 @@ </el-input> </el-form-item ></el-col> </el-row> - <!-- <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="澶勭悊"> - <el-input - type="text" - placeholder="(榛樿)鏃犲0" - v-model="topicobj.text" - maxlength="10" - show-word-limit - > - </el-input> </el-form-item - ></el-col> - </el-row> --> - <el-row :gutter="10"> - <el-col :span="16"> - <el-form-item label="璇煶鏂囦欢"> + <el-row> + <el-col :span="6"> + <el-form-item label="鍚笉娓呰闊�" prop="verbaltrickyy"> <el-upload class="upload-demo" - style="display: flex" - action="https://jsonplaceholder.typicode.com/posts/" - :on-change="handleChange" - :file-list="fileList" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChanges(response, file, 4) + " + accept=".wav,.mp3" :limit="1" - :on-exceed="handleExceed" > <el-button size="small" type="primary" >鐐瑰嚮涓婁紶</el-button > </el-upload> - </el-form-item></el-col - > + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="topicobj.noclearlyvoice" + >{{ + topicobj.noclearlyvoice.substring( + topicobj.noclearlyvoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + topicobj.noclearlyvoice + ? topicobj.noclearlyvoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> </el-row> </div> <div class="topicxq"> <el-row :gutter="10"> - <el-col :span="12" + <el-col :span="20" ><el-form-item label="闈欓粯璇濇湳"> <el-input - type="text" + type="textarea" + style="width: 400px" placeholder="璇疯緭鍏�" v-model="topicobj.slienceText" show-word-limit @@ -640,38 +798,48 @@ </el-input> </el-form-item ></el-col> </el-row> - <!-- <el-row :gutter="10"> - <el-col :span="12" - ><el-form-item label="澶勭悊"> - <el-input - type="text" - placeholder="(榛樿)鏃犲0" - v-model="topicobj.text" - maxlength="10" - show-word-limit - > - </el-input> </el-form-item - ></el-col> - </el-row> --> - <el-row :gutter="10"> - <el-col :span="16"> - <el-form-item label="璇煶鏂囦欢"> + <el-row> + <el-col :span="6"> + <el-form-item label="闈欓粯璇煶" prop="verbaltrickyy"> <el-upload class="upload-demo" - style="display: flex" - action="https://jsonplaceholder.typicode.com/posts/" - :on-change="handleChange" - :file-list="fileList" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChanges(response, file, 3) + " + accept=".wav,.mp3" :limit="1" - :on-exceed="handleExceed" > <el-button size="small" type="primary" >鐐瑰嚮涓婁紶</el-button > </el-upload> - </el-form-item></el-col - > + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="topicobj.sliencevoice" + >{{ + topicobj.sliencevoice.substring( + topicobj.sliencevoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + topicobj.sliencevoice + ? topicobj.sliencevoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> </el-row> </div> </div> @@ -681,7 +849,7 @@ </div> <el-button type="success" @click="Departmenttreatment('ruleForm')">{{ - task ? "淇濆瓨鍒颁换鍔℃ā鐗�" : "淇濆瓨棰樼洰鏁版嵁" + task ? "淇濆瓨鍒颁换鍔℃ā鏉�" : "淇濆瓨棰樼洰鏁版嵁" }}</el-button> <el-button type="primary" plain @click="laststep()">涓婁竴姝�</el-button> <el-button type="success" plain @click="preview('ruleForm')" @@ -689,62 +857,69 @@ > <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button> </div> - <!-- 闅忚妯$増棰勮 --> + <!-- 闅忚妯℃澘棰勮 --> <div v-if="Editprogress == 3"> - <div class="leftvlue-jbxx">闅忚妯$増闂棰勮</div> + <div class="leftvlue-jbxx">闅忚妯℃澘闂棰勮</div> <el-divider></el-divider> + <div class="preview-left"> - <!-- 鍗曢�� --> - <div - class="topic-dev" - v-for="(item, index) in valssu" - :key="item.aaa" - > - <div class="dev-text"> - {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.questionText }}</span> + <div v-for="item in valssu"> + <!-- 鍗曢�� --> + <div + class="scriptTopic-dev" + :key="item.sort" + v-if="item.valueType == 1" + > + <div class="dev-text"> + {{ item.sort }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-radio-group v-model="item.remark"> + <el-radio + v-for="(items, index) in item.ivrLibaScriptTargetoptionList" + :key="index" + :label="index" + >{{ items.targetvalue }}</el-radio + > + </el-radio-group> + </div> </div> - <div class="dev-xx"> - <el-radio-group v-model="radio"> - <el-radio - v-for="(items, index) in item.ivrLibaScriptTargetoptionList" - :key="index" - :label="index" - >{{ items.targetvalue }}</el-radio - > - </el-radio-group> + <!-- 澶氶�� --> + <div + class="scriptTopic-dev" + :key="item.sort" + v-if="item.valueType == 2" + > + <div class="dev-text"> + {{ item.sort }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-checkbox-group v-model="item.remark"> + <el-checkbox + v-for="(items, index) in item.ivrLibaScriptTargetoptionList" + :key="index" + :label="index" + > + {{ items.targetvalue }} + </el-checkbox> + </el-checkbox-group> + </div> + </div> + <!-- 濉┖ --> + <div + class="scriptTopic-dev" + :key="item.sort" + v-if="item.valueType == 3" + > + <div class="dev-text"> + {{ item.sort }}銆乕濉┖]<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-input placeholder="璇疯緭鍏ョ瓟妗�" v-model="radioas" clearable> + </el-input> + </div> </div> </div> - <!-- 澶氶�� --> - <!-- <div - class="topic-dev" - v-for="(item, index) in valssu" - :key="item.aaa" - > - <div class="dev-text"> - {{ index + 1 }}銆乕澶氶�塢<span>{{ item.questionText }}</span> - </div> - <div class="dev-xx"> - <el-checkbox-group v-model="radios"> - <el-checkbox - v-for="(items, indexs) in item.ivrLibaScriptTargetoptionList" - :key="indexs" - :label="indexs" - > - {{ items.targetvalue }} - </el-checkbox> - </el-checkbox-group> - </div> - </div> --> - <!-- 濉┖ - <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> - <div class="dev-text"> - {{ item.idd }}銆乕濉┖]<span>{{ item.wssd }}</span> - </div> - <div class="dev-xx"> - <el-input placeholder="璇疯緭鍏ョ瓟妗�" v-model="radioas" clearable> - </el-input> - </div> - </div> --> </div> <el-button type="primary" plain @click="laststep()">涓婁竴姝�</el-button> <el-button type="warning" @click="measurement()">鍓嶅線娴嬭瘯</el-button> @@ -754,80 +929,517 @@ <!-- 娣诲姞棰樼洰寮圭獥 --> <el-drawer title="娣诲姞棰樼洰" + @close="$forceUpdate()" + @closed="$forceUpdate()" :visible.sync="drawer" custom-class="demo-drawer" size="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.questiontitle" - placeholder="璇疯緭鍏�" - clearable - style="width: 200px" - @keyup.enter.native="getaddtopiclist" - /> - </el-form-item> - - <el-form-item> - <el-button - type="primary" - icon="el-icon-search" - size="medium" - @click="getaddtopiclist" - >鎼滅储</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="questiontitle" - prop="questiontitle" - width="100" - /> - <el-table-column - label="闂璇濇湳" - align="center" - key="questionText" - prop="questionText" - 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="addtopic(scope.row)" - ><span class="button-textxg" - ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span - ></el-button + <div style="margin: 0 25px"> + <el-tabs v-model="activeName"> + <el-tab-pane label="棰樺簱閫夊彇" name="first"> + <div class="preview-left"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" > - </template> - </el-table-column> - </el-table> - <pagination - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getaddtopiclist" - /> + <el-form-item label="鏍囬" prop="userName"> + <el-input + v-model="queryParams.scriptTopic" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="getaddtopiclist" + /> + </el-form-item> + + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="getaddtopiclist" + >鎼滅储</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="scriptTopic" + prop="scriptTopic" + width="100" + /> + <el-table-column + label="闂璇濇湳" + align="center" + key="scriptContent" + prop="scriptContent" + width="200" + :show-overflow-tooltip="true" + /> + <el-table-column + label="闂绫诲瀷" + align="center" + key="valueType" + prop="valueType" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="valuetypes" + :value="scope.row.valueType" + /> + </template> + </el-table-column> + <el-table-column + label="閫夐」鍐呭" + align="center" + key="targetoptions" + prop="targetoptions" + 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="addtopic(scope.row)" + ><span class="button-textxg" + ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span + ></el-button + > + </template> + </el-table-column> + </el-table> + <pagination + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getaddtopiclist" + /> + </div> + </el-tab-pane> + <el-tab-pane label="鎵嬪姩閰嶇疆" name="second"> + <div class="preview-left"> + <el-form + :inline="true" + :model="indexform" + class="demo-form-inline" + > + <div class="headline"> + 棰樼洰璁剧疆璇︽儏 + <span style="margin-left: 30px" + ><el-button type="primary" @click="Submittopicobj" + >淇濆瓨鏂板</el-button + ></span + > + </div> + <el-divider></el-divider> + <div> + <el-row :gutter="10"> + <el-col :span="12"> + <el-form-item label="棰樼洰鏍囬"> + <el-input + v-model="indexform.scriptTopic" + placeholder="璇疯緭鍏ラ鐩爣棰�" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="闂鑺傜偣"> + <el-input + v-model="indexform.sort" + placeholder="璇疯緭鍏ラ棶棰樿妭鐐�" + ></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="18" + ><el-form-item label="闂璇濇湳"> + <el-input + style="width: 600px" + type="textarea" + v-model="indexform.scriptContent" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="10"> + <el-col :span="12" + ><el-form-item label="鏄惁蹇呭~"> + <el-select + v-model="indexform.isMust" + placeholder="榛樿蹇呭~" + > + <el-option + v-for="item in required" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> + <!-- <el-col :span="12" + ><el-form-item label="鍙栧�肩被鍨�"> + <el-select + v-model="indexform.valueType" + placeholder="璇烽�夋嫨" + :disabled="true" + > + <el-option + v-for="item in valuetype" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> </el-form-item + ></el-col> --> + </el-row> + <el-form-item + label="閫変腑鎻愮ず" + v-if="topicobj.scriptType != 1" + > + <el-input + style="width: 24vw" + type="textarea" + autosize + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="indexform.prompt" + > + </el-input + ></el-form-item> + <el-row :gutter="10"> + <el-col :span="18" + ><el-form-item label="璇煶鏂囨湰"> + <el-input + style="width: 600px" + type="textarea" + v-model="indexform.ivrtext" + placeholder="璇蜂粠宸︿晶鍒楄〃閫夋嫨" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="璇煶鏂囦欢" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :headers="headers" + :show-file-list="false" + :on-success=" + (response, file) => handleChange(response, file, 1) + " + accept=".wav,.mp3" + :limit="1" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 18px; margin-top: 10px" + v-if="indexform.ivrVoice" + >{{ + indexform.ivrVoice.substring( + indexform.ivrVoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + indexform.ivrVoice + ? indexform.ivrVoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> + </el-row> + </div> + <div> + <el-form-item label="鎸囨爣鍚嶇О" prop="deptId"> + <el-input + v-model="indexform.targetname" + placeholder="璇疯緭鍏ユ寚鏍囧悕绉�" + maxlength="20" + /> + </el-form-item> + <el-form-item label="鎸囨爣鎻忚堪" prop="deptId"> + <el-input + v-model="indexform.targetdesc" + placeholder="璇疯緭鍏ユ寚鏍囨弿杩�" + maxlength="60" + /> + </el-form-item> + + <el-row> + <el-col :span="20"> + <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> + <el-col :span="20"> + <el-form-item label="棰樼洰绫诲瀷"> + <el-radio-group + @input="typeselection" + v-model="indexform.scriptType" + > + <el-radio :label="1">鍗曢��</el-radio> + <!-- <el-radio :label="2">澶氶��</el-radio> --> + <el-radio :label="4">闂瓟</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + </div> + <div class="topicxq" v-show="indexform.scriptType == 4"> + <el-row> + <el-col :span="20"> + <el-form-item label="鏀堕泦鍐呭"> + <el-input + style="width: 400px" + type="textarea" + v-model="indexform.value" + placeholder="闂鏀堕泦鍐呭" + ></el-input> + </el-form-item> + </el-col> + </el-row> + </div> + + <div v-show="indexform.scriptType == 1"> + <div class="headline"> + <div class="basics">閫夐」璁剧疆</div> + </div> + <el-divider></el-divider> + <Regular + :TargetoptionList="indexform.ivrLibaScriptTargetoptionList" + @deloption="deloption" + @addoption="addoptionson" + :controlsc="false" + :addoption="true" + /> + <!-- 鏃犲尮閰嶇被鍨� --> + <div class="topicxq"> + <el-row :gutter="10"> + <el-col :span="20" + ><el-form-item label="鏃犲尮閰嶈瘽鏈�"> + <el-input + type="textarea" + style="width: 400px" + placeholder="璇疯緭鍏�" + v-model="indexform.noMatchText" + show-word-limit + > + </el-input> </el-form-item + ></el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="鏃犲尮閰嶈闊�" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChange(response, file, 2) + " + accept=".wav,.mp3" + :limit="1" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="indexform.nomatchvoice" + >{{ + indexform.nomatchvoice.substring( + indexform.nomatchvoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + indexform.nomatchvoice + ? indexform.nomatchvoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> + </el-row> + </div> + + <div class="topicxq"> + <el-row :gutter="10"> + <el-col :span="20" + ><el-form-item label="闈欓粯璇濇湳"> + <el-input + type="textarea" + style="width: 400px" + placeholder="璇疯緭鍏�" + v-model="indexform.slienceText" + show-word-limit + > + </el-input> </el-form-item + ></el-col> + </el-row> + + <el-row> + <el-col :span="6"> + <el-form-item label="闈欓粯璇煶" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChange(response, file, 3) + " + accept=".wav,.mp3" + :limit="1" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="indexform.sliencevoice" + >{{ + indexform.sliencevoice.substring( + indexform.sliencevoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + indexform.sliencevoice + ? indexform.sliencevoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> + </el-row> + </div> + <div class="topicxq"> + <el-row :gutter="10"> + <el-col :span="20" + ><el-form-item label="鍚笉娓呰瘽鏈�"> + <el-input + style="width: 400px" + type="textarea" + placeholder="璇疯緭鍏�" + v-model="indexform.noClearlyText" + show-word-limit + > + </el-input> </el-form-item + ></el-col> + </el-row> + + <el-row> + <el-col :span="6"> + <el-form-item label="鍚笉娓呰闊�" prop="verbaltrickyy"> + <el-upload + class="upload-demo" + :action="uploadImgUrl" + :show-file-list="false" + :headers="headers" + :on-success=" + (response, file) => + handleChange(response, file, 4) + " + accept=".wav,.mp3" + :limit="1" + > + <el-button size="small" type="primary" + >鐐瑰嚮涓婁紶</el-button + > + </el-upload> + </el-form-item> + </el-col> + <el-col :span="6"> + <span + style="font-size: 12px" + v-if="indexform.noclearlyvoice" + >{{ + indexform.noclearlyvoice.substring( + indexform.noclearlyvoice.lastIndexOf("/") + 1 + ) + }}</span + > + </el-col> + <el-col :span="6"> + <mini-audio + :audio-source=" + indexform.noclearlyvoice + ? indexform.noclearlyvoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </el-col> + </el-row> + </div> + </div> + </el-form> + </div> + </el-tab-pane> + </el-tabs> </div> </el-drawer> + <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 --> + <Optional-Form + ref="child" + :dialogVisiblepatient="dialogVisiblepatient" + :overallCase="illnesslist" + @addoption="dialogVisiblepatient = false" + @kkoption="dialogVisiblepatient = true" + /> </div> </template> @@ -850,16 +1462,26 @@ getFollowuplist, deltargetillness, getillnesslist, + depthospgetson, + depthospgetsonlist, illnesslistget, getillness, getgenerallist, + depthospgetsondel } from "@/api/AiCentre/index"; +import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢 +import { getToken } from "@/utils/auth"; +import { deptTreeSelect } from "@/api/system/user"; export default { - name: "SpeechTemplates", - components: { Regular }, + name: "tpuconfigurat", + components: { Regular, OptionalForm }, data() { return { + headers: { + Authorization: "Bearer " + getToken(), + }, + uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort", Editprogress: 1, //缂栬緫杩涘害 loading: false, // 閬僵灞� drawer: false, //鎺у埗灞曞紑 @@ -867,21 +1489,30 @@ radioas: "", //濉┖棰樼瓟妗� task: null, //鏄惁鏉ヨ嚜浠诲姟 taskform: null, //浠诲姟淇℃伅 + Operateit: true, + indexform: { + ivrLibaScriptTargetoptionList: [], + }, labelInfovalue: [], //鏍囩涓存椂瀛樺偍 deptNamesvalue: [], //绉戝涓存椂瀛樺偍 + dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛 dynamicTags: [], indexAssortlist: [], inputValue: "", inputValueillness: "", topicobj: { - noMatchText: "", - noClearlyText: "", - slienceText: "", + noMatchText: "鎶辨瓑锛屾垜娌℃湁鍚噦锛屾偍鑳藉啀璇翠竴閬嶅悧?", + noClearlyText: "鎶辨瓑锛屾垜娌℃湁鍚竻鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?", + slienceText: "鎶辨瓑锛屾垜娌℃湁鍚埌鎮ㄨ鐨勮瘽锛屾偍鍙互鍐嶈涓�娆″悧?", }, total: 1, id: "", ruleForm: { templateName: "", + revisitBefore: + "浜茬埍鐨勬偅鑰�/瀹跺睘锛屾偍濂斤紒鎴戜滑鏄櫙瀹佷汉姘戝尰闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚銆�", + revisitAfter: + "璇锋偍娉ㄦ剰浼戞伅鍜岃惀鍏伙紝鐢熸椿涓婅鍔抽�哥粨鍚堬紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒", ivrLibaTemplateTagList: [], ivrLibaTemplateScriptVOList: [], tempDetpRelevances: [], @@ -890,6 +1521,10 @@ optionstag: [], prefollowuplist: [], postfollowuplist: [], + tempDetpRelevanceslist: [], //绉戝鏁版嵁 + tempDetpRelevanceslistform: [], //绉戝鏁版嵁 + tempbelongWards: [], //鐥呭尯鏁版嵁 + tempbelongWardsform: [], //鐥呭尯鏁版嵁 generallist: [ { value: "1", label: "闅忚閫氱敤搴撲竴" }, { value: "2", label: "闅忚浜屽簱" }, @@ -913,6 +1548,8 @@ usable: [], required: [], valuetype: [], + valuetypes: [], + askvaluetype: [], mode: [], inputVisible: false, inputVisibleillness: false, @@ -928,12 +1565,15 @@ tempDetpRelevanceslist: [], delScriptVOList: [], optionIndex: "", + activeName: "first", variablelist: [ { variatename: "濮撳悕", variate: "${name}", default: 1 }, { variatename: "鐢佃瘽", variate: "${phone}", default: 1 }, { variatename: "鐥呮儏", variate: "${illness}", default: 1 }, ], - deptList: [], + deptlist: [], + hosplist: [], + flatArray: [], props: { multiple: true, value: "deptId", label: "deptName" }, variablelist: [ @@ -942,12 +1582,18 @@ value: "琛ㄧず鎮h�呯殑鏍囪瘑", }, ], + queryParamsdept: { + tempid: "", + type: 2, + }, valssu: [], radio: "", addvalue: "娣诲姞棰樼洰", // 棰樼洰琛ㄦ牸鏁版嵁 userList: [], + belongWards: [], + belongDepts: [], // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -960,21 +1606,54 @@ }, }; }, + activated() { + if (this.id != this.$route.query.id) { + console.log(1); + + this.RoutingDataProcessing(); + this.gettabList(); + this.getvFollowup(); + this.auxiliary(); + } else { + this.tempDetpRelevanceslistform = []; + this.tempbelongWardsform = []; + } + }, created() { this.RoutingDataProcessing(); this.gettabList(); this.getvFollowup(); this.auxiliary(); + this.getDeptTree(); this.mode = store.getters.mode; + console.log(this.mode,'this.mode'); this.usable = store.getters.usable; this.required = store.getters.required; this.valuetype = store.getters.valuetype; + this.valuetypes = store.getters.valuetypelb; + this.askvaluetype = store.getters.askvaluetype; this.languagelist = store.getters.languagelist; this.courtyardlist = store.getters.courtyardlist; this.precedencetype = store.getters.precedencetype; + this.belongWards = store.getters.belongWards; + this.belongDepts = store.getters.belongDepts; }, mounted() {}, + computed: { + displayedTags() { + // 杩斿洖鍓�10涓猼ag + return this.illnesslist.slice(0, 10); + }, + hasMore() { + // 鍒ゆ柇鏄惁鏈夋洿澶氱殑tag + return this.illnesslist.length > 10; + }, + remaining() { + // 璁$畻鍓╀綑鐨則ag鏁伴噺 + return this.illnesslist.length - 10; + }, + }, methods: { //鍏叡鏂规硶-------------------- @@ -988,60 +1667,113 @@ RoutingDataProcessing() { this.id = this.$route.query.id; this.task = this.$route.query.task; + this.queryParamsdept.tempid = this.id; + }, + // 鑾峰彇绉戝鏍� + getDeptTree() { + // 绉戝鍒楄〃 + deptTreeSelect().then((response) => { + this.deptOptions = response.data; + this.flatArray = this.flattenArray(response.data); + }); + }, + flattenArray(multiArray) { + let result = []; - // console.log(this.task, "task"); - // if (this.task) { - // this.id = this.$route.query.id; - // } + // 閫掑綊鍑芥暟锛岀敤浜庡皢澶氱骇鏁扮粍杞崲涓轰竴缁存暟缁勶紝鍙寘鍚渶搴曞眰鐨勫厓绱� + function flatten(element) { + // 濡傛灉褰撳墠鍏冪礌鏈夊瓙鍏冪礌锛岀户缁�掑綊 + if (element.children && element.children.length > 0) { + element.children.forEach((child) => flatten(child)); + } else { + // 鍏嬮殕鍏冪礌浠ラ伩鍏嶄慨鏀瑰師濮嬫暟鎹� + let item = JSON.parse(JSON.stringify(element)); + result.push(item); // 灏嗘渶搴曞眰鐨勫厓绱犳坊鍔犲埌缁撴灉鏁扮粍 + } + } + + // 浠庨《灞傚厓绱犲紑濮嬮�掑綊 + multiArray.forEach((element) => flatten(element)); + return result; // 杩斿洖鍙寘鍚渶搴曞眰鍏冪礌鐨勪竴缁存暟缁� }, // 鑾峰彇琛ㄥ崟鏁版嵁 getvFollowup() { - getvFollowup({ id: this.id }).then((res) => { - if (res.code == 200 && this.id) { - console.log(2211); - this.ruleForm = res.data; - this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); - this.ruleForm.suitway = this.ruleForm.suitway.split(","); - this.ruleForm.campus = this.ruleForm.campus.split(","); - this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); - this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { - return Number(res); - }); - console.log(this.ruleForm.submoduleID, "this.ruleForm.submoduleID鍙�"); - this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; - - this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( - this.processElement - ); - console.log(this.ruleForm.suitway); - } - }); - getillnesslist({ - pageNum: 1, - pageSize: 100, - }).then((response) => { - this.optionsillness = response.rows; - }); if (this.id) { + getvFollowup({ id: this.id }).then((res) => { + if (res.code == 200) { + console.log(2211); + this.ruleForm = res.data; + if (this.ruleForm.deptNames) + console.log(this.ruleForm.suitway,'suitway'); + this.ruleForm.suitway = this.ruleForm.suitway.split(","); + console.log(this.ruleForm.suitway,'suitway'); + if (this.ruleForm.campus) + this.ruleForm.campus = this.ruleForm.campus.split(","); + this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); + this.ruleForm.submoduleID = this.ruleForm.submoduleID.map((res) => { + return Number(res); + }); + + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList; + + this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map( + this.processElement + ); + this.sortFn(); + } + }); getillness({ outid: this.id, type: 3 }).then((res) => { this.illnesslist = res.rows; + this.illnesslist.forEach((item) => { + item.icdname = item.icd10name; + }); }); + } else { + this.ruleForm = { + templateName: "", + ivrLibaTemplateTagList: [], + ivrLibaTemplateScriptVOList: [], + tempDetpRelevances: [], + }; + this.deptOptions = []; + this.optionsillness = []; + this.illnesslistapi = []; + this.illnesslist = []; + this.dynamicTags = []; + this.tempDetpRelevanceslist = []; } - listDept(this.queryParams).then((response) => { - this.deptList = this.handleTree(response.data, "deptId"); - }); }, // 闄勫睘鏁版嵁琛� auxiliary() { // 鍒嗙被 getFollowupclassify({}).then((res) => { this.indexAssortlist = res.rows; - this.ruleForm.assortid = Number(this.$route.query.assortid); }); - // 绉戝 - listDept(this.queryParams).then((response) => { - this.deptList = this.handleTree(response.data, "deptId"); - }); + this.tempDetpRelevanceslist = []; + this.tempbelongWards = []; + + if (this.id) { + depthospgetsonlist(this.queryParamsdept).then((res) => { + if (res.code == 200) { + let arr = res.rows; + console.log(arr, "arr"); + + arr.forEach((item) => { + if (item.deptType == 1) { + console.log(this.deptlist, "11"); + this.deptlist.push(item); + console.log("22"); + this.tempDetpRelevanceslist.push(item.deptCode); + } else if (item.deptType == 2) { + this.hosplist.push(item); + this.tempbelongWards.push(item.deptCode); + console.log("33"); + } + }); + } + }); + } + // 鐤剧梾 getillnesslist({ pageNum: 1, @@ -1057,17 +1789,30 @@ }); // 鐤剧梾鍒� }, - // + // 閫夐」閰嶇疆璺宠浆瑙﹀彂 + branchFlagfn(row) { + if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) { + this.topicobj.nextScriptno = + this.topicobj.ivrLibaScriptTargetoptionList[0].nextQuestion; + } + }, + //淇濆瓨 submitForm(formName) { if (this.ruleForm.id) { this.ruleForm.isoperation = 2; } else { this.ruleForm.isoperation = 1; } + if (!this.ruleForm.assortid) { + this.ruleForm.assortid = -1; + } this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags); - this.ruleForm.suitway = this.ruleForm.suitway.join(","); - this.ruleForm.campus = this.ruleForm.campus.join(","); - this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); + if (Array.isArray(this.ruleForm.suitway)) + this.ruleForm.suitway = this.ruleForm.suitway.join(","); + if (Array.isArray(this.ruleForm.campus)) + this.ruleForm.campus = this.ruleForm.campus.join(","); + if (Array.isArray(this.ruleForm.submoduleID)) + this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(","); // 鎻愪氦 this.ruleForm.ivrLibaTemplateScriptVOList.forEach((res) => { @@ -1083,54 +1828,131 @@ return item; }); }); - + this.delScriptVOList.forEach((item) => { + this.ruleForm.ivrLibaTemplateScriptVOList.push(item); + }); + // compileFollowup(this.ruleForm).then((res) => { + // if (res.code == 200) { + // this.$modal.msgSuccess("缂栬緫鎴愬姛"); + // this.$modal.closeLoading(); + // this.confirmillness(res.data); + // // window.location.reload(); + // // const obj = { path: "/knowledge/tpuconfigurat/?id=" + this.id }; + // // this.$tab.closeOpenPage(obj); + // } else { + // this.$modal.msgError("淇濆瓨澶辫触"); + // this.$modal.closeLoading(); + // } + // }); + if (this.id) { + this.ruleForm.isoperation = 2; + this.ruleForm.tempDetpRelevances = []; + compileFollowup(this.ruleForm).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.confirmillness(); + this.putbelongDepts(this.id); + // this.$modal.closeLoading(); + // this.$router.go(-1); + window.location.reload(); + } else { + this.$modal.closeLoading(); + } + }); + } else { + this.ruleForm.isoperation = 1; + this.ruleForm.version = this.ruleForm.version + ? this.ruleForm.version + : "1.0"; + this.ruleForm.tempDetpRelevances = []; + compileFollowup(this.ruleForm).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.confirmillness(res.data); + this.putbelongDepts(res.data); + this.$modal.closeLoading(); + this.$router.go(-1); + } else { + this.$modal.closeLoading(); + } + }); + } + }, + confirmillness(guid) { this.illnesslist.forEach((item, index) => { + if (guid) { + item.outid = guid; + } else { + console.log(this.ruleForm); + item.outid = this.ruleForm.id; + } + item.icd10name = item.icdname; + item.icd10code = item.icdcode; + item.type = 3; if (!item.id) { addtargetillness(item).then((res) => {}); } }); - if (this.illnesslistapi.length) { - deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); - } - compileFollowup(this.ruleForm).then((res) => { - this.$modal.msgSuccess("缂栬緫鎴愬姛"); - this.$router.go(-1); - }); + this.illnessVisible = false; + this.$modal.msgSuccess("缂栬緫鎴愬姛"); }, // 绉戝澶勭悊 Departmenttreatment() { - this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist); - this.ruleForm.ivrLibaTemplateScriptVOList = - this.ruleForm.ivrLibaTemplateScriptVOList.concat(this.delScriptVOList); - const result = this.tempDetpRelevanceslist.map( - (subArr) => subArr[subArr.length - 1] - ); - // id鏁扮粍鏌ユ暟缁勫璞� - result.forEach((item) => { - const condition = this.ruleForm.tempDetpRelevances.some( - (obj) => obj.deptId === item - ); - if (!condition) { - listDept({ deptId: item }).then((res) => { - res.data[0].type = 2; - this.ruleForm.tempDetpRelevances.push(res.data[0]); + this.$modal.loading("姝e湪淇淇濆瓨鏁版嵁锛岃绋嶅��..."); + this.tempDetpRelevanceslist.forEach((item) => { + let result = this.deptlist.some((obj) => obj.deptCode == item); + + if (!result) { + this.tempDetpRelevanceslistform.push({ + deptType: 1, + longTemp: this.ruleForm.longTemp, + deptCode: item, + tempid: this.id, + type: 2, }); } }); - console.log(this.ruleForm.tempDetpRelevances); - // 鏁扮粍瀵硅薄鏌d鏁扮粍 - this.ruleForm.tempDetpRelevances.forEach((item) => { - const condition = result.some((obj) => obj === item.deptId); - if (!condition) { - const index = this.ruleForm.tempDetpRelevances.indexOf(item); - this.ruleForm.tempDetpRelevances[index].delFlag = 1; + this.tempbelongWards.forEach((item) => { + let result = this.hosplist.some((obj) => obj.deptCode == item); + if (!result) { + this.tempbelongWardsform.push({ + deptType: 2, + longTemp: this.ruleForm.longTemp, + deptCode: item, + tempid: this.id, + type: 2, + // 1 : 闂嵎妯℃澘搴搃d銆�11锛氶棶鍗蜂换鍔℃ā鏉垮簱id锛�2 :璇煶闂嵎搴搃d銆�21锛氳闊充换鍔℃ā鏉垮簱id锛�3 : 瀹f暀妯℃澘搴搃d锛�33锛氬鏁欎换鍔℃ā鏉垮簱id + }); } }); - console.log(this.ruleForm.tempDetpRelevances); setTimeout(() => { this.submitForm(); }, 1000); // this.submitForm(); + }, + // 淇濆瓨绉戝/鐥呭尯 + putbelongDepts(id) { + this.tempDetpRelevanceslistform.forEach((item) => { + if (!item.tempid) item.tempid = id; + }); + + this.tempbelongWardsform.forEach((item) => { + if (!item.tempid) item.tempid = id; + }); + if (this.tempDetpRelevanceslistform.length > 0) { + depthospgetson(this.tempDetpRelevanceslistform).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("绉戝鏂板鎴愬姛"); + } + }); + } + if (this.tempbelongWardsform.length > 0) { + depthospgetson(this.tempbelongWardsform).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("闄㈠尯鏂板鎴愬姛"); + } + }); + } }, // 涓嬩竴姝� nextstep() { @@ -1150,7 +1972,8 @@ type: "warning", }) .then(() => { - this.$router.go(-1); + const obj = { path: "/knowledge/templateku/" }; + this.$tab.closeOpenPage(obj); }) .catch(() => { this.$message({ @@ -1159,10 +1982,35 @@ }); }); }, - - // 鎺у埗鏂囦欢 - handleChange(file, fileList) { - this.fileList = fileList.slice(-3); + //鎺у埗璇煶鏂囦欢(鏂�) + handleChange(response, file, additionalParam) { + console.log(response); + console.log(additionalParam); + if (additionalParam == 1) { + this.indexform.ivrVoice = response.url; + } else if (additionalParam == 2) { + this.indexform.nomatchvoice = response.url; + } else if (additionalParam == 3) { + this.indexform.sliencevoice = response.url; + } else if (additionalParam == 4) { + this.indexform.noclearlyvoice = response.url; + } + this.$forceUpdate(); + }, + //鎺у埗璇煶鏂囦欢 + handleChanges(response, file, additionalParam) { + console.log(response); + console.log(additionalParam); + if (additionalParam == 1) { + this.topicobj.ivrVoice = response.url; + } else if (additionalParam == 2) { + this.topicobj.nomatchvoice = response.url; + } else if (additionalParam == 3) { + this.topicobj.sliencevoice = response.url; + } else if (additionalParam == 4) { + this.topicobj.noclearlyvoice = response.url; + } + this.$forceUpdate(); }, // 鏂囦欢瓒呭嚭涓暟闄愬埗鏃剁殑閽╁瓙 handleExceed(files, fileList) { @@ -1180,13 +2028,10 @@ 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.ivrLibaTemplateTagList[lindex].isoperation = 3; @@ -1209,6 +2054,13 @@ tagname: tagname, isoperation: 1, }; + } + const exists = this.dynamicTags.some( + (department) => department.tagname === tagname + ); + if (exists) { + this.$modal.msgError("鏍囩閲嶅"); + return; } this.ruleForm.ivrLibaTemplateTagList.push(tagvalue); this.dynamicTags.push(tagvalue); @@ -1249,10 +2101,9 @@ }); }, addtopic(row) { - console.log(row); if ( this.ruleForm.ivrLibaTemplateScriptVOList.some( - (obj) => obj.questiontitle == row.questiontitle + (obj) => obj.scriptTopic == row.scriptTopic ) ) { this.$modal.msgError("璇ラ鐩凡瀛樺湪"); @@ -1272,15 +2123,18 @@ }, handleDelete(row) { this.$modal - .confirm('鏄惁纭鍒犻櫎闂锛�"' + row.questiontitle + '"锛�') + .confirm('鏄惁纭鍒犻櫎闂锛�"' + row.scriptTopic + '?') .then(() => { this.ruleForm.ivrLibaTemplateScriptVOList.splice( this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), 1 ); row.isoperation = 3; - this.delScriptVOList.push(row); - this.$modal.msgSuccess("宸插垹闄わ紝淇濆瓨妯$増鐢熸晥"); + if (row.id) { + this.delScriptVOList.push(row); + } + this.sortFn(); + this.$modal.msgSuccess("宸插垹闄わ紝淇濆瓨妯℃澘鐢熸晥"); }) .catch(() => {}); }, @@ -1329,73 +2183,96 @@ }, // 闂鎺掑簭 sortFn() { - this.ruleForm.ivrLibaTemplateScriptVOList = - this.ruleForm.ivrLibaTemplateScriptVOList.map((item, index) => { - return Object.assign({}, item, { targetid: (index + 1).toString() }); - }); - this.ruleForm.ivrLibaTemplateScriptVOList.forEach((question, index) => { - question.ivrLibaScriptTargetoptionList = - question.ivrLibaScriptTargetoptionList.map((option) => { - option.nextQuestion = Number(question.targetid) + 1; - return option; + console.log(this.ruleForm.ivrLibaTemplateScriptVOList); + + this.ruleForm.ivrLibaTemplateScriptVOList.forEach((item, index) => { + item.sort = Number(index) + 1; + console.log(this.ruleForm.ivrLibaTemplateScriptVOList.length); + console.log(item.sort); + + if (item.sort == this.ruleForm.ivrLibaTemplateScriptVOList.length) { + item.nextScriptno = 0; + } else { + item.nextScriptno = item.sort + 1; + } + if (item.ivrLibaScriptTargetoptionList&&!item.branchFlag) { + item.ivrLibaScriptTargetoptionList.forEach((items) => { + items.nextQuestion = Number(item.sort) + 1; }); + } }); + this.$forceUpdate(); + console.log(this.ruleForm.ivrLibaTemplateScriptVOList); }, // -----------------------璇濇湳閫夐」 - deloption() {}, + deloption(item) { + const index = this.topicobj.ivrLibaScriptTargetoptionList.indexOf(item); + if (index != -1) { + if (item.id) { + console.log(item, "chunz"); + item.isoperation = 3; + console.log(this.topicobj.ivrLibaScriptTargetoptionList); + this.$forceUpdate(); + } else { + this.topicobj.ivrLibaScriptTargetoptionList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱� + } + // this.sortFn(); + } else { + console.log("鏈壘鍒拌瀵硅薄"); + } + }, // 淇敼棰樼洰淇℃伅 Submittopicobj() { - this.ruleForm.ivrLibaTemplateScriptVOList[this.optionIndex] = - this.topicobj; - this.$modal.msgSuccess("鏆傚瓨閫夐」鎴愬姛"); + this.$modal + .confirm( + '鏄惁纭鏂板鍚嶇О涓�"' + this.indexform.scriptTopic + '"鐨勯棶棰樻暟鎹紵' + ) + .then(() => { + this.indexform.isoperation = 1; + this.indexform.pid = this.ruleForm.id; + this.indexform.ivrLibaScriptTargetoptionList.forEach((item) => { + item.isoperation = 1; + }); + this.ruleForm.ivrLibaTemplateScriptVOList.push(this.indexform); + this.indexform = { + ivrLibaScriptTargetoptionList: [], + }; + this.drawer = false; + + this.sortFn(); + this.$modal.msgSuccess("棰樼洰鏂板鎴愬姛锛屼繚瀛樻ā鏉跨敓鏁�"); + }); }, // --------------------- resetForm(formName) { this.$refs[formName].resetFields(); }, - - // 鐤剧梾----------------------- - - handleCloseillness(tag) { - this.illnesslist.splice(this.illnesslist.indexOf(tag), 1); - if (tag.id) { - this.illnesslistapi.push(tag.id); + // 绉戝鍒犻櫎瑙﹀彂 + removetag(row) { + let result = this.deptlist + .filter((item) => item.deptCode == row) + .map((item) => item.id); + console.log(result.length); + if (result.length) { + depthospgetsondel(result).then((res) => { + if (res.code) { + } + }); } }, - 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; + // 鍒犻櫎鍒犻櫎瑙﹀彂 + removehpsp(row) { + let result = this.hosplist + .filter((item) => item.deptCode == row) + .map((item) => item.id); + if (result.length) { + depthospgetsondel(result).then((res) => { + if (res.code) { + } }); - }, 200); - }, - illnessConfirm(item) { - let opeavalue = {}; - let tagname = this.inputValueillness; - illnesslistget(item).then((res) => { - opeavalue = res.data; - opeavalue.outid = this.id; - opeavalue.type = 3; - 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 = ""; + } }, // 棰勮--------------- preview() { @@ -1406,14 +2283,49 @@ // 鍓嶅線娴嬭瘯 measurement() { this.$modal - .confirm("鍗冲皢鍓嶅線妯$増娴嬭瘯椤甸潰锛岃纭妯$増鏁版嵁宸蹭繚瀛樸��") + .confirm("鍗冲皢鍓嶅線妯℃澘娴嬭瘯椤甸潰锛岃纭妯℃澘鏁版嵁宸蹭繚瀛樸��") .then((res) => { this.$router.push({ path: "/knowledge/templateku/configurat/measurement", - query: { id: this.id, name: this.ruleForm.templateName }, + query: { + id: this.id, + name: this.ruleForm.templateName, + timeout: this.ruleForm.silencetime, + }, }); }) .catch(() => {}); + }, + // 鏂板缓妯℃澘涓复鏃堕鐩� + // 棰樼洰绫诲瀷鏇存崲 + typeselection(row) { + if (row == 1 && !this.indexform.ivrLibaScriptTargetoptionList.length) { + this.indexform.ivrLibaScriptTargetoptionList.push({ + guid: 1, + isoperation: 1, + targetvalue: "", + targetregex: "", + targetregex2: "", + dynamiccruxs: [], + nodynamiccruxs: [], + dynamiccruxsJson: "", + nodynamiccruxsJson: "", + }); + } + this.$forceUpdate(); + }, + addoptionson() { + this.indexform.ivrLibaScriptTargetoptionList.push({ + guid: 1, + isoperation: 1, + targetvalue: "", + targetregex: "", + targetregex2: "", + dynamiccruxs: [], + nodynamiccruxs: [], + dynamiccruxsJson: "", + nodynamiccruxsJson: "", + }); }, }, }; @@ -1469,12 +2381,27 @@ 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 { + .scriptTopic-dev { margin-bottom: 25px; font-size: 20px !important; .dev-text { margin-bottom: 10px; } + } + .headline { + display: flex; + justify-content: space-between; + font-size: 20px; + border-left: 3px solid #41a1be; + padding-left: 5px; + margin: 15px 0; + } + .topicxq { + background-color: #e2f5fc; + border-radius: 4px; + margin-top: 10px; + padding-left: 10px; + padding-top: 15px; } } .xinz-inf { @@ -1501,6 +2428,15 @@ vertical-align: bottom; } } + +.xinz-infs { + font-size: 18px; + line-height: 48px; + + .el-tag + .el-tag { + margin-left: 10px; + } +} .addtopic { margin-top: 30px; } @@ -1517,6 +2453,16 @@ color: #f52727; } } + .spresentation-left { + width: 100%; + // height: 500px; + .button-textxg { + color: #024df0; + } + .button-textsc { + color: #f52727; + } + } .presentation-right { width: 55%; max-height: 688px; -- Gitblit v1.9.3