From 5e1745487b290612c6282006822b431843a081af Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 15 五月 2025 14:49:36 +0800 Subject: [PATCH] 测试完成 --- src/views/followvisit/record/detailpage/index.vue | 1158 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 1,076 insertions(+), 82 deletions(-) diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue index 8837754..286c174 100644 --- a/src/views/followvisit/record/detailpage/index.vue +++ b/src/views/followvisit/record/detailpage/index.vue @@ -1,41 +1,60 @@ <template> <!-- 鑱婅繛椤甸潰璁板綍 --> - <div class="Followupdetailspage"> + <div class="Followupdetailspage" id="app-container"> <div class="Followuserinfo"> <div> <div class="userinfo-text"> <!-- <span>鎮h�呮湇鍔¤鎯�</span> --> <div class="headline"> - <div>鎮h�呮湇鍔¤鎯�</div> - <div style="margin-left: 20px"> - <el-button - v-if="!Whetherall" - type="primary" - @click="getTaskservelist()" - >鏌ョ湅鎮h�呭叏閮ㄦ湇鍔�</el-button> - <el-button - v-else - type="success" - @click="getTaskservelist(taskid)" - >鏌ョ湅鎮h�呮湰娆℃湇鍔′俊鎭�</el-button> - </div> + <div>鎮h�呮湇鍔¤鎯�</div> + <div style="margin-left: 20px"> + <el-button + v-if="!Whetherall" + type="primary" + @click="getTaskservelist()" + >鏌ョ湅鎮h�呭叏閮ㄦ湇鍔�</el-button + > + <el-button v-else type="success" @click="getTaskservelist(id)" + >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button + > </div> + <div style="margin-left: 20px; color: #59a0f0"> + <el-link + href="https://9.208.2.207:6060/search-homepage" + target="_blank" + :underline="true" + > + 鍓嶅線CDSS鏌ヨ + </el-link> + </div> + </div> <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> --> </div> </div> <div> - <el-table :data="logsheetlist" style="width: 100%"> - <el-table-column prop="sendname" align="center" label="濮撳悕"> - </el-table-column> - <el-table-column prop="sendstate" align="center" label="鏈嶅姟鐘舵��"> - </el-table-column> + <el-table :data="logsheetlist" :row-class-name="tableRowClassName" style="width: 100%"> <el-table-column - prop="finishtime" + prop="sendname" align="center" - label="瀹屾垚鏃堕棿" - width="200" - show-overflow-tooltip + label="濮撳悕" + width="100" > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click=" + gettoken360( + scope.row.sfzh, + scope.row.drcode, + scope.row.drname + ) + " + ><span class="button-textsc">{{ + scope.row.sendname + }}</span></el-button + > + </template> </el-table-column> <el-table-column prop="taskName" @@ -46,9 +65,117 @@ > </el-table-column> <el-table-column + prop="sendstate" + align="center" + width="200" + label="浠诲姟鐘舵��" + > + <template slot-scope="scope"> + <div v-if="scope.row.sendstate == 1"> + <el-tag type="primary" :disable-transitions="false" + >琛ㄥ崟宸查鍙�</el-tag + > + </div> + <div v-if="scope.row.sendstate == 2"> + <el-tag type="primary" :disable-transitions="false" + >寰呴殢璁�</el-tag + > + </div> + <div v-if="scope.row.sendstate == 3"> + <el-tag type="success" :disable-transitions="false" + >琛ㄥ崟宸插彂閫�</el-tag + > + </div> + <div v-if="scope.row.sendstate == 4"> + <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag> + </div> + <div v-if="scope.row.sendstate == 5"> + <el-tag type="danger" :disable-transitions="false" + >鍙戦�佸け璐�</el-tag + > + </div> + <div v-if="scope.row.sendstate == 6"> + <el-tag type="success" :disable-transitions="false" + >宸插畬鎴�</el-tag + > + </div> + </template> + </el-table-column> + <el-table-column + prop="finishtime" + align="center" + label="闅忚瀹屾垚鏃堕棿" + width="200" + show-overflow-tooltip + > + </el-table-column> + <el-table-column + label="鍑洪櫌鏃ユ湡" + width="200" + align="center" + key="endtime" + prop="endtime" + > + <template slot-scope="scope"> + <span>{{ formatTime(scope.row.endtime) }}</span> + </template></el-table-column + > + <el-table-column + label="璐d换鎶ゅ+" + width="120" + align="center" + key="nurseName" + prop="nurseName" + /> + <el-table-column + label="涓绘不鍖荤敓" + width="120" + align="center" + key="drname" + prop="drname" + /> + + <el-table-column + label="缁撴灉鐘舵��" + align="center" + key="excep" + prop="excep" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.sys_yujing" + :value="scope.row.excep" + /> + </template> + </el-table-column> + <el-table-column + label="澶勭悊鎰忚" + align="center" + key="suggest" + prop="suggest" + width="120" + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.sys_suggest" + :value="scope.row.suggest" + /> + </template> + </el-table-column> + + <el-table-column prop="templatename" align="center" label="鏈嶅姟妯℃澘" + width="200" + show-overflow-tooltip + > + </el-table-column> + <el-table-column + prop="remark" + align="center" + label="鏈嶅姟璁板綍" width="200" show-overflow-tooltip > @@ -61,7 +188,7 @@ width="210" > </el-table-column> - <!-- <el-table-column + <el-table-column label="鎿嶄綔" fixed="right" align="center" @@ -73,33 +200,177 @@ size="medium" type="text" @click="Seedetails(scope.row)" - v-hasPermi="['system:user:edit']" ><span class="button-zx" - ><i class="el-icon-s-order"></i>鏌ョ湅鏈嶅姟</span + ><i class="el-icon-s-order"></i>鏌ョ湅</span ></el-button > </template> - </el-table-column> --> + </el-table-column> </el-table> </div> </div> + <div class="Followuserinfos"> + <div> + <el-form ref="form" :model="form" label-width="120px"> + <div class="headline"> + <div>浜哄伐澶勭悊</div> + <el-row :gutter="20"> + <el-col :span="8" + ><el-form-item label="鑱旂郴鐢佃瘽"> + <el-input + placeholder="鑱旂郴鐢佃瘽缂哄け" + v-model="userform.telcode" + ></el-input> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="鑱旂郴浜虹數璇�"> + <el-input + placeholder="鑱旂郴浜虹數璇濈己澶�" + v-model="userform.relativetelcode" + ></el-input> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item label="鑱旂郴浜哄叧绯�"> + <el-input + placeholder="鑱旂郴浜哄叧绯荤己澶�" + v-model="userform.relation" + ></el-input> </el-form-item + ></el-col> + </el-row> + <div style="margin-left: 30px"> + <el-button type="primary" plain @click="Editsingletasksonyic('')" + >淇濆瓨鏈嶅姟</el-button + > + </div> + </div> + + <el-form-item label="闅忚璁板綍"> + <el-input type="textarea" v-model="form.remark"></el-input> + </el-form-item> + + <el-form-item label="澶勭悊鎰忚"> + <div> + <el-button plain type="warning" @click="Editsingletaskson('1')" + >鏆備笉澶勭悊</el-button + > + <el-button plain type="success" @click="Editsingletaskson('2')" + >鐥呮儏绋冲畾</el-button + > + <el-button plain type="primary" @click="Editsingletaskson('3')" + >閫氱煡灏辫瘖</el-button + > + <!-- <el-button type="danger" @click="Editsingletaskson('4')" + >澶辫</el-button + > --> + <el-button plain type="info" @click="Editsingletaskson('5')" + >涓績闅忚</el-button + > + <el-button + type="primary" + round + v-if="this.form.isVisitAgain != 2" + @click="sendAgain()" + >鍐嶆闅忚</el-button + > + </div> + </el-form-item> + </el-form> + <el-collapse> + <el-collapse-item title="鏌ョ湅褰撳墠鎮h�呬俊鎭�" name="1"> + <div class="detailed"> + <el-form ref="userform" :model="userform" label-width="100px"> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="鎮h�呭鍚�" prop="name"> + <el-input + v-model="userform.name" + placeholder="璇疯緭鍏ュ鍚�" + maxlength="30" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12" + ><el-form-item label="鑱旂郴鏂瑰紡" prop="telcode"> + <el-input + v-model="userform.telcode" + placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" + maxlength="20" + /> </el-form-item + ></el-col> + <el-col :span="12"> + <el-form-item label="浜插睘鑱旂郴鏂瑰紡" prop="name"> + <el-input + v-model="userform.relativetelcode" + placeholder="璇疯緭鍏ュ鍚�" + maxlength="20" + ></el-input> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="24"> + <el-form-item label="鍑虹敓鍦�" prop="birthplace"> + <el-input + v-model="userform.birthplace" + placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" + maxlength="50" + /> </el-form-item + ></el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="24" + ><el-form-item label="灞呬綇鍦�" prop="placeOfResidence"> + <el-input + v-model="userform.placeOfResidence" + placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" + maxlength="50" + /> </el-form-item + ></el-col> + </el-row> + <!-- <el-row :gutter="20"> + <el-col :span="24"> + <el-form-item label="鏍囩" prop="desc"> + <div class="xinz-inf"> + <el-tag + :key="tag.tagname" + type="success" + v-for="tag in dynamicTags" + :disable-transitions="false" + > + {{ tag.tagname }} + </el-tag> + </div> + </el-form-item> + </el-col> + </el-row> --> + </el-form> + </div> + </el-collapse-item> + </el-collapse> + </div> + </div> <div> - <el-tabs type="border-card"> - <el-tab-pane> + <el-tabs v-model="activeName" type="border-card"> + <el-tab-pane name="wj"> <span class="mulsz" slot="label" ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span > <div class="CONTENT"> <div class="title">{{ taskname ? taskname : "闂嵎" }}</div> - <div class="preview-left"> - <!-- 鍗曢�� --> + + <div class="preview-left" v-if="!Voicetype"> <div class="topic-dev" v-for="(item, index) in tableDatatop" - :key="item.aaa" + :key="item.id" > + <!-- 鍗曢�� --> <div - class="scriptTopic-dev" + :class=" + item.isabnormal + ? 'scriptTopic-isabnormal' + : 'scriptTopic-dev' + " :key="index" v-if="item.scriptType == 1" > @@ -115,6 +386,7 @@ v-for="( items, index ) in item.svyLibTemplateTargetoptions" + :class="items.isabnormal ? 'red-star' : ''" :key="index" :label="items.optioncontent" >{{ items.optioncontent }}</el-radio @@ -127,7 +399,11 @@ </div> <!-- 澶氶�� --> <div - class="scriptTopic-dev" + :class=" + item.isabnormal + ? 'scriptTopic-isabnormal' + : 'scriptTopic-dev' + " :key="index" v-if="item.scriptType == 2" > @@ -140,6 +416,7 @@ @change="updateScore($event, index, item)" > <el-checkbox + :class="items.isabnormal ? 'red-star' : ''" @change="$forceUpdate()" v-for="( items, indexs @@ -177,51 +454,309 @@ </div> </div> </div> + + <div class="preview-left" v-else> + <div + class="topic-dev" + v-for="(item, index) in tableDatatop" + :key="item.id" + > + <div v-if="item.targetvalue"> + <div class="dev-text"> + {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.questiontext }}</span> + </div> + <div class="dev-xx"> + <el-radio-group + v-model="item.matchedtext" + @change="handleOptionChange($event, index, item)" + > + <el-radio + v-for="(items, index) in item.scriptResult" + :key="items" + :label="items" + >{{ items }}</el-radio + > + </el-radio-group> + </div> + <div v-show="item.prompt"> + <el-alert :title="item.prompt" type="warning"> </el-alert> + </div> + </div> + + <div class="scriptTopic-dev" :key="index" v-else> + <div class="dev-text"> + {{ index + 1 }}銆乕闂瓟]<span>{{ item.questiontext }}</span> + </div> + <div class="dev-xx"> + <el-input + type="textarea" + :rows="2" + placeholder="璇疯緭鍏ョ瓟妗�" + v-model="item.matchedtext" + clearable + > + </el-input> + </div> + </div> + </div> + </div> + <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail" + >淇濆瓨鏈嶅姟璇︽儏</el-button + > + <el-button v-else type="primary" @click="getdetail" + >淇濆瓨鏈嶅姟璇︽儏</el-button + > </div> </el-tab-pane> - <el-tab-pane> + + <el-tab-pane name="yy"> <span class="mulsz" slot="label" ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span > <div class="borderdiv"> - <div> - <div class="leftside"> - <i class="el-icon-phone-outline"></i - ><span>鎮ㄤ粖澶╄韩浣撴儏鍐垫�庝箞鏍�</span> - </div> - <div class="offside"> - <i class="el-icon-user"></i> - <div class="offside-value"> - <el-input v-model="input"></el-input> - <el-radio v-model="radio" label="1">寰堟</el-radio> - <el-radio v-model="radio" label="2">杩樺彲浠�</el-radio> - <el-radio v-model="radio" label="3">涓嶅お濂�</el-radio> - <el-radio v-model="radio" label="4">姣旇緝宸�</el-radio> + <div class="title">{{ taskname ? taskname : "闂嵎" }}</div> + <div + style=" + display: flex; + text-align: center; + align-items: center; + color: #59a0f0; + " + > + 瀹屾暣璇煶锛� + <mini-audio + :audio-source=" + voice ? voice : 'https://example.com/example.mp3' + " + ></mini-audio> + </div> + <div class="preview-left"> + <div v-for="item in voiceDatatop"> + <div class="leftside"> + <i class="el-icon-phone-outline"></i + ><span>{{ item.questiontext }}</span> + </div> + <div class="offside"> + <i class="el-icon-user"></i> + <div class="offside-value"> + <el-input + type="textarea" + :autosize="{ minRows: 1 }" + v-model="item.asrtext" + ></el-input> + + <div> + <mini-audio + :audio-source=" + item.questionvoice + ? item.questionvoice + : 'https://example.com/example.mp3' + " + ></mini-audio> + </div> + </div> </div> </div> </div> + <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail" + >淇濆瓨闅忚璇︽儏</el-button + > + <el-button v-else type="primary" @click="getdetail" + >淇濆瓨闅忚璇︽儏</el-button + > </div> </el-tab-pane> </el-tabs> </div> + <el-dialog + title="鎮h�呭啀娆¢殢璁�" + v-dialogDrags + :visible.sync="dialogFormVisible" + > + <el-form ref="zcform" :rules="zcrules" :model="form" label-width="80px"> + <el-form-item label="浠诲姟鍚嶇О"> + <el-input + style="width: 400px" + disabled + v-model="form.taskName" + ></el-input> + </el-form-item> + <el-form-item label="鎮h�呭悕绉�"> + <el-input + style="width: 400px" + disabled + v-model="form.sendname" + ></el-input> + </el-form-item> + <el-form-item label="骞撮緞"> + <el-input style="width: 400px" disabled v-model="form.age"></el-input> + </el-form-item> + <el-form-item label="绉戝"> + <el-input + style="width: 400px" + disabled + v-model="form.deptname" + ></el-input> + </el-form-item> + <el-form-item label="鐥呭尯"> + <el-input + style="width: 400px" + disabled + v-model="form.leavehospitaldistrictname" + ></el-input> + </el-form-item> + <el-form-item label="鍑洪櫌鏃堕棿"> + <el-input + style="width: 400px" + disabled + v-model="form.endtime" + ></el-input> + </el-form-item> + + <el-form-item label="闅忚鏂瑰紡" prop="resource"> + <el-radio-group v-model="form.resource"> + <el-radio label="1">鏈梾鍖洪殢璁�</el-radio> + <el-radio label="2">闅忚涓績闅忚</el-radio> + </el-radio-group> + </el-form-item> + <!-- <el-form-item label="鍗冲埢鍙戦��"> + <el-switch v-model="zcform.delivery"></el-switch> + </el-form-item> --> + <el-form-item label="闅忚鏃堕棿" prop="date1"> + <el-date-picker + type="date" + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptions" + align="right" + v-model="form.date1" + style="width: 100%" + ></el-date-picker> + </el-form-item> + <el-form-item label="闅忚璁板綍"> + <el-input type="textarea" v-model="form.remark"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="warning" @click="dialogFormVisible = false" + >鍙� 娑�</el-button + > + <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button> + </div> + </el-dialog> </div> </template> <script> -import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index"; +import { + getsearchrResults, + getPersonVoices, + addserviceSubtask, + getTaskservelist, + getTaskFollowup, + Editsingletaskson, + serviceSubtaskDetailedit, + serviceSubtaskDetailadd, + updatePersonVoices, + addPersonVoices, + query360PatInfo, +} from "@/api/AiCentre/index"; +import { + messagelistpatient, + alterpatient, + listcontactinformation, +} from "@/api/patient/homepage"; export default { + dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], data() { return { - radio: "1", userid: "", input: "浠婂ぉ韬綋杩樹笉閿�", radio: "2", taskname: "", + activeName: "wj", + voice: "", + templateid: "", + again:'', + zcform: {}, + form: {}, tableDatatop: [], //棰樼洰琛� - Whetherall:false, //鏄惁鍏ㄩ儴璁板綍灞曠ず + voiceDatatop: [], //棰樼洰琛� + dynamicTags: [], + zcrules: { + date1: [ + { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" }, + ], + resource: [ + { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" }, + ], + }, + url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", + postData: { + XiaoXiTou: { + FaSongFCSJC: "ZJHES", + FaSongJGID: localStorage.getItem("orgid"), + FaSongJGMC: localStorage.getItem("orgname"), + FaSongSJ: "2025-01-09聽17:29:36", + FaSongXTJC: "SUIFANGXT", + FaSongXTMC: "闅忚绯荤粺", + XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", + XiaoXiLX: "SC_LC_360STCX", + XiaoXiMC: "360聽瑙嗗浘鏌ヨ", + ZuHuID: localStorage.getItem("ZuHuID"), + ZuHuMC: localStorage.getItem("orgname"), + }, + YeWuXX: { + BingRenXX: { + ZhengJianHM: "", + ZhengJianLXDM: "01", + ZhengJianLXMC: "灞呮皯韬唤璇�", + ZuZhiJGID: localStorage.getItem("orgid"), + ZuZhiJGMC: localStorage.getItem("orgname"), + }, + YongHuXX: { + XiTongID: "SUIFANGXT", + XiTongMC: "闅忚绯荤粺", + YongHuID: "1400466972205912064", + YongHuXM: "JNRMYY", + ZuZhiJGID: localStorage.getItem("orgid"), + ZuZhiJGMC: localStorage.getItem("orgname"), + idp: "lyra", + }, + }, + }, + pickerOptions: { + shortcuts: [{ + text: '涓冨ぉ鍚�', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); + picker.$emit('pick', date); + } + }, { + text: '15澶╁悗', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24* 15); + picker.$emit('pick', date); + } + }, { + text: '30澶╁悗', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 30); + picker.$emit('pick', date); + } + }] + }, + userform: {}, + Whetherall: true, //鏄惁鍏ㄩ儴璁板綍灞曠ず + dialogFormVisible: false, + Voicetype: 0, //鏄惁涓鸿闊虫湇鍔� logsheetlist: [], + topicobj: {}, sendname: null, serviceType: null, + id: null, taskid: null, patid: null, }; @@ -229,54 +764,435 @@ created() { this.taskid = this.$route.query.taskid; + this.id = this.$route.query.id; this.sendname = this.$route.query.sendname; this.patid = this.$route.query.patid; + this.again = this.$route.query.again; + this.Voicetype = this.$route.query.Voicetype; this.serviceType = this.$route.query.serviceType; - this.getsearchrResults(); - this.getTaskservelist(this.taskid); + + this.getTaskservelist(); }, methods: { // 鑾峰彇闂嵎鏁版嵁 - getsearchrResults() { + getsearchrResults(id) { getsearchrResults({ taskid: this.taskid, patid: this.patid, + subId: id ? id : this.id, + isFinish: false, }).then((res) => { if (res.code === 200) { - this.tableDatatop = res.data.scriptResult.script; + if (this.again&&res.data.upScriptResult) { + this.tableDatatop = res.data.upScriptResult; + }else{ + this.tableDatatop = res.data.scriptResult; + } this.tableDatatop.forEach((item) => { + if (item.scriptType == 2) item.scriptResult = []; if (item.scriptResult && item.scriptType != 2) { - item.scriptResult = JSON.parse(item.scriptResult); + item.isoption = 3; + item.scriptResult = item.scriptResult; } else if (item.scriptResult && item.scriptType == 2) { item.scriptResult = item.scriptResult.split("&"); + item.isoption = 3; } }); this.taskname = res.data.taskName; + this.overdata(); } }); }, - // 鑾峰彇鎮h�呰褰� - getTaskservelist(taskid) { - if (taskid) { - this.Whetherall=false; - }else{ - this.Whetherall=true; + //鎮h��360璺宠浆 + gettoken360(sfzh, drcode, drname) { + this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; + if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") { + this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; + this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY"; } + query360PatInfo(this.postData).then((res) => { + if (res.data.url) { + window.open(res.data.url, "_blank"); + // this.linkUrl = res.data.url; + } else { + this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�"); + } + }); + }, + // 鑾峰彇鍩虹淇℃伅 + getuserinfo() { + const queryParams = { + pid: Number(this.patid), + allhosp: "0", + pageNum: 1, + }; + // 鎮h�呭熀纭�淇℃伅 + messagelistpatient(queryParams).then((response) => { + if (response.rows[0]) { + this.userform = response.rows[0]; + // this.dynamicTags = response.rows[0].tagList.map(this.processElement); + } + }); + listcontactinformation({ patid: this.patid }).then((response) => { + this.tableData = response.rows; + if (this.tableData.length) { + this.userform.relativetelcode = this.tableData[0].contactway; + this.userform.relation = this.tableData[0].relation; + } + }); + }, + // 鑾峰彇璇煶鏁版嵁 + getPersonVoices(id) { + let obj = { + taskid: this.taskid, + patid: this.patid, + subId: id ? id : this.id, + }; + + getPersonVoices(obj).then((res) => { + if (res.code == 200) { + this.voiceDatatop = res.data.serviceSubtaskDetails; + this.voice = res.data.voice; + this.activeName = "yy"; + this.taskname = res.data.taskName; + // 闂嵎灞曠ず鏁版嵁澶勭悊 + this.tableDatatop = res.data.filteredDetails; + this.tableDatatop.forEach((item) => { + if (item.targetvalue) { + item.scriptResult = item.targetvalue.split("&"); + } else { + item.scriptResult = []; + } + }); + + if (!this.tableDatatop.length) { + this.puttaskid(this.templateid); + } + } + }); + }, + // 鑾峰彇闂嵎瀹屾暣鏁版嵁姣斿 + puttaskid(id) { + getTaskFollowup(id).then((res) => { + if (res.code == 200) { + this.tableDatatop = res.data.ivrTaskTemplateScriptVOList; + this.tableDatatop.forEach((item) => { + item.id = null; + // 绫诲瀷鍒ゆ柇璧嬪�� + if (item.ivrTaskScriptTargetoptionList) { + item.targetvalue = 1; + item.questiontext = item.scriptContent; + item.targetvalue = item.ivrTaskScriptTargetoptionList + .map((obj) => obj.targetvalue) + .join("&"); + } + if (item.targetvalue) { + item.scriptResult = item.targetvalue.split("&"); + } else { + item.scriptResult = []; + } + }); + } + }); + }, + // 鍖绘姢浜哄憳瀛樺偍鏁版嵁 + getdetail() { + let excep = ""; + const promises = []; + this.tableDatatop.forEach((item) => { + var objs = item.svyLibTemplateTargetoptions.find( + (items) => items.optioncontent == item.scriptResult + ); + if (obj) { + if (objs.isabnormal) { + excep = 1; + } + } + let obj = { + asrtext: null, + patid: this.patid, + subId: this.id, + taskid: this.taskid, + scriptid: item.id, + excep: excep, + questiontext: item.scriptContent, + }; + if (item.scriptType == 2 && item.scriptResult[0]) { + obj.asrtext = item.scriptResult.join("&"); + } else if (item.scriptType != 2 && item.scriptResult) { + obj.asrtext = item.scriptResult; + } + + if (item.isoption == 3) { + promises.push(serviceSubtaskDetailedit(obj)); + } else { + promises.push(serviceSubtaskDetailadd(obj)); + } + }); + // 浣跨敤 Promise.all 绛夊緟鎵�鏈夊紓姝ユ搷浣滃畬鎴� + Promise.all(promises) + .then((results) => { + // 鎵�鏈夊紓姝ユ搷浣滄垚鍔熷畬鎴愬悗鐨勯�昏緫 + results.forEach((res) => { + if (res.code !== 200) { + this.$modal.error("淇敼澶辫触"); + } + }); + this.Editsingletasksonyic(6); + + this.$modal + .confirm( + '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + + this.logsheetlist[0].sendname + + '"鍐嶆闅忚锛�' + ) + .then(() => { + document.querySelector("#app").scrollTo(0, 0); + this.dialogFormVisible = true; + }) + .catch(() => {}); + }) + .catch((error) => { + // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲� + console.error("鍙戠敓閿欒锛�", error); + }); + }, + yuyingetdetail() { + this.tableDatatop.forEach((item, index) => { + item.scriptResult = item.scriptResult.join("&"); + item.templatequestionnum = index + 1; + item.subId = this.id; + item.taskid = this.taskid; + item.asrtext = item.matchedtext; + if (!item.id) { + item.isoperation = 1; + } + item.patid = this.patid; + item.templateid = item.templateID; + }); + let obj = { + serviceSubtaskDetailList: this.tableDatatop, + param1: this.taskid, + param2: this.patid, + subId: this.id, + }; + + addPersonVoices(obj).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛"); + this.$modal + .confirm( + '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' + this.userform.name + '"鍐嶆闅忚锛�' + ) + .then(() => { + document.querySelector("#app").scrollTo(0, 0); + this.dialogFormVisible = true; + }) + .catch(() => {}); + } + }); + }, + + // 鑾峰彇鎮h�呰褰� + getTaskservelist(id) { + if (id) { + this.Whetherall = false; + } else { + this.Whetherall = true; + } + getTaskservelist({ patid: this.patid, - taskid: taskid, + subId: id, }).then((res) => { if (res.code == 200) { - this.logsheetlist = res.rows; + this.form = res.rows[0].serviceSubtaskList.find(item => item.id == this.id); + this.logsheetlist = res.rows[0].serviceSubtaskList; + this.templateid = this.logsheetlist[0].templateid; + const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡 + const now = new Date(); // 褰撳墠鏃堕棿 + this.form.endtime = this.formatTime(this.form.endtime); + if (now < targetDate && this.form.sendstate == 2) { + this.$confirm("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => {}) + .catch(() => {}); + } + this.getuserinfo(); + } + if (this.Voicetype) { + this.getPersonVoices(); + } else { + this.getsearchrResults(); } }); }, + Editsingletaskson(son) { + let objson = {}; + getTaskservelist({ + patid: this.patid, + subId: this.id, + }).then((res) => { + if (res.code == 200) { + objson = res.rows[0].serviceSubtaskList[0]; + objson.suggest = son; + Editsingletaskson(objson).then((res) => { + if (res.code) { + this.$modal.msgSuccess("鏈嶅姟璁板綍鎴愬姛"); + this.getTaskservelist(); + } + }); + } + }); + }, + Editsingletasksonyic(sendstate) { + + let objson = {}; + getTaskservelist({ + patid: this.patid, + subId: this.id, + }).then((res) => { + if (res.code == 200) { + objson = res.rows[0].serviceSubtaskList.find(item => item.id == this.id); + objson.remark = this.form.remark; + if (sendstate) objson.sendstate = sendstate; + Editsingletaskson(objson).then((res) => { + if (res.code) { + this.$modal.msgSuccess("鏈嶅姟淇敼鎴愬姛"); + alterpatient(this.userform).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛"); + } else { + this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触"); + } + }); + this.getTaskservelist(); + } + }); + } + }); + }, + // 寮傚父鍒楁覆鏌� + tableRowClassName({ row, rowIndex }) { + if (row.id == this.id) { + return "warning-row"; + } + return ""; + }, + // 璋冭捣鍐嶆鍙戦�� + sendAgain() { + document.querySelector("#app").scrollTo(0, 0); + // scrollTo(0, 0) + this.dialogFormVisible = true; + }, + // 鏌ョ湅璇︽儏 Seedetails(row) { - this.$modal.confirm('鏄惁鏌ョ湅浠诲姟涓�"' + optionids + '"鐨勬湇鍔¢」锛�').then(function () { - }).then(() => { - this.getList(); - }).catch(() => { }); + this.$modal + .confirm('鏄惁鏌ョ湅浠诲姟涓�"' + row.taskName + '"鐨勬湇鍔¤鎯呮暟鎹紵') + .then(() => { + if (row.preachformson) { + if (row.preachformson.includes("3")) { + this.Voicetype = 1; + } + } + this.taskid = row.taskid; + this.id = row.id; + this.patid = row.patid; + this.serviceType = row.serviceType; + this.getTaskservelist(); + }) + .catch(() => {}); + }, + handleOptionChange(a, b, c) { +console.log(a); + + if (this.Voicetype) { + var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find( + (item) => item.optioncontent == a + ); + } else { + var obj = this.tableDatatop[b].svyLibTemplateTargetoptions.find( + (item) => item.optioncontent == a + ); + } + if (obj.isabnormal) { + this.tableDatatop[b].isabnormal = true; + } else { + this.tableDatatop[b].isabnormal = false; + } + this.$forceUpdate(); + }, + overdata() { + this.tableDatatop.forEach((item, index) => { + var obj = item.svyLibTemplateTargetoptions.find( + (items) => items.optioncontent == item.scriptResult + ); + if (obj) { + if (obj.isabnormal) { + this.tableDatatop[index].isabnormal = true; + } else { + this.tableDatatop[index].isabnormal = false; + } + this.$forceUpdate(); + } + }); + }, + // 鍒涘缓鍐嶆闅忚鏈嶅姟 + setupsubtask() { + this.$refs["zcform"].validate((valid) => { + if (valid) { + this.form.remark = + this.form.remark + "銆�" + this.getCurrentTime() + "銆�"; + let form = structuredClone(this.form); + form.longSendTime = this.formatTime(form.date1); + form.finishtime = ""; + if (form.resource) { + if (form.resource == 2) { + form.serviceType = 13; + } + } else { + this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡"); + } + // form.id = null; + form.sendstate = 2; + addserviceSubtask(form).then((res) => { + if (res.code == 200) { + this.$modal.msgSuccess("鍒涘缓鎴愬姛"); + if (form.serviceType == 13) { + this.$router.push({ + path: "/logisticsservice/record", + }); + } else if (form.serviceType == 2) { + this.$router.push({ + path: "/followvisit/discharge", + }); + } + } else { + this.$modal.msgError("鍒涘缓澶辫触"); + } + document.querySelector("#app").scrollTo(0, 0); + this.dialogFormVisible = false; + }); + } + }); + }, + getCurrentTime() { + const now = new Date(); + const year = now.getFullYear(); + const month = String(now.getMonth() + 1).padStart(2, "0"); + const day = String(now.getDate()).padStart(2, "0"); + const hours = String(now.getHours()).padStart(2, "0"); + const minutes = String(now.getMinutes()).padStart(2, "0"); + const seconds = String(now.getSeconds()).padStart(2, "0"); + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + }, + updateScore(a, b, c) { + }, }, }; @@ -306,12 +1222,41 @@ } } } +::v-deep.el-table .warning-row { + background: #c4e2ee; +} +.Followuserinfos { + margin: 20px 10px; + align-items: center; + 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); + .userinfo-text { + font-size: 20px; + margin-right: 20px; + margin-bottom: 10px; + } + .userinfo-value { + color: rgb(15, 139, 211); + span { + margin-right: 20px; + } + } +} .borderdiv { min-height: 60vh; font-size: 20px; padding: 30px; + .title { + font-size: 22px; + font-weight: bold; + margin-bottom: 20px; + text-align: center; + } .leftside { - margin-bottom: 30px; + margin: 30px 0; span { width: 400px; margin-left: 20px; @@ -358,23 +1303,72 @@ } } } -.headline { - font-size: 24px; - height: 40px; - border-left: 5px solid #41a1be; - padding-left: 5px; - margin-bottom: 10px; - display: flex; - // justify-content: space-between; - .Add-details { - font-size: 18px; - color: #02a7f0; - cursor: pointer; - } +.scriptTopic-isabnormal { + color: red; +} +.detailed { + width: 88%; + border-radius: 8px; + padding: 30px; + margin-bottom: 30px; + background-color: #ddf0f8; + .bg-purple { + margin-bottom: 20px; } + .spanvalue { + display: inline-block; + min-width: 200px; + border-bottom: 1px solid rgb(172, 172, 172); + } +} +.headline { + font-size: 24px; + height: 40px; + border-left: 5px solid #41a1be; + padding-left: 5px; + margin-bottom: 10px; + display: flex; + // justify-content: space-between; + .Add-details { + font-size: 18px; + color: #02a7f0; + cursor: pointer; + } +} +.red-star { + ::v-deep.el-radio__label { + position: relative; + padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */ + } + ::v-deep.el-radio__label::after { + content: "*"; + color: red; + position: absolute; + right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */ + top: 0; + } + ::v-deep.el-input-group__textarea { + white-space: pre-wrap; /* 淇濇寔绌虹櫧绗﹀簭鍒楀苟姝e父鎹㈣ */ + word-break: break-all; /* 鍦ㄩ暱鍗曡瘝鎴朥RL鍦板潃鍐呴儴杩涜鎹㈣ */ + } + ::v-deep.el-checkbox__label { + position: relative; + padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */ + } + ::v-deep.el-checkbox__label::after { + content: "*"; + color: red; + position: absolute; + right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */ + top: 0; + } +} ::v-deep.offside-value .el-radio__label { color: #fff; } +::v-deep.el-link.el-link--default { + color: #02a7f0 !important; +} .mulsz { font-size: 25px; margin-top: 20px; -- Gitblit v1.9.3