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/QuestionnaireTask.vue | 2903 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 2,234 insertions(+), 669 deletions(-)
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index 316ce12..763a462 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.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,90 @@
<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 :label="2">鍥哄畾浠诲姟</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 +126,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 +145,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 +167,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 +182,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,26 +198,637 @@
</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"
+
+ <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="6" v-if="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+ >鑽搧鍏宠仈</el-radio
>
- {{ item.label }}</el-checkbox
- >
- </el-checkbox-group>
+ <el-radio label="5">浠诲姟缁�</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"
+ :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"
+ :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"
+ @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.svyid"
+ :label="item.svyname"
+ :value="item.svyid"
+ >
+ <span style="float: left">{{
+ item.svyname
+ }}</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
@@ -197,11 +850,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"
@@ -216,14 +864,19 @@
</div>
</div>
</div>
- <el-button type="success" @click="nextstep('ruleForm')">{{
- quote ? "绔嬪嵆鍒涘缓" : "浠诲姟璇︽儏閰嶇疆"
+ <el-button type="primary" @click="nextstep('ruleForm')">{{
+ quote ? "绔嬪嵆鍒涘缓" : "娲惧彂鎮h�呴厤缃�"
}}</el-button>
- <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+ <el-button
+ :loading="submitLoading"
+ type="success"
+ @click="submitForm('ruleForm')"
+ >{{ quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆" }}</el-button
+ >
</div>
<!-- 浠诲姟璇︽儏 -->
<div v-if="Editprogress == 2">
- <el-alert title="鍦ㄦ湰闃舵閫夋嫨瀹f暀鐥呬汉" type="success" effect="dark">
+ <el-alert title="鍦ㄦ湰闃舵閫夋嫨闅忚鐥呬汉" type="success" effect="dark">
</el-alert>
<div class="leftvlue-jbxx">
<div class="examine-jic">
@@ -248,6 +901,7 @@
</el-option>
</el-select>
</el-col>
+
<el-col :span="1.5">
<el-button
type="primary"
@@ -255,43 +909,21 @@
icon="el-icon-plus"
size="medium"
:disabled="!patientqueryParams.allhosp"
- @click="handleAddpatient"
+ @click="handleQuery"
>鏂板</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"
:controlxz="false"
:typeinfo="2"
- />
- <pagination
- v-show="total > 0"
- :total="total"
- :page.sync="topqueryParams.pageNum"
- :limit.sync="topqueryParams.pageSize"
- @pagination="getList"
/>
</el-row>
</div>
@@ -299,10 +931,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('ruleForm')"
+ >{{ quote ? "绔嬪嵆鍒涘缓" : "纭鏈嶅姟閰嶇疆" }}</el-button
+ >
</div>
</div>
<!-- 娣诲姞鎮h�� -->
@@ -316,7 +950,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
<el-form
:model="patientqueryParams"
ref="queryForm"
@@ -325,12 +958,36 @@
v-show="showSearch"
label-width="98px"
>
- <el-form-item label="鎮h�呭悕绉帮細">
+ <el-form-item label="鎮h�咃細">
<el-input
v-model="patientqueryParams.name"
@keyup.enter.native="handleQuery"
></el-input>
</el-form-item>
+ <el-form-item label="鎮h�呰瘖鏂細">
+ <el-input
+ v-model="patientqueryParams.leavediagname"
+ @keyup.enter.native="handleQuery"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="涓绘不鍖荤敓锛�">
+ <el-input
+ v-model="patientqueryParams.drname"
+ @keyup.enter.native="handleQuery"
+ ></el-input>
+ </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
@@ -348,20 +1005,19 @@
>
</el-form-item>
</el-form>
- <!-- 閫夋嫨鎮h�呭垪琛� -->
<SFtable
ref="multipleTable"
- @handleUpdate="handleUpdate"
@handleSelectionChange="handleSelectionChange"
:currentList="patientuserList"
:tableLabel="tableLabelhz"
+ :heights="600"
:serialnumber="false"
:center="false"
:typeinfo="3"
/>
</el-row>
<pagination
- v-show="patienttotal > 0"
+ v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6"
:total="patienttotal"
:page.sync="patientqueryParams.pageNum"
:limit.sync="patientqueryParams.pageSize"
@@ -376,69 +1032,175 @@
>
</span>
</el-dialog>
- <el-dialog title="妯$増棰勮" :visible.sync="previewtf" width="60%">
- <div class="preview-left">
- <!-- 鍗曢�� -->
- <div
- class="scriptTopic-dev"
- v-for="item in questionList"
- :key="item.sort"
- v-if="item.scriptType == 1"
- >
- <div class="dev-text">
- {{ item.sort }}銆乕鍗曢�塢<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="categoryid">
+ <el-select
+ v-model="objyl.categoryid"
+ size="medium"
+ filterable
+ placeholder="璇烽�夋嫨鍒嗙被"
+ >
+ <el-option-group
+ v-for="group in optionsclass"
+ :key="group.id"
+ :label="group.name"
+ >
+ <el-option
+ v-for="item in group.svyLibTemplateCategoryList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
+ </el-option>
+ </el-option-group>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="10">
+ <el-form-item label="璇勪环绫诲瀷" prop="scoreType">
+ <el-select
+ v-model="objyl.scoreType"
+ placeholder="璇烽�夋嫨鍒嗙被"
+ >
+ <el-option
+ v-for="group in appraiselist"
+ :key="group.value"
+ :label="group.label"
+ :value="group.value"
+ >
+ </el-option>
+ </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="svyname">
+ <div style="width: 400px">
+ <el-input v-model="objyl.svyname"></el-input>
+ </div>
+ </el-form-item>
+
+ <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">
- <el-radio-group v-model="item.remark">
- <el-radio
- v-for="(items, index) in item.svyLibTemplateTargetoptions"
- :key="index"
- :label="index"
- >{{ items.optioncontent }}</el-radio
+ </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"
>
- </el-radio-group>
- </div>
- </div>
- <!-- 澶氶�� -->
- <div
- class="scriptTopic-dev"
- v-for="item in questionList"
- 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="multiplechoice">
- <el-checkbox
- v-for="items in item.svyLibTemplateTargetoptions"
- :key="items.optioncontent"
- :label="items.optioncontent"
+ <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.svyLibTemplateTargetoptions"
+ :key="index"
+ :label="index"
+ >{{ items.optioncontent }}</el-radio
+ >
+ </el-radio-group>
+ </div>
+ </div>
+ <!-- 澶氶�� -->
+ <div
+ class="scriptTopic-dev"
+ :key="item.sort"
+ v-if="item.scriptType == 2"
>
- {{ items.optioncontent }}
- </el-checkbox>
- </el-checkbox-group>
+ <div class="dev-text">
+ {{ item.sort }}. [澶氶�塢<span>{{ item.scriptContent }}</span>
+ </div>
+ <div class="dev-xx">
+ <el-checkbox-group v-model="item.qremark">
+ <el-checkbox
+ v-for="(items, index) in item.svyLibTemplateTargetoptions"
+ :key="index"
+ :label="index"
+ >
+ {{ items.optioncontent }}
+ </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>
- <!-- 濉┖ -->
- <div
- class="scriptTopic-dev"
- v-for="item in questionList"
- :key="item.sort"
- v-if="item.scriptType == 3"
- >
- <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>
+ </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 @click="previewGo">淇濆瓨妯℃澘璇︽儏淇敼</el-button>
+ <el-button type="primary" @click="Departmenttreatment"
+ >淇濆瓨浣跨敤</el-button
+ >
</span>
</el-dialog>
<el-drawer
@@ -451,8 +1213,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
-
<el-form
:model="topqueryParams"
ref="queryForm"
@@ -463,67 +1223,27 @@
>
<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="闂嵎涓婚">
- <el-input v-model="topqueryParams.name"></el-input>
- </el-form-item>
-
- <el-form-item label="闂嵎绫诲瀷" prop="status">
- <el-select v-model="topqueryParams.topic" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in taskoptions"
- :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.topica" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in taskoptions"
- :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.topicd" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in topicoptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
+ v-model="topqueryParams.svyname"
+ @keyup.enter.native="handleQuerymb"
+ ></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"
@@ -544,68 +1264,133 @@
</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,
- getFollowuplist,
+ getTaskpatientQC,
+ taskoperhospgetsondel,
+ taskdiaghospgetsondel,
+ getillnesslist,
+ getbaseopera,
+ Externallist,
getQtemplatelist,
+ getQtemplateobj,
+ taskgetQtemplateobj,
TaskQuestioncomit,
- Questionnairetaskget,
- gethetaskinfo,
- delhetaskinfo,
+ deleteTaskQuestioncomit,
+ Questionnairetaskgetson,
+ getTaskQuestioncomit,
+ depthospgetson,
+ getillness,
Editsingletask,
+ getQtemplateclassify,
+ taskdepthospgetsondel,
+ taskdepthospgetsonlist,
+ taskdiaggetlist,
+ rwztaskdepthospgetsonlist,
+ rwztaskdiaggetlist,
+ taskopergetlist,
} from "@/api/AiCentre/index";
-import { listDept } from "@/api/system/dept";
-
-import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import { listMedication } from "@/api/knowledge/drug";
+import OptionalForm from "@/components/OptionalForm";
+import SFtable from "@/components/SFtable";
+import SortCheckbox from "@/components/SortCheckbox";
+import { MessageBox } from "element-ui";
export default {
name: "ServiceDetails",
data() {
return {
title: "瀹f暀鍐呭鍒楄〃",
- currenttype: 1, //1瀹f暀2闂ㄨ瘖3鍑洪櫌4澶嶈瘖5浣撴6闂嵎
- id: "", //
- previewid: "", //浠诲姟妯$増浼犻�抜d
+ currenttype: 1,
+ id: "",
+ previewid: "",
libName: "",
- overallCase: [], //閫夋嫨鎮h�呮��
+ templateor: false,
+ submitLoading: false,
+ objyl: {},
+ overallCase: [],
allpids: [],
- libId: null, //妯℃澘搴撴ā鐗坕d
- 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,
+ loading: false,
+ patientloading: false,
+ previewtftype: 0,
+ dialogVisiblepatient: false,
+ dialogVisiblepatientjb: false,
+ deptcodesWards: [],
+ leavehospitaldistrictcodes: [],
+ illnesscodes: [],
radio: 1,
checkboxlist: [],
tableLabel: [],
questionList: [],
- // 鎮h�呰〃鍗�
+ donorchargeList: [],
+ baseoperaList: [
+ { value: "1", label: "涓�绾ф墜鏈�" },
+ { value: "2", label: "浜岀骇鎵嬫湳" },
+ { value: "3", label: "涓夌骇鎵嬫湳" },
+ { value: "4", label: "鍥涚骇鎵嬫湳" },
+ ],
+ 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: "搴忓彿", width: "", prop: "patid" },
- { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
{ label: "鎬у埆", width: "", prop: "sex" },
{ label: "骞撮緞", width: "", prop: "age" },
- { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
- { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "inhosptime" },
- { 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" },
],
-
+ tableLabelhzwb: [
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "鎮h�呰瘖鏂�", width: "", prop: "diagname" },
+ { label: "韬唤璇�", width: "200", prop: "sfzh" },
+ { 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: "deptName" },
+ { label: "鐥呭尯", width: "150", prop: "leavehospitaldistrictname" },
+ ],
tableLabelwj: [
- { label: "搴忓彿", width: "", prop: "svyid" },
- { label: "闂嵎鍚嶇О", width: "", prop: "svyname" },
- { label: "闂嵎姒傝堪", width: "", prop: "description" },
+ { label: "闂嵎鏍囬", width: "", prop: "svyname" },
+ { label: "闂嵎鎻忚堪", width: "", prop: "description" },
{ label: "淇敼鏃ユ湡", width: "", prop: "updateTime" },
{ label: "鍒涘缓浜�", width: "", prop: "createBy" },
],
- // 鍙橀噺
tableLabelvariable: [
{ label: "鍙橀噺鍚嶇О", width: "", prop: "variablename" },
{ label: "鍖归厤绗�", width: "", prop: "character" },
@@ -614,7 +1399,7 @@
preachform: [
{ label: "澶氬獟浣�", value: 1 },
{ label: "绾歌川", value: 2 },
- { label: "鐢佃瘽", value: 3 },
+ { label: "鏅鸿兘璇煶", value: 3 },
{ label: "鐭俊", value: 4 },
{ label: "寰俊鍏紬鍙�", value: 5 },
{ label: "寰俊灏忕▼搴�", value: 6 },
@@ -624,43 +1409,49 @@
{ label: "绾夸笅锛堢焊璐級", value: 10 },
{ label: "绾夸笂锛堢煭淇�/閽夐拤鐨勬枃鏈�侀棶鍗烽摼鎺ワ級", value: 11 },
],
- // 鏃堕棿澶勭悊
- daytime: [], //鏃ユ湡
- applydaytime: [], //璁$畻鏃ユ湡
- time1: "", //涓婂崍鏃堕棿娈�
- time2: "", //涓嬪崍鏃堕棿娈�
- time3: "", //鏅氫笂鏃堕棿娈�
- time4: "", //鏅氫笂鏃堕棿娈�
+ daytime: [],
+ applydaytime: [],
+ diseaseDept: null,
+ diseaseWard: null,
+ diseaseDepts: "",
+ diseaseWards: "",
+ time1: "",
+ time2: "",
+ time3: "",
+ time4: "",
topqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
},
- checkList: [],
+ checkList: "",
+ selectedOrder: [],
deliverytopqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
},
patientqueryParams: {
- pageNum: 1, //
+ pageNum: 1,
pageSize: 10,
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
},
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: [], //妯$増鍒楄〃
- multiplechoice: [], //澶氶�夌粨鏋�
- patientuserList: [], //閫夋嫨鎮h�呭垪琛�
- sonuserList: [], //閫変腑鎮h�呭垪琛�
- delvariableList: [], //鍒犻櫎鍙橀噺涓存椂瀛樺偍
+ userList: [],
+ multiplechoice: [],
+ patientuserList: [],
+ sonuserList: [],
+ delvariableList: [],
+ longtype: [
+ { value: 0, label: "鑷畾涔夊懆鏈�" },
+ { value: 1, label: "闀挎湡浠诲姟" },
+ ],
variableList: [
{
name: "濮撳悕",
@@ -675,12 +1466,12 @@
default: true,
},
{
- name: "鐢佃瘽",
+ name: "鏅鸿兘璇煶",
value: "${dhh}",
fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�",
default: true,
},
- ], //鍙橀噺鍒楄〃
+ ],
transitionList: [
{
name: "濮撳悕",
@@ -695,58 +1486,131 @@
default: true,
},
{
- name: "鐢佃瘽",
+ name: "鏅鸿兘璇煶",
value: "${dhh}",
fill: "娲惧彂鏃惰嚜鍔ㄥ尮閰�",
default: true,
},
],
variableListTime: [],
- tasktopic: null, //鏂板绫诲瀷
+ tasktopic: null,
SelectPatientslist: [],
+ orgname: localStorage.getItem("orgname"),
form: {
patTaskRelevances: [],
sendType: 1,
+ longTask: 0,
templatename: "",
templateid: null,
libtemplateid: null,
+ kcb:
+ "浜茬埍鐨勬偅鑰�/瀹跺睘锛屾垜浠槸" +
+ localStorage.getItem("orgname") +
+ "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�",
+ jsy: "璇锋偍娉ㄦ剰浼戞伅鍜岃惀鍏伙紝鐢熸椿涓婅鍔抽�哥粨鍚堬紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈瀹f暀鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
+ // ===== 浠诲姟缁勪富瀵硅薄 =====
+ 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: "6", label: "闄㈠鎮h��" },
+ { 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" },
+ ],
+ },
+ belongDepts: [],
+ queryParamsdept: {},
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.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.listDept();
this.Acquisitiontype();
+ this.getillnesslist();
this.Getdetails();
+ this.getQtemplateclassify();
},
-
+ activated() {
+ if (this.id != this.$route.query.id) {
+ this.Acquisitiontype();
+ this.Getdetails();
+ this.getQtemplateclassify();
+ }
+ },
+ computed: {
+ displayedTags() {
+ return this.illnesslist.slice(0, 10);
+ },
+ hasMore() {
+ return this.illnesslist.length > 10;
+ },
+ remaining() {
+ return this.illnesslist.length - 10;
+ },
+ },
methods: {
- // {
- // 濮撳悕: { "${name}": "榫欏偛澶�" },
- // 鍦板潃: { "${dzz}": "榫欏" },
- // 鐢佃瘽: { "${dhh}": "鍏釜鍏�" },
- // }
- // 鍙橀噺杞崲瀵硅薄杞暟缁�
+ // ---------- 宸ュ叿鏂规硶 ----------
convertFormat1ToFormat2(data) {
let result = [];
for (let key in data) {
@@ -759,7 +1623,6 @@
}
return result;
},
- // 鏁扮粍杞璞�
convertFormat2ToFormat1(data) {
let result = {};
data.forEach((item) => {
@@ -769,314 +1632,214 @@
});
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.tableLabelwj;
if (this.form.serviceType == 1) {
this.checkboxlist = [
- {
- value: "1",
- label: "浜哄伐",
- },
-
- {
- value: "2",
- label: "绾歌川",
- },
+ { value: "1", label: "浜哄伐" },
+ { value: "2", label: "绾歌川" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
+ { label: "寰俊灏忕▼搴�", value: "6" },
];
- } else if (this.form.serviceType == 6) {
+ } 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) {
+ } else if (
+ this.form.serviceType == 7 ||
+ this.form.serviceType == 10 ||
+ this.form.serviceType == 11 ||
+ this.form.serviceType == 8 ||
+ this.form.serviceType == 12 ||
+ this.form.serviceType == 13 ||
+ this.form.serviceType == 9
+ ) {
this.checkboxlist = [
- {
- value: "1",
- label: "浜哄伐",
- },
- {
- value: "2",
- label: "绾歌川",
- },
- {
- value: "3",
- label: "鐢佃瘽",
- },
- {
- value: "4",
- label: "鐭俊",
- },
- {
- value: "5",
- label: "寰俊鍏紬鍙�",
- },
- {
- value: "6",
- label: "寰俊灏忕▼搴�",
- },
+ { 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 == 3 ||
+ this.form.serviceType == 5 ||
+ this.form.serviceType == 16 ||
+ this.form.serviceType == 18 ||
+ this.form.serviceType == 19 ||
+ this.form.serviceType == 4
+ ) {
+ this.checkboxlist = [
+ { value: "1", label: "浜哄伐" },
+ { value: "3", label: "鏅鸿兘璇煶" },
+ { value: "4", label: "鐭俊" },
+ { value: "5", label: "寰俊鍏紬鍙�" },
+ { value: "6", label: "寰俊灏忕▼搴�" },
];
}
- getQtemplatelist(queryParams).then((response) => {
+ getQtemplatelist(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(",");
-
- 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;
- }
- if (!this.form.type) {
- this.form.type = this.$route.query.type;
- }
- 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 },
- });
- }
+ getQtemplateclassify() {
+ getQtemplateclassify({}).then((res) => {
+ this.optionsclass = res.rows;
});
},
- // ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
- // 纭閫夋嫨妯$増鏀惧叆浠诲姟妯$増
- selectfn(row, type) {
- // 妯$増鎯呭喌涓嬭幏鍙栨ā鐗堜俊鎭�
- if (type == 1) {
- this.libName = row.svyname;
- this.libId = row.svyid;
- console.log(row, "row");
- this.Tasktemplate = row;
- this.questionList = row.svyTemplateLibScripts;
- this.previewtf = true;
- this.previewid = row.svyid;
- this.Variablehandling(row.svyTemplateLibScripts, 1);
- } else if (type == 2) {
- } else if (type == 3) {
- }
+ getillnesslist() {
+ getillnesslist({ pageNum: 1, pageSize: 1000 }).then((res) => {
+ this.donorchargeList = res.rows;
+ });
},
- // 澶勭悊闂灞傚彉閲�
- Variablehandling(arr, type) {
- let Variablist = [];
- if (type == 1) {
- // 寰幆闂
- arr.forEach((res) => {
- // 寰幆閫夐」
- JSON.parse(res.otherdata).forEach((item) => {
- if (item.default != 1) {
- Variablist.push({
- value: item.variate,
- fill: "",
- name: item.variatename,
- });
- }
+ getillness(id) {
+ if (id) {
+ getillness({ outid: id, type: 5 }).then((res) => {
+ this.illnesslist = res.rows;
+ this.illnesslist.forEach((item) => {
+ item.icdname = item.icd10name;
});
});
- console.log(Variablist, "Variablist");
- 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);
- // 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: "inhosptime" },
- { 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: "inhosptime" },
- { 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.patientqueryParams).then((response) => {
- console.log(response);
- this.patientuserList = response.rows;
- this.patienttotal = response.total;
- this.loading = false;
- this.Restorecheck();
- });
- this.dialogVisiblepatient = true;
- },
- handleUpdate() {},
- handleDelete() {},
- handleExport() {},
-
- // 閫夋嫨鎮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) {
- item.isoperation = 1;
- item.patid = item.id;
- item.hospType = this.patientqueryParams.allhosp;
- this.overallCase.push(item);
- this.form.patTaskRelevances.push(item);
- }
- });
- },
- // 鍒囨崲椤靛悗鎭㈠閫変腑
- Restorecheck() {
- console.log(this.overallCase, "this.overallCase");
- const allid = this.overallCase.map((item) => item.patid);
- const overlap = this.patientuserList.filter((value) => {
- return allid.includes(value.patid);
- });
- // 淇濇寔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() {},
- handleClosehz() {
- this.dialogVisiblepatient = false;
- },
- // 涓婁竴姝�
- 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) {
- Questionnairetaskget({ taskid: this.id }).then((res) => {
- let filteredArray = "";
- console.log(2233);
+ Questionnairetaskgetson({ taskid: this.id }).then((res) => {
if (res.code == 200) {
this.form = res.data;
-
+ // 濡傛灉杩斿洖浜� serviceTaskScheduleVO锛岃В鏋愭槑缁嗕腑鐨� 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.form.serviceType = this.serviceType;
this.form.patTaskRelevances = this.form.patTaskRelevances
? this.form.patTaskRelevances
: [];
+ this.diseaseDept = {
+ deptCode: this.form.deptcode,
+ deptName: this.form.deptname,
+ };
+ this.diseaseWard = {
+ districtCode: this.form.leavehospitaldistrictcode,
+ districtName: this.form.leavehospitaldistrictname,
+ };
+ // 鑽搧鍏宠仈鍥炴樉
+ if (this.form.medicalCode) {
+ this.medicalCodes = this.form.medicalCode
+ .split(",")
+ .filter(Boolean);
+ // 鍔犺浇宸查�夎嵂鍝佺殑閫夐」鍒楄〃锛堢敤浜庡睍绀� label锛�
+ const codes = this.form.medicalCode;
+ listMedication({
+ itemCode: codes,
+ 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.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;
@@ -1084,52 +1847,606 @@
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.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) {
+ const selected = this.templateOptions.find(
+ (item) => item.svyid === row.templateid
+ );
+ if (selected) {
+ row.templatename = selected.svyname;
+ row.libtemplateid = selected.svyid; // 妯℃澘搴揑D
+ } else {
+ row.templatename = "";
+ row.libtemplateid = null;
+ }
+ },
+ remoteTemplate(query) {
+ if (query !== "") {
+ this.templateLoading = true;
+ getQtemplatelist({ svyname: query, pageNum: 1, pageSize: 20 })
+ .then((res) => {
+ this.templateOptions = res.rows;
+ this.templateLoading = false;
+ })
+ .catch(() => {
+ this.templateLoading = false;
+ });
+ } else {
+ this.templateOptions = [];
+ }
+ },
+
+ // ---------- 姝ラ瀵艰埅 ----------
+ 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();
+ },
+
+ // ---------- 鍏宠仈閫夋嫨 ----------
+ handleDiseaseDeptChange(dept) {
+ this.diseaseDept = dept;
+ },
+ handleDiseaseWardChange(ward) {
+ this.diseaseWard = ward;
+ },
+
+ // ---------- 妯℃澘鐩稿叧 ----------
+ selectfn(row, type) {
+ if (type == 1) {
+ this.libName = row.svyname;
+ this.libId = row.svyid;
+ this.questionList = row.svyTemplateLibScripts;
+ getQtemplateobj({ svyid: row.svyid }).then((res) => {
+ if (res.code == 200) {
+ this.objyl = res.rows[0];
+ if (this.form.longTask) {
+ this.objyl.longTemp = 1;
+ }
+ this.tempDetpRelevanceslist = [];
+ this.tempbelongWards = [];
+ this.objyl.suitway = this.objyl.suitway
+ ? this.objyl.suitway.split(",")
+ : [];
+ this.questionList = res.rows[0].svyTemplateLibScripts;
+ this.questionList.forEach((item) => {
+ item.qremark = [];
+ });
+ this.getillness(row.svyid);
+ this.previewtf = true;
+ }
+ });
+ this.previewid = row.svyid;
+ this.Variablehandling(row.svyTemplateLibScripts, 1);
+ }
+ },
+ previewfnmb() {
+ getTaskQuestioncomit(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.getillness(this.form.libtemplateid);
+ this.previewtf = true;
+ taskgetQtemplateobj({ id: this.form.templateid }).then((res) => {
+ if (res.code == 200) {
+ this.questionList = res.data.svyTaskTemplateScriptVOS;
+ this.questionList.forEach((item) => {
+ item.qremark = [];
+ item.svyLibTemplateTargetoptions =
+ item.svyTaskTemplateTargetoptions;
+ });
+ this.previewtftype = 1;
+ this.objyl.svyTemplateLibScripts =
+ res.data.svyTaskTemplateScriptVOS;
+ }
+ });
+ }
+ });
+ },
+ 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, "鏃堕棿");
+
+ // ---------- 绉戝/鐥呭尯/鐤剧梾/鎵嬫湳 鎿嶄綔 ----------
+ listDept() {
+ this.leavehospitaldistrictcodes = [];
+ this.deptcodesWards = [];
+ // this.queryParamsdept.taskId = this.form.taskid;
+ this.queryParamsdept.taskId = this.form.taskid;
+
+ if (this.form.appltype == 5) {
+ 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 == 4) {
+ this.tableLabelhz = [
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { 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 == 1) {
+ this.tableLabelhz = [
+ { label: "鍏ラ櫌鏃ユ湡", width: "150", prop: "starttime" },
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "鎮h�呰瘖鏂�", width: "", prop: "leavediagname" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { 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 == 4) {
+ this.patientqueryParams.hospitaldistrictcodes = [];
+ this.patientqueryParams.deptcodes = [];
+ } else if (this.patientqueryParams.allhosp == 1) {
+ this.patientqueryParams.deptcodes =
+ this.patientqueryParams.leaveldeptcodes;
+ this.patientqueryParams.hospitaldistrictcodes =
+ this.patientqueryParams.leavehospitaldistrictcodes;
+ this.patientqueryParams.leavehospitaldistrictcodes = [];
+ this.patientqueryParams.leaveldeptcodes = [];
+ }
+ 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.loading = false;
+ 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.telshortcode = item.telshortcode;
+ item.deptCode = item.deptcode;
+ item.deptName = item.dept;
+ item.admindate = item.inhosptime;
+ item.diagname = item.leavediagname;
+ item.sfzh = item.idcardno;
+ 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.allhosp == 6) {
+ this.Externallist();
+ return;
+ }
+ if (
+ this.patientqueryParams.searchscope == 1 ||
+ this.patientqueryParams.allhosp == 2
+ ) {
+ 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);
+ }
+ 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();
+ },
+ Externallist() {
+ this.tableLabelhz = [
+ { label: "鎮h��", width: "", prop: "name" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鎬у埆", width: "", prop: "sex" },
+ { label: "骞撮緞", width: "", prop: "age" },
+ { label: "鐢佃瘽", width: "180", prop: "telcode" },
+ { label: "鍑洪櫌澶╂暟", width: "", prop: "endDay" },
+ ];
+ this.patientqueryParams.pageSize = 1000;
+ Externallist(this.patientqueryParams).then((response) => {
+ this.patientuserList = response.rows;
+ this.patientuserList.forEach((item) => {
+ if (item.endtime) {
+ item.endDay = this.daysBetween(item.endtime);
+ }
+ });
+ this.dialogVisiblepatient = true;
+ this.patienttotal = response.total;
+ this.loading = false;
+ });
+ },
+ resetQuerymb() {
+ this.topqueryParams = { svyname: "" };
+ this.handleQuerymb();
+ },
+ resetQuery() {
+ this.patientqueryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ topica: 1,
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
+ };
+ this.handleQuery();
+ },
+ handleQuerymb() {
+ getQtemplatelist(this.topqueryParams).then((response) => {
+ this.userList = response.rows;
+ this.total = response.total;
+ });
+ },
+ handleClosehz() {
+ this.dialogVisiblepatient = false;
+ },
+ AddDispatchpatients() {
+ this.dialogVisiblepatient = false;
+ },
+ handleUpdate() {},
+ handleDelete() {},
+ handleExport() {},
+
+ // ---------- 鏈嶅姟褰㈠紡鎺掑簭 ----------
+ 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) {
const startDate = new Date(row[0]);
@@ -1140,27 +2457,19 @@
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({
@@ -1184,85 +2493,336 @@
}
}
this.form.sendTimeslot = combinedData;
- // 灞曠ず鏁版嵁涓存椂瀛樺偍鏃ユ湡銆佹棭銆佷腑銆佹櫄
-
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 },
+ this.$modal.confirm("鏄惁鍓嶅線淇敼浠诲姟妯℃澘璇︾粏鍐呭锛�").then(() => {
+ this.drawermb = false;
+ this.previewtf = false;
+ 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;
- console.log(this.Tasktemplate);
-
- this.Tasktemplate.svyTemplateLibScripts.forEach((item) => {
+ if (Array.isArray(this.objyl.suitway)) {
+ this.objyl.suitway = this.objyl.suitway.join(",");
+ }
+ this.objyl.templateid = this.objyl.svyid;
+ this.objyl.isoperation = 1;
+ this.objyl.taskid = this.form.taskid;
+ this.objyl.svyTemplateLibScripts.forEach((item) => {
+ item.qremark = [];
item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions;
});
- this.Tasktemplate.svyTaskTemplateScriptVOS =
- this.Tasktemplate.svyTemplateLibScripts;
- this.Tasktemplate.templateid = id;
- this.Tasktemplate.isoperation = 1;
- TaskQuestioncomit(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;
- this.$modal.msgSuccess("閫夋嫨妯$増鎴愬姛");
+ this.objyl.svyTaskTemplateScriptVOS = this.objyl.svyTemplateLibScripts;
+ if (this.objyl.id) {
+ deleteTaskQuestioncomit(this.objyl.id).then((res) => {
+ if (res.code == 200) {
+ this.objyl.id = null;
+ TaskQuestioncomit(this.objyl).then((response) => {
+ this.previewtf = false;
+ this.form.libtemplateid = this.objyl.svyid;
+ this.form.libtemplatename = this.objyl.svyname;
+ this.form.templateid = response.data;
+ this.form.templatename = this.objyl.svyname;
+ this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
+ });
+ }
+ });
+ } else {
+ TaskQuestioncomit(this.objyl).then((response) => {
+ this.previewtf = false;
+ this.form.libtemplateid = this.objyl.svyid;
+ this.form.libtemplatename = this.objyl.svyname;
+ this.form.templateid = response.data;
+ this.form.templatename = this.objyl.svyname;
+ this.$modal.msgSuccess("閫夋嫨妯℃澘鎴愬姛");
+ });
+ }
+ },
+ 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.templateid = this.objyl.svyid;
+ this.form.libtemplateid = this.objyl.svyid;
+ this.objyl.isoperation = 1;
+ this.objyl.svyTaskTemplateScriptVOS =
+ this.objyl.svyTemplateLibScripts;
+ this.objyl.svyTaskTemplateScriptVOS.forEach((item) => {
+ item.svyTaskTemplateTargetoptions =
+ item.svyLibTemplateTargetoptions;
+ });
+ this.form.svyTaskTemplateVO = this.objyl;
+ this.form.templatename = this.objyl.svyname;
+ this.$modal.msgSuccess("鏆傚瓨鎴愬姛淇濆瓨浠诲姟鍚庢ā鏉跨敓鏁�");
+ this.drawermb = false;
+ this.previewtf = false;
+ })
+ .catch(() => {
+ this.drawermb = false;
+ this.previewtf = false;
});
- });
- console.log(list, "list");
- 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);
+ }
+ },
+
+ // ---------- 鎻愪氦琛ㄥ崟 ----------
+ submitForm(formName) {
+ if (this.submitLoading) return;
+ this.submitLoading = true;
+
+ try {
+ 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.form.oplevelcode = null;
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 2) {
+ this.deptcodesWards = [];
+ this.form.oplevelcode = null;
+ this.illnesscodes = [];
+ } else if (this.form.appltype == 3) {
+ this.deptcodesWards = [];
+ this.leavehospitaldistrictcodes = [];
+ this.form.oplevelcode = null;
+ } 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.form.oplevelcode = null;
+ }
+
+ // 鏈嶅姟褰㈠紡鏍¢獙
+ 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.form.oplevelcode ||
+ 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.$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) => {
+ 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;
});
- });
- this.checkList = list;
+ // 灏嗕富瀵硅薄鏀惧叆 form 鎻愪氦锛堝凡瀛樺湪锛�
+ }
+
+ if (this.form.taskid) {
+ this.form.isoperation = 2;
+ } else {
+ this.form.isoperation = 1;
+ }
+ if (!this.form.type) {
+ this.form.type = this.$route.query.type;
+ }
+ console.log(this.diseaseDept, this.diseaseWard);
+
+ 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.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;
+ }
+ // 浠诲姟缁勭殑鏁版嵁澶勭悊
+ if (this.form.appltype == 5) {
+ this.form.serviceTaskScheduleVO.icd10codes = this.form.icd10code;
+ this.form.serviceTaskScheduleVO.wardCodes =
+ this.form.leavehospitaldistrictcode;
+ this.form.serviceTaskScheduleVO.deptCodes = this.form.deptcode;
+ }
+ 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 },
+ });
+ } else {
+ this.$modal.msgError(res.msg || "鎿嶄綔澶辫触");
+ }
+ })
+ .catch((error) => {
+ console.error("鎻愪氦澶辫触:", error);
+ this.$modal.msgError(error.message || "缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯");
+ })
+ .finally(() => {
+ 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;
@@ -1271,52 +2831,58 @@
-webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
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;
cursor: pointer;
}
}
+
.jic-value {
font-size: 20px;
border-top: 1px solid #a7abac;
padding: 10px;
margin-bottom: 10px;
+
.details-jic {
padding: 10px 15px;
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);
+
.details-title {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
+
div:nth-child(2) {
color: #02a7f0;
cursor: pointer;
}
}
+
.details-renw {
background: #e4ebfc;
padding: 15px 5px;
@@ -1326,58 +2892,54 @@
}
}
}
-// .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;
+
.dev-text {
margin-bottom: 10px;
}
}
}
+
.jic-value {
font-size: 20px;
border-top: 1px solid #a7abac;
padding: 10px;
margin-bottom: 10px;
+
.details-jic {
padding: 10px 15px;
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);
+
.details-title {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
+
div:nth-child(2) {
color: #02a7f0;
cursor: pointer;
}
}
+
.details-renw {
background: #e4ebfc;
padding: 15px 5px;
@@ -1386,6 +2948,7 @@
}
}
}
+
::v-deep .addtopic-input {
input {
background: #02a7f0;
@@ -1393,45 +2956,47 @@
width: 150px;
}
}
+
::v-deep.el-step.is-vertical .el-step__title {
font-size: 25px;
}
+
::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;
width: 700px;
}
+
.el-select__tags {
font-size: 20px;
max-width: 888px !important;
}
+
::v-deep.el-radio__inner {
width: 22px;
height: 22px;
}
-// ::v-deep.topic-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 {
background-color: #f5f7fa;
border-color: #dfe4ed;
color: rgb(253, 66, 66);
cursor: not-allowed;
}
+
::v-deep.el-checkbox-group {
span {
- font-size: 24px;
+ font-size: 18px;
}
}
</style>
--
Gitblit v1.9.3