From a5cba9ab040f6f97558046885dce3017f9bab7e9 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 11 八月 2026 14:12:29 +0800
Subject: [PATCH] 提交
---
src/views/patient/propaganda/particty.vue | 2926 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 2,256 insertions(+), 670 deletions(-)
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index acc683b..e169997 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -7,7 +7,7 @@
<el-step
icon="el-icon-edit"
title="鍩虹淇℃伅"
- description="閫夋嫨妯$増銆佸舰寮忕瓑鍩虹淇℃伅"
+ description="閫夋嫨妯℃澘銆佸舰寮忕瓑鍩虹淇℃伅"
></el-step>
<el-step
icon="el-icon-user"
@@ -21,7 +21,7 @@
<div class="leftvlue" style="margin: 0 20px">
<!-- 鍩烘湰淇℃伅 -->
<div v-if="Editprogress == 1">
- <el-alert title="閫夋嫨妯$増銆佸舰寮忕瓑鍩虹淇℃伅" type="success" effect="dark">
+ <el-alert title="閫夋嫨妯℃澘銆佸舰寮忕瓑鍩虹淇℃伅" type="success" effect="dark">
</el-alert>
<div class="leftvlue-jbxx">
<!-- 鍩虹淇℃伅 -->
@@ -30,50 +30,89 @@
<div>鍩虹淇℃伅</div>
</div>
<div class="jic-value">
- <el-form ref="form" :model="form" label-width="105px">
+ <el-form
+ ref="form"
+ :model="form"
+ :rules="rules"
+ label-width="125px"
+ >
<el-row :gutter="20">
<el-col :span="12"
- ><el-form-item label="浠诲姟鍚嶇О">
+ ><el-form-item label="浠诲姟鍚嶇О" prop="taskName">
<el-input
style="width: 220px"
v-model="form.taskName"
placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
/> </el-form-item
></el-col>
- <el-col :span="8"
- ><el-form-item label="妯$増鍚嶇О">
- <el-input
- style="width: 220px"
- :disabled="true"
- v-model="form.templatename"
- placeholder="鐐瑰嚮鍙充晶閫夋嫨"
- /> </el-form-item
+ <el-col :span="12"
+ ><el-form-item label="浠诲姟绫诲瀷">
+ <el-select
+ v-model="serviceType"
+ placeholder="璇烽�夋嫨鏂板绫诲瀷"
+ >
+ <el-option
+ v-for="item in tasktypes"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select> </el-form-item
></el-col>
- <el-col :span="4">
- <el-button
- type="primary"
- icon="el-icon-edit"
- @click="drawermb = true"
- circle
- ></el-button>
- </el-col>
</el-row>
- <el-form-item label="浠诲姟鎻忚堪">
+ <el-form-item label="浠诲姟鎻忚堪" prop="taskDesc">
<el-input
type="textarea"
v-model="form.taskDesc"
placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"
/>
</el-form-item>
- <el-form-item label="鍙戦�佽缃細">
- <el-radio-group v-model="form.sendType">
- <el-radio :label="1">鏃堕棿娈靛彂閫�</el-radio>
- <el-radio :label="3">鏃堕棿鐐瑰彂閫�</el-radio>
- <el-radio :label="2">鍗冲埢鍙戦��</el-radio>
+
+ <el-form-item label="鏈嶅姟褰㈠紡">
+ <SortCheckbox
+ v-model="checkList"
+ :options="checkboxlist"
+ :initialselectedOrder="selectedOrder"
+ value-key="value"
+ label-key="label"
+ @change="checkSelectionChange"
+ />
+ </el-form-item>
+
+ <el-form-item label="鎵ц鍛ㄦ湡" prop="longTask">
+ <el-radio-group v-model="form.longTask">
+ <el-radio :label="0">鑷畾涔夊懆鏈�</el-radio>
+ <el-radio :label="1">闀挎湡浠诲姟</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item label="鍙戦�佹棩鏈燂細" v-if="form.sendType == 1">
+ <el-row :gutter="20" v-if="form.longTask">
+ <el-col :span="8">
+ <el-form-item label="鍛ㄦ湡鏃堕棿" prop="name">
+ <el-input
+ v-model="form.sendDay"
+ placeholder="榛樿5澶╁悗"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-form-item
+ label="鎵ц璁剧疆"
+ prop="sendType"
+ v-if="!form.longTask"
+ >
+ <el-radio-group v-model="form.sendType">
+ <el-radio :label="1">鏃堕棿娈垫墽琛�</el-radio>
+ <el-radio :label="3">鏃堕棿鐐规墽琛�</el-radio>
+ <el-radio :label="2">鍗冲埢鎵ц</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item
+ label="鎵ц鏃ユ湡"
+ v-if="form.sendType == 1 && !form.longTask"
+ prop="daytime"
+ >
<el-date-picker
v-model="daytime"
@change="changeTimeday"
@@ -86,7 +125,11 @@
</el-date-picker>
</el-form-item>
- <el-form-item label="鍙戦�佹椂闂寸偣锛�" v-if="form.sendType == 3">
+ <el-form-item
+ label="鎵ц鏃堕棿鐐�"
+ v-if="form.sendType == 3 && !form.longTask"
+ prop="daytime"
+ >
<div style="display: flex">
<div style="margin-right: 10px">
<el-date-picker
@@ -101,12 +144,14 @@
</div>
</el-form-item>
- <el-form-item label="鍙戦�佹椂闂存锛�" v-if="form.sendType == 1">
+ <el-form-item
+ label="鎵ц鏃堕棿娈�"
+ v-if="form.sendType == 1 && !form.longTask"
+ prop="daytime"
+ >
<div style="display: flex">
<div style="margin-right: 10px">
- <span style="font-size: 18px; margin-right: 10px"
- >鏃堕棿娈典竴</span
- >
+ <span style="font-size: 18px; margin-right: 10px">鈶�</span>
<el-time-picker
is-range
arrow-control
@@ -121,9 +166,7 @@
</el-time-picker>
</div>
<div style="margin-right: 10px">
- <span style="font-size: 18px; margin-right: 10px"
- >鏃堕棿娈典簩</span
- >
+ <span style="font-size: 18px; margin-right: 10px">鈶�</span>
<el-time-picker
is-range
arrow-control
@@ -138,9 +181,7 @@
</el-time-picker>
</div>
<div style="margin-right: 10px">
- <span style="font-size: 18px; margin-right: 10px"
- >鏃堕棿娈典笁</span
- >
+ <span style="font-size: 18px; margin-right: 10px">鈶�</span>
<el-time-picker
is-range
arrow-control
@@ -156,36 +197,645 @@
</div>
</div>
</el-form-item>
- <el-form-item label="鏈嶅姟褰㈠紡">
- <el-checkbox-group v-model="checkList">
- <el-checkbox
- v-for="(item, index) in checkboxlist"
- :key="index"
- :label="item.value"
- >
- {{ item.label }}</el-checkbox
- >
- </el-checkbox-group>
+
+ <el-form-item label="浠诲姟鍏宠仈" prop="longTask">
+ <el-radio-group v-model="form.appltype">
+ <el-radio label="1">绉戝鍏宠仈</el-radio>
+ <el-radio label="2">鐥呭尯鍏宠仈</el-radio>
+ <el-radio label="3">鐤剧梾鍏宠仈</el-radio>
+ <el-radio label="4">鎵嬫湳鍏宠仈</el-radio>
+ <el-radio label="5">浠诲姟缁�</el-radio>
+ <el-radio label="6">鑽搧鍏宠仈</el-radio>
+ </el-radio-group>
</el-form-item>
+
+ <!-- 鑽搧鍏宠仈 -->
+ <el-row v-if="form.appltype == 6">
+ <el-col :span="20">
+ <el-form-item label="鍏宠仈鑽搧" prop="region">
+ <el-select
+ v-model="medicalCodes"
+ @remove-tag="removeMedical"
+ style="width: 400px"
+ size="medium"
+ multiple
+ filterable
+ remote
+ reserve-keyword
+ :remote-method="remoteSearchMedical"
+ placeholder="璇疯緭鍏ヨ嵂鍝佸悕绉版悳绱�"
+ loading-text="鎼滅储涓�..."
+ >
+ <el-option
+ v-for="item in medicalOptions"
+ :key="item.id"
+ :label="item.itemName + ' (' + item.manufacturerName + ')'"
+ :value="item.itemCode"
+ />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <!-- 绉戝鍏宠仈 -->
+ <el-row v-if="form.appltype == 1">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤绉戝" prop="region">
+ <el-select
+ v-model="deptcodesWards"
+ @remove-tag="removetag"
+ style="width: 400px"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨绉戝"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in belongDepts"
+ :key="item.deptCode"
+ :label="item.deptName"
+ :value="item.deptCode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
+
+ <!-- 鐥呭尯鍏宠仈 -->
+ <el-row v-if="form.appltype == 2">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤鐥呭尯" prop="region">
+ <el-select
+ v-model="leavehospitaldistrictcodes"
+ style="width: 400px"
+ @remove-tag="removehpsp"
+ size="medium"
+ multiple
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in belongWards"
+ :key="item.districtCode"
+ :label="item.districtName"
+ :value="item.districtCode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
+
+ <!-- 鐤剧梾鍏宠仈 -->
+ <el-row v-if="form.appltype == 3">
+ <div class="xinz-infs">
+ <el-form-item>
+ <template #label>
+ <el-tooltip
+ class="item"
+ effect="light"
+ content="閫夋嫨濂介�傜敤鐤剧梾鍚庯紝鍙互鏂逛究鎮ㄩ�氳繃鐤剧梾璇婃柇鏌ユ壘鍒板搴旂殑鐥呬汉!"
+ placement="top-start"
+ >
+ <i class="el-icon-warning-outline"></i>
+ </el-tooltip>
+ </template>
+ <div style="margin-bottom: 10px">
+ <el-button
+ type="warning"
+ @click="$refs.child.handleAddpatient()"
+ >娣诲姞鐤剧梾璇婃柇</el-button
+ >
+ </div>
+ <el-tag
+ v-for="tag in diagglist"
+ :key="tag.icdcode"
+ @close="removediagg(tag.icd10code)"
+ type="warning"
+ closable
+ :disable-transitions="false"
+ >
+ {{ tag.icdname }}
+ </el-tag>
+ </el-form-item>
+ </div>
+ <div
+ style="
+ margin-bottom: 20px;
+ padding: 8px 12px;
+ background-color: #f0f9ff;
+ border-left: 4px solid #409eff;
+ "
+ >
+ <p style="margin: 0; color: #606266; font-size: 13px">
+ <i
+ class="el-icon-info"
+ style="color: #409eff; margin-right: 6px"
+ ></i>
+ 閽堝鍚屼竴鐤剧梾鍦ㄥ绉戝/鐥呭尯涓嬪瓨鍦ㄧ殑鎯呭喌锛屽彲閫夋嫨鎬ч厤缃浐瀹氱瀹�/鐥呭尯
+ </p>
+ </div>
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈绉戝" prop="diseaseDept">
+ <el-select
+ v-model="diseaseDept"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨绉戝锛堝彲閫夛級"
+ value-key="deptCode"
+ @change="handleDiseaseDeptChange"
+ >
+ <el-option
+ v-for="item in belongDepts"
+ :key="item.deptCode"
+ :label="item.deptName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseDept" class="selected-info">
+ 宸查�夋嫨: {{ diseaseDept.deptName }} ({{
+ diseaseDept.deptCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈鐥呭尯" prop="diseaseWard">
+ <el-select
+ v-model="diseaseWard"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯锛堝彲閫夛級"
+ value-key="districtCode"
+ @change="handleDiseaseWardChange"
+ >
+ <el-option
+ v-for="item in belongWards"
+ :key="item.districtCode"
+ :label="item.districtName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseWard" class="selected-info">
+ 宸查�夋嫨: {{ diseaseWard.districtName }} ({{
+ diseaseWard.districtCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-row>
+
+ <!-- 鎵嬫湳鍏宠仈 -->
+ <el-row v-if="form.appltype == 4">
+ <el-form-item label="閫傜敤鎵嬫湳" prop="region">
+ <el-select
+ v-model="form.oplevelcode"
+ style="width: 400px"
+ @remove-tag="removeopera"
+ size="medium"
+ :remote-method="remoteopcode"
+ filterable
+ remote
+ placeholder="璇烽�夋嫨鎵嬫湳"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in baseoperaList"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <div
+ style="
+ margin-bottom: 20px;
+ padding: 8px 12px;
+ background-color: #f0f9ff;
+ border-left: 4px solid #409eff;
+ "
+ >
+ <p style="margin: 0; color: #606266; font-size: 13px">
+ <i
+ class="el-icon-info"
+ style="color: #409eff; margin-right: 6px"
+ ></i>
+ 閽堝鍚屼竴鎵嬫湳绫诲瀷鍦ㄥ绉戝/鐥呭尯涓嬪瓨鍦ㄧ殑鎯呭喌锛屽彲閫夋嫨鎬ч厤缃浐瀹氱瀹�/鐥呭尯
+ </p>
+ </div>
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈绉戝" prop="diseaseDept">
+ <el-select
+ v-model="diseaseDept"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨绉戝锛堝彲閫夛級"
+ value-key="deptCode"
+ @change="handleDiseaseDeptChange"
+ >
+ <el-option
+ v-for="item in belongDepts"
+ :key="item.deptCode"
+ :label="item.deptName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseDept" class="selected-info">
+ 宸查�夋嫨: {{ diseaseDept.deptName }} ({{
+ diseaseDept.deptCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈鐥呭尯" prop="diseaseWard">
+ <el-select
+ v-model="diseaseWard"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯锛堝彲閫夛級"
+ value-key="districtCode"
+ @change="handleDiseaseWardChange"
+ >
+ <el-option
+ v-for="item in belongWards"
+ :key="item.districtCode"
+ :label="item.districtName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseWard" class="selected-info">
+ 宸查�夋嫨: {{ diseaseWard.districtName }} ({{
+ diseaseWard.districtCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-row>
+
+ <!-- 浠诲姟缁� (appltype=5) -->
+ <div v-if="form.appltype == 5">
+ <el-divider content-position="left">浠诲姟缁勪富璁″垝</el-divider>
+ <el-form-item label="鎵ц鏂瑰紡">
+ <el-radio-group
+ v-model="form.serviceTaskScheduleVO.scheduleStyle"
+ >
+ <el-radio :label="0">闈炲惊鐜�</el-radio>
+ <el-radio :label="1">寰幆</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <div v-if="form.serviceTaskScheduleVO.scheduleStyle == 1">
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="12">
+ <el-form-item label="寰幆闂撮殧">
+ <el-input-number
+ v-model="form.serviceTaskScheduleVO.scheduleTimeNum"
+ :min="1"
+ style="width: 120px"
+ />
+ <el-select
+ v-model="
+ form.serviceTaskScheduleVO.scheduleTimeUnit
+ "
+ placeholder="鍗曚綅"
+ style="width: 100px; margin-left: 8px"
+ >
+ <el-option label="澶�" :value="1" />
+ <el-option label="鍛�" :value="2" />
+ <el-option label="鏈�" :value="3" />
+ <el-option label="骞�" :value="4" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏈�澶ц疆娆�">
+ <el-input-number
+ v-model="form.serviceTaskScheduleVO.maxLoopCount"
+ :min="0"
+ :step="1"
+ placeholder="0琛ㄧず鏃犻檺"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </div>
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="12">
+ <el-form-item label="鍩哄噯鏃堕棿">
+ <el-radio-group
+ v-model="form.serviceTaskScheduleVO.scheduleBenchmark"
+ >
+ <el-radio :label="0">鑷畾涔�</el-radio>
+ <el-radio :label="1">鍏ラ櫌鏃堕棿</el-radio>
+ <el-radio :label="2">鍑洪櫌鏃堕棿</el-radio>
+ <el-radio :label="3">灏辫瘖鏃堕棿</el-radio>
+ <el-radio :label="4">鍏ョ粍鏃堕棿</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col
+ :span="12"
+ v-if="form.serviceTaskScheduleVO.scheduleBenchmark == 0"
+ >
+ <el-form-item label="鑷畾涔夊熀鍑嗘椂闂�">
+ <el-date-picker
+ v-model="
+ form.serviceTaskScheduleVO
+ .scheduleBenchmarkCustomTime
+ "
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ />
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="12">
+ <el-form-item label="涓嬫鎵ц鏃堕棿">
+ <el-date-picker
+ v-model="form.serviceTaskScheduleVO.nextExecuteTime"
+ type="datetime"
+ placeholder="閫夋嫨棣栨鎵ц鏃堕棿"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈绉戝" prop="diseaseDept">
+ <el-select
+ v-model="diseaseDept"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨绉戝锛堝彲閫夛級"
+ value-key="deptCode"
+ @change="handleDiseaseDeptChange"
+ >
+ <el-option
+ v-for="item in belongDepts"
+ :key="item.deptCode"
+ :label="item.deptName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseDept" class="selected-info">
+ 宸查�夋嫨: {{ diseaseDept.deptName }} ({{
+ diseaseDept.deptCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍏宠仈鐥呭尯" prop="diseaseWard">
+ <el-select
+ v-model="diseaseWard"
+ style="width: 100%"
+ clearable
+ filterable
+ placeholder="璇烽�夋嫨鐥呭尯锛堝彲閫夛級"
+ value-key="districtCode"
+ @change="handleDiseaseWardChange"
+ >
+ <el-option
+ v-for="item in belongWards"
+ :key="item.districtCode"
+ :label="item.districtName"
+ :value="item"
+ ></el-option>
+ </el-select>
+ <div v-if="diseaseWard" class="selected-info">
+ 宸查�夋嫨: {{ diseaseWard.districtName }} ({{
+ diseaseWard.districtCode
+ }})
+ </div>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <div class="xinz-infs">
+ <el-form-item>
+ <template #label>
+ <el-tooltip
+ class="item"
+ effect="light"
+ content="閫夋嫨濂介�傜敤鐤剧梾鍚庯紝鍙互鏂逛究鎮ㄩ�氳繃鐤剧梾璇婃柇鏌ユ壘鍒板搴旂殑鐥呬汉!"
+ placement="top-start"
+ >
+ <i class="el-icon-warning-outline"></i>
+ </el-tooltip>
+ </template>
+ <div style="margin-bottom: 10px">
+ <el-button
+ type="warning"
+ @click="$refs.child.handleAddpatient()"
+ >娣诲姞鐤剧梾璇婃柇</el-button
+ >
+ </div>
+ <el-tag
+ v-for="tag in diagglist"
+ @close="removediagg(tag.icd10code)"
+ type="warning"
+ closable
+ :disable-transitions="false"
+ >
+ {{ tag.icdname }}
+ </el-tag>
+ </el-form-item>
+ </div>
+ </el-row>
+ <!-- 鏄庣粏鍒楄〃 -->
+ <el-row :gutter="20" style="margin-top: 20px">
+ <el-col :span="24">
+ <el-divider content-position="left"
+ >浠诲姟鏄庣粏鍒楄〃</el-divider
+ >
+ <el-button
+ type="primary"
+ size="small"
+ icon="el-icon-plus"
+ @click="addDetail"
+ >娣诲姞鏄庣粏</el-button
+ >
+ <el-table
+ :data="form.serviceTaskScheduleVO.detailList"
+ border
+ style="width: 100%; margin-top: 10px"
+ >
+ <el-table-column label="搴忓彿" width="80" align="center">
+ <template slot-scope="scope">{{
+ scope.row.seq
+ }}</template>
+ </el-table-column>
+ <el-table-column label="闂撮殧澶╂暟" width="120">
+ <template slot-scope="scope">
+ <el-input-number
+ v-model="scope.row.dayOffset"
+ :min="0"
+ size="small"
+ controls-position="right"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="妯℃澘" min-width="200">
+ <template slot-scope="scope">
+ <el-select
+ v-model="scope.row.templateid"
+ filterable
+ remote
+ :remote-method="remoteTemplate"
+ placeholder="鎼滅储妯℃澘"
+ size="small"
+ @change="
+ handleTemplateSelect(scope.$index, scope.row)
+ "
+ >
+ <el-option
+ v-for="item in templateOptions"
+ :key="item.id"
+ :label="item.templateName"
+ :value="item.id"
+ >
+ <span style="float: left">{{
+ item.templateName
+ }}</span>
+ <span
+ style="
+ float: right;
+ color: #8492a6;
+ font-size: 12px;
+ "
+ >{{ item.createBy }}</span
+ >
+ </el-option>
+ </el-select>
+ <span
+ style="
+ margin-left: 5px;
+ font-size: 12px;
+ color: #909399;
+ "
+ >{{ scope.row.templatename }}</span
+ >
+ </template>
+ </el-table-column>
+ <el-table-column label="寮�鍦虹櫧" min-width="150">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.kcb"
+ size="small"
+ placeholder="鍙��"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="缁撴潫璇�" min-width="150">
+ <template slot-scope="scope">
+ <el-input
+ v-model="scope.row.jsy"
+ size="small"
+ placeholder="鍙��"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="100"
+ align="center"
+ >
+ <template slot-scope="scope">
+ <el-button
+ size="mini"
+ type="danger"
+ icon="el-icon-delete"
+ @click="removeDetail(scope.$index)"
+ ></el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ </div>
+
+ <!-- 缁撴潫 -->
+ <el-row>
+ <el-col :span="12"
+ ><el-form-item label="寮�鍦虹櫧" prop="kcb">
+ <el-input
+ type="textarea"
+ :rows="3"
+ v-model="form.kcb"
+ placeholder="璇疯緭鍏ュ紑鍦虹櫧"
+ /> </el-form-item
+ ></el-col>
+ <el-col :span="12"
+ ><el-form-item label="缁撴潫璇�" prop="jsy">
+ <el-input
+ type="textarea"
+ :rows="3"
+ v-model="form.jsy"
+ placeholder="璇疯緭鍏ョ粨鏉熻"
+ /> </el-form-item
+ ></el-col>
+ </el-row>
</el-form>
</div>
</div>
<div class="examine-jic">
<div class="headline">
- <div>鍙橀噺鍖归厤閲忓弬</div>
+ <div>浠诲姟浣跨敤妯℃澘</div>
+ <div style="margin-left: 20px">
+ <el-form ref="forms">
+ <el-form-item label="">
+ <el-input
+ style="width: 300px"
+ :disabled="true"
+ v-model="form.templatename"
+ placeholder="璇风偣鍑诲彸渚ч�夋嫨"
+ />
+ <el-button
+ style="margin-left: 10px"
+ type="primary"
+ icon="el-icon-edit"
+ @click="drawermb = true"
+ circle
+ ></el-button>
+ <el-button
+ v-if="form.templateid"
+ type="success"
+ icon="el-icon-search"
+ @click="previewfnmb()"
+ circle
+ ></el-button>
+ </el-form-item>
+ </el-form>
+ </div>
</div>
+
<div class="examine-jic">
<div class="jic-value">
+ <div style="margin-bottom: 10px">妯℃澘涓娇鐢ㄧ殑鍙橀噺锛�</div>
<el-row :gutter="20">
<el-table :data="variableList" style="width: 100%">
<el-table-column
prop="name"
align="center"
label="鍙橀噺鍚嶇О"
- >
- </el-table-column>
- <el-table-column prop="value" align="center" label="鍖归厤绗�">
- </el-table-column>
+ ></el-table-column>
+ <el-table-column
+ prop="value"
+ align="center"
+ label="鍖归厤绗�"
+ ></el-table-column>
<el-table-column label="鏇挎崲鍊�" align="center">
<template slot-scope="scope">
<el-input
@@ -197,11 +847,6 @@
</el-table-column>
<el-table-column label="鎿嶄綔" align="center">
<template slot-scope="scope">
- <!-- <el-button
- size="mini"
- @click="variableEdit(scope.$index, scope.row)"
- >缂栬緫</el-button
- > -->
<el-button
size="mini"
type="danger"
@@ -219,12 +864,10 @@
<el-button type="success" @click="nextstep('ruleForm')">{{
quote ? "绔嬪嵆鍒涘缓" : "浠诲姟璇︽儏閰嶇疆"
}}</el-button>
- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
</div>
-
<!-- 浠诲姟璇︽儏 -->
<div v-if="Editprogress == 2">
- <el-alert title="鍦ㄦ湰闃舵閫夋嫨闅忚鐥呬汉" type="success" effect="dark">
+ <el-alert title="鍦ㄦ湰闃舵閫夋嫨鐥呬汉" type="success" effect="dark">
</el-alert>
<div class="leftvlue-jbxx">
<div class="examine-jic">
@@ -234,8 +877,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
-
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-select
@@ -258,31 +899,16 @@
icon="el-icon-plus"
size="medium"
:disabled="!patientqueryParams.allhosp"
- @click="handleAddpatient"
- >鏂板</el-button
+ @click="handleQuery"
+ >娣诲姞鎮h��</el-button
>
</el-col>
-
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="el-icon-delete"
- size="medium"
- :disabled="multiple"
- @click="handleDelete"
- >鍒犻櫎</el-button
- >
- </el-col>
-
- <!-- <el-col :span="1.5"> </el-col> -->
</el-row>
- <!-- 閫変腑鎮h�呭垪琛� -->
<SFtable
@details="detailhz"
@handleUpdate="handleUpdate"
:currentList="overallCase"
- :tableLabel="tableLabelhz"
+ :tableLabel="tableLabelhzwb"
:serialnumber="false"
:searchTrue="true"
:multiplechoice="false"
@@ -302,10 +928,12 @@
</div>
</div>
<el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
- <el-button type="success" @click="submitForm('ruleForm')">{{
- quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆"
- }}</el-button>
- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+ <el-button
+ :loading="submitLoading"
+ type="success"
+ @click="submitForm('11')"
+ >{{ quote ? "绔嬪嵆鍒涘缓" : "纭浠诲姟閰嶇疆" }}</el-button
+ >
</div>
</div>
<!-- 娣诲姞鎮h�� -->
@@ -319,7 +947,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
<el-form
:model="patientqueryParams"
ref="queryForm"
@@ -328,24 +955,30 @@
v-show="showSearch"
label-width="98px"
>
- <el-form-item label="鎮h�呭悕绉帮細">
+ <el-form-item label="涓绘不鍖荤敓锛�">
+ <el-input
+ v-model="patientqueryParams.drname"
+ @keyup.enter.native="handleQuery"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鎮h�咃細">
<el-input
v-model="patientqueryParams.name"
@keyup.enter.native="handleQuery"
></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-select
+ v-model="patientqueryParams.searchscope"
+ placeholder="璇烽�夋嫨鎮h�呰寖鍥�"
+ >
+ <el-option
+ v-for="item in source"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ >
+ </el-option>
+ </el-select>
<el-form-item>
<el-button
type="primary"
@@ -358,11 +991,10 @@
icon="el-icon-refresh"
size="medium"
@click="resetQuery"
- >閲嶇疆</el-button
+ >鍙栨秷鍒涘缓</el-button
>
</el-form-item>
</el-form>
- <!-- 閫夋嫨鎮h�呭垪琛� -->
<SFtable
ref="multipleTable"
@handleUpdate="handleUpdate"
@@ -390,43 +1022,195 @@
>
</span>
</el-dialog>
- <el-dialog title="妯$増棰勮" :visible.sync="previewtf" width="60%">
- <div class="preview-left">
- <!-- 鍗曢�� -->
- <div
- class="scriptTopic-dev"
- v-for="(item, index) in questionList"
- :key="item.aaa"
- >
- <div class="dev-text">
- {{ index + 1 }}銆�<span>{{ item.scriptContent }}</span>
+ <!-- 妯℃澘棰勮 -->
+ <el-dialog title="妯℃澘棰勮" :visible.sync="previewtf" width="70%">
+ <el-tabs type="border-card">
+ <el-tab-pane label="妯℃澘鍩虹鏁版嵁">
+ <div class="preview-left">
+ <el-form :model="objyl" label-width="100px" class="demo-objyl">
+ <el-row :gutter="10">
+ <el-col :span="14">
+ <el-form-item label="闅忚鍒嗙被" prop="assortid">
+ <el-select
+ v-model="objyl.assortid"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
+ >
+ <el-option-group
+ v-for="group in optionsclass"
+ :key="group.id"
+ :label="group.indexAssortName"
+ >
+ <el-option
+ v-for="item in group.ivrLibaTemplateAssortList"
+ :key="item.id"
+ :label="item.indexAssortName"
+ :value="item.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="14">
+ <el-form-item label="鍙敤鐘舵��" prop="isenable">
+ <el-radio-group v-model="objyl.isenable">
+ <el-radio
+ v-for="(item, index) in usable"
+ :label="item.value"
+ >{{ item.label }}</el-radio
+ >
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鐗堟湰鍙�" prop="name">
+ <el-input
+ v-model="objyl.version"
+ placeholder="榛樿1.0"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-form-item label="闅忚鏍囬" prop="templateName">
+ <div style="width: 400px">
+ <el-input v-model="objyl.templateName"></el-input>
+ </div>
+ </el-form-item>
+ <div class="xinz-infs">
+ <el-form-item>
+ <template #label>
+ 閫傜敤鐤剧梾
+ <el-tooltip
+ class="item"
+ effect="light"
+ content="閫夋嫨濂介�傜敤鐤剧梾鍚庯紝鍙互鏂逛究鎮ㄩ�氳繃鐤剧梾璇婃柇鏌ユ壘鍒板搴旂殑鐥呬汉!"
+ placement="top-start"
+ >
+ <i class="el-icon-warning-outline"></i>
+ </el-tooltip>
+ </template>
+ <el-tag
+ v-for="tag in illnesslist"
+ :key="tag.icdid"
+ type="warning"
+ :disable-transitions="false"
+ >
+ {{ tag.icdname }}
+ </el-tag>
+ </el-form-item>
+ </div>
+ <el-form-item label="闅忚鎻忚堪" prop="description">
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ v-model="objyl.description"
+ >
+ </el-input
+ ></el-form-item>
+ <el-form-item label="闅忚缁撴潫璇�" prop="conclusion">
+ <el-input
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ v-model="objyl.conclusion"
+ >
+ </el-input
+ ></el-form-item>
+ </el-form>
</div>
-
- <div class="dev-xx" v-if="item.valueType == 1">
- <el-radio-group v-model="item.radio">
- <el-radio
- v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
- :key="items.id"
- :label="items.id"
- >{{ items.targetvalue }}
- </el-radio>
- </el-radio-group>
+ </el-tab-pane>
+ <el-tab-pane label="闂灞曠ず">
+ <div class="preview-left">
+ <div v-for="item in questionList">
+ <!-- 鍗曢�� -->
+ <div
+ class="scriptTopic-dev"
+ :key="item.sort"
+ v-if="item.scriptType == 1"
+ >
+ <div class="dev-text">
+ {{ item.sort }}. [鍗曢�塢<span>{{ item.scriptContent }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-radio-group v-model="item.remark">
+ <el-radio
+ v-for="(
+ items, index
+ ) in item.ivrLibaScriptTargetoptionList"
+ :key="index"
+ :label="index"
+ >{{ items.targetvalue }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ </div>
+ <!-- 澶氶�� -->
+ <div
+ class="scriptTopic-dev"
+ :key="item.sort"
+ v-if="item.scriptType == 2"
+ >
+ <div class="dev-text">
+ {{ item.sort }}. [澶氶�塢<span>{{ item.scriptContent }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-checkbox-group v-model="qremark">
+ <el-checkbox
+ v-for="(
+ items, index
+ ) in item.ivrLibaScriptTargetoptionList"
+ :key="index"
+ :label="index"
+ >
+ {{ items.targetvalue }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </div>
+ </div>
+ <!-- 濉┖ -->
+ <div
+ class="scriptTopic-dev"
+ :key="item.sort"
+ v-if="item.scriptType == 4"
+ >
+ <div class="dev-text">
+ {{ item.sort }}. [闂瓟]<span>{{ item.scriptContent }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-input
+ placeholder="璇疯緭鍏ョ瓟妗�"
+ v-model="item.radioas"
+ clearable
+ >
+ </el-input>
+ </div>
+ </div>
+ </div>
</div>
- <div v-else>
- <el-input
- type="textarea"
- placeholder="鏈幏鍙栧埌淇℃伅"
- v-model.sync="item.scriptResult"
- :rows="2"
- />
- </div>
- </div>
- </div>
+ </el-tab-pane>
+ </el-tabs>
<span slot="footer" class="dialog-footer">
- <el-button @click="previewGo">鍓嶅線妯$増璇︽儏淇敼</el-button>
- <el-button type="primary" @click="previewFn">纭浣跨敤</el-button>
+ <el-button
+ v-if="(form.templateid && form.sendState == 1) || !form.templateid"
+ type="primary"
+ @click="Departmenttreatment"
+ >{{ form.templateid ? "鏇挎崲浣跨敤" : "閫夋嫨浣跨敤" }}</el-button
+ >
+ <el-button
+ :type="previewtftype ? 'success' : 'warning'"
+ @click="Modifytemplate"
+ >{{
+ previewtftype ? "鍓嶅線淇敼宸查�夋嫨妯℃澘" : "鏂板淇濆瓨骞跺墠寰�淇敼"
+ }}</el-button
+ >
</span>
</el-dialog>
+ <!-- 妯℃澘鍒楄〃鎶藉眽 -->
<el-drawer
title="闅忚鍐呭鍒楄〃"
:visible.sync="drawermb"
@@ -437,8 +1221,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
-
<el-form
:model="topqueryParams"
ref="queryForm"
@@ -447,46 +1229,31 @@
v-show="showSearch"
label-width="98px"
>
- <el-form-item label="闅忚涓婚">
- <el-input v-model="topqueryParams.name"></el-input>
- </el-form-item>
<el-form-item label="闅忚鍚嶇О">
- <el-input v-model="topqueryParams.name"></el-input>
- </el-form-item>
-
- <el-form-item label="閫傜敤绉戝" prop="status">
- <el-select v-model="topqueryParams.topicd" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in topicoptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
+ <el-input v-model="topqueryParams.templateName"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="medium"
- @click="handleQuery"
+ @click="handleQuerymb"
>鎼滅储</el-button
>
<el-button
icon="el-icon-refresh"
size="medium"
- @click="resetQuery"
+ @click="resetQuerymb"
>閲嶇疆</el-button
>
</el-form-item>
</el-form>
<el-divider></el-divider>
- <!-- 閫夋嫨妯$増鍒楄〃 -->
<SFtable
@selectfn="selectfn"
:currentList="userList"
:tableLabel="tableLabel"
+ :serialnumber="false"
:controlsc="false"
:multiplechoice="false"
:typeinfo="1"
@@ -502,119 +1269,199 @@
</div>
</div>
</el-drawer>
+ <Optional-Form
+ ref="child"
+ :dialogVisiblepatient="dialogVisiblepatientjb"
+ :overallCase="diagglist"
+ @addoption="dialogVisiblepatientjb = false"
+ @kkoption="dialogVisiblepatientjb = true"
+ />
</div>
</template>
-
<script>
import { messagelistpatient } from "@/api/patient/homepage";
import store from "@/store";
import {
- getTaskpatient,
- getlibrarylist,
+ getTaskpatientQC,
+ getillnesslist,
+ getbaseopera,
getFollowuplist,
- getQtemplatelist,
- TaskTemplatecomit,
- getTaskInfo,
- gethetaskinfo,
- delhetaskinfo,
- Editsingletask,
getvFollowup,
+ selectInfoByCondition,
+ Taskparticty,
+ deleteTaskparticty,
+ getTaskInfo,
+ getTaskparticty,
+ depthospgetson,
+ getillness,
+ Editsingletask,
+ getFollowupclassify,
+ taskdepthospgetsonlist,
+ taskdepthospgetsondel,
+ taskoperhospgetsondel,
+ taskdiaghospgetsondel,
+ taskdiaggetlist,
+ taskopergetlist,
+ rwztaskdepthospgetsonlist,
+ rwztaskdiaggetlist,
+ getQtemplatelist,
} from "@/api/AiCentre/index";
-import { listDept } from "@/api/system/dept";
-
-import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import { listMedication } from "@/api/knowledge/drug";
+import { deptTreeSelect } from "@/api/system/user";
+import OptionalForm from "@/components/OptionalForm";
+import SortCheckbox from "@/components/SortCheckbox";
+import { MessageBox } from "element-ui";
+import SFtable from "@/components/SFtable";
export default {
- name: "ServiceDetails",
+ name: "particty",
data() {
- const endDate = new Date();
- const startDate = new Date();
- startDate.setDate(endDate.getDate() - 7); // 璁剧疆寮�濮嬫棩鏈熶负褰撳墠鏃ユ湡鍓�7澶�
return {
- title: "闅忚鍐呭鍒楄〃",
- currenttype: 1, //1闅忚2闂嵎3閫氱煡瀹f暀
- id: "", //
- previewid: "", //浠诲姟妯$増浼犻�抜d
+ title: "瀹f暀鍐呭鍒楄〃",
+ currenttype: 1,
+ id: "",
+ previewid: "",
libName: "",
- overallCase: [], //閫夋嫨鎮h�呮��
- // 鏃ユ湡鑼冨洿
- dateRange: [startDate, endDate],
+ username: "",
+ templateor: false,
+ submitLoading: false,
+ objyl: {},
+ overallCase: [],
allpids: [],
- libId: null, //妯℃澘搴撴ā鐗坕d
- nhh: null, //鏄惁渚濈収鏂板
- Editprogress: 1, //缂栬緫杩涘害
- drawermb: false, //閫夋嫨妯$増寮圭獥
- previewtf: false, //棰勮
- loading: false, // 閬僵灞�
- patientloading: false, // 閬僵灞�
- dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗�
+ appraiselist: [],
+ optionsclass: [],
+ illnesslist: [],
+ mode: [],
+ libId: null,
+ Editprogress: 1,
+ drawermb: false,
+ previewtf: false,
+ previewtftype: 0,
+ dialogVisiblepatient: false,
+ dialogVisiblepatientjb: false,
+ deptcodesWards: [],
+ leavehospitaldistrictcodes: [],
+ operationcodes: [],
+ illnesscodes: [],
radio: 1,
checkboxlist: [],
tableLabel: [],
questionList: [],
- // 鎮h�呰〃鍗�
+ donorchargeList: [],
+ baseoperaList: [
+ { value: "1", label: "涓�绾ф墜鏈�" },
+ { value: "2", label: "浜岀骇鎵嬫湳" },
+ { value: "3", label: "涓夌骇鎵嬫湳" },
+ { value: "4", label: "鍥涚骇鎵嬫湳" },
+ ],
+ selectedOrder: [],
+ diseaseDept: null,
+ diseaseWard: null,
+ usable: [
+ { value: "0", label: "鍙敤" },
+ { value: "1", label: "鍋滅敤" },
+ ],
+ required: [
+ { value: "1", label: "蹇呭~" },
+ { value: "2", label: "涓嶅繀濉�" },
+ ],
+ props: { multiple: true, value: "deptCode", label: "deptName" },
+ propstask: { value: "deptCode", label: "deptName" },
tableLabelhz: [
- { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
{ label: "鎬у埆", width: "", prop: "sex" },
{ label: "骞撮緞", width: "", prop: "age" },
- { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
- { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "birthdate" },
- { label: "鍒涘缓浜猴紙缂猴級", width: "", prop: "update_by" },
+ { label: "鐢佃瘽", width: "180", prop: "telcode" },
+ { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+ { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
+ { label: "绉戝", width: "240", prop: "dept" },
+ { label: "鐥呭尯", width: "240", prop: "leavehospitaldistrictname" },
],
-
- tableLabelmz: [
- { label: "闅忚鍚嶇О", width: "", prop: "templateName" },
- { label: "涓昏鍐呭", width: "", prop: "note" },
+ tableLabelhzwb: [
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "sfzh" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
+ { label: "鎬у埆", width: "", prop: "sex" },
+ { label: "骞撮緞", width: "", prop: "age" },
+ { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+ { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+ { label: "涓绘不鍖荤敓", width: "", prop: "drname" },
+ { label: "绉戝", width: "180", prop: "deptName" },
+ { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+ ],
+ tableLabelwj: [
+ { label: "鍒涘缓浜�", width: "", prop: "createBy" },
+ { label: "妯℃澘鏍囬", width: "", prop: "templateName" },
+ { label: "闅忚鎻忚堪", width: "", prop: "note" },
{ label: "淇敼鏃ユ湡", width: "", prop: "updateTime" },
- { label: "鍒涘缓浜猴紙缂猴級", width: "", prop: "updateBy" },
],
-
- // 鏈嶅姟褰㈠紡
+ tableLabelvariable: [
+ { label: "鍙橀噺鍚嶇О", width: "", prop: "variablename" },
+ { label: "鍖归厤绗�", width: "", prop: "character" },
+ { label: "鏇挎崲鍊�", width: "", prop: "Replacementvalue" },
+ ],
preachform: [
- { label: "绾夸笅", value: 1 },
- { label: "鐢佃瘽", value: 2 },
- { label: "灏忕▼搴�", value: 3 },
+ { label: "澶氬獟浣�", value: 1 },
+ { label: "绾歌川", value: 2 },
+ { label: "鏅鸿兘璇煶", value: 3 },
{ label: "鐭俊", value: 4 },
- { label: "寰俊鍏紬", value: 5 },
- { label: "閽夐拤", value: 6 },
- { label: "鏅鸿兘鏈哄櫒浜�", value: 7 },
+ { label: "寰俊鍏紬鍙�", value: 5 },
+ { label: "寰俊灏忕▼搴�", value: 6 },
+ { label: "鏀粯瀹�", value: 7 },
+ { label: "鏅鸿兘灏忕▼搴�", value: 8 },
+ { label: "閽夐拤", value: 9 },
+ { label: "绾夸笅锛堢焊璐級", value: 10 },
+ { label: "绾夸笂锛堢煭淇�/閽夐拤鐨勬枃鏈�侀殢璁块摼鎺ワ級", value: 11 },
],
- // 鏃堕棿澶勭悊
- daytime: [], //鏃ユ湡
- applydaytime: [], //璁$畻鏃ユ湡
- time1: "", //涓婂崍鏃堕棿娈�
- time2: "", //涓嬪崍鏃堕棿娈�
- time3: "", //鏅氫笂鏃堕棿娈�
- time4: "", //鏅氫笂鏃堕棿娈�
+ daytime: [],
+ applydaytime: [],
+ time1: "",
+ time2: "",
+ time3: "",
+ time4: "",
topqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
},
checkList: [],
+ foncheckList: [],
+ formatvalue: {
+ format1: "",
+ format2: "",
+ format3: "",
+ },
deliverytopqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
},
patientqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
+ topica: 1,
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
},
topicoptions: [{ children: [{ children: [] }] }],
- showSearch: true, //
- total: 0, //
- sontotal: 0, //
- patienttotal: 0, //
- // 閫変腑鏁扮粍
+ showSearch: true,
+ total: 0,
+ sontotal: 0,
+ patienttotal: 0,
ids: [],
- // 闈炲崟涓鐢�
single: true,
- // 闈炲涓鐢�
multiple: true,
- // 鐢ㄦ埛琛ㄦ牸鏁版嵁
- userList: [], //妯$増鍒楄〃
- patientuserList: [], //閫夋嫨鎮h�呭垪琛�
- sonuserList: [], //閫変腑鎮h�呭垪琛�
- delvariableList: [], //鍒犻櫎鍙橀噺涓存椂瀛樺偍
+ userList: [],
+ multiplechoice: [],
+ patientuserList: [],
+ sonuserList: [],
+ delvariableList: [],
+ longtype: [
+ { value: 0, label: "鑷畾涔夊懆鏈�" },
+ { value: 1, label: "闀挎湡浠诲姟" },
+ ],
variableList: [
{
name: "濮撳悕",
@@ -634,7 +1481,7 @@
fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�",
default: true,
},
- ], //鍙橀噺鍒楄〃
+ ],
transitionList: [
{
name: "濮撳悕",
@@ -656,51 +1503,121 @@
},
],
variableListTime: [],
- tasktopic: null, //鏂板绫诲瀷
+ tasktopic: null,
SelectPatientslist: [],
form: {
patTaskRelevances: [],
- sendType: 1,
+ sendType: 3,
+ longTask: 0,
templatename: "",
templateid: null,
libtemplateid: null,
+ kcb:
+ "浜茬埍鐨勬偅鑰�/瀹跺睘锛屾偍濂斤紒鎴戜滑鏄�" +
+ localStorage.getItem("orgname") +
+ "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝杩涜鏈鍥炶鏈嶅姟銆�",
+ jsy: "璇锋偍娉ㄦ剰浼戞伅鍜岃惀鍏伙紝鐢熸椿涓婅鍔抽�哥粨鍚堬紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
+ // 浠诲姟缁勪富瀵硅薄
+ serviceTaskScheduleVO: {
+ scheduleStyle: 0,
+ scheduleTimeNum: null,
+ scheduleTimeUnit: null,
+ maxLoopCount: 0,
+ currentLoopCount: 0,
+ currentSeq: 0,
+ nextSeq: 0,
+ nextExecuteTime: "",
+ scheduleBenchmark: 0,
+ scheduleBenchmarkCustomTime: "",
+ detailList: [],
+ },
},
taskoptions: [
- {
- value: "1",
- label: "鍑洪櫌鐥呬汉",
- },
- {
- value: "2",
- label: "闂ㄨ瘖鐥呬汉",
- },
- {
- value: "3",
- label: "浣撴鐥呬汉",
- },
+ { value: "4", label: "鍑洪櫌鐥呬汉" },
+ { value: "1", label: "鍦ㄩ櫌鐥呬汉" },
+ { value: "2", label: "闂ㄨ瘖鐥呬汉" },
+ { value: "3", label: "浣撴鐥呬汉" },
+ { value: "5", label: "鎵嬫湳鐥呬汉" },
],
+ source: [
+ { value: 0, label: "鎵�灞炴偅鑰�" },
+ { value: 1, label: "绉戝鎮h��" },
+ { value: 2, label: "鐥呭尯鎮h��" },
+ ],
+ tasktypes: store.getters.tasktypes,
+ belongWards: [],
+ deptlist: [],
+ hosplist: [],
+ diagglist: [],
+ operlist: [],
+ medicalCodes: [],
+ medicalOptions: [],
+ tempDetpRelevanceslist: [],
+ tempDetpRelevanceslistform: [],
+ tempbelongWards: [],
+ tempbelongWardsform: [],
+ rules: {
+ taskName: [
+ { required: true, message: "浠诲姟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+ {
+ min: 2,
+ max: 30,
+ message: "浠诲姟鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 30 涔嬮棿",
+ trigger: "blur",
+ },
+ ],
+ sendType: [
+ { required: true, message: "鍙戦�佽缃笉鑳戒负绌�", trigger: "blur" },
+ ],
+ longTask: [
+ { required: true, message: "璇烽�夋嫨鎵ц鍛ㄦ湡", trigger: "blur" },
+ ],
+ },
+ queryParamsdept: {
+ tempid: "",
+ type: 2,
+ },
+ belongDepts: [],
quote: false,
+ serviceType: null,
+ // 妯℃澘鎼滅储
+ templateOptions: [],
+ templateLoading: false,
};
},
- components: { SFtable },
-
+ components: { SFtable, OptionalForm, SortCheckbox },
created() {
+ this.appraiselist = store.getters.appraiselist;
+ this.belongWards = store.getters.belongWards;
+ this.belongDepts = store.getters.belongDepts;
+ this.username = store.getters.name;
+ this.mode = store.getters.Askmode;
this.id = this.$route.query.id;
+ this.newadd = this.$route.query.newadd;
this.form.type = this.$route.query.type;
+ this.form.typename = this.$route.query.typename;
+ this.serviceType = Number(this.$route.query.serviceType);
this.form.serviceType = Number(this.$route.query.serviceType);
- this.form.nhh = this.$route.query.nhh;
- this.listDept();
this.Acquisitiontype();
+ this.getillnesslist();
this.Getdetails();
+ this.getFollowupclassify();
},
-
+ activated() {
+ if (this.id != this.$route.query.id) {
+ this.id = this.$route.query.id;
+ this.newadd = this.$route.query.newadd;
+ this.form.type = this.$route.query.type;
+ this.form.typename = this.$route.query.typename;
+ this.serviceType = Number(this.$route.query.serviceType);
+ this.form.serviceType = Number(this.$route.query.serviceType);
+ this.Acquisitiontype();
+ this.Getdetails();
+ this.getFollowupclassify();
+ }
+ },
methods: {
- // {
- // 濮撳悕: { "${name}": "榫欏偛澶�" },
- // 鍦板潃: { "${dzz}": "榫欏" },
- // 鐢佃瘽: { "${dhh}": "鍏釜鍏�" },
- // }
- // 鍙橀噺杞崲瀵硅薄杞暟缁�
+ // ---------- 宸ュ叿鏂规硶 ----------
convertFormat1ToFormat2(data) {
let result = [];
for (let key in data) {
@@ -713,7 +1630,6 @@
}
return result;
},
- // 鏁扮粍杞璞�
convertFormat2ToFormat1(data) {
let result = {};
data.forEach((item) => {
@@ -723,320 +1639,221 @@
});
return result;
},
- // 鑾峰彇褰撳墠绫诲瀷
+ flattenArray(multiArray) {
+ let result = [];
+ function flatten(element) {
+ if (element.children && element.children.length > 0) {
+ element.children.forEach((child) => flatten(child));
+ } else {
+ let item = JSON.parse(JSON.stringify(element));
+ result.push(item);
+ }
+ }
+ multiArray.forEach((element) => flatten(element));
+ return result;
+ },
+ daysBetween(endDate) {
+ if (!endDate) return "";
+ const now = new Date();
+ const end = new Date(endDate);
+ const diff = Math.floor((now - end) / (1000 * 60 * 60 * 24));
+ return diff > 0 ? diff : 0;
+ },
+
+ // ---------- 鏁版嵁鍔犺浇 ----------
Acquisitiontype() {
let queryParams = {
pageNum: this.topqueryParams.pageNum,
pageSize: this.topqueryParams.pageSize,
- isavailable: "",
+ isenable: "",
};
this.currenttype = this.$route.query.type;
- // 鍑洪櫌銆侀棬璇娿�佷笓鐥呴殢璁�
this.title = "闅忚鍐呭鍒楄〃";
- this.tableLabel = this.tableLabelmz;
- if (this.form.serviceType == 2 || this.form.serviceType == 3) {
+ this.tableLabel = this.tableLabelwj || [];
+ if (this.form.serviceType == 1) {
this.checkboxlist = [
- {
- value: "1",
- label: "浜哄伐",
- },
- {
- value: "3",
- label: "鐢佃瘽",
- },
- {
- value: "4",
- label: "鐭俊",
- },
- {
- value: "5",
- label: "寰俊鍏紬鍙�",
- },
- {
- value: "6",
- label: "寰俊灏忕▼搴�",
- },
-
- {
- value: "8",
- label: "鏅鸿兘鏈哄櫒浜�",
- },
+ { value: "1", label: "浜哄伐" },
+ { value: "2", label: "绾歌川" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
];
- } else if (this.form.serviceType == 5) {
+ } else if (
+ this.form.serviceType == 6 ||
+ this.form.serviceType == 14 ||
+ this.form.serviceType == 15
+ ) {
this.checkboxlist = [
- {
- value: "3",
- label: "鐢佃瘽",
- },
- {
- value: "4",
- label: "鐭俊",
- },
- {
- value: "5",
- label: "寰俊鍏紬鍙�",
- },
- {
- value: "6",
- label: "寰俊灏忕▼搴�",
- },
-
- {
- value: "8",
- label: "鏅鸿兘鏈哄櫒浜�",
- },
+ { value: "1", label: "浜哄伐" },
+ { value: "3", label: "鏅鸿兘璇煶" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
+ { value: "6", label: "寰俊灏忕▼搴�" },
+ ];
+ } else if (
+ this.form.serviceType == 7 ||
+ this.form.serviceType == 5 ||
+ this.form.serviceType == 8 ||
+ this.form.serviceType == 9 ||
+ this.form.serviceType == 11 ||
+ this.form.serviceType == 12 ||
+ this.form.serviceType == 10
+ ) {
+ this.checkboxlist = [
+ { value: "1", label: "浜哄伐" },
+ { value: "2", label: "绾歌川" },
+ { value: "3", label: "鏅鸿兘璇煶" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
+ { value: "6", label: "寰俊灏忕▼搴�" },
+ { value: "7", label: "鏈悗闅忚" },
+ ];
+ } else if (
+ this.form.serviceType == 2 ||
+ this.form.serviceType == 18 ||
+ this.form.serviceType == 19 ||
+ this.form.serviceType == 3 ||
+ this.form.serviceType == 16 ||
+ this.form.serviceType == 4
+ ) {
+ this.checkboxlist = [
+ { value: "1", label: "浜哄伐" },
+ { value: "3", label: "鏅鸿兘璇煶" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
+ { value: "6", label: "寰俊灏忕▼搴�" },
];
}
-
- getFollowuplist(queryParams).then((response) => {
+ getFollowuplist(this.topqueryParams).then((response) => {
this.userList = response.rows;
this.total = response.total;
});
},
- nextstep() {
- if (this.Editprogress <= 3) {
- return this.Editprogress++;
- }
- },
- // 淇濆瓨
- submitForm(formName) {
- this.form.preachform = this.checkList.join(",");
- // this.formatFn(1);
- if (!this.form.patTaskRelevances[0]) {
- this.$modal.msgError("璇烽�夋嫨鐥呬汉");
- return;
- }
- const filteredArray = this.variableList.filter(
- (item) =>
- item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
- );
- console.log(filteredArray, "瀛樺墠鍙橀噺");
- this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
- if (this.form.taskid) {
- this.form.isoperation = 2;
- } else {
- this.form.isoperation = 1;
- }
- Editsingletask(this.form).then((res) => {
- if (res.code == 200) {
- if (this.form.taskid) {
- this.$modal.msgSuccess("鏂板鎴愬姛");
- } else {
- this.$modal.msgSuccess("淇敼鎴愬姛");
- }
- this.$router.push({
- path: "/followvisit/tasklist",
- query: { tasktopic: this.form.serviceType },
- });
- }
+ getFollowupclassify() {
+ getFollowupclassify({}).then((res) => {
+ this.optionsclass = res.rows;
});
},
- // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
- // 纭閫夋嫨妯$増鏀惧叆浠诲姟妯$増
- selectfn(row, type) {
- // 妯$増鎯呭喌涓嬭幏鍙栨ā鐗堜俊鎭�
- console.log(row, "閫夋嫨妯$増");
- this.libName = row.templateName;
- this.libId = row.id;
- getvFollowup({ id: row.id }).then((res) => {
- if (res.code == 200) {
- this.Tasktemplate = res.data;
- const data = res.data;
- this.questionList = data.ivrLibaTemplateScriptVOList;
- this.previewtf = true;
- this.previewid = data.id;
- console.log(this.questionList, "questionList");
- this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1);
- }
- });
- },
- // 澶勭悊闂灞傚彉閲�
- Variablehandling(arr, type) {
- let Variablist = [];
- this.variableList = []; //鍙橀噺鍒楄〃
- if (type == 1) {
- console.log(arr);
- // 寰幆闂
- arr.forEach((res) => {
- console.log(JSON.parse(res.otherdata), "ss");
- // 寰幆閫夐」
- JSON.parse(res.otherdata).forEach((item) => {
- if (item.default != 1) {
- Variablist.push({
- value: item.variate,
- fill: "",
- name: item.variatename,
- });
- }
- });
- });
- const Aarr = Variablist.filter(
- (obj, index, self) =>
- index ===
- self.findIndex((t) => t.name === obj.name && t.value === obj.value)
- );
- this.variableList = this.transitionList.concat(Aarr);
- console.log(this.variableList, "variableList");
- // this.form.textParam = this.convertFormat2ToFormat1(this.variableList);
- }
- },
- // 瀛愪换鍔′簩绾у脊妗�
- handleAddpatient(row) {
- console.log(this.overallCase, "ssaaa");
- this.allpids = [];
- this.overallCase.forEach((item) => {
- this.allpids.push(item.patid);
- });
- if (this.patientqueryParams.allhosp == 1) {
- this.tableLabelhz = [
- { label: "鎮h�呭悕绉�", width: "", prop: "name" },
- { label: "鎬у埆", width: "", prop: "sex" },
- { label: "骞撮緞", width: "", prop: "age" },
- { label: "涓讳换鍖诲笀", width: "", prop: "drname" },
- { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
- { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "birthdate" },
- { label: "鍒涘缓浜�", width: "", prop: "createBy" },
- ];
- } else if (this.patientqueryParams.allhosp == 2) {
- this.tableLabelhz = [
- { label: "鎮h�呭悕绉�", width: "", prop: "name" },
- { label: "鎬у埆", width: "", prop: "sex" },
- { label: "骞撮緞", width: "", prop: "age" },
- { label: "璇婃柇", width: "", prop: "diagname" },
- { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
- { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "birthdate" },
- { label: "鍒涘缓浜�", width: "", prop: "createBy" },
- ];
- }
- if (this.allpids[0]) {
- this.patientqueryParams.pids = this.allpids;
- console.log(this.patientqueryParams.pids);
- } else {
- this.patientqueryParams.pids = null;
- }
-
- getTaskpatient(
- this.addDateRange(this.patientqueryParams, this.dateRange)
- ).then((response) => {
- this.patientuserList = response.rows;
- this.patienttotal = response.total;
- this.loading = false;
- this.Restorecheck();
- });
- this.dialogVisiblepatient = true;
- },
- handleUpdate() {},
- handleDelete() {},
- handleExport() {},
- // 閫変腑鎮h�呰〃
- handlePitchionChange() {},
- // 閫夋嫨鎮h�呰〃鏁版嵁
- handleSelectionChange(selection) {
- console.log("澶氶�夋偅鑰�");
- this.SelectPatientslist = selection;
- this.multiple = !selection.length;
-
- // 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍
- this.SelectPatientslist.forEach((item) => {
- const isExist = this.overallCase.find((obj) => obj.name == item.name);
- if (!isExist) {
- console.log(this.patientqueryParams.allhosp, "allhosp");
- item.isoperation = 1;
- item.patid = item.id;
- item.hospType = this.patientqueryParams.allhosp;
- this.overallCase.push(item);
- this.form.patTaskRelevances.push(item);
- console.log(this.overallCase, "this.overallCase");
- }
- });
- },
- // 鍒囨崲椤靛悗鎭㈠閫変腑
- Restorecheck() {
- console.log(this.overallCase, "this.overallCase");
- const allid = this.overallCase.map((item) => item.id);
- const overlap = this.patientuserList.filter((value) => {
- return allid.includes(value.id);
- });
- console.log(overlap, "overlap");
-
- // 淇濇寔ids鍜屽綋鍓嶉〉闈㈢殑鍚屾鎬�
- this.SelectPatientslist = overlap;
- console.log(this.SelectPatientslist, "杩涘叆鍒嗛〉SelectPatientslist");
-
- this.toggleSelection(overlap);
- },
- // 鎸傝浇閫夋嫨鐘舵��
- toggleSelection(rows) {
- if (rows) {
- this.decision = true;
- this.$nextTick(() => {
- rows.forEach((row) => {
- this.$refs.multipleTable.toggleRowSelection(row, true);
- });
- this.decision = false;
- });
- console.log(123);
- } else {
- this.$refs.multipleTable.clearSelection();
- }
- },
- // 鍒犻櫎閫変腑鎮h��
- detailhz(row, info) {
- this.$modal
- .confirm('鏄惁纭鍒犻櫎鎮h��"' + row.name + '"鐨勬湇鍔¢」锛�')
- .then(() => {
- let indexa = this.overallCase.indexOf(row);
- let indexb = this.form.patTaskRelevances.indexOf(row);
- this.overallCase.splice(indexa, 1);
- this.form.patTaskRelevances[indexb].isoperation = 3;
- this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- });
- },
- getList() {},
- handleQuery() {
- this.handleAddpatient();
- },
- resetQuery() {
- this.dateRange = [];
- // 鏌ヨ鍙傛暟
- this.queryParams = {
+ getillnesslist() {
+ getillnesslist({
pageNum: 1,
- pageSize: 10,
- userName: undefined,
- phonenumber: undefined,
- status: undefined,
- deptId: undefined,
- };
+ pageSize: 1000,
+ }).then((res) => {
+ this.donorchargeList = res.rows;
+ });
},
- handleClosehz() {
- this.dialogVisiblepatient = false;
+ getillness(id) {
+ if (id) {
+ getillness({ outid: id, type: 5 }).then((res) => {
+ this.illnesslist = res.rows;
+ this.illnesslist.forEach((item) => {
+ item.icdname = item.icd10name;
+ });
+ });
+ }
},
- // 涓婁竴姝�
- laststep() {
- this.Editprogress--;
- },
- // 鎻愪氦琛ㄥ崟
- resetForm(formName) {
- this.$refs[formName].resetFields();
- },
- // 棰勮妯$増
- PreviewTemplate() {},
- Acknowledgereference() {
- this.quote = true;
- },
- // 鑾峰彇璇︽儏
Getdetails() {
+ this.form = {
+ patTaskRelevances: [],
+ sendType: 1,
+ sendDay: 5,
+ templatename: "",
+ templateid: null,
+ libtemplateid: null,
+ kcb:
+ "浜茬埍鐨勬偅鑰�/瀹跺睘锛屾偍濂斤紒鎴戜滑鏄�" +
+ localStorage.getItem("orgname") +
+ "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝杩涜鏈鍥炶鏈嶅姟銆�",
+ jsy: "璇锋偍娉ㄦ剰浼戞伅鍜岃惀鍏伙紝鐢熸椿涓婅鍔抽�哥粨鍚堬紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
+ serviceTaskScheduleVO: {
+ scheduleStyle: 0,
+ scheduleTimeNum: null,
+ scheduleTimeUnit: null,
+ maxLoopCount: 0,
+ currentLoopCount: 0,
+ currentSeq: 0,
+ nextSeq: 0,
+ nextExecuteTime: "",
+ scheduleBenchmark: 0,
+ scheduleBenchmarkCustomTime: "",
+ detailList: [],
+ },
+ };
+ this.questionList = [];
if (this.id) {
getTaskInfo({ taskid: this.id }).then((res) => {
- let filteredArray = "";
- console.log(2233);
if (res.code == 200) {
this.form = res.data;
+ // 濡傛灉杩斿洖浜� serviceTaskScheduleVO锛屽垯瑙f瀽鏄庣粏涓殑 content
+ if (
+ this.form.serviceTaskScheduleVO &&
+ this.form.serviceTaskScheduleVO.detailList
+ ) {
+ this.form.serviceTaskScheduleVO.detailList.forEach((item) => {
+ if (item.content) {
+ try {
+ const contentObj = JSON.parse(item.content);
+ item.kcb = contentObj.kcb || "";
+ item.jsy = contentObj.jsy || "";
+ item.textParam = contentObj.text_param || {};
+ } catch (e) {
+ item.kcb = "";
+ item.jsy = "";
+ item.textParam = {};
+ }
+ } else {
+ item.kcb = "";
+ item.jsy = "";
+ item.textParam = {};
+ }
+ });
+ } else {
+ // 鑻ュ悗鍙版湭杩斿洖锛屽垯鍒濆鍖栦负绌哄璞�
+ this.form.serviceTaskScheduleVO = {
+ scheduleStyle: 0,
+ scheduleTimeNum: null,
+ scheduleTimeUnit: null,
+ maxLoopCount: 0,
+ currentLoopCount: 0,
+ currentSeq: 0,
+ nextSeq: 0,
+ nextExecuteTime: "",
+ scheduleBenchmark: 0,
+ scheduleBenchmarkCustomTime: "",
+ detailList: [],
+ };
+ }
+ // 鍘熸湁鍥炴樉
+ this.diseaseDept = {
+ deptCode: this.form.deptcode,
+ deptName: this.form.deptname,
+ };
+ this.diseaseWard = {
+ districtCode: this.form.leavehospitaldistrictcode,
+ districtName: this.form.leavehospitaldistrictname,
+ };
+ this.form.serviceType = this.serviceType;
+ this.form.patTaskRelevances = this.form.patTaskRelevances
+ ? this.form.patTaskRelevances
+ : [];
+ // 鑽搧鍏宠仈鍥炴樉
+ if (this.form.medicalCode) {
+ this.medicalCodes = this.form.medicalCode.split(",").filter(Boolean);
+ listMedication({ itemCode: this.form.medicalCode, pageNum: 1, pageSize: 200 }).then((res) => {
+ this.medicalOptions = res.rows || [];
+ });
+ }
this.overallCase = this.form.patTaskRelevances.concat();
- this.checkList = this.form.preachform.split(",");
- console.log(this.form.showDate, "this.form");
- this.daytime = this.form.showDate.split(",");
- this.changeTimeday(this.daytime);
+ this.checkList = this.form.preachform
+ ? this.form.preachform.split(",")
+ : [];
+ this.selectedOrder = this.form.preachformList || [];
+ this.overallCase.forEach((item) => {
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+ });
+ if (this.form.showDate)
+ this.daytime = this.form.showDate.split(",");
if (this.form.showTimeMorn) {
if (this.form.sendType == 3) {
this.time4 = this.form.showTimeMorn;
@@ -1044,86 +1861,599 @@
this.time1 = this.form.showTimeMorn.split(",");
}
}
+ if (this.form.taskid) {
+ this.listDept();
+ }
if (this.form.showTimeNoon)
this.time2 = this.form.showTimeNoon.split(",");
if (this.form.showTimeNight)
this.time3 = this.form.showTimeNight.split(",");
- console.log(1122);
- filteredArray = this.convertFormat1ToFormat2(this.form.textParam);
+ let filteredArray = this.convertFormat1ToFormat2(
+ this.form.textParam || {}
+ );
this.variableList = this.transitionList.concat(filteredArray);
} else {
this.$modal.msgError(res.code);
}
+ if (this.newadd) {
+ this.neWaddfn();
+ }
});
}
},
- // 鑾峰彇绉戝鍒楄〃
- listDept() {
- listDept().then((res) => {
- this.topicoptions = this.handleTree(res.data, "deptId");
- console.log(this.topicoptions, "topicoptions");
- });
- },
- // 鏂板娲鹃�佹偅鑰�
- AddDispatchpatients() {
- // this.SelectPatientslist.forEach((item) => {
- // item.isoperation = 1;
- // });
- // this.form.patTaskRelevances.push(...this.SelectPatientslist);
- // this.overallCase.push(...this.SelectPatientslist);
- this.dialogVisiblepatient = false;
+ neWaddfn() {
+ this.id = null;
+ this.form.taskName = "";
+ this.form.sendState = null;
+ this.form.taskid = null;
+ this.overallCase = [];
+ this.form.patTaskRelevances = [];
+ this.daytime = [];
+ this.applydaytime = [];
+ this.time1 = "";
+ this.time2 = "";
+ this.time3 = "";
+ this.time4 = "";
+ // 閲嶇疆浠诲姟缁�
+ this.form.serviceTaskScheduleVO = {
+ scheduleStyle: 0,
+ scheduleTimeNum: null,
+ scheduleTimeUnit: null,
+ maxLoopCount: 0,
+ currentLoopCount: 0,
+ currentSeq: 0,
+ nextSeq: 0,
+ nextExecuteTime: "",
+ scheduleBenchmark: 0,
+ scheduleBenchmarkCustomTime: "",
+ detailList: [],
+ };
},
+ // ---------- 浠诲姟缁勬槑缁嗘搷浣� ----------
+ addDetail() {
+ const detailList = this.form.serviceTaskScheduleVO.detailList;
+ const seq = detailList.length + 1;
+ detailList.push({
+ seq: seq,
+ dayOffset: 0,
+ templateid: null,
+ libtemplateid: null,
+ templatename: "",
+ content: "",
+ kcb: "",
+ jsy: "",
+ textParam: {},
+ });
+ },
+ removeDetail(index) {
+ this.form.serviceTaskScheduleVO.detailList.splice(index, 1);
+ // 閲嶆柊璋冩暣搴忓彿
+ this.form.serviceTaskScheduleVO.detailList.forEach((item, idx) => {
+ item.seq = idx + 1;
+ });
+ },
+ handleTemplateSelect(index, row) {
+ // 浠� templateOptions 涓煡鎵鹃�変腑椤�
+ const selected = this.templateOptions.find(
+ (item) => item.id === row.templateid
+ );
+ if (selected) {
+ row.templatename = selected.templateName;
+ row.libtemplateid = selected.libtemplateid || selected.id; // 鍋囪鏈� libtemplateid
+ } else {
+ row.templatename = "";
+ row.libtemplateid = null;
+ }
+ },
+ remoteTemplate(query) {
+ if (query !== "") {
+ this.templateLoading = true;
+ getFollowuplist({ templateName: query, pageNum: 1, pageSize: 20 })
+ .then((res) => {
+ this.templateOptions = res.rows;
+ this.templateLoading = false;
+ })
+ .catch(() => {
+ this.templateLoading = false;
+ });
+ } else {
+ this.templateOptions = [];
+ }
+ },
+
+ // ---------- 鍒楄〃涓庢悳绱� ----------
+ handleQuerymb() {
+ getFollowuplist(this.topqueryParams).then((response) => {
+ this.userList = response.rows;
+ this.total = response.total;
+ });
+ },
+ resetQuerymb() {
+ this.topqueryParams = { pageNum: 1, pageSize: 10 };
+ this.handleQuerymb();
+ },
+ getList() {
+ // 鍗犱綅
+ },
+
+ // ---------- 妯℃澘鐩稿叧 ----------
+ selectfn(row, type) {
+ if (type == 1) {
+ this.libName = row.templateName;
+ this.libId = row.id;
+ this.questionList = row.ivrLibaTemplateScriptVOList;
+ getvFollowup({ id: row.id }).then((res) => {
+ if (res.code == 200) {
+ this.objyl = res.data;
+ this.queryParamsdept.type = 2;
+ this.queryParamsdept.tempid = row.id;
+ this.tempDetpRelevanceslist = [];
+ this.tempbelongWards = [];
+ this.objyl.suitway = this.objyl.suitway
+ ? this.objyl.suitway.split(",")
+ : [];
+ this.questionList = res.data.ivrLibaTemplateScriptVOList;
+ this.getillness(row.id);
+ this.Variablehandling(res.data.ivrLibaTemplateScriptVOList, 1);
+ this.previewtf = true;
+ }
+ });
+ this.previewid = row.id;
+ }
+ },
+ previewfnmb() {
+ getTaskparticty(this.form.templateid).then((res) => {
+ if (res.code == 200) {
+ this.objyl = res.data;
+ if (this.objyl.suitway)
+ this.objyl.suitway = this.objyl.suitway.split(",");
+ this.queryParamsdept.tempid = this.form.templateid;
+ this.queryParamsdept.type = 21;
+ this.getillness(this.form.libtemplateid);
+ selectInfoByCondition({ id: this.form.templateid }).then((res) => {
+ if (res.code == 200) {
+ this.previewtf = true;
+ this.previewtftype = 1;
+ this.questionList = res.data.ivrTaskTemplateScriptVOList;
+ this.questionList.forEach((item) => {
+ item.qremark = [];
+ item.ivrLibaScriptTargetoptionList =
+ item.ivrTaskScriptTargetoptionList;
+ });
+ this.objyl.ivrLibaScriptTargetoptionList =
+ res.data.ivrTaskScriptTargetoptionList;
+ }
+ });
+ }
+ });
+ },
+ Variablehandling(arr, type) {
+ let Variablist = [];
+ if (type == 1) {
+ arr.forEach((res) => {
+ if (res.otherdata) {
+ JSON.parse(res.otherdata).forEach((item) => {
+ if (item.default != 1) {
+ Variablist.push({
+ value: item.variate,
+ fill: "",
+ name: item.variatename,
+ });
+ }
+ });
+ }
+ });
+ const Aarr = Variablist.filter(
+ (obj, index, self) =>
+ index ===
+ self.findIndex((t) => t.name === obj.name && t.value === obj.value)
+ );
+ this.variableList = this.transitionList.concat(Aarr);
+ }
+ },
variableDelete(index, row) {
this.variableList.splice(index, 1);
row.isoperation = 3;
this.delvariableList.push(row);
- console.log(index, row);
},
- // 鏃堕棿----------
- changeTime(row) {
- console.log(row, "鏃堕棿");
+
+ // ---------- 鍏宠仈閫夋嫨 ----------
+ handleDiseaseDeptChange(dept) {
+ this.diseaseDept = dept;
+ },
+ handleDiseaseWardChange(ward) {
+ this.diseaseWard = ward;
+ },
+
+ // ---------- 绉戝/鐥呭尯/鐤剧梾/鎵嬫湳 鎿嶄綔 ----------
+ listDept() {
+ this.leavehospitaldistrictcodes = [];
+ this.deptcodesWards = [];
+ this.queryParamsdept.taskId = this.form.taskid;
+
+ if (this.form.appltype == 5) {
+ // 浠诲姟缁勶細浣跨敤 rwz 鍓嶇紑鐨勪笓灞炴帴鍙�
+ rwztaskdepthospgetsonlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (item.deptType == 1) {
+ this.deptlist.push(item);
+ this.deptcodesWards.push(item.deptCode);
+ } else if (item.deptType == 2) {
+ this.hosplist.push(item);
+ this.leavehospitaldistrictcodes.push(item.deptCode);
+ }
+ });
+ }
+ });
+ rwztaskdiaggetlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (localStorage.getItem("orgname") == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+ item.icdname = item.icd10name;
+ this.diagglist.push(item);
+ } else {
+ this.diagglist.push(item);
+ }
+ this.illnesscodes.push(item.icd10code);
+ });
+ }
+ });
+ } else {
+ // 鏅�氱被鍨�
+ taskdepthospgetsonlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (item.deptType == 1) {
+ this.deptlist.push(item);
+ this.deptcodesWards.push(item.deptCode);
+ } else if (item.deptType == 2) {
+ this.hosplist.push(item);
+ this.leavehospitaldistrictcodes.push(item.deptCode);
+ }
+ });
+ }
+ });
+ taskdiaggetlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ if (localStorage.getItem("orgname") == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+ item.icdname = item.icd10name;
+ this.diagglist.push(item);
+ } else {
+ getillnesslist({ icdname: item.icd10name }).then((res) => {
+ item.icdname = res.rows[0].icdname;
+ this.diagglist.push(item);
+ });
+ }
+ this.illnesscodes.push(item.icd10code);
+ });
+ }
+ });
+ }
+ taskopergetlist(this.queryParamsdept).then((res) => {
+ if (res.code == 200) {
+ let arr = res.rows;
+ arr.forEach((item) => {
+ this.operlist.push(item);
+ this.operationcodes.push(item.opcode);
+ });
+ }
+ });
+ },
+ removetag(row) {
+ let result = this.deptlist
+ .filter((item) => item.deptCode == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskdepthospgetsondel(result).then((res) => {
+ if (res.code) this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ });
+ }
+ },
+ removehpsp(row) {
+ let result = this.hosplist
+ .filter((item) => item.deptCode == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskdepthospgetsondel(result).then((res) => {
+ if (res.code) this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ });
+ }
+ },
+ removeopera(row) {
+ let result = this.operlist
+ .filter((item) => item.opcode == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskoperhospgetsondel(result).then((res) => {
+ if (res.code) this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ });
+ }
+ },
+ removediagg(row) {
+ // 浠诲姟缁勶細鏈湴鍒犻櫎鍗冲彲锛屽悗绔繚瀛樻椂缁熶竴鏇存柊
+ if (this.form.appltype == 5) {
+ this.diagglist = this.diagglist.filter((item) => item.icd10code != row);
+ return;
+ }
+ // 鏅�氱柧鐥呭叧鑱旓細璋冨悗绔帴鍙i�愭潯鍒犻櫎
+ let result = this.diagglist
+ .filter((item) => item.icd10code == row)
+ .map((item) => item.id);
+ if (result.length) {
+ taskdiaghospgetsondel(result).then((res) => {
+ if (res.code) {
+ this.diagglist = this.diagglist.filter(
+ (item) => item.icd10code != row
+ );
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
+ remoteopcode(name) {
+ // 鍗犱綅
+ },
+ remoteSearchMedical(query) {
+ if (!query) { this.medicalOptions = []; return; }
+ listMedication({ itemName: query, pageNum: 1, pageSize: 20 }).then((res) => {
+ this.medicalOptions = res.rows || [];
+ });
+ },
+ removeMedical(code) {
+ this.medicalCodes = this.medicalCodes.filter((c) => c !== code);
+ },
+
+ // ---------- 鎮h�呴�夋嫨 ----------
+ handleAddpatient(row) {
+ this.allpids = [];
+ this.overallCase.forEach((item) => {
+ this.allpids.push(item.patid);
+ });
+ if (this.patientqueryParams.allhosp == 1) {
+ this.tableLabelhz = [
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
+ { label: "鎬у埆", width: "", prop: "sex" },
+ { label: "骞撮緞", width: "", prop: "age" },
+ { label: "鐢佃瘽", width: "180", prop: "telcode" },
+ { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+ { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+ { label: "鍖荤敓", width: "", prop: "drname" },
+ { label: "绉戝", width: "180", prop: "dept" },
+ { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+ ];
+ } else if (this.patientqueryParams.allhosp == 4) {
+ this.tableLabelhz = [
+ { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
+ { label: "鎬у埆", width: "", prop: "sex" },
+ { label: "骞撮緞", width: "", prop: "age" },
+ { label: "鐢佃瘽", width: "180", prop: "telcode" },
+ { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+ { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+ { label: "鍖荤敓", width: "", prop: "drname" },
+ { label: "绉戝", width: "180", prop: "dept" },
+ { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+ ];
+ } else if (this.patientqueryParams.allhosp == 2) {
+ this.tableLabelhz = [
+ { label: "灏辫瘖鏃ユ湡", width: "150", prop: "admitdate" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
+ { label: "鎬у埆", width: "", prop: "sex" },
+ { label: "骞撮緞", width: "", prop: "age" },
+ { label: "鐢佃瘽", width: "180", prop: "telcode" },
+ { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+ { label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
+ { label: "鍖荤敓", width: "", prop: "drname" },
+ { label: "绉戝", width: "180", prop: "dept" },
+ { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+ ];
+ }
+ if (this.allpids[0]) {
+ this.patientqueryParams.pids = this.allpids;
+ } else {
+ this.patientqueryParams.pids = null;
+ }
+ if (this.patientqueryParams.allhosp == 1) {
+ this.patientqueryParams.cry = 1;
+ }
+ if (this.patientqueryParams.searchscope == 1) {
+ this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.patientqueryParams.leavehospitaldistrictcodes = [];
+ } else if (this.patientqueryParams.searchscope == 2) {
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ this.patientqueryParams.leaveldeptcodes = [];
+ } else {
+ this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+ (obj) => obj.deptCode
+ );
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.belongWards.map((obj) => obj.districtCode);
+ }
+ getTaskpatientQC(this.patientqueryParams).then((response) => {
+ this.patientuserList = response.rows;
+ this.patientuserList.forEach((item) => {
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+ });
+ this.patienttotal = response.total;
+ this.Restorecheck();
+ });
+ this.dialogVisiblepatient = true;
+ },
+ handleSelectionChange(selection) {
+ this.SelectPatientslist = structuredClone(selection);
+ this.multiple = !selection.length;
+ this.SelectPatientslist.forEach((item) => {
+ const isExist = this.overallCase.find((obj) => obj.name == item.name);
+ if (!isExist) {
+ item.isoperation = 1;
+ item.patid = item.id;
+ item.hospType = this.patientqueryParams.allhosp;
+ item.sfzh = item.idcardno;
+ item.deptCode = item.deptcode;
+ item.deptName = item.dept;
+ item.admindate = item.inhosptime;
+ if (this.patientqueryParams.allhosp == 6) item.patfrom = 1;
+ if (this.patientqueryParams.allhosp == 1)
+ item.visittime = item.endtime;
+ else if (this.patientqueryParams.allhosp == 4)
+ item.visittime = item.starttime;
+ else if (this.patientqueryParams.allhosp == 2)
+ item.visittime = item.admitdate;
+ this.overallCase.push(item);
+ this.form.patTaskRelevances.push(item);
+ }
+ });
+ },
+ Restorecheck() {
+ const allid = this.overallCase.map((item) => item.patid);
+ const overlap = this.patientuserList.filter((value) =>
+ allid.includes(value.patid)
+ );
+ this.SelectPatientslist = overlap;
+ this.toggleSelection(overlap);
+ },
+ toggleSelection(rows) {
+ if (rows) {
+ this.$nextTick(() => {
+ rows.forEach((row) => {
+ this.$refs.multipleTable.toggleRowSelection(row, true);
+ });
+ });
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ },
+ detailhz(row, info) {
+ this.$modal
+ .confirm('鏄惁纭鍒犻櫎鎮h��"' + row.name + '"鐨勬湇鍔¢」锛�')
+ .then(() => {
+ let indexa = this.overallCase.indexOf(row);
+ let indexb = this.form.patTaskRelevances.indexOf(row);
+ this.overallCase.splice(indexa, 1);
+ if (!this.form.taskid) {
+ this.form.patTaskRelevances.splice(indexa, 1);
+ } else {
+ this.form.patTaskRelevances[indexb].isoperation = 3;
+ }
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ });
+ },
+ handleQuery() {
+ if (this.patientqueryParams.topica == 0) {
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.leavehospitaldistrictcodes;
+ this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
+ } else if (this.patientqueryParams.topica == 1) {
+ this.patientqueryParams.leavehospitaldistrictcodes = null;
+ this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
+ } else if (this.patientqueryParams.topica == 2) {
+ this.patientqueryParams.leavehospitaldistrictcodes =
+ store.getters.leavehospitaldistrictcodes;
+ this.patientqueryParams.leaveldeptcodes = null;
+ }
+ if (
+ !this.patientqueryParams.leavehospitaldistrictcodes ||
+ !this.patientqueryParams.leavehospitaldistrictcodes[0]
+ )
+ this.patientqueryParams.leavehospitaldistrictcodes = null;
+ if (
+ !this.patientqueryParams.leaveldeptcodes ||
+ !this.patientqueryParams.leaveldeptcodes[0]
+ )
+ this.patientqueryParams.leaveldeptcodes = null;
+ this.handleAddpatient();
+ },
+ resetQuery() {
+ this.patientqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ topica: 1,
+ leaveldeptcodes: [],
+ leavehospitaldistrictcodes: [],
+ };
+ this.handleQuery();
+ },
+ handleClosehz() {
+ this.dialogVisiblepatient = false;
+ },
+ AddDispatchpatients() {
+ this.dialogVisiblepatient = false;
+ },
+ handleUpdate() {},
+ handleDelete() {},
+ handleExport() {},
+
+ // ---------- 姝ラ瀵艰埅 ----------
+ nextstep() {
+ this.$refs["form"].validate((valid) => {
+ if (valid) {
+ if (this.Editprogress <= 3) this.Editprogress++;
+ } else {
+ this.$modal.msgError("琛ㄥ崟鍐呭鏈畬鍠勶紝璇锋鏌�");
+ }
+ });
+ },
+ laststep() {
+ this.Editprogress--;
+ },
+ resetForm(formName) {
+ this.$refs[formName].resetFields();
+ },
+
+ // ---------- 鏈嶅姟褰㈠紡鎺掑簭 ----------
+ checkSelectionChange(selectedValues, selectedOrder) {
+ this.selectedOrder = selectedValues || [];
+ },
+
+ // ---------- 鏃堕棿澶勭悊 ----------
+ changeTime() {
this.processingTime();
},
Totaldate(row) {
- console.log(row, "鏃堕棿");
this.form.sendTimeslot = [{ begantime: row, endtime: row, xh: 1 }];
this.form.showTimeMorn = row;
- console.log(this.form.sendTimeslot, "鏃堕棿");
},
changeTimeday(row) {
- console.log(row, "鏃ユ湡");
const startDate = new Date(row[0]);
const endDate = new Date(row[1]);
this.applydaytime = this.getDates(startDate, endDate);
- if (!top) {
- this.processingTime();
- }
+ this.processingTime();
},
getDates(startDate, endDate) {
const dates = [];
let currentDate = new Date(startDate);
-
while (currentDate <= endDate) {
dates.push(this.$moment(currentDate).format("YYYY-MM-DD"));
currentDate.setDate(currentDate.getDate() + 1);
}
-
return dates;
},
- // 鏃堕棿鏈�缁堝鐞嗘柟娉�
processingTime() {
const combinedData = [];
let serialnumber = 1;
- if (this.time3[0]) {
- serialnumber = 3;
- } else if (this.time2[0]) {
- serialnumber = 2;
- } else if (this.time1[0]) {
- serialnumber = 1;
- } else {
- return;
- }
+ if (this.time3 && this.time3[0]) serialnumber = 3;
+ else if (this.time2 && this.time2[0]) serialnumber = 2;
+ else if (this.time1 && this.time1[0]) serialnumber = 1;
+ else return;
for (let i = 0; i < this.applydaytime.length; i++) {
combinedData.push({
@@ -1147,91 +2477,365 @@
}
}
this.form.sendTimeslot = combinedData;
- // 灞曠ず鏁版嵁涓存椂瀛樺偍鏃ユ湡銆佹棭銆佷腑銆佹櫄
- console.log(this.daytime);
-
this.form.showDate = this.daytime.join(",");
if (this.time1) this.form.showTimeMorn = this.time1.join(",");
if (this.time2) this.form.showTimeNoon = this.time2.join(",");
if (this.time3) this.form.showTimeNight = this.time3.join(",");
- console.log(combinedData, "combinedData");
},
- // 鏌ョ湅妯$増
- previewGo() {
- this.$router.push({
- path: "/knowledge/tpuconfigurat/",
- query: { id: this.previewid, task: true, data: this.form },
- });
- },
+
+ // ---------- 妯℃澘淇濆瓨涓庢浛鎹� ----------
previewFn() {
- let id = this.Tasktemplate.id;
- this.Tasktemplate.id = null;
- this.Tasktemplate.ivrLibaTemplateScriptVOList.forEach((item) => {
+ if (Array.isArray(this.objyl.suitway)) {
+ this.objyl.suitway = this.objyl.suitway.join(",");
+ }
+ this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => {
item.ivrTaskScriptTargetoptionList = item.ivrLibaScriptTargetoptionList;
});
- console.log(this.Tasktemplate.ivrLibaTemplateScriptVOList);
-
- this.Tasktemplate.ivrTaskTemplateScriptVOList =
- this.Tasktemplate.ivrLibaTemplateScriptVOList;
- this.Tasktemplate.ivrLibaTemplateTagList = null;
- this.Tasktemplate.tempDetpRelevances = null;
- this.Tasktemplate.libtemplateid = id;
- this.Tasktemplate.isoperation = 1;
- this.Tasktemplate.libtemplatename = this.Tasktemplate.templatename;
- console.log(this.libName, this.libId);
-
- TaskTemplatecomit(this.Tasktemplate).then((response) => {
- console.log(response);
- this.previewtf = false;
- this.form.templateid = response.data;
- this.form.libtemplateid = this.libId;
- this.form.templatename = this.libName;
- console.log(this.form.templatename, "ss");
- this.$modal.msgSuccess("閫夋嫨妯$増鎴愬姛", this.form.templatename);
+ this.objyl.ivrTaskTemplateScriptVOList =
+ this.objyl.ivrLibaTemplateScriptVOList;
+ this.objyl.isoperation = 1;
+ if (this.form.id) {
+ this.objyl.taskid = this.form.id;
+ }
+ if (this.form.templateid) {
+ deleteTaskparticty(this.form.templateid).then((res) => {
+ if (res.code == 200) {
+ Taskparticty(this.objyl).then((response) => {
+ this.previewtf = false;
+ this.form.libtemplateid = this.objyl.id;
+ this.form.libtemplatename = this.objyl.templateName;
+ this.form.templateid = response.data;
+ this.putbelongDepts(response.data);
+ this.form.templatename = this.objyl.templateName;
+ this.$modal.msgSuccess("鏇挎崲妯℃澘鎴愬姛");
+ this.drawermb = false;
+ this.previewtf = false;
+ if (this.skip) {
+ this.$router.push({
+ path: "/knowledge/taskub/",
+ query: { id: response.data },
+ });
+ }
+ });
+ }
+ });
+ } else {
+ Taskparticty(this.objyl).then((response) => {
+ this.previewtf = false;
+ this.form.libtemplateid = this.objyl.id;
+ this.form.libtemplatename = this.objyl.templateName;
+ this.form.templateid = response.data;
+ this.putbelongDepts(response.data);
+ this.form.templatename = this.objyl.templateName;
+ this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
+ this.drawermb = false;
+ this.previewtf = false;
+ if (this.skip) {
+ this.$router.push({
+ path: "/knowledge/taskub/",
+ query: { id: response.data },
+ });
+ }
+ });
+ }
+ },
+ putbelongDepts(id) {
+ this.tempDetpRelevanceslistform.forEach((item) => {
+ item.tempid = id;
+ });
+ this.tempbelongWardsform.forEach((item) => {
+ item.tempid = id;
+ });
+ depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("绉戝鏇存柊鎴愬姛");
+ this.tempDetpRelevanceslistform = [];
+ }
+ });
+ depthospgetson(this.tempbelongWardsform).then((res) => {
+ if (res.code == 200) {
+ this.$modal.msgSuccess("鐥呭尯鏇存柊鎴愬姛");
+ this.tempbelongWardsform = [];
+ }
});
},
- // 澶勭悊鏈嶅姟褰㈠紡
- formatFn(type) {
- console.log(this.preachform, "preachform");
- console.log(this.checkList, "checklist");
- let list = [];
- let formlist = [];
- if (type == 1) {
- this.preachform.forEach((item) => {
- this.checkList.forEach((obj) => {
- if (item.label == obj) {
- list.push(item.value);
+ Departmenttreatment() {
+ if (!this.form.taskid) {
+ this.templateor = true;
+ MessageBox.confirm(
+ "褰撳墠涓烘柊澧炰换鍔℃湭淇濆瓨涓嶅彲鍏宠仈妯℃澘锛屾槸鍚﹀厛鏆傚瓨妯℃澘淇濆瓨浠诲姟鍚庣敓鏁堬紵",
+ "鍔熻兘鎻愮ず",
+ {
+ confirmButtonText: "鏆傚瓨妯℃澘",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }
+ )
+ .then(() => {
+ if (Array.isArray(this.objyl.suitway)) {
+ this.objyl.suitway = this.objyl.suitway.join(",");
}
+ this.objyl.libtemplateid = this.objyl.id;
+ this.form.libtemplateid = this.objyl.id;
+ this.objyl.isoperation = 1;
+ this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => {
+ item.ivrTaskScriptTargetoptionList =
+ item.ivrLibaScriptTargetoptionList;
+ });
+ this.objyl.ivrTaskTemplateScriptVOList =
+ this.objyl.ivrLibaTemplateScriptVOList;
+ this.form.ivrTaskTemplateVO = this.objyl;
+ this.form.templatename = this.objyl.templateName;
+ this.$modal.msgSuccess("鏆傚瓨鎴愬姛淇濆瓨浠诲姟鍚庢ā鏉垮け鏁�");
+ this.drawermb = false;
+ this.previewtf = false;
+ })
+ .catch(() => {
+ this.drawermb = false;
+ this.previewtf = false;
});
- });
- this.form.preachform = list.join(",");
} else {
- console.log(this.form.preachform, "this.form.preachform");
- formlist = this.form.preachform.split(",");
- console.log(11);
- this.preachform.forEach((item) => {
- formlist.forEach((obj) => {
- if (item.value == obj) {
- list.push(item.label);
- }
+ setTimeout(() => {
+ this.previewFn();
+ }, 1000);
+ }
+ },
+ Modifytemplate() {
+ if (this.form.templateid && this.previewtftype) {
+ this.$modal.confirm("鏄惁鍓嶅線淇敼浠诲姟妯℃澘璇︾粏鍐呭锛�").then(() => {
+ this.drawermb = false;
+ this.previewtf = false;
+ this.$router.push({
+ path: "/knowledge/taskub/",
+ query: { id: this.form.templateid },
});
});
- this.checkList = list;
+ } else {
+ this.$modal
+ .confirm("褰撳墠涓哄熀纭�棰勮鏄惁鍒涘缓浠诲姟妯℃澘骞跺墠寰�淇敼璇︽儏锛�")
+ .then(() => {
+ this.Departmenttreatment();
+ this.skip = true;
+ });
+ }
+ },
+
+ // ---------- 鎻愪氦琛ㄥ崟 ----------
+ submitForm(type) {
+ if (this.submitLoading) return;
+ this.submitLoading = true;
+
+ try {
+ if (this.templateor && type) {
+ this.templateor = false;
+ }
+ if (this.time4 && this.form.sendType == 3) {
+ this.form.showTimeMorn = this.time4;
+ }
+ this.form.sendTimeslot = [
+ {
+ begantime: this.time4,
+ endtime: "",
+ xh: 1,
+ },
+ ];
+
+ if (this.form.appltype == 1) {
+ this.leavehospitaldistrictcodes = [];
+ this.operationcodes = [];
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 2) {
+ this.deptcodesWards = [];
+ this.operationcodes = [];
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 3) {
+ this.deptcodesWards = [];
+ this.leavehospitaldistrictcodes = [];
+ this.operationcodes = [];
+ } else if (this.form.appltype == 4) {
+ this.deptcodesWards = [];
+ this.illnesscodes = [];
+ this.leavehospitaldistrictcodes = [];
+ } else if (this.form.appltype == 6) {
+ this.deptcodesWards = [];
+ this.leavehospitaldistrictcodes = [];
+ this.illnesscodes = [];
+ this.operationcodes = [];
+ }
+
+ // 鏈嶅姟褰㈠紡鏍¢獙
+ if (this.checkList) {
+ this.form.preachform = this.checkList.join(",") || [];
+ this.form.preachformList = this.selectedOrder || [];
+ } else {
+ this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+ this.submitLoading = false;
+ return;
+ }
+
+ // 浠诲姟鍏宠仈鏉′欢鏍¢獙锛堜换鍔$粍鍏佽鏃犲叧鑱旀潯浠讹級
+ const hasCondition =
+ this.deptcodesWards[0] ||
+ this.leavehospitaldistrictcodes[0] ||
+ this.diagglist[0] ||
+ this.operationcodes[0] ||
+ this.medicalCodes[0] ||
+ this.form.longTask == 2 ||
+ this.serviceType == 3 ||
+ this.form.appltype == 5; // 浠诲姟缁勮烦杩囧己鍒跺叧鑱�
+
+ if (!hasCondition) {
+ this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
+ this.submitLoading = false;
+ return;
+ }
+
+ // 浠诲姟缁勯�氳繃鏄庣粏鍒楄〃鍚勮嚜閫夋嫨妯℃澘锛屼富妯℃澘鍙负绌�
+ if (
+ !this.form.templatename &&
+ !this.templateor &&
+ this.form.appltype != 5
+ ) {
+ this.$modal.msgError("鏈�夋嫨妯℃澘");
+ this.submitLoading = false;
+ return;
+ }
+
+ const isValidTime =
+ (this.form.sendType == 1 && this.time1) ||
+ this.form.sendType == 2 ||
+ (this.form.sendType == 3 && this.time4) ||
+ this.form.longTask;
+ if (!isValidTime) {
+ this.submitLoading = false;
+ this.$modal.msgError("鏃堕棿淇℃伅缂哄け");
+ return;
+ }
+
+ // 澶勭悊鍙橀噺
+ const filteredArray = this.variableList.filter(
+ (item) =>
+ item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
+ );
+ this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
+
+ // 澶勭悊浠诲姟缁勬槑缁嗙殑 content
+ if (this.form.appltype == 5 && this.form.serviceTaskScheduleVO) {
+ this.form.serviceTaskScheduleVO.detailList.forEach((item) => {
+ // 缁勮 content
+ const contentObj = {
+ kcb: item.kcb || "",
+ jsy: item.jsy || "",
+ text_param: item.textParam || {},
+ };
+ item.content = JSON.stringify(contentObj);
+ // 鍒犻櫎涓存椂瀛楁锛岄伩鍏嶆彁浜ゅ浣欏瓧娈�
+ delete item.kcb;
+ delete item.jsy;
+ delete item.textParam;
+ });
+ // 灏嗕富瀵硅薄鏀惧叆 form 鎻愪氦
+ }
+ if (this.form.appltype == 5) {
+ console.log(this.form,'杩涘叆浠诲姟缁勯厤缃�');
+
+ this.form.serviceTaskScheduleVO.icd10codes = this.form.icd10code;
+ this.form.serviceTaskScheduleVO.wardCodes =
+ this.form.leavehospitaldistrictcode;
+ this.form.serviceTaskScheduleVO.deptCodes = this.form.deptcode;
+ }
+ if (this.form.taskid) {
+ this.form.isoperation = 2;
+ } else {
+ this.form.isoperation = 1;
+ }
+ if (!this.form.type) {
+ this.form.type = this.$route.query.type;
+ }
+
+ if (this.form.appltype == 1 || this.form.appltype == 2) {
+ this.form.deptcode = this.deptcodesWards.join(",");
+ this.form.leavehospitaldistrictcode =
+ this.leavehospitaldistrictcodes.join(",");
+ } else {
+ if (this.diseaseDept) {
+ this.form.deptcode = this.diseaseDept.deptCode;
+ this.form.deptname = this.diseaseDept.deptName;
+ }
+ if (this.diseaseWard) {
+ this.form.leavehospitaldistrictcode = this.diseaseWard.districtCode;
+ this.form.leavehospitaldistrictname = this.diseaseWard.districtName;
+ }
+ }
+ // 鑽搧鍏宠仈锛氱粍瑁呴�楀彿鍒嗛殧鐨勭紪鐮�/鍚嶇О/鍘傚
+ if (this.form.appltype == 6) {
+ const selectedMeds = this.medicalOptions.filter((m) =>
+ this.medicalCodes.includes(m.itemCode)
+ );
+ this.form.medicalCode = this.medicalCodes.join(",");
+ this.form.medicalName = selectedMeds.map((m) => m.itemName).join(",");
+ this.form.medicalCompany = selectedMeds.map((m) => m.manufacturerName).join(",");
+ }
+
+ this.form.serviceType = this.serviceType;
+
+ this.form.opcode = this.operationcodes.join(",");
+ this.form.icd10code = this.diagglist
+ .map((item) => item.icdcode)
+ .join(",");
+ this.form.icd10name = this.diagglist
+ .map((item) => item.icdname)
+ .join(",");
+ // 鐤剧梾/鎵嬫湳鍏宠仈鐨勭瀹�/鐥呭尯鏍¢獙
+ if (this.form.appltype == 3 || this.form.appltype == 4) {
+ const hasDept = this.diseaseDept?.deptCode;
+ const hasWard = this.diseaseWard?.districtCode;
+ if (!hasDept && !hasWard) {
+ this.$modal.msgError("褰撳墠鐤剧梾闇�鍏宠仈绉戝鎴栫梾鍖�");
+ this.submitLoading = false;
+ return;
+ }
+ this.form.deptcode = hasDept;
+ this.form.leavehospitaldistrictcode = hasWard;
+ }
+ Editsingletask(this.form)
+ .then((res) => {
+ if (res.code == 200) {
+ if (this.form.taskid) {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ } else {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ }
+ this.submitLoading = false;
+ this.$router.push({
+ path: "/followvisit/tasklist",
+ query: { tasktopic: this.form.serviceType },
+ });
+ } else {
+ this.$modal.msgError(res.msg || "鎿嶄綔澶辫触");
+ this.submitLoading = false;
+ }
+ })
+ .catch((error) => {
+ console.error("鎻愪氦澶辫触:", error);
+ this.$modal.msgError(error.message || "缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯");
+ this.submitLoading = false;
+ });
+ } catch (error) {
+ console.error("琛ㄥ崟鎻愪氦寮傚父:", error);
+ this.$modal.msgError(error.message || "琛ㄥ崟鎻愪氦寮傚父");
+ this.submitLoading = false;
}
},
},
};
</script>
-
<style lang="scss" scoped>
-.Questionnairemanagement {
-}
.leftvlue-jbxx {
margin-top: 10px;
}
.sidecolumn {
width: 100%;
- // min-height: 12vh;
margin: 20px;
margin-bottom: 0;
padding: 30px;
@@ -1241,26 +2845,24 @@
0 0 6px 0 rgba(0, 0, 0, 0.04);
}
.leftvlue {
- // display: flex;
- // flex: 1;
width: 100%;
margin-top: 20px;
- // margin: 20px;
padding: 30px;
background: #ffff;
border: 1px solid #dcdfe6;
-webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
0 0 6px 0 rgba(0, 0, 0, 0.04);
}
+
.examine-jic {
margin: 20px;
.headline {
font-size: 24px;
+ height: 40px;
border-left: 5px solid #41a1be;
padding-left: 5px;
margin-bottom: 10px;
display: flex;
- justify-content: space-between;
.Add-details {
font-size: 18px;
color: #02a7f0;
@@ -1295,31 +2897,19 @@
}
}
}
-// .leftvlue-jbxx {
-// margin-bottom: 50px;
-// font-size: 20px;
-// span {
-// position: absolute;
-// right: 80px;
-// }
-// .demo-cascader {
-// margin-right: 20px;
-// }
-// .PreviewTemplate {
-// color: #02a7f0;
-// cursor: pointer;
-// font-size: 20px;
-// margin: 0 20px;
-// }
-// }
+
+.xinz-infs {
+ font-size: 18px;
+ line-height: 48px;
+ .el-tag + .el-tag {
+ margin-left: 10px;
+ }
+}
+
.preview-left {
margin: 20px;
- // margin: 20px;
padding: 30px;
background: #ffff;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
.scriptTopic-dev {
margin-bottom: 25px;
font-size: 20px !important;
@@ -1328,6 +2918,7 @@
}
}
}
+
.jic-value {
font-size: 20px;
border-top: 1px solid #a7abac;
@@ -1355,6 +2946,7 @@
}
}
}
+
::v-deep .addtopic-input {
input {
background: #02a7f0;
@@ -1368,9 +2960,6 @@
::v-deep.el-row {
margin-bottom: 10px;
}
-// ::v-deep.el-input--medium {
-// font-size: 24px !important;
-// }
::v-deep.ruleFormaa.el-select {
display: inline-block;
position: relative;
@@ -1384,12 +2973,9 @@
width: 22px;
height: 22px;
}
-// ::v-deep.scriptTopic-dev.el-radio__label {
-// font-size: 24px;
-// }
::v-deep.el-radio-group {
span {
- font-size: 24px;
+ font-size: 18px;
}
}
::v-deep.el-input.is-disabled .el-input__inner {
@@ -1400,7 +2986,7 @@
}
::v-deep.el-checkbox-group {
span {
- font-size: 24px;
+ font-size: 18px;
}
}
</style>
--
Gitblit v1.9.3