From e0909a604449641ebcc6ed15495e6f28515f437c Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 17 十一月 2025 11:07:57 +0800
Subject: [PATCH] 测试完成
---
src/views/followvisit/OutpatientAgain/index.vue | 20
vue.config.js | 2
src/views/followvisit/record/detailpage/index.vue | 91
src/views/followvisit/record/TracingInfo/index.vue | 2969 +++++++++++++++++++++++++++++++++++
src/views/followvisit/Tracking/index.vue | 1784 +++++++++++++++++++++
src/components/SortCheckbox/index.vue | 74
src/views/patient/propaganda/particty.vue | 10
7 files changed, 4,885 insertions(+), 65 deletions(-)
diff --git a/src/components/SortCheckbox/index.vue b/src/components/SortCheckbox/index.vue
index 4ae95f1..a33c5b4 100644
--- a/src/components/SortCheckbox/index.vue
+++ b/src/components/SortCheckbox/index.vue
@@ -48,12 +48,23 @@
name: "OrderedCheckboxGroup",
props: {
options: {
- type: Array,
- default: () => [],
+ type: Array,
+ default: () => [],
+ validator: (value) => {
+ return Array.isArray(value);
+ }
},
value: {
- type: Array,
- default: () => [],
+ type: Array,
+ default: () => [],
+ validator: (value) => {
+ // 鍏佽绌烘暟缁勶紝浣嗗鏋滄槸闈炴暟缁勫�煎垯鍙戝嚭璀﹀憡
+ if (!Array.isArray(value) && value !== null && value !== undefined) {
+ console.warn('value prop should be an array, received:', typeof value);
+ return false;
+ }
+ return true;
+ }
},
initialselectedOrder: {
type: Array,
@@ -83,16 +94,21 @@
value: {
immediate: true,
handler(newVal) {
- if (
- Array.isArray(newVal) &&
- newVal.length > 0 &&
- typeof newVal[0] === "object"
- ) {
- console.log(this.selectedOrder, "111");
+ // 棣栧厛纭繚newVal鏄暟缁勶紝濡傛灉涓嶆槸鍒欒浆鎹负绌烘暟缁�
+ if (!Array.isArray(newVal)) {
+ console.warn(
+ "Expected array for value prop, received:",
+ typeof newVal
+ );
+ this.checkedValues = [];
+ this.selectedOrder = [];
+ return;
+ }
+ if (newVal.length > 0 && typeof newVal[0] === "object") {
+ console.log(this.selectedOrder, "111");
// 1. 浼犲叆鐨勬槸瀵硅薄鏁扮粍 [{ sort, preachform, compensateTime }]
- this.checkedValues = newVal.map((item) => item.preachform); // 鎻愬彇 preachform 缁勬垚閫変腑鍊兼暟缁�
- // 鏋勫缓 selectedOrder锛屼紭鍏堜娇鐢ㄤ紶鍏ョ殑 compensateTime锛屽惁鍒欑敤榛樿鍊�
+ this.checkedValues = newVal.map((item) => item.preachform);
this.selectedOrder = newVal.map((item) => ({
value: item.preachform,
compensateTime: item.hasOwnProperty("compensateTime")
@@ -100,12 +116,11 @@
: this.defaultCompensateTime,
}));
} else {
- // 2. 浼犲叆鐨勬槸瀛楃涓叉暟缁� (濡� ["1", "3", "4"]锛屽吋瀹逛箣鍓嶇殑鐢ㄦ硶)
+ // 2. 浼犲叆鐨勬槸瀛楃涓叉暟缁�
if (JSON.stringify(newVal) !== JSON.stringify(this.checkedValues)) {
this.checkedValues = [...newVal];
console.log(this.selectedOrder, "222");
- console.log(this.newVal, "22");
- // 鏋勫缓鎴栨洿鏂� selectedOrder锛屼繚鐣欏凡鏈夌殑 compensateTime
+
const newOrder = [];
newVal.forEach((value) => {
const existingItem = this.selectedOrder.find(
@@ -114,11 +129,14 @@
if (existingItem) {
newOrder.push(existingItem);
} else {
+ // 淇hasOwnProperty鏂规硶璋冪敤
+ const existingCompensateTime = this.hasOwnProperty(value);
newOrder.push({
value,
- compensateTime: this.hasOwnProperty(value)
- ? this.hasOwnProperty(value)
- : this.defaultCompensateTime,
+ compensateTime:
+ existingCompensateTime !== false
+ ? existingCompensateTime
+ : this.defaultCompensateTime,
});
}
});
@@ -126,7 +144,7 @@
}
}
},
- deep: true, // 寤鸿娣诲姞 deep: true 浠ョ‘淇濆璞℃暟缁勫唴鐨勫彉鍖栬兘琚崟鑾�
+ deep: true,
},
checkedValues(newVal, oldVal) {
console.log(this.selectedOrder, "333");
@@ -186,15 +204,17 @@
}
},
hasOwnProperty(patfrom) {
- console.log(patfrom);
- console.log(this.initialselectedOrder);
- // 浣跨敤find鏂规硶鏌ユ壘鍖归厤鐨勫璞�
- const foundObject = this.initialselectedOrder.find(
- (item) => item.preachform === patfrom
- );
+ if (!this.initialselectedOrder || !Array.isArray(this.initialselectedOrder)) {
+ return false;
+ }
- // 濡傛灉鎵惧埌瀵硅薄锛岃繑鍥炲叾compensateTime锛涘惁鍒欒繑鍥瀎alse
- return foundObject ? foundObject.compensateTime : false;
+ // 浣跨敤find鏂规硶鏌ユ壘鍖归厤鐨勫璞�
+ const foundObject = this.initialselectedOrder.find(
+ (item) => item.preachform === patfrom
+ );
+
+ // 濡傛灉鎵惧埌瀵硅薄锛岃繑鍥炲叾compensateTime锛涘惁鍒欒繑鍥瀎alse
+ return foundObject ? foundObject.compensateTime : false;
},
// 鍙戝皠鍙樺寲浜嬩欢
emitChangeEvent() {
diff --git a/src/views/followvisit/OutpatientAgain/index.vue b/src/views/followvisit/OutpatientAgain/index.vue
index fc7ef5f..07ec46f 100644
--- a/src/views/followvisit/OutpatientAgain/index.vue
+++ b/src/views/followvisit/OutpatientAgain/index.vue
@@ -79,7 +79,7 @@
></el-input>
</el-form-item>
- <el-form-item label="闂ㄨ瘖鏃堕棿">
+ <el-form-item label="鏈嶅姟鏃堕棿">
<el-date-picker
v-model="dateRange"
style="width: 240px"
@@ -398,7 +398,7 @@
/>
<!-- <el-table-column
- label="闂ㄨ瘖澶╂暟"
+ label="鏈嶅姟澶╂暟"
width="120"
align="center"
key="endDay"
@@ -485,7 +485,7 @@
/>
<el-table-column
- label="闂ㄨ瘖闅忚妯℃澘鍚嶇О"
+ label="鏈嶅姟闅忚妯℃澘鍚嶇О"
align="center"
key="templatename"
prop="templatename"
@@ -795,7 +795,7 @@
<!-- <el-form-item label="鍗冲埢鍙戦��">
<el-switch v-model="zcform.delivery"></el-switch>
</el-form-item> -->
- <el-form-item label="闂ㄨ瘖鏃堕棿">
+ <el-form-item label="鏈嶅姟鏃堕棿">
<el-input
style="width: 400px"
disabled
@@ -919,7 +919,7 @@
loading: false,
cardlist: [
{
- name: "闂ㄨ瘖鏈嶅姟鎬婚噺",
+ name: "鏈嶅姟璺熻釜鎬婚噺",
value: 0,
},
// {
@@ -968,11 +968,11 @@
topicoptionssort: [
{
value: 0,
- label: "闂ㄨ瘖鏃堕棿(姝e簭)",
+ label: "鏈嶅姟鏃堕棿(姝e簭)",
},
{
value: 1,
- label: "闂ㄨ瘖鏃堕棿(鍊掑簭)",
+ label: "鏈嶅姟鏃堕棿(鍊掑簭)",
},
{
value: 2,
@@ -996,7 +996,7 @@
pageNum: 1,
pageSize: 10,
sendstate: 2,
- sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 闂ㄨ瘖鏃堕棿(姝e簭) 1 闂ㄨ瘖鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鏈嶅姟鏃堕棿(姝e簭) 1 鏈嶅姟鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
serviceType: 3,
searchscope: 3,
visitCount: 2,
@@ -1283,7 +1283,7 @@
this.total = response.total;
});
},
- // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+ // 鏌ョ湅鏈嶅姟闅忚璇︽儏
Referencequestion(row) {
this.previewVisible = true;
},
@@ -1384,7 +1384,7 @@
pageNum: 1,
pageSize: 10,
sendstate: 2,
- sort: 2, //0 闂ㄨ瘖鏃堕棿(姝e簭) 1 闂ㄨ瘖鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
+ sort: 2, //0 鏈嶅姟鏃堕棿(姝e簭) 1 鏈嶅姟鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
serviceType: 3,
searchscope: 3,
visitCount: 2,
diff --git a/src/views/followvisit/Tracking/index.vue b/src/views/followvisit/Tracking/index.vue
new file mode 100644
index 0000000..0fbea2e
--- /dev/null
+++ b/src/views/followvisit/Tracking/index.vue
@@ -0,0 +1,1784 @@
+<template>
+ <div class="app-container">
+
+ <el-row :gutter="20">
+ <!--鐢ㄦ埛鏁版嵁-->
+ <el-form
+ :model="topqueryParams"
+ ref="queryForm"
+ size="small"
+ :inline="true"
+ v-show="showSearch"
+ label-width="98px"
+ >
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input
+ v-model="topqueryParams.taskName"
+ placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="寤剁画鎶ょ悊鏃堕棿">
+ <el-date-picker
+ v-model="dateRange"
+ style="width: 240px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="搴旈殢璁挎椂闂�">
+ <el-date-picker
+ v-model="dateRangefs"
+ style="width: 240px"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="鎮h�呭鍚�" prop="sendname">
+ <el-input
+ v-model="topqueryParams.sendname"
+ placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+ <el-input
+ v-model="topqueryParams.leavediagname"
+ placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="鎮h�呰寖鍥�" prop="status">
+ <el-cascader
+ v-model="topqueryParams.scopetype"
+ placeholder="榛樿鍏ㄩ儴"
+ :options="sourcetype"
+ :props="{ expandTrigger: 'hover' }"
+ @change="handleChange"
+ ></el-cascader>
+ </el-form-item>
+
+ <el-form-item label="浠诲姟鐘舵��" prop="status">
+ <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in topicoptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+ <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in topicoptionssort"
+ :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(1)"
+ >鎼滅储</el-button
+ >
+ <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
+ >閲嶇疆</el-button
+ >
+ </el-form-item>
+ </el-form>
+ <el-divider></el-divider>
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-upload2"
+ size="medium"
+ @click="handleExport"
+ >瀵煎嚭</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ size="medium"
+ @click="handleAdd"
+ >鏂板</el-button
+ >
+ </el-col>
+
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-warning-outline"
+ size="medium"
+ @click="toleadExport(1)"
+ >鎵ц澶辫触</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="danger"
+ plain
+ icon="el-icon-warning"
+ size="medium"
+ @click="toleadExport(2)"
+ >缁撴灉寮傚父</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="success"
+ plain
+ size="medium"
+ @click="buidegetTasklist()"
+ >寰呭姙鏈嶅姟</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button
+ type="primary"
+ plain
+ size="medium"
+ @click="affiliation()"
+ >鏈汉鎵�灞炴湇鍔�</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="1.5">
+ <div class="documentf">
+ <div class="document">
+ <el-button type="success" size="medium" @click="onthatday()"
+ >浠婃棩鏈嶅姟</el-button
+ >
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <el-table
+ v-loading="loading"
+ :data="userList"
+ :row-class-name="tableRowClassName"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="50" align="center" />
+ <el-table-column
+ label="浠诲姟鍚嶇О"
+ fixed
+ width="150"
+ show-overflow-tooltip
+ align="center"
+ key="taskName"
+ prop="taskName"
+ />
+ <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ align="center"
+ key="sendname"
+ prop="sendname"
+ >
+ <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
+ label="浠诲姟鐘舵��"
+ align="center"
+ key="sendstate"
+ prop="sendstate"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <el-tooltip
+ class="item"
+ effect="dark"
+ :content="scope.row.remark"
+ placement="top-start"
+ >
+ <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>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column
+ label="浠诲姟寮傚父璇存槑"
+ width="120"
+ align="center"
+ key="remark"
+ prop="remark" -->
+ />
+
+ <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
+ label="闅忚瀹屾垚鏃堕棿"
+ sortable
+ align="center"
+ prop="finishtime"
+ width="160"
+ >
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.finishtime) }}</span>
+ </template>
+ </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="搴旈殢璁挎棩鏈�"
+ width="200"
+ align="center"
+ key="longSendTime"
+ prop="longSendTime"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.longSendTime) }}</span>
+ </template></el-table-column
+ >
+ <el-table-column
+ label="涓绘不鍖荤敓"
+ width="120"
+ align="center"
+ key="drname"
+ prop="drname"
+ />
+
+ <!-- <el-table-column
+ label="寤剁画鎶ょ悊澶╂暟"
+ width="120"
+ align="center"
+ key="endDay"
+ prop="endDay"
+ >
+ <template slot-scope="scope">
+ <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+ </template>
+ </el-table-column> -->
+ <el-table-column
+ label="韬唤璇佸彿鐮�"
+ width="200"
+ align="center"
+ key="sfzh"
+ prop="sfzh"
+ />
+ <el-table-column
+ label="鑱旂郴鐢佃瘽"
+ width="200"
+ align="center"
+ key="phone"
+ prop="phone"
+ />
+ <el-table-column
+ label="璐d换鎶ゅ+"
+ width="120"
+ align="center"
+ key="nurseName"
+ prop="nurseName"
+ />
+
+ <!-- <el-table-column
+ label="鐥呭巻鍙�"
+ align="center"
+ sortable
+ key="medicalRecordNo"
+ prop="medicalRecordNo"
+ width="120"
+ /> -->
+
+ <!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
+ <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
+ <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
+ <el-table-column
+ label="棣栨闅忚绉戝"
+ align="center"
+ key="deptname"
+ prop="deptname"
+ width="120"
+ >
+ </el-table-column>
+ <el-table-column
+ label="鏈绉戝"
+ align="center"
+ key="visitDeptName"
+ prop="visitDeptName"
+ width="120"
+ >
+ </el-table-column>
+ <el-table-column
+ label="鐥呭尯"
+ align="center"
+ key="leavehospitaldistrictname"
+ prop="leavehospitaldistrictname"
+ width="120"
+ >
+ </el-table-column>
+
+ <el-table-column
+ label="璇婃柇鍚嶇О"
+ align="center"
+ key="leavediagname"
+ prop="leavediagname"
+ width="120"
+ :show-overflow-tooltip="true"
+ >
+ </el-table-column>
+ <el-table-column
+ label="闅忚浜哄憳"
+ align="center"
+ key="updateBy"
+ prop="updateBy"
+ width="120"
+ />
+
+ <el-table-column
+ label="寤剁画鎶ょ悊闅忚妯℃澘鍚嶇О"
+ align="center"
+ key="templatename"
+ prop="templatename"
+ width="200"
+ />
+ <el-table-column
+ label="浠诲姟鎵ц鏂瑰紡"
+ align="center"
+ key="preachform"
+ prop="preachform"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column
+ label="浠诲姟鍙戦�佹祦绋�"
+ align="center"
+ key="serviceSubtaskRecordList"
+ prop="serviceSubtaskRecordList"
+ width="160"
+ :show-overflow-tooltip="true"
+ >
+ <template slot-scope="scope">
+ <span v-for="item in scope.row.serviceSubtaskRecordList"
+ >{{ item.remark }}銆�
+ </span>
+ </template>
+ </el-table-column> -->
+ <el-table-column
+ label="浠诲姟缁撴灉璇存槑"
+ width="220"
+ align="center"
+ key="remark"
+ prop="remark"
+ >
+ <template slot-scope="scope" v-if="scope.row.remark">
+ <el-tooltip
+ :content="scope.row.remark"
+ placement="top"
+ effect="dark"
+ >
+ <el-tag
+ type="warning"
+ v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+ >{{ scope.row.remark }}</el-tag
+ >
+ <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ align="center"
+ fixed="right"
+ width="300"
+ class-name="small-padding fixed-width"
+ >
+ <template slot-scope="scope">
+ <!-- <el-tooltip
+ class="item"
+ effect="dark"
+ content="鍐嶆闅忚"
+ placement="top"
+ >
+ <el-button
+ size="medium"
+ type="text"
+ v-if="scope.row.isVisitAgain!=2"
+ @click="followupvisit(scope.row)"
+ ><span class="button-bb"
+ ><i class="el-icon-s-promotion"></i>鍐嶆闅忚</span
+ ></el-button
+ >
+ </el-tooltip>
+ <el-tooltip
+ v-if="scope.row.sendstate == 1 || scope.row.sendstate == 2"
+ class="item"
+ effect="dark"
+ content="鏆傚仠鏈嶅姟"
+ placement="top"
+ >
+ <el-button
+ size="medium"
+ type="text"
+ @click="handlestop(scope.row)"
+ v-hasPermi="['system:user:edit']"
+ ><span class="button-sc"
+ ><i class="el-icon-remove-outline"></i>鏆傚仠鏈嶅姟</span
+ ></el-button
+ >
+ </el-tooltip> -->
+ <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+ ><span class="button-zx"
+ ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+ ></el-button
+ >
+ <el-button
+ size="medium"
+ type="text"
+ @click="handleUpdate(scope.row)"
+ ><span class="button-textxga"
+ ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+ ></el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ :page.sync="topqueryParams.pageNum"
+ :limit.sync="topqueryParams.pageSize"
+ @pagination="getList"
+ />
+ </el-row>
+ <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+ <el-dialog
+ :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+ :visible.sync="Labelchange"
+ width="900px"
+ >
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+ <el-row>
+ <el-col :span="8">
+ <el-form-item label="濮撳悕" width="100" prop="name">
+ <el-input
+ v-model="form.name"
+ placeholder="璇疯緭鍏ュ鍚�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎬у埆" width="100" prop="sex">
+ <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+ <el-option
+ v-for="dict in sextype"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="骞撮緞" prop="age">
+ <el-input
+ v-model="form.age"
+ placeholder="璇疯緭鍏ュ勾榫�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+<el-row >
+ <el-col :span="8">
+ <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+ <el-input
+ v-model="form.filterDrname"
+ placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+ maxlength="30"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="杩囨护鍘熷洜">
+ <el-input
+ v-model="form.notrequiredreason"
+ type="textarea"
+ placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+ <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
+ <el-dialog
+ title="鍙戦�佹椂闂磋缃�"
+ :visible.sync="modificationVisible"
+ width="45%"
+ >
+ <div style="margin-bottom: 20px; color: red">
+ 缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
+ </div>
+
+ <el-form
+ :model="ruleForm"
+ :rules="rules"
+ ref="ruleForm"
+ label-width="120px"
+ class="demo-ruleForm"
+ >
+ <el-form-item label="鍙戦�佹棩鏈�">
+ <el-date-picker
+ v-model="ruleForm.value1"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker>
+ </el-form-item>
+
+ <el-form-item label="鏃堕棿娈�" prop="type">
+ <el-checkbox-group v-model="ruleForm.type">
+ <el-checkbox label="涓婂崍" name="type"></el-checkbox>
+ <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
+ <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value2"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value3"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
+ <el-time-picker
+ is-range
+ v-model="ruleForm.value4"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ placeholder="閫夋嫨鏃堕棿鑼冨洿"
+ >
+ </el-time-picker>
+ </el-form-item>
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="modificationVisible = false"
+ >纭� 瀹�</el-button
+ >
+ </span>
+ </el-dialog>
+ <!-- 鍐嶆闅忚 -->
+ <el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
+ <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.taskName"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鎮h�呭悕绉�">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.sendname"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="骞撮緞">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.age"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="绉戝">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.deptname"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鐥呭尯">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.leavehospitaldistrictname"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item label="闅忚鏂瑰紡" prop="resource">
+ <el-radio-group v-model="zcform.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="寤剁画鎶ょ悊鏃堕棿">
+ <el-input
+ style="width: 400px"
+ disabled
+ v-model="zcform.endtime"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="闅忚瀹屾垚鏃堕棿" prop="date1">
+ <el-date-picker
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ v-model="zcform.date1"
+ style="width: 100%"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="闅忚璁板綍">
+ <el-input type="textarea" v-model="zcform.remark"></el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import {
+ delUser,
+ addUser,
+ updateUser,
+ resetUserPwd,
+ changeUserStatus,
+} from "@/api/system/user";
+import {
+ getTaskservelist,
+ buidegetTasklist,
+ addserviceSubtask,
+ query360PatInfo,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+import store from "@/store";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+export default {
+ name: "Discharge",
+ dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+ components: { Treeselect },
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ dialogFormVisible: false,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: null,
+ // 寮瑰嚭灞傛爣棰�
+ title: "鏂板褰卞儚闅忚",
+ // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+ addalteropen: false,
+ // 淇敼鍙戦�佹椂闂村璇濇
+ modificationVisible: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 榛樿瀵嗙爜
+ initPassword: undefined,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ dateRangefs: [],
+ // 宀椾綅閫夐」
+ postOptions: [],
+ ruleForm: {
+ type: [],
+ },
+ zcform: {},
+ dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+ inputVisible: false,
+ Labelchange: false,
+ ycvalue: "",
+ yfsvalue: "",
+ inputValue: "",
+ preachform: "",
+ previewVisible: false, //褰卞儚闅忚棰勮寮规
+ radio: "",
+ radios: [],
+ total: 0, // 鎬绘潯鏁�
+ ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
+ //棰勮褰卞儚闅忚淇℃伅
+ previewvalue: {
+ username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
+ },
+ value: [],
+ list: [],
+
+ sourcetype: [
+ {
+ value: 1,
+ label: "绉戝",
+ children: [],
+ },
+ {
+ value: 2,
+ label: "鐥呭尯",
+ children: [],
+ },
+ {
+ value: 3,
+ label: "鍏ㄩ儴",
+ },
+ ],
+ loading: false,
+ cardlist: [
+ {
+ name: "寤剁画鎶ょ悊鏈嶅姟鎬婚噺",
+ value: 0,
+ },
+ // {
+ // name: "鎮h�呰繃婊�",
+ // value: 0,
+ // },
+ {
+ name: "闇�闅忚",
+ value: 0,
+ },
+ {
+ name: "鍙戦�佸け璐�",
+ value: 0,
+ },
+ {
+ name: "寰呴殢璁�",
+ value: 0,
+ },
+ // {
+ // name: "宸插彂閫�",
+ // value: 0,
+ // },
+
+ // {
+ // name: "琛ㄥ崟宸插彂閫�",
+ // value: 0,
+ // },
+ ],
+ zcrules: {
+ date1: [
+ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+ ],
+ resource: [
+ { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+ ],
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {
+ phonenumber: "",
+ totagid: "",
+ types: "",
+ nickName: "",
+ qystatus: "",
+ btstatus: "",
+ },
+ topicoptionssort: [
+ {
+ value: 0,
+ label: "寤剁画鎶ょ悊鏃堕棿(姝e簭)",
+ },
+ {
+ value: 1,
+ label: "寤剁画鎶ょ悊鏃堕棿(鍊掑簭)",
+ },
+ {
+ value: 2,
+ label: "鍙戦�佹椂闂�(姝e簭)",
+ },
+ {
+ value: 3,
+ label: "鍙戦�佹椂闂�(鍊掑簭)",
+ },
+ {
+ value: 7,
+ label: "搴旈殢璁挎棩鏈�(姝e簭)",
+ },
+ {
+ value: 8,
+ label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
+ },
+ ],
+ // 鏌ヨ鍙傛暟
+ topqueryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ sendstate: 2,
+ sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 寤剁画鎶ょ悊鏃堕棿(姝e簭) 1 寤剁画鎶ょ悊鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭) 7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+ serviceType: 3,
+ searchscope: 3,
+ visitCount: 2,
+ scopetype: [],
+ visitDeptCodes: [],
+ leaveldeptcodes:[],
+ leavehospitaldistrictcodes: [],
+ },
+ propss: { multiple: true },
+ options: [],
+
+ topicoptions: [
+ {
+ value: null,
+ label: "鍏ㄩ儴",
+ },
+ {
+ value: 1,
+ label: "琛ㄥ崟宸查鍙�",
+ },
+ {
+ value: 2,
+ label: "寰呴殢璁�",
+ },
+ {
+ value: 3,
+ label: "琛ㄥ崟宸插彂閫�",
+ },
+ {
+ value: 4,
+ label: "涓嶆墽琛�",
+ },
+ {
+ value: 5,
+ label: "鍙戦�佸け璐�",
+ },
+ {
+ value: 6,
+ label: "宸插畬鎴�",
+ },
+ ],
+ sextype: [
+ {
+ value: 1,
+ label: "鐢�",
+ },
+ {
+ value: 2,
+ label: "濂�",
+ },
+ ],
+ topicoptionsyj: [
+ {
+ value: 1,
+ label: "寮傚父",
+ },
+ {
+ value: 0,
+ label: "姝e父",
+ },
+ ],
+ 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: localStorage.getItem("YongHuID"),
+ YongHuXM: localStorage.getItem("YongHuXM"),
+ ZuZhiJGID: localStorage.getItem("orgid"),
+ ZuZhiJGMC: localStorage.getItem("orgname"),
+ idp: "lyra",
+ },
+ },
+ },
+ amendtag: false,
+ errtype: "",
+ leavehospitaldistrictcode: "",
+ serviceState: [],
+ checkboxlist: [],
+ // 琛ㄥ崟鏍¢獙
+ rules: {},
+ };
+ },
+ watch: {},
+ created() {
+ this.serviceState = store.getters.serviceState;
+ this.checkboxlist = store.getters.checkboxlist;
+ this.errtype = this.$route.query.errtype;
+ this.leavehospitaldistrictcode =
+ this.$route.query.leavehospitaldistrictcode;
+ this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+ return {
+ label: dept.deptName,
+ value: dept.deptCode,
+ };
+ });
+ this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+ return {
+ label: dept.districtName,
+ value: dept.districtCode,
+ };
+ });
+ if (this.errtype) {
+ this.toleadExport(2);
+ } else {
+ this.getList(1);
+ }
+ this.getConfigKey("sys.user.initPassword").then((response) => {
+ this.initPassword = response.msg;
+ });
+ },
+ activated() {
+ this.getList(1);
+ },
+ methods: {
+ /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+ getList(refresh) {
+ // 榛樿鍏ㄩ儴
+
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ // 鎺ュ彈寮傚父璺宠浆
+ if (this.errtype) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(
+ this.leavehospitaldistrictcode
+ );
+ console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+ }
+ this.loading = true;
+ if (
+ this.topqueryParams.leavehospitaldistrictcodes[0] &&
+ this.topqueryParams.visitDeptCodes[0]&&this.topqueryParams.leaveldeptcodes[0]
+ ) {
+ this.topqueryParams.deptOrDistrict = 2;
+ } else {
+ this.topqueryParams.deptOrDistrict = 1;
+ }
+ getTaskservelist(this.topqueryParams).then((response) => {
+ this.userList = response.rows[0].serviceSubtaskList;
+ this.total = response.total;
+ if (refresh) {
+ this.cardlist[0].value =
+ Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+ // this.cardlist[1].value = response.rows[0].wzx;
+ this.cardlist[1].value = response.rows[0].ysf;
+ this.ycvalue = response.rows[0].yc;
+ this.cardlist[2].value = response.rows[0].fssb;
+ this.cardlist[3].value = response.rows[0].dsf;
+ // this.cardlist[4].value = response.rows[0].yfs2;
+ this.yfsvalue = response.rows[0].yfs;
+ }
+ this.loading = false;
+ this.userList.forEach((item) => {
+ let idArray = null;
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+
+ if (item.preachform) {
+ if (item.endtime) {
+ item.preachformson = item.preachform;
+ idArray = item.preachform.split(",");
+ }
+
+ item.preachform = idArray.map((value) => {
+ // 鏌ユ壘id瀵瑰簲鐨勫璞�
+ const item = this.checkboxlist.find(
+ (item) => item.value == value
+ );
+ // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+ return item ? item.label : null;
+ });
+ }
+ });
+ this.total = response.total;
+ });
+ },
+ affiliation() {
+ this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
+
+ this.getList(1);
+ },
+ onthatday() {
+ this.topqueryParams.startSendDateTime = this.getCurrentDate();
+ this.topqueryParams.endSendDateTime = this.getCurrentDate();
+ this.getList(1);
+ },
+ getCurrentDate() {
+ const now = new Date();
+ return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+ },
+ buidegetTasklist(type) {
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ // 鎺ュ彈寮傚父璺宠浆
+ if (this.errtype) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(
+ this.leavehospitaldistrictcode
+ );
+ }
+ let obj = {
+ pageNum: 1,
+ pageSize: 10,
+ leavehospitaldistrictcodes:
+ this.topqueryParams.leavehospitaldistrictcodes,
+ sendstates: [2, 3],
+ visitDeptCodes: this.topqueryParams.visitDeptCodes,
+ leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+ };
+ buidegetTasklist(obj).then((response) => {
+ this.userList = response.rows[0].serviceSubtaskList;
+ this.total = response.total;
+ if (refresh) {
+ this.cardlist[0].value =
+ Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+ this.cardlist[1].value = response.rows[0].wzx;
+ this.cardlist[2].value = response.rows[0].ysf;
+ this.ycvalue = response.rows[0].yc;
+ this.cardlist[3].value = response.rows[0].fssb;
+ this.cardlist[4].value = response.rows[0].dsf;
+ // this.cardlist[5].value = response.rows[0].yfs2;
+ this.yfsvalue = response.rows[0].yfs;
+ }
+ this.loading = false;
+ this.userList.forEach((item) => {
+ let idArray = null;
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+
+ if (item.preachform) {
+ if (item.endtime) {
+ item.preachformson = item.preachform;
+ idArray = item.preachform.split(",");
+ }
+
+ item.preachform = idArray.map((value) => {
+ // 鏌ユ壘id瀵瑰簲鐨勫璞�
+ const item = this.checkboxlist.find(
+ (item) => item.value == value
+ );
+ // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
+ return item ? item.label : null;
+ });
+ }
+ });
+ this.total = response.total;
+ });
+ },
+ // 鏌ョ湅寤剁画鎶ょ悊闅忚璇︽儏
+ Referencequestion(row) {
+ this.previewVisible = true;
+ },
+ // 娣诲姞寮规鎼滅储
+ remoteMethod(query) {
+ if (query !== "") {
+ this.loading = true;
+ setTimeout(() => {
+ this.loading = false;
+ this.options = this.list.filter((item) => {
+ return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+ });
+ }, 200);
+ } else {
+ this.options = [];
+ }
+ },
+ // 褰卞儚闅忚鐘舵�佷慨鏀�
+ handleStatusChange(row) {
+ let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+ this.$modal
+ .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+ .then(function () {
+ return changeUserStatus(row.userId, row.status);
+ })
+ .then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ })
+ .catch(function () {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+ },
+
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ this.form = {
+ userId: undefined,
+ deptId: undefined,
+ userName: undefined,
+ nickName: undefined,
+ password: undefined,
+ phonenumber: undefined,
+ email: undefined,
+ sex: undefined,
+ status: "0",
+ remark: undefined,
+ postIds: [],
+ roleIds: [],
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery(refresh) {
+ if (this.topqueryParams.searchscope == 3) {
+ this.topqueryParams.visitDeptCodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.topqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ this.topqueryParams.pageNum = 1;
+ this.topqueryParams.startOutHospTime = this.dateRange[0];
+ this.topqueryParams.endOutHospTime = this.dateRange[1];
+ this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+ this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+ console.log("2");
+ this.getList(refresh);
+ },
+ // 鎮h�呰寖鍥村鐞�
+ handleChange(value) {
+ let type = value[0];
+ let code = value.slice(-1)[0];
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.visitDeptCodes = [];
+ this.topqueryParams.leaveldeptcodes = [];
+ if (type == 1) {
+ this.topqueryParams.visitDeptCodes.push(code);
+ this.topqueryParams.leaveldeptcodes.push(code);
+ this.topqueryParams.leavehospitaldistrictcodes = [];
+ this.topqueryParams.searchscope = 1;
+ } else if (type == 2) {
+ this.topqueryParams.leavehospitaldistrictcodes.push(code);
+ this.topqueryParams.visitDeptCodes = [];
+ this.topqueryParams.leaveldeptcodes = [];
+ this.topqueryParams.searchscope = 2;
+ } else {
+ this.topqueryParams.searchscope = 3;
+ }
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.dateRangefs = [];
+ this.topqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ sendstate: 2,
+ sort: 2, //0 寤剁画鎶ょ悊鏃堕棿(姝e簭) 1 寤剁画鎶ょ悊鏃堕棿(鍊掑簭) 2 鍙戦�佹椂闂�(姝e簭) 3 鍙戦�佹椂闂�(鍊掑簭)
+ serviceType: 3,
+ searchscope: 3,
+ visitCount: 2,
+ scopetype: [],
+ visitDeptCodes: [],
+ leaveldeptcodes:[],
+ leavehospitaldistrictcodes: [],
+ };
+ this.handleQuery(1);
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleSelectionChange(selection) {
+ this.ids = selection.map((item) => item.userId);
+ this.single = selection.length != 1;
+ this.multiple = !selection.length;
+ },
+ //鍒犻櫎閫夐」
+ handleClose(tag) {
+ this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+ },
+ //瑙﹀彂鏂板杈撳叆
+ showInput() {
+ this.inputVisible = true;
+ this.$nextTick((_) => {
+ this.$refs.saveTagInput.$refs.input.focus();
+ });
+ },
+ //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+ handleInputConfirm() {
+ let inputValue = this.inputValue;
+ if (inputValue) {
+ this.dynamicTags.push(inputValue);
+ }
+ this.inputVisible = false;
+ this.inputValue = "";
+ },
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.$router.push({
+ path: "/followvisit/QuestionnaireTask",
+ query: {
+ type: 2,
+ serviceType: 3,
+ },
+ });
+ },
+ //鎮h��360璺宠浆
+ gettoken360(sfzh, drcode, drname) {
+ // // this.$modal.msgWarning('360鍔熻兘鏆傛湭寮�閫�');
+
+ this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+
+ 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鏌ヨ鏃犵粨鏋�");
+ }
+ });
+ },
+
+ /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+ handleResetPwd(row) {
+ this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ closeOnClickModal: false,
+ inputPattern: /^.{5,20}$/,
+ inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+ })
+ .then(({ value }) => {
+ resetUserPwd(row.userId, value).then((response) => {
+ this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+ });
+ })
+ .catch(() => {});
+ },
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.Labelchange = false;
+ this.reset();
+ },
+ /** 鎻愪氦鎸夐挳 */
+ submitForm: function () {
+ this.$refs["form"].validate((valid) => {
+ if (valid) {
+ this.form.isoperation = 2;
+ this.form.notrequiredFlag = 1;
+ alterpatient(this.form)
+ .then((response) => {
+ console.log(response);
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+ });
+
+ this.reset();
+ this.Labelchange = false;
+ }
+ });
+ },
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const userIds = row.userId || this.ids;
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+ .then(function () {
+ return delUser(userIds);
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 鍏ㄩ儴鍋滄
+ AllStop() {
+ this.$modal
+ .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+ .then(function () {
+ return console.log("鍋滄鎴愬姛");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgWarning("鍋滄鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 鍏ㄩ儴寮�濮�
+ AllStarted() {
+ this.$modal
+ .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+ .then(function () {
+ return console.log("寮�鍚垚鍔�");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("寮�鍚垚鍔�");
+ })
+ .catch(() => {});
+ },
+ // 浠诲姟閲嶇疆
+ TaskReset() {
+ this.$modal
+ .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+ .then(function () {
+ return console.log("閫変腑鎴愬姛");
+ })
+ .then(() => {
+ this.getList(1);
+ this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+ })
+ .catch(() => {});
+ },
+ // 璁剧疆鍙戦�佹椂闂�
+ Sendtimesetting() {
+ this.modificationVisible = true;
+ },
+ // 璺宠浆璇︽儏椤�
+ Seedetails(row) {
+ let type = "";
+ console.log(row, "rwo");
+ if (row.type == 1) {
+ type = 1;
+ }
+ this.$router.push({
+ path: "/followvisit/record/detailpage/",
+ query: {
+ taskid: row.taskid,
+ patid: row.patid,
+ id: row.id,
+ Voicetype: type,
+ visitCount: this.topqueryParams.visitCount,
+ },
+ });
+ },
+ // 鍐嶆闅忚
+ followupvisit(row) {
+ this.zcform = row;
+ this.zcform.endtime = this.formatTime(this.zcform.endtime);
+ this.dialogFormVisible = true;
+ },
+ onSubmit() {},
+ // 鏆傚仠鏈嶅姟
+ handlestop(row) {
+ let objson = row;
+ this.$modal
+ .confirm(
+ '鏄惁纭鏆傚仠浠诲姟鍚嶇О涓�"' +
+ row.taskName +
+ '鎮h�呭悕绉颁负"' +
+ row.sendname +
+ '"鐨勬暟鎹」锛�'
+ )
+ .then(() => {
+ getTaskservelist({
+ patid: row.patid,
+ taskid: row.taskid,
+ }).then((res) => {
+ if (res.code == 200) {
+ objson.sendstate = 4;
+ objson.remark = "鏈嶅姟鏆傚仠";
+ Editsingletaskson(objson).then((res) => {
+ if (res.code) {
+ this.$modal.msgSuccess("璁板綍鎴愬姛");
+ this.getList(1);
+ }
+ });
+ }
+ });
+ })
+ .catch(() => {});
+ },
+ // 鎮h�呰繃婊よЕ鍙�
+ handleUpdate(row) {
+ particularpatient(row.patid).then((response) => {
+ this.form = response.data;
+ this.form.filterDrname = store.getters.nickName;
+ });
+ this.amendtag = true;
+ this.Labelchange = true;
+ },
+ // 渚挎嵎鎸夐挳
+ toleadExport(too) {
+ if (too == 1) {
+ this.topqueryParams.sendstate = 4;
+ this.topqueryParams.excep = null;
+ } else if (too == 2) {
+ this.topqueryParams.excep = 1;
+ }
+ this.handleQuery();
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.topqueryParams.pageNum = null;
+ this.topqueryParams.pageSize = null;
+ this.download(
+ "smartor/serviceSubtask/patItemExport",
+ {
+ ...this.topqueryParams,
+ },
+ `user_${new Date().getTime()}.xlsx`
+ );
+ },
+ // 寮傚父鍒楁覆鏌�
+ tableRowClassName({ row, rowIndex }) {
+ if (row.excep == 1) {
+ return "warning-row";
+ }
+ return "";
+ },
+ // 鍒涘缓鍐嶆闅忚鏈嶅姟
+ setupsubtask() {
+ this.$refs["zcform"].validate((valid) => {
+ if (valid) {
+ this.zcform.remark =
+ this.zcform.remark + "銆�" + this.getCurrentTime() + "銆�";
+ let form = structuredClone(this.zcform);
+ 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;
+ form.preachform = form.preachformson;
+ form.longTask = 0;
+ addserviceSubtask(form).then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("鍒涘缓鎴愬姛");
+ } else {
+ this.$modal.msgError("鍒涘缓澶辫触");
+ }
+ 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}`;
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+ color: #ffffff;
+ background: #409eff;
+ border-color: #4fabe9;
+}
+
+.document {
+ // width: 100px;
+ height: 50px;
+}
+::v-deep.el-table .warning-row {
+ background: #eec4c4;
+}
+
+.documentf {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.download {
+ text-align: center;
+
+ .el-upload__tip {
+ font-size: 23px;
+ }
+
+ .el-upload__text {
+ font-size: 23px;
+ }
+}
+
+.uploading {
+ margin-top: 20px;
+ margin: 20px;
+ padding: 30px;
+ background: #ffffff;
+ 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);
+}
+
+.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;
+}
+
+.drexamine {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 30px;
+ background: #daeaf5;
+
+ img {
+ width: 100px;
+ height: 100px;
+ }
+}
+
+.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);
+
+ .topic-dev {
+ margin-bottom: 25px;
+ font-size: 20px !important;
+
+ .dev-text {
+ margin-bottom: 10px;
+ }
+ }
+}
+::v-deep.leftvlue .el-card__body {
+ background: #F2F8FF;
+ color: #324A9B;
+}
+::v-deep.leftvlue .el-card__body:hover {
+ background: #3664D9;
+ color: #fff;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.errleftvlue .el-card__body {
+ background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+ background: #f88d96;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+ background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+ background: #8df8a4;
+ cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+ font-weight: 500;
+ background-color: #2ba05c;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-xq {
+ font-weight: 500;
+ background-color: #409eff;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-sc {
+ font-weight: 500;
+ background-color: #b3a21f;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-zx {
+ background: #4fabe9;
+ padding: 5px;
+ border-radius: 1px;
+ color: #ffffff;
+}
+.button-textxga {
+ color: #de7897;
+}
+::v-deep.el-radio-group {
+ span {
+ font-size: 24px;
+ }
+}
+
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+// span {
+// font-size: 24px;
+// }
+// }
+</style>
diff --git a/src/views/followvisit/record/TracingInfo/index.vue b/src/views/followvisit/record/TracingInfo/index.vue
new file mode 100644
index 0000000..c10daf2
--- /dev/null
+++ b/src/views/followvisit/record/TracingInfo/index.vue
@@ -0,0 +1,2969 @@
+<template>
+ <!-- 鑱婅繛椤甸潰璁板綍 -->
+ <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(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 class="merge-controls" v-if="Whetherall">
+ <el-button
+ type="primary"
+ @click="toggleMergeMode"
+ :disabled="selectedServices.length < 2"
+ >
+ {{ isMergeMode ? "鍙栨秷鍚堝苟" : "鍚堝苟缂栬緫闂嵎" }}
+ </el-button>
+ <el-button
+ v-if="isMergeMode"
+ type="success"
+ @click="openMergeDialog"
+ :disabled="selectedServices.length < 2"
+ >
+ 寮�濮嬪悎骞� (宸查�� {{ selectedServices.length }} 涓湇鍔�)
+ </el-button>
+ </div>
+ </div>
+ <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> -->
+ </div>
+ </div>
+ <div>
+ <el-table
+ :data="logsheetlist"
+ :row-class-name="tableRowClassName"
+ :max-height="350"
+ style="width: 100%"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ type="selection"
+ width="55"
+ :selectable="checkSelectable"
+ v-if="Whetherall"
+ ></el-table-column>
+ <el-table-column
+ prop="sendname"
+ align="center"
+ 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"
+ align="center"
+ width="200"
+ show-overflow-tooltip
+ label="浠诲姟鍚嶇О"
+ >
+ </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
+ >
+ </el-table-column>
+
+ <el-table-column
+ prop="bankcardno"
+ align="center"
+ label="鍛煎彨鐘舵��"
+ width="210"
+ >
+ </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="Seedetails(scope.row)"
+ ><span class="button-zx"
+ ><i class="el-icon-s-order"></i>鏌ョ湅</span
+ ></el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+
+ <div class="action-container">
+ <!-- 闅忚鍐呭 -->
+ <div class="call-action">
+ <div class="call-container">
+ <!-- <div class="call-header">
+ <h2>涓�閿懠鍙姛鑳�</h2>
+ </div> -->
+
+ <div class="headline">
+ <div>闅忚鍐呭</div>
+ </div>
+ <div>
+ <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" v-if="!Voicetype">
+ <div
+ class="topic-dev"
+ v-for="(item, index) in tableDatatop"
+ :key="item.id"
+ >
+ <!-- 鍗曢�� -->
+ <div
+ :class="getTopicClass(item)"
+ :key="index"
+ v-if="item.scriptType == 1 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕鍗曢�塢<span>{{
+ item.scriptContent
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-radio-group v-model="item.scriptResult">
+ <el-radio
+ v-for="(
+ items, indexs
+ ) in item.svyTaskTemplateTargetoptions"
+ :class="getOptionClass(items)"
+ :key="indexs"
+ :label="items.optioncontent"
+ @click.native.prevent="
+ handleRadioToggle(
+ item,
+ index,
+ item.svyTaskTemplateTargetoptions,
+ items.optioncontent
+ )
+ "
+ >{{ items.optioncontent }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ <div
+ v-if="item.showAppendInput || item.answerps"
+ class="append-input-container"
+ >
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+ v-model="item.answerps"
+ clearable
+ ></el-input>
+ </div>
+ <div v-show="item.prompt">
+ <el-alert :title="item.prompt" type="warning">
+ </el-alert>
+ </div>
+ </div>
+ <!-- 澶氶�� -->
+ <div
+ :class="
+ item.isabnormal
+ ? 'scriptTopic-isabnormal'
+ : 'scriptTopic-dev'
+ "
+ :key="index"
+ v-if="item.scriptType == 2 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕澶氶�塢<span>{{
+ item.scriptContent
+ }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-checkbox-group
+ v-model="item.scriptResult"
+ @change="updateScore($event, index, item)"
+ >
+ <el-checkbox
+ :class="items.isabnormal ? 'red-star' : ''"
+ @change="$forceUpdate()"
+ v-for="(
+ items, indexs
+ ) in item.svyTaskTemplateTargetoptions"
+ :key="indexs"
+ :label="items.optioncontent"
+ >
+ {{ items.optioncontent }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </div>
+ <div v-show="item.prompt && item.scriptResult[0]">
+ <el-alert :title="item.prompt" type="warning">
+ </el-alert>
+ </div>
+ </div>
+ <!-- 濉┖ -->
+ <div
+ class="scriptTopic-dev"
+ :key="index"
+ v-if="item.scriptType == 4 && !item.astrict"
+ >
+ <div class="dev-text">
+ {{ index + 1 }}銆乕闂瓟]<span>{{
+ item.scriptContent
+ }}</span>
+ <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
+ </div>
+ <div class="dev-xx" v-if="item.valueType == 3">
+ <el-input
+ type="text"
+ v-numeric-only
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.scriptResult"
+ >
+ </el-input>
+ </div>
+ <div class="dev-xx" v-else>
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.scriptResult"
+ clearable
+ >
+ </el-input>
+ </div>
+ </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.ivrTaskScriptTargetoptionList,
+ item
+ )
+ "
+ >
+ <el-radio
+ v-for="(items, index) in item.scriptResult"
+ :key="index"
+ :label="items"
+ :class="items.isabnormal ? 'red-star' : ''"
+ >{{ 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.scriptContent
+ }}</span>
+ <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
+ </div>
+ <div class="dev-xx" v-if="item.valueType == 3">
+ <el-input
+ type="text"
+ v-numeric-only
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.scriptResult"
+ >
+ </el-input>
+ </div>
+ <div class="dev-xx" v-else>
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.scriptResult"
+ 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 name="yy">
+ <span class="mulsz" slot="label"
+ ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
+ >
+ <div class="borderdiv">
+ <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+ <div
+ style="
+ display: flex;
+ text-align: center;
+ align-items: center;
+ color: #59a0f0;
+ "
+ >
+ 瀹屾暣璇煶锛�
+ <mini-audio
+ :audio-source="
+ voice ? voice : '@assets/order/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
+ : '@assets/order/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>
+ </div>
+ </div>
+ <!-- 浜哄伐澶勭悊 -->
+ <div class="manual-action">
+ <div class="Followuserinfos">
+ <div>
+ <el-form
+ ref="userform"
+ :model="form"
+ :rules="userrules"
+ label-width="120px"
+ >
+ <div class="headline">
+ <div>浜哄伐澶勭悊</div>
+ <div style="margin: 0 30px">
+ <el-button
+ type="primary"
+ plain
+ @click="Editsingletasksonyic('')"
+ >淇濆瓨鍩虹淇℃伅</el-button
+ >
+ </div>
+ <div>
+ <el-button
+ type="primary"
+ round
+ v-if="this.form.isVisitAgain != 2"
+ @click="sendAgain()"
+ >鍐嶆闅忚</el-button
+ >
+ </div>
+ <div class="tag-selector-container">
+ <el-select
+ v-model="selectedTag"
+ placeholder="璇烽�夋嫨寮傚父鐘舵��"
+ clearable
+ style="width: 150px; margin-right: 10px"
+ >
+ <el-option
+ v-for="item in tagOptions"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ <span style="display: flex; align-items: center">
+ <span
+ class="color-indicator"
+ :style="{ backgroundColor: item.color }"
+ ></span>
+ <span>{{ item.label }}</span>
+ </span>
+ </el-option>
+ </el-select>
+
+ <!-- 褰撳墠閫夋嫨鐨勯鑹叉寚绀哄櫒 -->
+ <div
+ v-if="selectedTag"
+ class="color-indicator selected-indicator"
+ :style="{ backgroundColor: getSelectedTagColor() }"
+ ></div>
+
+ <!-- 鏍囪璇存槑鎻愮ず -->
+ <el-tooltip
+ v-if="selectedTag"
+ effect="light"
+ :content="getSelectedDescription()"
+ placement="top"
+ >
+ <i class="el-icon-info tag-info-icon"></i>
+ </el-tooltip>
+ </div>
+ </div>
+ <el-row>
+ <el-col :span="14"
+ ><el-form-item label="鑱旂郴鐢佃瘽">
+ <el-input
+ placeholder="鑱旂郴鐢佃瘽缂哄け"
+ v-model="userform.telcode"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-phone"
+ @click="handleCall(userform.telcode, 'tel')"
+ :disabled="!isValidPhone(userform.telcode)"
+ ></el-button
+ ></el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="14"
+ ><el-form-item label="鑱旂郴浜虹數璇�">
+ <el-input
+ placeholder="鑱旂郴浜虹數璇濈己澶�"
+ v-model="userform.relativetelcode"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-phone"
+ @click="
+ handleCall(userform.relativetelcode, 'relative')
+ "
+ :disabled="!isValidPhone(userform.relativetelcode)"
+ ></el-button
+ ></el-input> </el-form-item
+ ></el-col>
+ <el-col :span="10"
+ ><el-form-item label="鑱旂郴浜哄叧绯�">
+ <el-input
+ placeholder="鑱旂郴浜哄叧绯荤己澶�"
+ v-model="userform.relation"
+ ></el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <div class="call-controls">
+ <CallButton
+ ref="callButton"
+ :phoneNumber="currentPhoneNumber"
+ style="display: none"
+ />
+
+ <div v-if="callStatus === 'connected'" class="hangup-btn">
+ <el-button
+ type="danger"
+ icon="el-icon-phone"
+ @click="endCurrentCall"
+ :loading="isEndingCall"
+ >
+ 鎸傛柇鐢佃瘽
+ </el-button>
+ </div>
+ <div class="call-status" v-if="callStatus !== 'idle'">
+ <el-alert
+ :title="callStatusText"
+ :type="callStatusType"
+ :closable="false"
+ show-icon
+ />
+ </div>
+ </div>
+ <el-form-item label="闅忚鍐呭" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
+ <el-input type="textarea" v-model="form.remark"></el-input>
+ </el-form-item>
+ <el-form-item label="闅忚璁板綍" v-else>
+ <el-input type="textarea" v-model="form.remark"></el-input>
+ </el-form-item>
+
+ <el-form-item label="闅忚鎯呭喌" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
+ <el-radio-group v-model="form.taskSituation">
+ <el-radio
+ v-for="city in cities"
+ :label="city.value"
+ :value="city.value"
+ :key="city.value"
+ >{{ city.label }}</el-radio
+ >
+ </el-radio-group>
+ </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 plain type="info" @click="Editsingletaskson('5')"
+ >涓績闅忚</el-button
+ >
+ <el-button type="primary" round @click="sendAgainmsg"
+ >鐭俊鍙戦��</el-button
+ >
+ </div>
+ </el-form-item>
+ </el-form>
+
+ <div class="detailed">
+ <h3>鎮h�呮。妗堜俊鎭�</h3>
+ <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-select v-model="userform.sex" placeholder="璇烽�夋嫨">
+ <el-option label="鐢�" :value="1"> </el-option>
+ <el-option label="濂�" :value="2"> </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ <el-col :span="12">
+ <el-form-item label="骞撮緞" prop="name">
+ <el-input
+ v-model="userform.age"
+ placeholder="璇疯緭鍏ュ鍚�"
+ maxlength="20"
+ ></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="name">
+ <el-input
+ v-model="form.leavediagname"
+ placeholder="璇疯緭鍏ヨ瘖鏂�"
+ maxlength="50"
+ ></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-form>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 鐭俊鍙戦�佸璇濇 -->
+ <el-dialog title="鐭俊鍙戦��" :visible.sync="smsDialogVisible">
+ <!-- 娉ㄦ剰杩欓噷浣跨敤浜� smsDialogVisible 浠ュ尯鍒嗗凡鏈夌殑 dialogFormVisible -->
+ <el-form ref="smsForm" :model="form" label-width="80px">
+ <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="userform.telcode"
+ ></el-input>
+ <!-- 娉ㄦ剰杩欓噷鍙兘浣跨敤 userform.telcode -->
+ </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 type="textarea" v-model="smsContent"></el-input>
+ <!-- 寤鸿浣跨敤鐙珛鐨� smsContent 鍙橀噺 -->
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="smsDialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="sendSms">纭鍙戦��</el-button>
+ <!-- 娉ㄦ剰鏂规硶鍚嶆敼涓� sendSms -->
+ </div>
+ </el-dialog>
+ <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>
+ <div class="headline">涓婃闅忚</div>
+ <el-divider></el-divider>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="闅忚鏂瑰紡">
+ <el-select
+ v-model="form.visitType2"
+ filterable
+ allow-create
+ default-first-option
+ disabled
+ placeholder="璇烽�夋嫨闅忚鏂瑰紡"
+ class="custom-disabled"
+ >
+ <el-option
+ v-for="item in options"
+ :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-date-picker
+ type="date"
+ disabled
+ placeholder="閫夋嫨鏃ユ湡"
+ :picker-options="pickerOptions"
+ align="right"
+ v-model="form.date2"
+ class="custom-disabled"
+ ></el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-form-item label="闅忚璁板綍">
+ <el-input
+ class="custom-disabled"
+ type="textarea"
+ disabled
+ v-model="form.remark2"
+ ></el-input>
+ </el-form-item>
+ <div class="headline">涓嬫闅忚</div>
+ <el-divider></el-divider>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="闅忚鏂瑰紡" prop="visitType">
+ <el-select
+ v-model="form.visitType"
+ filterable
+ allow-create
+ default-first-option
+ @change="visitChange"
+ placeholder="璇烽�夋嫨闅忚鏂瑰紡(渚濆嚭闄㈡椂闂磋绠�)"
+ >
+ <el-option
+ v-for="item in options"
+ :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="闅忚鏃堕棿" prop="date1">
+ <el-date-picker
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ :picker-options="pickerOptions"
+ align="right"
+ v-model="form.date1"
+ class="custom-disabled"
+ value-format="yyyy-MM-dd"
+ @change="checkFollowupDate"
+ ></el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <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-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 class="main-content" v-if="orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'">
+ <!-- <el-button @click="CaldialogVisible = true">鎵撳紑寮规</el-button> -->
+
+ <!-- 寮规璋冪敤 -->
+ <el-dialog
+ title="鍛煎彨鍔熻兘妗�"
+ :visible.sync="CaldialogVisible"
+ width="60%"
+ >
+ <CallCenterLs ref="CallCenterLs" :initial-phone="currentPhoneNumber" />
+ </el-dialog>
+ </div>
+ </div>
+</template>
+
+<script>
+import {
+ getsearchrResults,
+ getPersonVoices,
+ addserviceSubtask,
+ getTaskservelist,
+ getTaskFollowup,
+ Editsingletaskson,
+ serviceSubtaskDetailedit,
+ serviceSubtaskDetailadd,
+ updatePersonVoices,
+ addPersonVoices,
+ query360PatInfo,
+ sendMsg,
+} from "@/api/AiCentre/index";
+import {
+ messagelistpatient,
+ alterpatient,
+ listcontactinformation,
+} from "@/api/patient/homepage";
+import CallButton from "@/components/CallButton";
+import CallCenterLs from "@/components/CallCenterLs";
+export default {
+ components: {
+ CallButton,
+ CallCenterLs,
+ },
+ directives: {
+ numericOnly: {
+ bind(el, binding, vnode) {
+ // 灏濊瘯鑾峰彇瀹為檯鐨刬nput鍏冪礌
+ const input = el.tagName === "INPUT" ? el : el.querySelector("input");
+ if (!input) {
+ console.warn("v-numeric-only: 鏈壘鍒癷nput鍏冪礌");
+ return;
+ }
+
+ const handleInput = function (event) {
+ const oldValue = input.value;
+ const newValue = oldValue.replace(/[^\d]/g, "");
+ if (newValue !== oldValue) {
+ input.value = newValue;
+ // 瑙﹀彂input浜嬩欢锛岄�氱煡v-model鏇存柊
+ input.dispatchEvent(new Event("input", { bubbles: true })); // 娉ㄦ剰bubbles
+ }
+ };
+
+ const handlePaste = function (event) {
+ event.preventDefault();
+ const clipboardData = event.clipboardData || window.clipboardData;
+ const pastedData = clipboardData.getData("text");
+ const numericValue = pastedData.replace(/[^\d]/g, "");
+
+ // 妯℃嫙鍦ㄥ厜鏍囦綅缃彃鍏ョ函鏁板瓧鏂囨湰
+ const start = input.selectionStart;
+ const end = input.selectionEnd;
+ input.value =
+ input.value.substring(0, start) +
+ numericValue +
+ input.value.substring(end);
+ // 璋冩暣鍏夋爣浣嶇疆
+ const newCursorPos = start + numericValue.length;
+ input.setSelectionRange(newCursorPos, newCursorPos);
+
+ // 瑙﹀彂input浜嬩欢
+ input.dispatchEvent(new Event("input", { bubbles: true }));
+ };
+
+ input.addEventListener("input", handleInput);
+ input.addEventListener("paste", handlePaste);
+
+ // 瀛樺偍寮曠敤浠ヤ究瑙g粦
+ el._numericOnly = {
+ inputHandle: handleInput,
+ pasteHandle: handlePaste,
+ inputEl: input,
+ };
+ },
+ unbind(el) {
+ if (el._numericOnly) {
+ const { inputHandle, pasteHandle, inputEl } = el._numericOnly;
+ inputEl.removeEventListener("input", inputHandle);
+ inputEl.removeEventListener("paste", pasteHandle);
+ delete el._numericOnly;
+ }
+ },
+ },
+ },
+ dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+ data() {
+ const validatePhone = (rule, value, callback) => {
+ if (!value) {
+ return callback(new Error("璇疯緭鍏ヨ仈绯荤數璇�"));
+ }
+ setTimeout(() => {
+ if (!/^1[3-9]\d{9}$/.test(value)) {
+ callback(new Error("璇疯緭鍏ユ纭殑11浣嶆墜鏈哄彿鐮�"));
+ } else {
+ callback();
+ }
+ }, 300);
+ };
+ return {
+ userid: "",
+ currentPhoneNumber: "",
+ callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
+ // 宸叉湁鏁版嵁...
+ callStatus: "idle", // idle, calling, connected, ended, failed
+ isEndingCall: false,
+ CaldialogVisible: false,
+ currentCall: null, // 褰撳墠閫氳瘽瀵硅薄
+ // 璺敱鐩戝惉鐩稿叧
+ routeWatcher: null,
+ lastRoutePath: this.$route.path,
+ input: "浠婂ぉ韬綋杩樹笉閿�",
+ radio: "2",
+ taskname: "",
+ activeName: "wj",
+ voice: "",
+ templateid: "",
+ again: "",
+ orgname: "",
+ zcform: {},
+ form: {},
+ cities: [
+ {
+ label: "姝e父璇煶",
+ value: "1",
+ },
+ {
+ label: "鎮h�呮嫆鎺ユ垨鎷掕",
+ value: "2",
+ },
+ {
+ label: "闈㈣鎴栬�呮帴璇�",
+ value: "3",
+ },
+ {
+ label: "寰俊闅忚",
+ value: "4",
+ },
+ {
+ label: "闅忚鐢佃瘽涓嶆纭�",
+ value: "5",
+ },
+ {
+ label: "鍏朵粬鎯呭喌涓嶅疁闅忚",
+ value: "6",
+ },
+ ],
+ tableDatatop: [], //棰樼洰琛�
+ voiceDatatop: [], //棰樼洰琛�
+ dynamicTags: [],
+ isMergeMode: false,
+ mergeDialogVisible: false,
+ selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛�
+ selectedTag: "",
+ tagOptions: [
+ {
+ value: "0",
+ label: "姝e父",
+ type: "normal",
+ color: "#7ff5e1",
+ description: "鎮h�呮儏鍐垫甯革紝鏃犻渶鐗瑰埆鍏虫敞",
+ },
+ {
+ value: "1",
+ label: "寮傚父",
+ type: "abnormal",
+ color: "#f75c5c",
+ description: "鎮h�呭瓨鍦ㄥ紓甯告儏鍐碉紝闇�瑕侀噸鐐瑰叧娉�",
+ },
+ {
+ value: "2",
+ label: "璀﹀憡",
+ type: "warning",
+ color: "#fbfb4a",
+ description: "鎮h�呮儏鍐甸渶瑕佽鍛婃敞鎰忥紝鍙兘瀛樺湪椋庨櫓",
+ },
+ ],
+ zcrules: {
+ resource: [
+ { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+ ],
+ date1: [
+ { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+ {
+ validator: (rule, value, callback) => {
+ if (!value) {
+ return callback(new Error("璇烽�夋嫨闅忚鏃堕棿"));
+ }
+ const selectedDate = new Date(value);
+ const now = new Date();
+ if (selectedDate < now) {
+ return callback(new Error("闅忚鏃堕棿涓嶈兘鏃╀簬褰撳墠鏃ユ湡"));
+ }
+ callback();
+ },
+ trigger: "change",
+ },
+ ],
+ },
+ userrules: {
+ telcode: [{ validator: validatePhone, trigger: "blur" }],
+ relativetelcode: [{ validator: validatePhone, 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: localStorage.getItem("YongHuID"),
+ YongHuXM: localStorage.getItem("YongHuXM"),
+ ZuZhiJGID: localStorage.getItem("orgid"),
+ ZuZhiJGMC: localStorage.getItem("orgname"),
+ idp: "lyra",
+ },
+ },
+ },
+ pickerOptions: {
+ disabledDate(time) {
+ // 绂佺敤浠婂ぉ鍙婁箣鍓嶇殑鏃ユ湡
+ return time.getTime() < Date.now() - 24 * 60 * 60 * 1000;
+ },
+ // 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: "涓�涓湀鍚�",
+ // onClick(picker) {
+ // const date = new Date();
+ // date.setTime(date.getTime() + 3600 * 1000 * 24 * 30);
+ // picker.$emit("pick", date);
+ // },
+ // },
+ // {
+ // text: "涓変釜鏈堝悗",
+ // onClick(picker) {
+ // const date = new Date();
+ // date.setTime(date.getTime() + 3600 * 1000 * 24 * 90);
+ // picker.$emit("pick", date);
+ // },
+ // },
+ // {
+ // text: "鍏釜鏈堝悗",
+ // onClick(picker) {
+ // const date = new Date();
+ // date.setTime(date.getTime() + 3600 * 1000 * 24 * 180);
+ // picker.$emit("pick", date);
+ // },
+ // },
+ // {
+ // text: "涓�骞村悗",
+ // onClick(picker) {
+ // const date = new Date();
+ // date.setTime(date.getTime() + 3600 * 1000 * 24 * 365);
+ // picker.$emit("pick", date);
+ // },
+ // },
+ // ],
+ },
+ options: [
+ {
+ value: "涓冨ぉ鍚�",
+ label: "涓冨ぉ鍚�",
+ },
+ {
+ value: "15澶╁悗",
+ label: "15澶╁悗",
+ },
+ {
+ value: "涓�涓湀鍚�",
+ label: "涓�涓湀鍚�",
+ },
+ {
+ value: "涓変釜鏈堝悗",
+ label: "涓変釜鏈堝悗",
+ },
+ {
+ value: "鍏釜鏈堝悗",
+ label: "鍏釜鏈堝悗",
+ },
+ {
+ value: "涓�骞村悗",
+ label: "涓�骞村悗",
+ },
+ ],
+ userform: {},
+ smsDialogVisible: false, // 鎺у埗鐭俊瀵硅瘽妗嗘樉绀�
+ smsContent: "", // 瀛樺偍鐭俊鍐呭
+ Whetherall: true, //鏄惁鍏ㄩ儴璁板綍灞曠ず
+ dialogFormVisible: false,
+ Voicetype: 0, //鏄惁涓鸿闊虫湇鍔�
+ visitCount: null,
+ logsheetlist: [],
+ topicobj: {},
+ sendname: null,
+ serviceType: null,
+ id: null,
+ taskid: null,
+ patid: null,
+ };
+ },
+
+ computed: {
+ callStatusText() {
+ const statusMap = {
+ idle: "鍑嗗鍛煎彨",
+ calling: `姝e湪鍛煎彨 ${this.currentPhoneNumber}...`,
+ connected: `宸叉帴閫� ${this.currentPhoneNumber}`,
+ ended: "閫氳瘽宸茬粨鏉�",
+ failed: "鍛煎彨澶辫触",
+ };
+ return statusMap[this.callStatus];
+ },
+ callStatusType() {
+ const typeMap = {
+ idle: "info",
+ calling: "warning",
+ connected: "success",
+ ended: "info",
+ failed: "error",
+ };
+ return typeMap[this.callStatus];
+ },
+ },
+ 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.visitCount = this.$route.query.visitCount;
+ this.serviceType = this.$route.query.serviceType;
+ this.orgname = localStorage.getItem("orgname");
+
+ this.getTaskservelist();
+ },
+
+ methods: {
+ // 鑾峰彇涓婚鏍峰紡绫�
+ getTopicClass(item) {
+ console.log(item.isabnormal,'111');
+
+ // 鏍规嵁鐘舵�佸�艰繑鍥炲搴旂殑鏍峰紡绫�
+ if (item.isabnormal == 1) {
+ return "scriptTopic-isabnormal"; // 寮傚父 - 绾㈣壊
+ } else if (item.isabnormal == 2) {
+ return "scriptTopic-warning"; // 璀﹀憡 - 榛勮壊
+ } else {
+ return "scriptTopic-dev"; // 姝e父 - 榛樿鏍峰紡
+ }
+ },
+
+ // 鑾峰彇閫夐」鏍峰紡绫�
+ getOptionClass(items) {
+ if (items.isabnormal == 1) {
+ return "red-star"; // 寮傚父 - 绾㈣壊鏄熷彿
+ } else if (items.isabnormal == 2) {
+ return "yellow-star"; // 璀﹀憡 - 榛勮壊鏄熷彿
+ }
+ return ""; // 姝e父 - 鏃犵壒娈婃牱寮�
+ },
+ // 鑾峰彇闂嵎鏁版嵁
+ getsearchrResults(id) {
+ getsearchrResults({
+ taskid: this.taskid,
+ patid: this.patid,
+ subId: id ? id : this.id,
+ isFinish: false,
+ }).then((res) => {
+ if (res.code === 200) {
+ // 閽堝鍐嶆闅忚鏈嶅姟杩涜鍒犻櫎缁撴灉璧嬪��
+ if (this.again && res.data.upScriptResult) {
+ res.data.upScriptResult.forEach((itemA) => {
+ const itemB = res.data.scriptResult.find(
+ (item) => item.scriptContent === itemA.scriptContent
+ );
+ if (itemB) {
+ itemB.scriptResult = itemA.scriptResult;
+ }
+ });
+ }
+ this.tableDatatop = res.data.scriptResult;
+
+ this.tableDatatop.forEach((item) => {
+ if (item.scriptType == 2) item.scriptResult = [];
+ if (item.scriptResultId && item.scriptType != 2) {
+ item.isoption = 3;
+ item.scriptResult = item.scriptResult;
+ } else if (item.scriptResultId && item.scriptType == 2) {
+ item.scriptResult = item.scriptResult.split("&");
+ item.isoption = 3;
+ }
+ });
+ this.taskname = res.data.taskName;
+ this.overdata();
+ }
+ });
+ },
+ //鎮h��360璺宠浆
+ gettoken360(sfzh, drcode, drname) {
+ // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+
+ this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+
+ 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", //1浣忛櫌2闂ㄨ瘖3浣撴4鍑洪櫌
+ };
+ // 鎮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;
+ }
+ });
+ },
+ // 鍐嶆闅忚鏃堕棿閫夊彇
+ visitChange(value) {
+ if (!this.form.endtime) {
+ this.$message.warning("璇峰厛纭鍑洪櫌鏃堕棿");
+ this.form.visitType = "";
+ this.$refs.zcform.clearValidate(["visitType"]);
+ return;
+ }
+
+ const dischargeDate = new Date(this.form.endtime);
+ const now = new Date();
+ let followupDate = new Date(dischargeDate);
+
+ // 鏍规嵁閫夋嫨鐨勯殢璁挎柟寮忚绠楅殢璁挎棩鏈�
+ if (value.includes("涓冨ぉ鍚�")) {
+ followupDate.setDate(dischargeDate.getDate() + 7);
+ } else if (value.includes("15澶╁悗")) {
+ followupDate.setDate(dischargeDate.getDate() + 15);
+ } else if (value.includes("涓�涓湀鍚�")) {
+ followupDate.setMonth(dischargeDate.getMonth() + 1);
+ } else if (value.includes("涓変釜鏈堝悗")) {
+ followupDate.setMonth(dischargeDate.getMonth() + 3);
+ } else if (value.includes("鍏釜鏈堝悗")) {
+ followupDate.setMonth(dischargeDate.getMonth() + 6);
+ } else if (value.includes("涓�骞村悗")) {
+ followupDate.setFullYear(dischargeDate.getFullYear() + 1);
+ }
+
+ if (followupDate < now) {
+ this.$message.warning(
+ `璁$畻鍑虹殑闅忚鏃堕棿 ${this.formatTime(followupDate)} 宸茶繃鏈焋
+ );
+ this.form.visitType = "";
+ this.$refs.zcform.clearValidate(["visitType", "date1"]);
+ return;
+ }
+
+ this.form.date1 = this.formatTime(followupDate);
+
+ this.$refs.zcform.clearValidate(["date1"]);
+ },
+ // 妫�鏌ラ殢璁挎棩鏈熸槸鍚︽湁鏁�
+ checkFollowupDate(date) {
+ console.log(date);
+
+ if (!date) {
+ this.form.date1 = "";
+ this.$refs.zcform.clearValidate(["date1"]);
+ return;
+ }
+
+ const selectedDate = new Date(date);
+ const now = new Date();
+
+ if (selectedDate < now) {
+ this.$message.warning("闅忚鏃堕棿涓嶈兘鏃╀簬褰撳墠鏃ユ湡");
+ this.form.date1 = "";
+ this.$refs.zcform.validateField("date1"); // 瑙﹀彂楠岃瘉
+ }
+ },
+ // 鑾峰彇璇煶鏁版嵁
+ 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) => {
+ if (item.valueType == 3 && item.scriptResult) {
+ // 楠岃瘉鏄惁涓烘湁鏁堟暟瀛�
+ if (!/^\d+$/.test(item.scriptResult)) {
+ this.$message.error(`闂 "${item.scriptContent}" 蹇呴』杈撳叆鏁板瓧`);
+ return;
+ }
+ }
+ var objs = item.svyTaskTemplateTargetoptions.find(
+ (items) => items.optioncontent == item.scriptResult
+ );
+
+ if (objs) {
+ if (excep != 1 && objs.isabnormal) {
+ excep = objs.isabnormal;
+ this.selectedTag = objs.isabnormal;
+ }
+ }
+ console.log(excep, "excep");
+
+ let obj = {
+ asrtext: null,
+ patid: this.patid,
+ subId: this.id,
+ taskid: this.taskid,
+ scriptid: item.id,
+ excep: excep,
+ questiontext: item.scriptContent,
+ answerps: item.answerps || null, // 娣诲姞闄勫姞淇℃伅
+ };
+ 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.userform.name +
+ '"鍐嶆闅忚锛�',
+ "纭",
+ {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ showCancelButton: true,
+ dangerouslyUseHTMLString: true,
+ confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+ cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+ }
+ )
+ .then(() => {
+ document.querySelector("#app").scrollTo(0, 0);
+ this.formtidy();
+ this.dialogFormVisible = true;
+ })
+ .catch(() => {
+ if (this.form.serviceType == 13) {
+ if (this.visitCount != 1) {
+ this.$router.push({
+ path: "/logisticsservice/zbAgain",
+ });
+ } else {
+ this.$router.push({
+ path: "/logisticsservice/record",
+ });
+ }
+ } else if (this.form.serviceType == 2) {
+ if (this.visitCount != 1) {
+ this.$router.push({
+ path: "/logisticsservice/again",
+ });
+ } else {
+ this.$router.push({
+ path: "/followvisit/discharge",
+ });
+ }
+ }
+ });
+ })
+ .catch((error) => {
+ // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲�
+ console.error("鍙戠敓閿欒锛�", error);
+ });
+ },
+ // 鐢佃瘽============================
+ // 楠岃瘉鐢佃瘽鍙风爜鏍煎紡骞惰繑鍥為敊璇俊鎭�
+ validatePhoneNumber(phone) {
+ if (!phone) {
+ return { isValid: false, message: "璇疯緭鍏ョ數璇濆彿鐮�" };
+ }
+
+ // 鎵嬫満鍙锋鍒�
+ const mobileRegex = /^1[3-9]\d{9}$/;
+
+ // 甯﹀尯鍙风殑鍥哄畾鐢佃瘽锛堝畬鏁存牸寮忥級
+ const landlineFullRegex = /^0\d{2,3}-?\d{7,8}$/;
+
+ // 涓嶅甫鍖哄彿鐨勫浐瀹氱數璇濓紙浠呮湰鍦板彿鐮侊級
+ const landlineLocalRegex = /^\d{7,8}$/;
+
+ if (mobileRegex.test(phone)) {
+ return { isValid: true, type: "mobile" };
+ } else if (landlineFullRegex.test(phone)) {
+ return { isValid: true, type: "landline" };
+ } else if (landlineLocalRegex.test(phone)) {
+ return {
+ isValid: false,
+ message: "鏈湴鍙风爜璇锋坊鍔犲尯鍙凤紙濡�028-1234567锛�",
+ };
+ } else {
+ return {
+ isValid: false,
+ message: "璇疯緭鍏ユ纭殑鐢佃瘽鍙风爜锛堟墜鏈哄彿鎴栧甫鍖哄彿鐨勫浐瀹氱數璇濓級",
+ };
+ }
+ },
+ // 浣跨敤绀轰緥
+ isValidPhone(phone) {
+ return this.validatePhoneNumber(phone).isValid;
+ },
+ handleCall(phone, type) {
+ if (!this.isValidPhone(phone)) {
+ this.$message.error("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ return;
+ }
+ this.currentPhoneNumber = phone;
+ // 鍛煎彨鍒ゆ柇
+ if (this.orgname == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�") {
+ this.CaldialogVisible = true;
+ return;
+ }
+
+ this.callType = type;
+ this.callStatus = "calling";
+
+ this.$nextTick(() => {
+ this.$refs.callButton.startCall();
+
+ // 鐩戝惉閫氳瘽鐘舵�佸彉鍖�
+ this.$refs.callButton.$on("call-status-change", (status) => {
+ this.handleCallStatusChange(status);
+ });
+ });
+ },
+ // 澶勭悊閫氳瘽鐘舵�佸彉鍖�
+ handleCallStatusChange(status) {
+ console.log(status, "status");
+
+ this.callStatus = status.type;
+
+ if (status.type === "connected") {
+ this.currentCall = {
+ phone: this.currentPhoneNumber,
+ type: this.callType,
+ startTime: new Date(),
+ };
+ } else if (status.type === "ended" || status.type === "failed") {
+ this.currentCall = null;
+ }
+
+ // 鍙互鏍规嵁鐘舵�佹墽琛屽叾浠栨搷浣�
+ if (status.type === "failed") {
+ this.$message.error(`鍛煎彨澶辫触: ${status.text}`);
+ }
+ },
+ // 缁撴潫褰撳墠閫氳瘽
+ endCurrentCall() {
+ if (!this.currentCall) return;
+
+ this.isEndingCall = true;
+ this.$refs.callButton.endCall();
+
+ // 3绉掑悗閲嶇疆鐘舵��
+ setTimeout(() => {
+ this.isEndingCall = false;
+ }, 3000);
+ },
+ yuyingetdetail() {
+ const dataToSubmit = JSON.parse(JSON.stringify(this.tableDatatop));
+ console.log(dataToSubmit, "dataToSubmit");
+ return;
+ dataToSubmit.forEach((item, index) => {
+ // 瀵规嫹璐濈殑鏁版嵁杩涜鎿嶄綔锛屼笉褰卞搷鍘熷鐨� scriptResult 鏁扮粍
+ 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: dataToSubmit, // 鎻愪氦澶勭悊鍚庣殑鍓湰
+ 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 +
+ '"鍐嶆闅忚锛�',
+ "纭",
+ {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ showCancelButton: true,
+ dangerouslyUseHTMLString: true,
+ confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+ cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+ }
+ )
+ .then(() => {
+ document.querySelector("#app").scrollTo(0, 0);
+ this.formtidy();
+ this.dialogFormVisible = true;
+ })
+ .catch(() => {
+ if (this.form.serviceType == 13) {
+ if (this.visitCount != 1) {
+ this.$router.push({
+ path: "/logisticsservice/zbAgain",
+ });
+ } else {
+ this.$router.push({
+ path: "/logisticsservice/record",
+ });
+ }
+ } else if (form.serviceType == 2) {
+ if (this.visitCount != 1) {
+ this.$router.push({
+ path: "/followvisit/again",
+ });
+ } else {
+ this.$router.push({
+ path: "/followvisit/discharge",
+ });
+ }
+ }
+ });
+ }
+ });
+ },
+ // 鍐嶆闅忚鏁版嵁鏇存浛
+ formtidy() {
+ this.form.visitType2 = this.form.visitType;
+ this.form.date2 = this.form.longSendTime;
+ // this.form.date1 = this.setCurrentDate();
+ this.form.remark2 = this.form.remark;
+ },
+ setCurrentDate() {
+ // 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� yyyy-MM-dd
+ const today = new Date();
+ const year = today.getFullYear();
+ const month = String(today.getMonth() + 1).padStart(2, "0");
+ const day = String(today.getDate()).padStart(2, "0");
+ return `${year}-${month}-${day}`;
+ },
+ // 鑾峰彇鎮h�呰褰�
+ getTaskservelist(id) {
+ if (id) {
+ this.Whetherall = false;
+ } else {
+ this.Whetherall = true;
+ }
+
+ getTaskservelist({
+ patid: this.patid,
+ subId: id,
+ pageSize: 100,
+ }).then((res) => {
+ if (res.code == 200) {
+ this.form = res.rows[0].serviceSubtaskList.find(
+ (item) => item.id == this.id
+ );
+ console.log(this.form, "serviceType");
+
+ this.logsheetlist = res.rows[0].serviceSubtaskList;
+ this.templateid = this.form.templateid;
+ this.selectedTag = this.form.excep;
+ const targetDate = new Date(this.form.longSendTime); // 鐩爣鏃ユ湡
+ const now = new Date(); // 褰撳墠鏃堕棿
+ 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();
+ }
+ });
+ },
+ // 璋冭捣鐭俊鍙戦�佸璇濇
+ sendAgainmsg() {
+ this.smsDialogVisible = true;
+ // 鍙互鍦ㄨ繖閲屽垵濮嬪寲 smsContent锛屼緥濡� this.smsContent = '';
+ },
+
+ // 鍙戦�佺煭淇$殑鏂规硶
+ sendSms() {
+ // 杩欓噷璋冪敤浣犵殑鐭俊鍙戦�� API
+ // 鍋囪 API 涓� sendMsg锛屽弬鏁板彲鑳介渶瑕佹牴鎹疄闄呮儏鍐佃皟鏁�
+ sendMsg({
+ phone: this.userform.telcode, // 纭繚鐢佃瘽鍙风爜瀛楁姝g‘
+ content: this.smsContent,
+ })
+ .then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("鍙戦�佹垚鍔�");
+ this.smsDialogVisible = false; // 鍏抽棴瀵硅瘽妗�
+ this.smsContent = ""; // 娓呯┖鍐呭
+ } else {
+ this.$modal.msgError("鍙戦�佸け璐�");
+ }
+ })
+ .catch((error) => {
+ console.error("鍙戦�佺煭淇″け璐�:", error);
+ this.$modal.msgError("鍙戦�佸け璐�");
+ });
+ },
+ 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;
+ objson.taskSituation = this.form.taskSituation;
+ objson.excep = this.selectedTag;
+ 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 "";
+ },
+ getSelectedTagType() {
+ if (!this.selectedTag) return "";
+ const tag = this.tagOptions.find(
+ (item) => item.value === this.selectedTag
+ );
+ return tag ? tag.type : "";
+ },
+
+ getSelectedTagColor() {
+ if (!this.selectedTag) return "";
+ const tag = this.tagOptions.find(
+ (item) => item.value === this.selectedTag
+ );
+ return tag ? tag.color : "";
+ },
+
+ getSelectedDescription() {
+ if (!this.selectedTag) return "";
+ const tag = this.tagOptions.find(
+ (item) => item.value === this.selectedTag
+ );
+ return tag ? tag.description : "";
+ },
+
+ // 璋冭捣鍐嶆鍙戦��
+ sendAgain() {
+ document.querySelector("#app").scrollTo(0, 0);
+ // scrollTo(0, 0)
+ this.formtidy();
+ this.dialogFormVisible = true;
+ },
+ // 鏌ョ湅璇︽儏
+ Seedetails(row) {
+ this.$modal
+ .confirm('鏄惁鏌ョ湅浠诲姟涓�"' + row.taskName + '"鐨勬湇鍔¤鎯呮暟鎹紵')
+ .then(() => {
+ let type = "";
+ console.log(row, "rwo");
+ if (row.type == 1) {
+ type = 1;
+ }
+ this.taskid = row.taskid;
+ this.id = row.id;
+ this.patid = row.patid;
+ this.serviceType = row.serviceType;
+ this.getTaskservelist();
+ })
+ .catch(() => {});
+ },
+ aahandleOptionChange(a, b, c) {
+ const result = c.find((item) => item.optioncontent == a);
+ if (result.nextQuestion == 0) {
+ this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
+ acc.push(i > b ? { ...item, astrict: 1 } : item);
+ return acc;
+ }, []);
+ } else {
+ this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
+ acc.push(i > b ? { ...item, astrict: 0 } : item);
+ return acc;
+ }, []);
+ }
+ if (this.Voicetype) {
+ var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find(
+ (item) => item.optioncontent == a
+ );
+ } else {
+ var obj = this.tableDatatop[b].svyTaskTemplateTargetoptions.find(
+ (item) => item.optioncontent == a
+ );
+ }
+ if (obj.isabnormal) {
+ this.tableDatatop[b].isabnormal = true;
+ } else {
+ this.tableDatatop[b].isabnormal = false;
+ }
+ this.$forceUpdate();
+ },
+ handleRadioToggles(questionItem, optionValue) {
+ if (!questionItem.matchedtext) {
+ questionItem.matchedtext == "";
+ }
+ // 濡傛灉鐐瑰嚮鐨勬槸褰撳墠宸查�変腑鐨勯�夐」锛屽垯鍙栨秷閫変腑
+ if (questionItem.matchedtext == optionValue) {
+ this.$set(questionItem, "matchedtext", "");
+ // 鍚屾椂閲嶇疆涓庨�夐」鐩稿叧鐨勭姸鎬�
+ // questionItem.isabnormal = false;
+ questionItem.showAppendInput = false;
+ // 娉ㄦ剰锛氬彇娑堥�変腑鏃讹紝鎴戜滑閫氬父涓嶅笇鏈涜Е鍙戦鐩烦杞�昏緫锛屾墍浠ョ洿鎺ヨ繑鍥�
+ // 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屾坊鍔犲彇娑堥�変腑鍚庣殑鐗瑰畾閫昏緫锛屼緥濡傞噸缃鐩簭鍒�
+ } else {
+ // 濡傛灉鐐瑰嚮鐨勬槸鏈�変腑鐨勯�夐」锛屽垯閫氳繃鏇存敼缁戝畾鍊兼潵瑙﹀彂鍘熷鐨� handleOptionChange 鏂规硶
+ // 杩欓噷鍙渶瑕佹敼鍙� v-model 缁戝畾鐨勫�硷紝change浜嬩欢浼氳嚜鍔ㄨЕ鍙�
+ this.$set(questionItem, "matchedtext", optionValue); // 鍚庣画鐨勮烦杞瓑澶嶆潅閫昏緫浼氬湪 handleOptionChange 涓甯告墽琛�
+ }
+ },
+ // 鏂板鐨勫垏鎹㈤�変腑/鍙栨秷閫変腑鏂规硶
+ handleRadioToggle(questionItem, index, options, optionValue) {
+ // 濡傛灉鐐瑰嚮鐨勬槸褰撳墠宸查�変腑鐨勯�夐」锛屽垯鍙栨秷閫変腑
+ if (questionItem.scriptResult === optionValue) {
+ questionItem.scriptResult = ""; // 娓呯┖閫変腑鍊�
+ // 鍚屾椂閲嶇疆涓庨�夐」鐩稿叧鐨勭姸鎬�
+ // questionItem.isabnormal = false;
+ questionItem.showAppendInput = false;
+ // 娉ㄦ剰锛氬彇娑堥�変腑鏃讹紝鎴戜滑閫氬父涓嶅笇鏈涜Е鍙戦鐩烦杞�昏緫锛屾墍浠ョ洿鎺ヨ繑鍥�
+ // 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屾坊鍔犲彇娑堥�変腑鍚庣殑鐗瑰畾閫昏緫锛屼緥濡傞噸缃鐩簭鍒�
+ } else {
+ // 濡傛灉鐐瑰嚮鐨勬槸鏈�変腑鐨勯�夐」锛屽垯閫氳繃鏇存敼缁戝畾鍊兼潵瑙﹀彂鍘熷鐨� handleOptionChange 鏂规硶
+ // 杩欓噷鍙渶瑕佹敼鍙� v-model 缁戝畾鐨勫�硷紝change浜嬩欢浼氳嚜鍔ㄨЕ鍙�
+ questionItem.scriptResult = optionValue;
+ this.handleOptionChange(optionValue, index, options, questionItem);
+ // 鍚庣画鐨勮烦杞瓑澶嶆潅閫昏緫浼氬湪 handleOptionChange 涓甯告墽琛�
+ }
+ },
+
+ // 鍦╩ethods閮ㄥ垎锛屼慨鏀筯andleOptionChange鏂规硶:
+ handleOptionChange(selectedOption, questionIndex, options, a) {
+ console.log(selectedOption, questionIndex, options, a, "888");
+
+ if (document.activeElement) {
+ document.activeElement.blur();
+ }
+
+ // 鎵惧埌琚�変腑鐨勯�夐」瀵硅薄
+ const selectedOptionObj = options.find(
+ (item) => item.optioncontent == selectedOption
+ );
+
+ // 澶勭悊寮傚父鐘舵�侀珮浜�
+ this.tableDatatop[questionIndex].isabnormal =
+ selectedOptionObj.isabnormal;
+ // 澶勭悊闄勫姞杈撳叆妗嗘樉绀�
+
+ this.tableDatatop[questionIndex].showAppendInput =
+ selectedOptionObj.appendflag == 1;
+ console.log(this.tableDatatop);
+
+ // if (!this.tableDatatop[questionIndex].showAppendInput) {
+ // this.tableDatatop[questionIndex].answerps = ""; // 娓呴櫎闄勫姞淇℃伅
+ // }
+ // 淇濆瓨褰撳墠棰樼洰涔嬪墠宸茬粡闅愯棌鐨勯鐩姸鎬�
+ const previouslyHiddenBeforeCurrent = this.tableDatatop
+ .slice(0, questionIndex)
+ .map((item, index) => (item.astrict ? index : -1))
+ .filter((index) => index !== -1);
+
+ // 淇濆瓨涔嬪墠鍥爊extQuestion=0鑰岄殣钘忕殑棰樼洰鑼冨洿
+ const previouslyHiddenByEnd = this.tableDatatop
+ .map((item, index) => (item.hiddenByEnd ? index : -1))
+ .filter((index) => index !== -1);
+
+ // 濡傛灉branchFlag涓�1锛屽鐞嗛鐩烦杞�
+ if (a.branchFlag == 1) {
+ if (selectedOptionObj.nextQuestion == 0) {
+ // 缁撴潫闂瓟 - 闅愯棌鍚庨潰鎵�鏈夐鐩苟鏍囪
+ this.tableDatatop = this.tableDatatop.map((item, index) => ({
+ ...item,
+ astrict: index > questionIndex,
+ hiddenByEnd: index > questionIndex, // 鏍囪杩欎簺棰樼洰鏄缁撴潫闂瓟闅愯棌鐨�
+ }));
+ } else {
+ // 姝e父璺宠浆閫昏緫
+ const nextQuestionIndex = selectedOptionObj.nextQuestion - 1;
+
+ this.tableDatatop = this.tableDatatop.map((item, index) => {
+ // 淇濈暀褰撳墠棰樼洰涔嬪墠鐨勯殣钘忕姸鎬�
+ if (index < questionIndex) {
+ return {
+ ...item,
+ astrict: previouslyHiddenBeforeCurrent.includes(index),
+ hiddenByEnd: false, // 娓呴櫎缁撴潫鏍囪
+ };
+ }
+
+ // 褰撳墠棰樼洰鎬绘槸鍙
+ if (index === questionIndex) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 鏄剧ず鐩爣涓嬩竴棰�
+ if (index === nextQuestionIndex) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 濡傛灉鏄箣鍓嶈缁撴潫闂瓟闅愯棌鐨勯鐩紝鐜板湪搴旇鎭㈠鏄剧ず
+ if (item.hiddenByEnd) {
+ return { ...item, astrict: 0, hiddenByEnd: false };
+ }
+
+ // 闅愯棌褰撳墠棰樺拰鐩爣棰樹箣闂寸殑棰樼洰
+ if (index > questionIndex && index < nextQuestionIndex) {
+ return { ...item, astrict: 1, hiddenByEnd: false };
+ }
+
+ // 鍏朵粬鎯呭喌淇濇寔鍘熺姸
+ return item;
+ });
+ }
+ } else {
+ // 濡傛灉娌℃湁璺宠浆锛屽彧闇�纭繚涓嬩竴棰樺彲瑙�
+ this.tableDatatop = this.tableDatatop.map((item, index) => ({
+ ...item,
+ astrict: index === questionIndex + 1 ? 0 : item.astrict,
+ hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
+ }));
+ }2
+
+ this.$forceUpdate();
+ },
+ overdata() {
+ this.tableDatatop.forEach((item, index) => {
+ var obj = item.svyTaskTemplateTargetoptions.find(
+ (items) => items.optioncontent == item.scriptResult
+ );
+ if (obj) {
+ if (obj.isabnormal) {
+ this.tableDatatop[index].isabnormal = obj.isabnormal;
+ }
+ this.$forceUpdate();
+ }
+ });
+ },
+ // 鍒涘缓鍐嶆闅忚鏈嶅姟
+ setupsubtask() {
+ this.$refs["zcform"].validate((valid) => {
+ if (valid) {
+ if (this.form.date1 && new Date(this.form.date1) < new Date()) {
+ this.$message.error("闅忚鏃堕棿涓嶈兘灏忎簬褰撳墠鏃堕棿");
+ return false;
+ }
+ 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.visitDeptCode = localStorage.getItem("deptCode");
+ form.visitDeptName = "闅忚涓績";
+ } else {
+ form.visitDeptCode = form.deptcode;
+ form.visitDeptName = form.deptname;
+ }
+ } else {
+ this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡");
+ return;
+ }
+ // form.id = null;
+ form.sendstate = 2;
+ console.log(form.serviceType, "form.serviceType");
+
+ addserviceSubtask(form).then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("鍒涘缓鎴愬姛");
+ if (form.serviceType == 13) {
+ this.$router.push({
+ path: "/logisticsservice/zbAgain",
+ });
+ } else if (form.serviceType == 2) {
+ this.$router.push({
+ path: "/logisticsservice/again",
+ });
+ }
+ } 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) {},
+ // 鍚堝苟淇敼鐩稿叧=============================
+ toggleMergeMode() {
+ this.isMergeMode = !this.isMergeMode;
+ if (!this.isMergeMode) {
+ this.selectedServices = [];
+ }
+ },
+
+ handleSelectionChange(selection) {
+ this.selectedServices = selection
+ .filter(
+ (item) => !item.preachformson || !item.preachformson.includes("3")
+ )
+ .map((item) => ({
+ id: item.id,
+ taskid: item.taskid,
+ taskName: item.taskName,
+ sendname: item.sendname,
+ }));
+ },
+ checkSelectable(row, index) {
+ // 褰� sendstate 涓� 6 鏃朵笉鍙��
+ return row.sendstate !== 6;
+ },
+ openMergeDialog() {
+ if (this.selectedServices.length < 2) {
+ this.$message.warning("璇疯嚦灏戦�夋嫨2涓棶鍗锋湇鍔¤繘琛屽悎骞�");
+ return;
+ }
+ this.mergeDialogVisible = true;
+ },
+
+ handleMergeSave(mergedData) {
+ // 澶勭悊鍚堝苟淇濆瓨閫昏緫
+ this.mergeDialogVisible = false;
+ this.isMergeMode = false;
+ this.selectedServices = [];
+
+ // 鏄剧ず淇濆瓨缁撴灉
+ if (mergedData.successCount == mergedData.totalCount) {
+ this.$message.success(`鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗穈);
+ } else if (mergedData.successCount > 0) {
+ this.$message.warning(
+ `鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗凤紝澶辫触 ${
+ mergedData.totalCount - mergedData.successCount
+ } 涓猔
+ );
+ } else {
+ this.$message.error("鎵�鏈夐棶鍗蜂繚瀛樺け璐�");
+ }
+
+ // 鍒锋柊鏁版嵁
+ this.getTaskservelist();
+ },
+ },
+ // deactivated() {
+ // console.log(11);
+ // },
+ beforeRouteLeave(to, from, next) {
+ this.$refs.callButton.cleanupResources();
+ if (this.$refs.CallCenterLs) {
+ console.log(1);
+
+ this.$refs.CallCenterLs.handleSeatLogout();
+ }
+ next(); // 纭繚璋冪敤 nex
+ },
+ // beforeRouteUpdate() {
+ // console.log(33);
+ // },
+};
+</script>
+
+<style lang="scss" scoped>
+.Followupdetailspage {
+ margin: 10px;
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+}
+
+.action-container {
+ display: flex;
+ gap: 20px;
+ margin: 0 10px 20px 10px;
+
+ .manual-action {
+ flex: 1;
+ min-width: 0;
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ }
+
+ .call-action {
+ width: 60%;
+ min-width: 0;
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ }
+}
+.numeric-input {
+ position: relative;
+}
+
+.numeric-input::after {
+ content: "鍙兘杈撳叆鏁板瓧";
+ position: absolute;
+ right: 8px;
+ top: 50%;
+ transform: translateY(-50%);
+ font-size: 12px;
+ color: #999;
+ background: #f5f5f5;
+ padding: 2px 6px;
+ border-radius: 4px;
+}
+.call-container {
+ padding: 20px;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ border-radius: 4px;
+ height: 100%;
+
+ .call-header {
+ margin-bottom: 20px;
+
+ h2 {
+ font-size: 20px;
+ color: #333;
+ margin: 0;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #eee;
+ }
+ }
+
+ .call-status {
+ margin-bottom: 20px;
+ }
+
+ .hangup-btn {
+ text-align: center;
+ margin-top: 20px;
+ }
+}
+.merge-controls {
+ background: #f5f7fa;
+ border-radius: 4px;
+ margin-left: 20px;
+}
+.Followuserinfo {
+ margin: 10px 10px 0 10px;
+ align-items: center;
+ padding: 30px;
+ background: #ffff;
+ border: 1px solid #dcdfe6;
+ 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;
+ }
+ }
+}
+
+::v-deep.el-table .warning-row {
+ background: #c4e2ee;
+}
+
+.Followuserinfos {
+ align-items: center;
+ padding: 30px;
+ background: #ffff;
+ border: 1px solid #dcdfe6;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ height: 100%; /* 纭繚楂樺害缁ф壙 */
+ min-height: 880px; /* 鏈�灏忛珮搴︿笌闅忚鍐呭涓�鑷� */
+ display: flex;
+ flex-direction: column;
+
+ .userinfo-text {
+ font-size: 20px;
+ margin-right: 20px;
+ margin-bottom: 10px;
+ }
+
+ .userinfo-value {
+ color: rgb(15, 139, 211);
+
+ span {
+ margin-right: 20px;
+ }
+ }
+
+ .el-form {
+ flex: 1;
+ overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+ max-height: calc(880px - 60px); /* 鍑忓幓padding */
+ padding-right: 10px; /* 闃叉婊氬姩鏉¢伄鎸″唴瀹� */
+ }
+}
+.append-input-container {
+ margin-top: 15px;
+ padding: 10px;
+ background-color: #f5f7fa;
+ border-radius: 4px;
+ border: 1px solid #dcdfe6;
+}
+.borderdiv {
+ min-height: 60vh;
+ font-size: 20px;
+ padding: 30px;
+
+ .title {
+ font-size: 22px;
+ font-weight: bold;
+ margin-bottom: 20px;
+ text-align: center;
+ }
+
+ .leftside {
+ margin: 30px 0;
+
+ span {
+ width: 400px;
+ margin-left: 20px;
+ padding: 10px;
+ color: #fff;
+ background: rgb(110, 196, 247);
+ border-radius: 10px;
+ }
+ }
+
+ .offside {
+ display: flex;
+ flex-direction: row-reverse;
+
+ .offside-value {
+ padding: 10px;
+ background: rgb(217, 173, 253);
+ border-radius: 10px;
+ color: #fff;
+ margin-right: 20px;
+ }
+ }
+}
+.topic-dev[inert] {
+ opacity: 0.5;
+ pointer-events: none;
+}
+.CONTENT {
+ padding: 10px;
+ height: 100%;
+ min-height: 738px; /* 璁剧疆鏈�灏忛珮搴� */
+
+ .title {
+ font-size: 22px;
+ font-weight: bold;
+ margin-bottom: 20px;
+ text-align: center;
+ }
+}
+
+.preview-left {
+ margin: 20px;
+ padding: 30px;
+ border: 1px solid #dcdfe6;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+ max-height: 618px; /* 璁剧疆鏈�澶ч珮搴� */
+ overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+
+ .topic-dev {
+ margin-bottom: 25px;
+ font-size: 20px !important;
+
+ .dev-text {
+ margin-bottom: 10px;
+ }
+ }
+}
+
+.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;
+
+ .Add-details {
+ font-size: 18px;
+ color: #02a7f0;
+ cursor: pointer;
+ }
+}
+
+/* 寮傚父鐘舵�佹牱寮� - 绾㈣壊 (淇濇寔涓嶅彉) */
+.scriptTopic-isabnormal {
+ color: red;
+}
+
+/* 鏂板锛氳鍛婄姸鎬佹牱寮� - 榛勮壊 */
+.scriptTopic-warning {
+ color: #d4be00; /* 鎮ㄦ寚瀹氱殑榛勮壊 */
+
+}
+
+/* 寮傚父閫夐」鏍峰紡 - 绾㈣壊鏄熷彿 (淇濇寔涓嶅彉) */
+.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;
+ }
+}
+
+/* 鏂板锛氳鍛婇�夐」鏍峰紡 - 榛勮壊鏄熷彿 */
+.yellow-star {
+ ::v-deep.el-radio__label {
+ position: relative;
+ padding-right: 10px;
+ }
+
+ ::v-deep.el-radio__label::after {
+ content: "*";
+ color: #ffe202; /* 榛勮壊鏄熷彿 */
+ position: absolute;
+ right: -5px;
+ top: 0;
+ font-weight: bold;
+ }
+}
+
+/* 鍏辩敤鏍峰紡淇濇寔涓嶅彉 */
+::v-deep.el-input-group__textarea {
+ white-space: pre-wrap;
+ word-break: break-all;
+}
+
+::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;
+}
+.tag-selector-container {
+ display: flex;
+ align-items: center;
+ margin: 0 30px;
+}
+
+.color-indicator {
+ width: 16px;
+ height: 16px;
+ border-radius: 3px;
+ margin-right: 8px;
+ display: inline-block;
+}
+
+.selected-indicator {
+ margin-left: 10px;
+ width: 20px;
+ height: 20px;
+}
+
+.tag-info-icon {
+ margin-left: 10px;
+ color: #909399;
+ cursor: pointer;
+ font-size: 16px;
+}
+
+/* 纭繚閫夋嫨鍣ㄩ�夐」涓篃鏄剧ず棰滆壊鍧� */
+.el-select-dropdown__item {
+ display: flex;
+ align-items: center;
+}
+
+.tag-normal {
+ background-color: #7ff5e1;
+}
+.tag-abnormal {
+ background-color: #f75c5c;
+}
+.tag-warning {
+ background-color: #fbfb4a;
+}
+
+.tag-info {
+ margin-left: 10px;
+ color: #909399;
+ cursor: pointer;
+}
+::v-deep.offside-value .el-radio__label {
+ color: #fff;
+}
+
+::v-deep.el-link.el-link--default {
+ color: #02a7f0 !important;
+}
+
+.el-message-box__btns button:nth-child(2) {
+ margin-left: 10px;
+ background-color: #f57676;
+ border-color: #f57676;
+}
+
+.el-icon-phone {
+ transition: all 0.3s;
+}
+
+.el-button[disabled] .el-icon-phone {
+ color: #c0c4cc;
+}
+
+.el-button:not([disabled]) .el-icon-phone {
+ color: #409eff;
+}
+
+.el-button:not([disabled]):hover .el-icon-phone {
+ color: #66b1ff;
+ transform: scale(1.1);
+}
+
+.mulsz {
+ font-size: 25px;
+ margin-top: 20px;
+}
+
+.el-input.is-disabled .el-input__inner {
+ background-color: #fff;
+ border-color: #dcdfe6;
+ color: #080808 !important;
+ cursor: not-allowed;
+}
+
+.el-textarea.is-disabled .el-textarea__inner {
+ background-color: #fff;
+ border-color: #dcdfe6;
+ color: #080808 !important;
+ cursor: not-allowed;
+}
+/* 鍘熸湁鐨勬牱寮忎繚鎸佷笉鍙橈紝娣诲姞浠ヤ笅鍝嶅簲寮忎唬鐮� */
+
+.Followupdetailspage {
+ margin: 10px;
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+}
+
+.action-container {
+ display: flex;
+ flex-direction: row; /* 榛樿妯悜鎺掑垪 */
+ gap: 20px;
+ margin: 0 10px 20px 10px;
+
+ /* 褰撶缉鏀炬瘮渚嬪ぇ浜�100%鎴栧睆骞曞搴﹁緝灏忔椂鏀逛负涓婁笅鎺掑垪 */
+ @media screen and (min-resolution: 1.5dppx) {
+ flex-direction: column;
+
+ .call-action,
+ .manual-action {
+ width: 100% !important;
+ }
+ }
+}
+
+.call-action {
+ width: 65%;
+ min-width: 0;
+}
+
+.manual-action {
+ flex: 1;
+ min-width: 0;
+}
+
+/* 璋冩暣鍐呴儴鍏冪礌鐨勫搷搴斿紡甯冨眬 */
+.Followuserinfos {
+ .el-form {
+ /* 琛ㄥ崟鍝嶅簲寮忚皟鏁� */
+ .el-row {
+ margin: 0 -10px;
+ }
+
+ .el-col {
+ padding: 0 10px;
+ }
+
+ @media screen and (max-width: 768px) {
+ .el-col {
+ width: 100%;
+ margin-bottom: 15px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+ }
+}
+
+/* 璋冩暣琛ㄦ牸鐨勫搷搴斿紡琛ㄧ幇 */
+.el-table {
+ ::v-deep .el-table__body-wrapper {
+ overflow-x: auto;
+ }
+
+ /* 鍦ㄥ皬灞忓箷涓婅皟鏁磋〃鏍煎垪瀹� */
+ @media screen and (max-width: 992px) {
+ .el-table-column {
+ min-width: 120px;
+ }
+ }
+}
+
+/* 璋冩暣鏍囩閫夋嫨鍣ㄧ殑鍝嶅簲寮忓竷灞� */
+.tag-selector-container {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 10px;
+
+ @media screen and (max-width: 576px) {
+ flex-direction: column;
+ align-items: flex-start;
+
+ .el-select {
+ width: 100%;
+ margin-right: 0 !important;
+ }
+ }
+}
+
+/* 璋冩暣鎸夐挳缁勭殑鍝嶅簲寮忓竷灞� */
+.el-form-item.label-processing-opinion {
+ .el-button-group {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+
+ .el-button {
+ flex: 1;
+ min-width: 120px;
+ }
+ }
+}
+
+/* 璋冩暣閫夐」鍗$殑鍝嶅簲寮忚〃鐜� */
+.el-tabs {
+ ::v-deep .el-tabs__nav-wrap {
+ overflow-x: auto;
+ white-space: nowrap;
+
+ &::after {
+ display: none;
+ }
+ }
+}
+
+/* 璋冩暣棰勮鍖哄煙鐨勫搷搴斿紡琛ㄧ幇 */
+.preview-left {
+ @media screen and (max-width: 768px) {
+ margin: 10px;
+ padding: 15px;
+
+ .topic-dev,
+ .scriptTopic-dev {
+ margin-bottom: 15px;
+ }
+ }
+}
+
+/* 璋冩暣瀵硅瘽妗嗙殑鍝嶅簲寮忚〃鐜� */
+.el-dialog {
+ @media screen and (max-width: 992px) {
+ width: 90% !important;
+ margin-top: 5vh !important;
+
+ .el-dialog__body {
+ padding: 15px;
+ }
+ }
+
+ @media screen and (max-width: 576px) {
+ width: 95% !important;
+
+ .el-form-item {
+ margin-bottom: 15px;
+ }
+ }
+}
+
+/* 纭繚鍐呭鍦ㄧ缉鏀炬椂淇濇寔鍙鎬� */
+.headline {
+ font-size: clamp(18px, 2vw, 24px); /* 浣跨敤clamp鍑芥暟纭繚瀛椾綋澶у皬鍦ㄥ悎鐞嗚寖鍥村唴 */
+}
+
+/* 涓虹Щ鍔ㄨ澶囦紭鍖栨粴鍔ㄤ綋楠� */
+@media screen and (max-width: 768px) {
+ .Followuserinfo,
+ .Followuserinfos {
+ padding: 15px;
+ margin: 5px;
+ }
+
+ .CONTENT {
+ min-height: auto;
+ padding: 5px;
+ }
+}
+
+/* 缂╂斁妫�娴嬫牱寮� */
+@media screen and (min-resolution: 1.5dppx),
+ screen and (-webkit-min-device-pixel-ratio: 1.5) {
+ .action-container {
+ flex-direction: column;
+ }
+
+ .call-action,
+ .manual-action {
+ width: 100%;
+ }
+
+ /* 璋冩暣鍐呴儴鍏冪礌闂磋窛 */
+ .call-container,
+ .Followuserinfos {
+ margin-bottom: 20px;
+ }
+}
+</style>
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 5c8ddc0..36faefa 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -282,11 +282,7 @@
>
<!-- 鍗曢�� -->
<div
- :class="
- item.isabnormal
- ? 'scriptTopic-isabnormal'
- : 'scriptTopic-dev'
- "
+ :class="getTopicClass(item)"
:key="index"
v-if="item.scriptType == 1 && !item.astrict"
>
@@ -301,7 +297,7 @@
v-for="(
items, indexs
) in item.svyTaskTemplateTargetoptions"
- :class="items.isabnormal ? 'red-star' : ''"
+ :class="getOptionClass(items)"
:key="indexs"
:label="items.optioncontent"
@click.native.prevent="
@@ -1407,6 +1403,29 @@
},
methods: {
+ // 鑾峰彇涓婚鏍峰紡绫�
+ getTopicClass(item) {
+ console.log(item.isabnormal,'111');
+
+ // 鏍规嵁鐘舵�佸�艰繑鍥炲搴旂殑鏍峰紡绫�
+ if (item.isabnormal == 1) {
+ return "scriptTopic-isabnormal"; // 寮傚父 - 绾㈣壊
+ } else if (item.isabnormal == 2) {
+ return "scriptTopic-warning"; // 璀﹀憡 - 榛勮壊
+ } else {
+ return "scriptTopic-dev"; // 姝e父 - 榛樿鏍峰紡
+ }
+ },
+
+ // 鑾峰彇閫夐」鏍峰紡绫�
+ getOptionClass(items) {
+ if (items.isabnormal == 1) {
+ return "red-star"; // 寮傚父 - 绾㈣壊鏄熷彿
+ } else if (items.isabnormal == 2) {
+ return "yellow-star"; // 璀﹀憡 - 榛勮壊鏄熷彿
+ }
+ return ""; // 姝e父 - 鏃犵壒娈婃牱寮�
+ },
// 鑾峰彇闂嵎鏁版嵁
getsearchrResults(id) {
getsearchrResults({
@@ -1797,7 +1816,7 @@
yuyingetdetail() {
const dataToSubmit = JSON.parse(JSON.stringify(this.tableDatatop));
console.log(dataToSubmit, "dataToSubmit");
- return;
+ // return;
dataToSubmit.forEach((item, index) => {
// 瀵规嫹璐濈殑鏁版嵁杩涜鎿嶄綔锛屼笉褰卞搷鍘熷鐨� scriptResult 鏁扮粍
item.scriptResult = item.scriptResult.join("&");
@@ -2094,7 +2113,7 @@
if (questionItem.matchedtext == optionValue) {
this.$set(questionItem, "matchedtext", "");
// 鍚屾椂閲嶇疆涓庨�夐」鐩稿叧鐨勭姸鎬�
- questionItem.isabnormal = false;
+ // questionItem.isabnormal = false;
questionItem.showAppendInput = false;
// 娉ㄦ剰锛氬彇娑堥�変腑鏃讹紝鎴戜滑閫氬父涓嶅笇鏈涜Е鍙戦鐩烦杞�昏緫锛屾墍浠ョ洿鎺ヨ繑鍥�
// 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屾坊鍔犲彇娑堥�変腑鍚庣殑鐗瑰畾閫昏緫锛屼緥濡傞噸缃鐩簭鍒�
@@ -2110,7 +2129,7 @@
if (questionItem.scriptResult === optionValue) {
questionItem.scriptResult = ""; // 娓呯┖閫変腑鍊�
// 鍚屾椂閲嶇疆涓庨�夐」鐩稿叧鐨勭姸鎬�
- questionItem.isabnormal = false;
+ // questionItem.isabnormal = false;
questionItem.showAppendInput = false;
// 娉ㄦ剰锛氬彇娑堥�変腑鏃讹紝鎴戜滑閫氬父涓嶅笇鏈涜Е鍙戦鐩烦杞�昏緫锛屾墍浠ョ洿鎺ヨ繑鍥�
// 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屾坊鍔犲彇娑堥�変腑鍚庣殑鐗瑰畾閫昏緫锛屼緥濡傞噸缃鐩簭鍒�
@@ -2138,7 +2157,7 @@
// 澶勭悊寮傚父鐘舵�侀珮浜�
this.tableDatatop[questionIndex].isabnormal =
- !!selectedOptionObj.isabnormal;
+ selectedOptionObj.isabnormal;
// 澶勭悊闄勫姞杈撳叆妗嗘樉绀�
this.tableDatatop[questionIndex].showAppendInput =
@@ -2213,7 +2232,7 @@
astrict: index === questionIndex + 1 ? 0 : item.astrict,
hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
}));
- }
+ }2
this.$forceUpdate();
},
@@ -2224,9 +2243,7 @@
);
if (obj) {
if (obj.isabnormal) {
- this.tableDatatop[index].isabnormal = true;
- } else {
- this.tableDatatop[index].isabnormal = false;
+ this.tableDatatop[index].isabnormal = obj.isabnormal;
}
this.$forceUpdate();
}
@@ -2618,6 +2635,18 @@
}
}
+/* 寮傚父鐘舵�佹牱寮� - 绾㈣壊 (淇濇寔涓嶅彉) */
+.scriptTopic-isabnormal {
+ color: red;
+}
+
+/* 鏂板锛氳鍛婄姸鎬佹牱寮� - 榛勮壊 */
+.scriptTopic-warning {
+ color: #d4be00; /* 鎮ㄦ寚瀹氱殑榛勮壊 */
+
+}
+
+/* 寮傚父閫夐」鏍峰紡 - 绾㈣壊鏄熷彿 (淇濇寔涓嶅彉) */
.red-star {
::v-deep.el-radio__label {
position: relative;
@@ -2631,25 +2660,43 @@
right: -5px;
top: 0;
}
+}
- ::v-deep.el-input-group__textarea {
- white-space: pre-wrap;
- word-break: break-all;
- }
-
- ::v-deep.el-checkbox__label {
+/* 鏂板锛氳鍛婇�夐」鏍峰紡 - 榛勮壊鏄熷彿 */
+.yellow-star {
+ ::v-deep.el-radio__label {
position: relative;
padding-right: 10px;
}
- ::v-deep.el-checkbox__label::after {
+ ::v-deep.el-radio__label::after {
content: "*";
- color: red;
+ color: #ffe202; /* 榛勮壊鏄熷彿 */
position: absolute;
right: -5px;
top: 0;
+ font-weight: bold;
}
}
+
+/* 鍏辩敤鏍峰紡淇濇寔涓嶅彉 */
+::v-deep.el-input-group__textarea {
+ white-space: pre-wrap;
+ word-break: break-all;
+}
+
+::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;
+}
.tag-selector-container {
display: flex;
align-items: center;
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 70b06f1..7a0530c 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -1481,7 +1481,7 @@
this.form.preachformList = this.selectedOrder;
} else {
this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
- this.submitLoading = false;
+ this.submitLoading = false;
return;
}
@@ -1496,7 +1496,7 @@
) {
} else {
this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
- this.submitLoading = false;
+ this.submitLoading = false;
return;
}
@@ -1507,7 +1507,7 @@
if (!this.form.templatename && !this.templateor) {
this.$modal.msgError("鏈�夋嫨妯℃澘");
- this.submitLoading = false;
+ this.submitLoading = false;
return;
}
@@ -1521,7 +1521,7 @@
this.form.longTask
) {
} else {
- this.submitLoading = false;
+ this.submitLoading = false;
return this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
}
@@ -1930,7 +1930,7 @@
? this.form.patTaskRelevances
: [];
this.overallCase = this.form.patTaskRelevances.concat();
- this.checkList = this.form.preachform.split(",");
+ this.checkList = this.form.preachform.split(",") || [];
this.selectedOrder = this.form.preachformList;
this.overallCase.forEach((item) => {
diff --git a/vue.config.js b/vue.config.js
index aaaa772..eb49c4a 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,7 +36,7 @@
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `https://www.health-y.cn/lssf`,
- // target: `http://192.168.100.127:8095`,
+ // target: `http://192.168.100.10:8096`,
// target: `http://192.168.100.10:8094`,//鐪佺珛鍚屽痉
target: `http://192.168.100.10:8095`,//鏂板崕
// target:`http://localhost:8095`,
--
Gitblit v1.9.3