From 3573a134c7c7d4d99f605420f9afb2f80e9b8967 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期六, 22 十一月 2025 14:59:46 +0800
Subject: [PATCH] 宣教更新
---
src/views/patient/propaganda/Missioncreation.vue | 869 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 641 insertions(+), 228 deletions(-)
diff --git a/src/views/patient/propaganda/Missioncreation.vue b/src/views/patient/propaganda/Missioncreation.vue
index edbe31c..cfd57e0 100644
--- a/src/views/patient/propaganda/Missioncreation.vue
+++ b/src/views/patient/propaganda/Missioncreation.vue
@@ -82,56 +82,44 @@
placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"
/>
</el-form-item>
- <el-row>
- <el-col :span="20"
- ><el-form-item label="閫傜敤绉戝" prop="region">
- <el-select
- v-model="form.deptcode"
- style="width: 400px"
- size="medium"
- 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-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-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-row>
- <el-col :span="20"
- ><el-form-item label="閫傜敤鐥呭尯" prop="region">
- <el-select
- v-model="form.leavehospitaldistrictcode"
- style="width: 400px"
- size="medium"
- 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-form-item label="鍙戦�佽缃細" v-if="currenttype != 2">
+ <el-form-item label="鎵ц璁剧疆" 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">
+ <el-form-item
+ label="鎵ц鏃ユ湡锛�"
+ v-if="form.sendType == 1 && !form.longTask"
+ >
<el-date-picker
v-model="daytime"
@change="changeTimeday"
@@ -144,7 +132,10 @@
</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"
+ >
<div style="display: flex">
<div style="margin-right: 10px">
<el-date-picker
@@ -159,7 +150,10 @@
</div>
</el-form-item>
- <el-form-item label="鍙戦�佹椂闂存锛�" v-if="form.sendType == 1">
+ <el-form-item
+ label="鎵ц鏃堕棿娈碉細"
+ v-if="form.sendType == 1 && !form.longTask"
+ >
<div style="display: flex">
<div style="margin-right: 10px">
<span style="font-size: 18px; margin-right: 10px">鈶�</span>
@@ -228,17 +222,116 @@
/> </el-form-item
></el-col>
</el-row>
- <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-group>
</el-form-item>
+ <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-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> -->
+ </el-form-item>
+ </div>
+ </el-row>
+ <el-row v-if="form.appltype == 4">
+ <el-col :span="20"
+ ><el-form-item label="閫傜敤鎵嬫湳" prop="region">
+ <el-select
+ v-model="operationcodes"
+ style="width: 400px"
+ @remove-tag="removeopera"
+ size="medium"
+ :remote-method="remoteopcode"
+ multiple
+ filterable
+ remote
+ placeholder="璇烽�夋嫨鎵嬫湳"
+ >
+ <el-option
+ class="ruleFormaa"
+ v-for="item in baseoperaList"
+ :label="item.opdesc"
+ :value="item.opcode"
+ >
+ </el-option>
+ </el-select> </el-form-item
+ ></el-col>
+ </el-row>
</el-form>
</div>
</div>
@@ -306,45 +399,6 @@
<div class="examine-jic">
<div class="jic-value">
<el-row :gutter="20">
- <!--鐢ㄦ埛鏁版嵁-->
- <!-- <el-form
- :model="topqueryParams"
- ref="queryForm"
- size="small"
- :inline="true"
- v-show="showSearch"
- label-width="98px"
- >
- <el-form-item label="鎮h�呭悕绉�">
- <el-input v-model="topqueryParams.name"></el-input>
- </el-form-item>
-
- <el-form-item label="灏辫瘖绉戝">
- <el-input v-model="topqueryParams.deptName"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button
- type="primary"
- icon="el-icon-search"
- size="medium"
- @click="handleQuery"
- >鎼滅储</el-button
- >
- <el-button
- icon="el-icon-refresh"
- size="medium"
- @click="resetQuery"
- >閲嶇疆</el-button
- >
- <el-button
- icon="el-icon-upload2"
- size="medium"
- type="warning"
- >褰撳墠鎮h�呬竴閿彂閫�</el-button
- >
- </el-form-item>
- </el-form> -->
- <!-- <el-divider></el-divider> -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-select
@@ -367,7 +421,7 @@
icon="el-icon-plus"
size="medium"
:disabled="!patientqueryParams.allhosp"
- @click="handleAddpatient"
+ @click="handleQuery"
>鏂板</el-button
>
</el-col>
@@ -390,7 +444,6 @@
icon="el-icon-upload2"
size="medium"
@click="handleImport"
-
>瀵煎叆</el-button
>
</el-col>
@@ -454,6 +507,18 @@
@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�呰寖鍥�"
@@ -496,7 +561,7 @@
/>
</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"
@@ -514,11 +579,19 @@
<!-- 妯℃澘棰勮 -->
<el-dialog title="妯℃澘棰勮" :visible.sync="previewtf" width="60%">
<div class="preview-left">
- <!-- 鍗曢�� -->
- <div v-html="htmlRichText"></div>
+ <!-- 鏍规嵁妯℃澘绫诲瀷鏄剧ず涓嶅悓鍐呭 -->
+ <div v-if="currentTemplateType == '2'">
+ <!-- 閫氱煡妯℃澘鍙樉绀虹函鏂囨湰鍐呭 -->
+ <div style="white-space: pre-wrap; font-size: 16px; line-height: 1.6">
+ {{ plainTextContent }}
+ </div>
+ </div>
+ <div v-else>
+ <!-- 鍏朵粬绫诲瀷妯℃澘鏄剧ず瀵屾枃鏈唴瀹� -->
+ <div v-html="htmlRichText"></div>
+ </div>
</div>
<span slot="footer" class="dialog-footer">
- <!-- <el-button @click="previewGo">鍓嶅線妯℃澘璇︽儏淇敼</el-button> -->
<el-button type="primary" @click="previewFn">纭浣跨敤</el-button>
</span>
</el-dialog>
@@ -590,12 +663,16 @@
<el-table :data="uploadingData" style="width: 100%">
<el-table-column prop="serial" label="鎮h�卛d"> </el-table-column>
- <el-table-column prop="name" label="濮撳悕"> </el-table-column>
- <el-table-column prop="sex" label="鎬у埆"> </el-table-column>
- <el-table-column prop="idcardno" width="300" label="璇佷欢鍙风爜"> </el-table-column>
+ <el-table-column prop="name" label="濮撳悕" width="100">
+ </el-table-column>
+ <el-table-column prop="sex" label="鎬у埆" width="100">
+ </el-table-column>
+ <el-table-column prop="idcardno" width="300" label="璇佷欢鍙风爜">
+ </el-table-column>
<el-table-column prop="goday" label="鍑虹敓鏃ユ湡"> </el-table-column>
- <el-table-column prop="telcode" width="200" label="鑱旂郴鏂瑰紡"> </el-table-column>
- <el-table-column prop="createTime" width="200" label="鍒涘缓鏃ユ湡">
+ <el-table-column prop="telcode" width="200" label="鑱旂郴鏂瑰紡">
+ </el-table-column>
+ <el-table-column prop="createTime" width="200" label="鍒涘缓鏃ユ湡">
</el-table-column>
</el-table>
<!-- <pagination
@@ -636,26 +713,20 @@
<el-form-item label="瀹f暀鍚嶇О">
<el-input v-model="topqueryParams.preachname"></el-input>
</el-form-item>
- <el-form-item label="瀹f暀鍒嗙被" prop="region">
+ <el-form-item label="瀹f暀绫诲瀷" prop="region">
<el-select
- v-model="topqueryParams.assortid"
+ v-model="topqueryParams.hetype"
size="medium"
filterable
placeholder="璇烽�夋嫨鍒嗙被"
>
- <el-option-group
- v-for="group in sortlist"
- :key="group.id"
- :label="group.assortname"
+ <el-option
+ v-for="item in heLibraryAssortList"
+ :key="item.id"
+ :label="item.value"
+ :value="item.id"
>
- <el-option
- v-for="item in group.heLibraryAssortList"
- :key="item.id"
- :label="item.assortname"
- :value="item.id"
- >
- </el-option>
- </el-option-group>
+ </el-option>
</el-select>
</el-form-item>
@@ -693,7 +764,7 @@
<el-button
icon="el-icon-refresh"
size="medium"
- @click="resetQuery"
+ @click="resetQuerymb"
>閲嶇疆</el-button
>
</el-form-item>
@@ -720,6 +791,13 @@
</div>
</div>
</el-drawer>
+ <Optional-Form
+ ref="child"
+ :dialogVisiblepatient="dialogVisiblepatientjb"
+ :overallCase="diagglist"
+ @addoption="dialogVisiblepatientjb = false"
+ @kkoption="dialogVisiblepatientjb = true"
+ />
</div>
</template>
@@ -729,20 +807,36 @@
import store from "@/store";
import {
- getTaskpatient,
- getlibrarylist,
- getFollowuplist,
+ getTaskpatientQC,
+ taskoperhospgetsondel,
+ taskdiaghospgetsondel,
+ getillnesslist,
+ getbaseopera,
+ Externallist,
getQtemplatelist,
+ getQtemplateobj,
+ taskgetQtemplateobj,
TaskQuestioncomit,
- getTaskInfo,
- gethetaskinfo,
- delhetaskinfo,
+ deleteTaskQuestioncomit,
+ Questionnairetaskgetson,
+ getTaskQuestioncomit,
+ depthospgetson,
+ getillness,
Editsingletask,
+ getQtemplateclassify,
+ taskdepthospgetsondel,
+ taskdepthospgetsonlist,
+ taskdiaggetlist,
+ taskopergetlist,
+ getTaskInfo,
getheLibraryAssort,
+ getlibrarylist,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
import { getToken } from "@/utils/auth";
import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import OptionalForm from "@/components/OptionalForm";
+import SortCheckbox from "@/components/SortCheckbox"; //琛ㄦ牸缁勪欢
export default {
name: "ServiceDetails",
@@ -750,11 +844,14 @@
return {
title: "瀹f暀鍐呭鍒楄〃",
currenttype: 1, //1瀹f暀2闂ㄨ瘖3鍑洪櫌4澶嶈瘖5浣撴6闂嵎
+ currentTemplateType: "", // 褰撳墠妯℃澘绫诲瀷
+ plainTextContent: "", // 绾枃鏈唴瀹�
id: "", //
previewid: "", //浠诲姟妯℃澘浼犻�抜d
libName: "",
overallCase: [], //閫夋嫨鎮h�呮��
allpids: [],
+ diagglist: [],
libId: null, //妯℃澘搴撴ā鏉縤d
Editprogress: 1, //缂栬緫杩涘害
drawermb: false, //閫夋嫨妯℃澘寮圭獥
@@ -762,20 +859,27 @@
loading: false, // 閬僵灞�
patientloading: false, // 閬僵灞�
dialogVisiblepatient: false, //娣诲姞鎮h�呭脊妗�
+ dialogVisiblepatientjb: false, //娣诲姞鐤剧梾寮规
radio: 1,
checkboxlist: [],
+ selectedOrder: [],
+ baseoperaList: [],
// 绉戝/鐥呭尯
- belongWards: [],
belongWards: [],
tableLabel: [],
questionList: [],
uploadingData: [],
+ deptcodesWards: [], //绉戝鏁版嵁
+ leavehospitaldistrictcodes: [], //鐥呭尯鏁版嵁
+ operationcodes: [], //鎵嬫湳鏁版嵁
+ illnesscodes: [], //鐤剧梾鏁版嵁
htmlRichText: "<p>Hello, <strong>world</strong>!</p>",
// 鎮h�呰〃鍗�
tableLabelhz: [
- { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "inhosptime" },
+ { label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
{ label: "鎮h��", width: "", prop: "name" },
- { label: "韬唤璇�", width: "200", prop: "sfzh" },
+ { label: "韬唤璇�", width: "200", prop: "idcardno" },
+ { label: "鐢佃瘽鍙风爜", width: "180", prop: "telcode" },
{ label: "鎬у埆", width: "", prop: "sex" },
{ label: "骞撮緞", width: "", prop: "age" },
{ label: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
@@ -788,6 +892,7 @@
{ 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: "璐d换鎶ゅ+", width: "", prop: "nurseName" },
@@ -799,7 +904,7 @@
tableLabelxj: [
{ label: "鍒涘缓浜�", width: "", prop: "createBy" },
{ label: "瀹f暀鍚嶇О", width: "180", prop: "preachname" },
- { label: "瀹f暀鎻忚堪", width: "180", prop: "preachcontent" },
+ { label: "瀹f暀鍐呭", width: "180", prop: "preachcontent" },
// { label: "瀹f暀褰㈠紡", width: "", prop: "playType" },
{ label: "閫傜敤鏂瑰紡", width: "", prop: "suitway" },
{ label: "淇敼鏃ユ湡", width: "", prop: "uploadTime" },
@@ -817,7 +922,7 @@
{ label: "鐭俊", value: 4 },
{ label: "寰俊鍏紬", value: 5 },
{ label: "閽夐拤", value: 6 },
- { label: "鏅鸿兘鏈哄櫒浜�", value: 7 },
+ // { label: "鏅鸿兘鏈哄櫒浜�", value: 7 },
],
upload: {
// 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -854,6 +959,8 @@
patientqueryParams: {
pageNum: 1, //
pageSize: 10,
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
},
topicoptions: [{ children: [{ children: [] }] }],
showSearch: true, //
@@ -913,24 +1020,34 @@
],
variableListTime: [],
sortlist: [],
+ heLibraryAssortList: [
+ { id: 1, value: "瀹f暀" },
+ { id: 2, value: "閫氱煡" },
+ ],
tasktopic: null, //鏂板绫诲瀷
SelectPatientslist: [],
+ belongDepts: [],
+
form: {
patTaskRelevances: [],
sendType: 1,
+ longTask: 0,
templatename: "",
templateid: null,
libtemplateid: null,
- kcb: "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾偍濂斤紒鎴戜滑鏄禉涓尰澶т簩闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�",
+ kcb:
+ "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾垜浠槸" +
+ localStorage.getItem("orgname") +
+ "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�",
jsy: "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈瀹f暀鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
},
taskoptions: [
{
- value: "1",
+ value: "4",
label: "鍑洪櫌鐥呬汉",
},
{
- value: "4",
+ value: "1",
label: "鍦ㄩ櫌鐥呬汉",
},
{
@@ -940,6 +1057,14 @@
{
value: "3",
label: "浣撴鐥呬汉",
+ },
+ {
+ value: "6",
+ label: "闄㈠鎮h��",
+ },
+ {
+ value: "5",
+ label: "鎵嬫湳鐥呬汉",
},
],
source: [
@@ -959,7 +1084,7 @@
quote: false,
};
},
- components: { SFtable },
+ components: { SFtable, OptionalForm, SortCheckbox },
created() {
this.id = this.$route.query.id;
@@ -969,7 +1094,7 @@
this.belongDepts = store.getters.belongDepts;
this.form.typename = this.$route.query.typename;
this.form.serviceType = Number(this.$route.query.serviceType);
- this.listDept();
+ // this.listDept();
this.Acquisitiontype();
this.Getdetails();
this.getheLibraryAssort();
@@ -1042,10 +1167,10 @@
label: "寰俊灏忕▼搴�",
},
- {
- value: "8",
- label: "鏅鸿兘鏈哄櫒浜�",
- },
+ // {
+ // value: "8",
+ // label: "鏅鸿兘鏈哄櫒浜�",
+ // },
];
} else if (this.form.serviceType == 8) {
this.checkboxlist = [
@@ -1062,10 +1187,10 @@
label: "寰俊灏忕▼搴�",
},
- {
- value: "8",
- label: "鏅鸿兘鏈哄櫒浜�",
- },
+ // {
+ // value: "8",
+ // label: "鏅鸿兘鏈哄櫒浜�",
+ // },
{
value: "9",
label: "閽夐拤",
@@ -1083,15 +1208,61 @@
}
},
// 淇濆瓨
- submitForm(formName) {
+ async submitForm(formName) {
this.form.preachform = this.checkList.join(",");
// this.formatFn(1);
- if (!this.form.patTaskRelevances[0]) {
- this.$modal.msgError("璇烽�夋嫨鐥呬汉");
- return;
+ if (!this.form.patTaskRelevances[0] && this.form.longTask == 0) {
+ try {
+ // 绛夊緟鐢ㄦ埛纭
+ await this.$modal.confirm("褰撳墠浠诲姟鏈�夋嫨鎮h�呮槸鍚︿繚瀛橈紵");
+ // 鍙湁鐢ㄦ埛鐐瑰嚮鈥滅‘璁も�濆悗锛屼唬鐮佹墠浼氭墽琛屽埌杩欓噷
+ } catch (error) {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滃彇娑堚�濓紝鐩存帴涓柇鍑芥暟鎵ц
+ this.$modal.msgWarning("鎿嶄綔宸插彇娑�");
+ return; // 鍏抽敭锛氳繖閲宺eturn鐩存帴閫�鍑哄嚱鏁�
+ }
}
if (!this.form.templatename) {
this.$modal.msgError("鏈�夋嫨妯℃澘");
+ return;
+ }
+ if (this.checkList) {
+ this.form.preachform = this.checkList.join(",");
+ this.form.preachformList = this.selectedOrder;
+ } else {
+ this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+ this.submitLoading = false;
+
+ return;
+ }
+ 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 = [];
+ }
+ if (
+ this.deptcodesWards[0] ||
+ this.leavehospitaldistrictcodes[0] ||
+ this.diagglist[0] ||
+ this.operationcodes[0] ||
+ this.form.longTask == 2 ||
+ this.serviceType == 3
+ ) {
+ } else {
+ this.$modal.msgError("璇烽�夋嫨浠诲姟鍏宠仈鏉′欢");
+ this.submitLoading = false;
return;
}
const filteredArray = this.variableList.filter(
@@ -1104,17 +1275,18 @@
this.form.isoperation = 2;
} else {
this.form.isoperation = 1;
- this.form.sendState=1;
+ this.form.sendState = 1;
}
if (!this.form.type) {
this.form.type = this.$route.query.type;
}
- this.form.leaveldeptcodes = store.getters.belongDepts.map(
- (obj) => obj.deptCode
- );
- this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(
- (obj) => obj.districtCode
- );
+ this.form.deptcode = this.deptcodesWards.join(",");
+ this.form.leavehospitaldistrictcode =
+ this.leavehospitaldistrictcodes.join(",");
+ this.form.opcode = this.operationcodes.join(",");
+ this.form.icd10code = this.diagglist
+ .map((item) => item.icdcode)
+ .join(",");
Editsingletask(this.form).then((res) => {
if (res.code == 200) {
if (this.form.taskid) {
@@ -1132,28 +1304,33 @@
// ----------------------琛ㄦ牸瀛愮粍浠朵簨浠�
// 閫夋嫨妯℃澘骞堕瑙�
selectfn(row, type) {
- // 妯℃澘鎯呭喌涓嬭幏鍙栨ā鏉夸俊鎭�
this.libName = row.preachname;
this.htmlRichText = null;
this.libId = row.id;
- console.log(row, "row");
this.Tasktemplate = row;
+
+ // 璁剧疆褰撳墠妯℃澘绫诲瀷
+ this.currentTemplateType = row.hetype || "1"; // 榛樿涓哄鏁欑被鍨�
+
this.previewtf = true;
this.previewid = row.svyid;
- console.log(this.questionList, "questionList");
- // this.Variablehandling(row.svyLibScripts, 1);
- console.log(row.htmlRichText);
- axios
- .get(row.htmlRichText)
- .then((response) => {
- console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
- this.htmlRichText = response.data;
- this.htmlRichText = this.addStyleToImages(this.htmlRichText);
- })
- .catch((error) => {
- this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
- console.error("Failed to fetch file:", error);
- });
+
+ if (this.currentTemplateType == "2") {
+ // 濡傛灉鏄�氱煡妯℃澘锛岃幏鍙栫函鏂囨湰鍐呭
+ this.plainTextContent = row.preachcontent;
+ } else {
+ // 鍏朵粬绫诲瀷妯℃澘鑾峰彇瀵屾枃鏈唴瀹�
+ axios
+ .get(row.htmlRichText)
+ .then((response) => {
+ this.htmlRichText = response.data;
+ this.htmlRichText = this.addStyleToImages(this.htmlRichText);
+ })
+ .catch((error) => {
+ this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
+ console.error("Failed to fetch file:", error);
+ });
+ }
},
// 棰勮妯℃澘
previewfnm() {
@@ -1164,16 +1341,24 @@
this.Tasktemplate = res.rows[0];
this.previewtf = true;
this.previewid = res.rows[0].svyid;
- axios
- .get(res.rows[0].htmlRichText)
- .then((response) => {
- this.htmlRichText = response.data;
- this.htmlRichText = this.addStyleToImages(this.htmlRichText);
- })
- .catch((error) => {
- this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
- console.error("Failed to fetch file:", error);
- });
+ this.currentTemplateType = res.rows[0].hetype || "1"; // 榛樿涓哄鏁欑被鍨�
+
+ if (this.currentTemplateType == "2") {
+ // 濡傛灉鏄�氱煡妯℃澘锛岃幏鍙栫函鏂囨湰鍐呭
+ this.plainTextContent = res.rows[0].preachcontent;
+ } else {
+ // 鍏朵粬绫诲瀷妯℃澘鑾峰彇瀵屾枃鏈唴瀹�
+ axios
+ .get(res.rows[0].htmlRichText)
+ .then((response) => {
+ this.htmlRichText = response.data;
+ this.htmlRichText = this.addStyleToImages(this.htmlRichText);
+ })
+ .catch((error) => {
+ this.$modal.msgError("鑾峰彇瀵屾枃鏈け璐�");
+ console.error("Failed to fetch file:", error);
+ });
+ }
});
},
addStyleToImages(html) {
@@ -1189,13 +1374,32 @@
this.overallCase.forEach((item) => {
this.allpids.push(item.patid);
});
- if (this.patientqueryParams.allhosp == 1) {
+ if (this.patientqueryParams.allhosp == 4) {
this.tableLabelhz = [
+ // { label: "鍏ラ櫌鏃ユ湡", width: "170", prop: "starttime" },
{ label: "鍑洪櫌鏃ユ湡", width: "150", prop: "endtime" },
{ label: "鎮h��", width: "", prop: "name" },
- { label: "韬唤璇�", width: "200", prop: "sfzh" },
+ { 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" },
@@ -1203,14 +1407,18 @@
];
} else if (this.patientqueryParams.allhosp == 2) {
this.tableLabelhz = [
- { label: "搴忓彿", width: "", prop: "patid" },
- { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+ { 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: "", prop: "diagname" },
- { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
- { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "inhosptime" },
- { label: "鍒涘缓浜�", width: "", prop: "createBy" },
+ { 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]) {
@@ -1218,33 +1426,26 @@
} else {
this.patientqueryParams.pids = null;
}
- // 绫诲瀷鍒ゆ柇
- if (this.patientqueryParams.allhosp == 1) {
- this.patientqueryParams.cry = 1;
- } else if (this.patientqueryParams.allhosp == 4) {
- this.patientqueryParams.cry = 0;
- this.patientqueryParams.allhosp = "1";
- }
- if (this.patientqueryParams.searchscope == 1) {
- this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
- (obj) => obj.deptCode
- );
+ 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 = [];
- } 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);
}
- getTaskpatient(this.patientqueryParams).then((response) => {
+ getTaskpatientQC(this.patientqueryParams).then((response) => {
console.log(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();
@@ -1256,9 +1457,8 @@
handleExport() {},
// 閫夋嫨鎮h�呰〃鏁版嵁
- handleSelectionChange(selection,type) {
- console.log("澶氶�夋偅鑰�");
- this.SelectPatientslist = selection;
+ handleSelectionChange(selection) {
+ this.SelectPatientslist = structuredClone(selection);
this.multiple = !selection.length;
// 璧嬪�肩粰鏁翠綋閫変腑鏁扮粍
@@ -1267,13 +1467,22 @@
if (!isExist) {
item.isoperation = 1;
item.patid = item.id;
- if (item.idcardno) {
- item.sfzh = item.idcardno;
+ item.hospType = this.patientqueryParams.allhosp;
+ item.sfzh = item.idcardno;
+ 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 (type) {
- item.hospType=type
- }else{
- item.hospType = this.patientqueryParams.allhosp;
+ 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);
@@ -1322,9 +1531,54 @@
},
getList() {},
handleQuery() {
+ if (this.patientqueryParams.allhosp == 6) {
+ this.Externallist();
+ console.log();
+
+ return;
+ }
+ 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);
+ }
+ 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() {},
+ resetQuery() {
+ this.patientqueryParams = {
+ pageNum: 1, //
+ pageSize: 10,
+ topica: 1, //0鍏ㄩ儴1绉戝2鐥呭尯
+ leavehospitaldistrictcodes: [],
+ leaveldeptcodes: [],
+ };
+ this.handleQuery();
+ },
+ resetQuerymb() {
+ this.topqueryParams = { svyname: "" };
+ this.handleQuerymb();
+ },
handleClosehz() {
this.dialogVisiblepatient = false;
},
@@ -1350,7 +1604,10 @@
templateid: null,
libtemplateid: null,
serviceType: Number(this.$route.query.serviceType),
- kcb: "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾偍濂斤紒鎴戜滑鏄禉涓尰澶т簩闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚闂嵎銆�",
+ kcb:
+ "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾垜浠槸" +
+ localStorage.getItem("orgname") +
+ "鐨勫尰鎶や汉鍛橈紝涓轰簡鏇村ソ鍦颁簡瑙f偍鐨勫悍澶嶆儏鍐碉紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�",
jsy: "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒",
};
@@ -1366,6 +1623,7 @@
: [];
this.overallCase = this.form.patTaskRelevances.concat();
this.checkList = this.form.preachform.split(",");
+ this.selectedOrder = this.form.preachformList;
console.log(this.form.showDate, "this.form");
if (this.form.daytime) this.daytime = this.form.showDate.split(",");
console.log(this.newadd, "渚濈収");
@@ -1393,6 +1651,49 @@
});
}
},
+ checkSelectionChange(selectedValues, selectedOrder) {
+ this.selectedOrder = selectedValues;
+ console.log("褰撳墠閫変腑:", selectedValues);
+ console.log("閫変腑椤哄簭:", selectedOrder);
+ },
+ getillnesslist() {
+ getillnesslist({
+ pageNum: 1,
+ pageSize: 1000,
+ }).then((res) => {
+ this.donorchargeList = res.rows;
+ });
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ },
+ // 鎵嬫湳鏌ヨ
+ remoteopcode(name) {
+ if (name) {
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ opdesc: name,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ }
+ },
+ // 鐤剧梾鏌ヨ
+ remotedonor(name) {
+ if (name) {
+ getbaseopera({
+ pageNum: 1,
+ pageSize: 1000,
+ opdesc: name,
+ }).then((res) => {
+ this.baseoperaList = res.rows;
+ });
+ }
+ },
// 渚濈収鏂板鏃跺鐞�
neWaddfn() {
this.id = null;
@@ -1417,9 +1718,45 @@
},
// 鑾峰彇绉戝鍒楄〃
listDept() {
- listDept().then((res) => {
- this.topicoptions = this.handleTree(res.data, "deptId");
- console.log(this.topicoptions, "topicoptions");
+ this.leavehospitaldistrictcodes = [];
+ this.deptcodesWards = [];
+ this.queryParamsdept.taskId = this.form.taskid;
+ 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) => {
+ getillnesslist({
+ icdcode: item.icd10code,
+ }).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);
+ });
+ }
});
},
// 鏂板娲鹃�佹偅鑰�
@@ -1525,6 +1862,7 @@
TaskQuestioncomit(this.Tasktemplate).then((response) => {
console.log(response);
this.previewtf = false;
+ this.drawermb = false;
this.form.templateid = response.data;
this.form.libtemplateid = this.libId;
this.form.templatename = this.libName;
@@ -1561,6 +1899,65 @@
this.checkList = list;
}
},
+ // 浠诲姟绉戝鍒犻櫎瑙﹀彂
+ 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) {
+ console.log(row, "row");
+ console.log(this.diagglist, "this.diagglist");
+
+ 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("鍒犻櫎鎴愬姛");
+ }
+ });
+ }
+ },
/** 瀵煎叆鎸夐挳鎿嶄綔 */
handleImport() {
this.upload.title = "鐢ㄦ埛瀵煎叆";
@@ -1573,7 +1970,6 @@
handleFileSuccess(response, file, fileList) {
this.upload.isUploading = false;
this.uploadingData = response.rows;
- console.log(response, "鏂囦欢");
this.$refs.upload.clearFiles();
},
@@ -1584,9 +1980,9 @@
this.$refs.upload.submit();
this.dractive++;
} else if (this.dractive == 2) {
- this.handleSelectionChange(this.uploadingData,4);
+ this.handleSelectionChange(this.uploadingData, 4);
this.upload.open = false;
- this.dractive = 1
+ this.dractive = 1;
}
},
@@ -1737,6 +2133,23 @@
}
}
}
+/* 鏂板鏍峰紡 */
+.preview-left {
+ padding: 20px;
+ max-height: 70vh;
+ overflow-y: auto;
+}
+
+/* 绾枃鏈唴瀹规牱寮� */
+.plain-text-content {
+ white-space: pre-wrap;
+ font-size: 16px;
+ line-height: 1.6;
+ padding: 15px;
+ background: #f9f9f9;
+ border-radius: 4px;
+}
+
.download {
text-align: center;
.el-upload__tip {
@@ -1767,7 +2180,7 @@
}
}
.button-textsc {
- color: #28cfe6;
+ color: #3664d9;
}
.button-textxg {
color: #de7897;
--
Gitblit v1.9.3