From 5f4d48e663c47eb7390e4a1784d773d6814889ff Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 02 九月 2025 13:40:04 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/patient/outpatient.vue |  766 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 530 insertions(+), 236 deletions(-)

diff --git a/src/views/patient/patient/outpatient.vue b/src/views/patient/patient/outpatient.vue
index cfaeacb..a323439 100644
--- a/src/views/patient/patient/outpatient.vue
+++ b/src/views/patient/patient/outpatient.vue
@@ -11,58 +11,83 @@
           v-show="showSearch"
           label-width="98px"
         >
-          <el-form-item label="濮撳悕" prop="name">
+          <el-form-item label="濮撳悕" width="100" prop="name">
             <el-input
-              v-model="queryParams.hospname"
+              v-model="queryParams.patname"
               placeholder="璇疯緭鍏ュ鍚�"
               clearable
               style="width: 200px"
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
-          <el-form-item label="鎮h�呯紪鍙�" prop="idcardno">
+          <el-form-item label="璇婃柇" width="100" prop="name">
             <el-input
-              v-model="queryParams.idcardno"
-              placeholder="璇疯緭鍏ユ偅鑰呯紪鍙�"
+              v-model="queryParams.diagname"
+              placeholder="璇疯緭鍏ヨ瘖鏂�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="绉戝" width="100" prop="name">
+            <el-input
+              v-model="queryParams.deptname"
+              placeholder="璇疯緭鍏ョ瀹ゅ悕绉�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍖荤敓" width="100" prop="name">
+            <el-input
+              v-model="queryParams.drname"
+              placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鐥呮鍙�" prop="outhospno">
+            <el-input
+              v-model="queryParams.outhospno"
+              placeholder="璇疯緭鍏ョ梾妗堝彿"
               clearable
               style="width: 250px"
               @keyup.enter.native="handleQuery"
             />
           </el-form-item>
 
-          <el-form-item label="鎮h�呰寖鍥�" prop="tagId">
-            <el-select
-              v-model="queryParams.Patientid"
-              multiple
-              placeholder="璇烽�夋嫨"
-            >
-              <el-option
-                v-for="item in Patientrange"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
+          <el-form-item label="鎮h�呰寖鍥�" prop="status">
+            <el-cascader
+              v-model="queryParams.scopetype"
+              placeholder="榛樿鍏ㄩ儴"
+              :options="sourcetype"
+              :props="{ expandTrigger: 'hover' }"
+              @change="handleChange"
+            ></el-cascader>
+          </el-form-item>
+          <el-form-item label="灏辫瘖鏃ユ湡">
+            <el-date-picker
+              v-model="dateRange"
+              style="width: 240px"
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+            ></el-date-picker>
+            <!-- <el-date-picker
+                v-model="dateRange"
+                type="datetimerange"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+                :default-time="['12:00:00']"
               >
-              </el-option>
-            </el-select>
+              </el-date-picker> -->
           </el-form-item>
           <el-row>
-            <el-form-item label="鎮h�呮爣绛�" prop="tagId">
-              <el-select
-                v-model="queryParams.tagIds"
-                multiple
-                filterable
-                placeholder="璇烽�夋嫨"
-              >
-                <el-option
-                  v-for="item in optionstag"
-                  :key="item.tagid"
-                  :label="item.tagname"
-                  :value="item.tagid"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label=" 灏辫瘖鏃ユ湡 " prop="admitdate">
+            <!-- <el-form-item label=" 灏辫瘖鏃ユ湡 " prop="admitdate">
               <el-date-picker
                 clearable
                 v-model="queryParams.admitdate"
@@ -71,7 +96,8 @@
                 placeholder="璇烽�夋嫨 灏辫瘖鏃ユ湡 "
               >
               </el-date-picker>
-            </el-form-item>
+            </el-form-item> -->
+
             <el-form-item>
               <el-button
                 type="primary"
@@ -91,7 +117,7 @@
         </el-form>
 
         <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
+          <!-- <el-col :span="1.5">
             <el-button
               type="primary"
               plain
@@ -113,7 +139,7 @@
               v-hasPermi="['system:user:edit']"
               >淇敼</el-button
             >
-          </el-col>
+          </el-col> -->
           <el-col :span="1.5">
             <el-button
               type="danger"
@@ -124,6 +150,18 @@
               @click="handleDelete"
               v-hasPermi="['system:user:remove']"
               >鍒犻櫎</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="warning"
+              plain
+              icon="el-icon-plus"
+              size="medium"
+              :disabled="multiple"
+              @click="handleBatchAddTask"
+            >
+              鎵归噺娣诲姞浠诲姟</el-button
             >
           </el-col>
           <el-col :span="19">
@@ -154,53 +192,93 @@
           </el-col>
           <!-- <el-col :span="1.5"> </el-col> -->
         </el-row>
-        
+
         <el-table
           v-loading="loading"
           :data="userList"
           @selection-change="handleSelectionChange"
         >
           <el-table-column type="selection" width="50" align="center" />
-          <el-table-column
+          <!-- <el-table-column
             label="搴忓彿"
             fixed
             align="center"
             key="id"
             prop="id"
-          />
+          /> -->
           <el-table-column
-            label="濮撳悕"
-            fixed
+            label="灏辫瘖鏃堕棿"
             align="center"
-            key="patname"
-            prop="patname"
-          />
+            key="admitdate"
+            prop="admitdate"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.admitdate) }}</span>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column
+            label="鐥呮鍙�"
+            align="center"
+            key="patno"
+            prop="patno"
+          /> -->
           <el-table-column
-            label="闂ㄨ瘖缂栧彿"
+            label="鐥呮鍙�"
             align="center"
             key="outhospno"
             prop="outhospno"
           />
-          <el-table-column label="鎬у埆" align="center" key="sex" prop="sex">
+          <el-table-column
+            label="濮撳悕"
+            width="100"
+            align="center"
+            key="patname"
+            prop="patname"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="medium"
+                type="text"
+                @click="
+                  gettoken360(
+                    scope.row.idcardno,
+                    scope.row.drcode,
+                    scope.row.drname
+                  )
+                "
+                ><span class="button-textsc">{{
+                  scope.row.patname
+                }}</span></el-button
+              >
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鎬у埆"
+            width="100"
+            align="center"
+            key="sex"
+            prop="sex"
+          >
             <template slot-scope="scope">
               <span>{{ scope.row.sex == 1 ? "鐢�" : "濂�" }}</span>
             </template>
           </el-table-column>
           <el-table-column
-            label="骞撮緞锛堢己锛�"
+            label="骞撮緞"
             align="center"
             key="age"
             prop="age"
             width="120"
           />
           <el-table-column
-            label="鑱旂郴鐢佃瘽锛堢己锛�"
+            label="鑱旂郴鐢佃瘽"
             align="center"
-            key="telephone"
-            prop="telephone"
+            key="telcode"
+            prop="telcode"
             width="120"
           />
-          <el-table-column
+          <!-- <el-table-column
             label="鎮h�呮爣绛撅紙缂猴級"
             align="center"
             key="tagList"
@@ -211,14 +289,8 @@
             <template slot-scope="scope">
               <span v-for="item in scope.row.tagList">{{ item }} </span>
             </template>
-          </el-table-column>
-          <el-table-column
-            label="灏辫瘖绫诲埆锛堟湭瀹氾級"
-            align="center"
-            key="idcardtype"
-            prop="idcardtype"
-            width="120"
-          />
+          </el-table-column> -->
+
           <el-table-column
             label="璇婃柇"
             align="center"
@@ -226,49 +298,28 @@
             prop="diagname"
             width="190"
           />
-
+          <!-- <el-table-column
+            label="涓昏堪"
+            align="center"
+            key="mainsuit"
+            prop="mainsuit"
+            width="120"
+          /> -->
           <el-table-column
-            label="绉戝"
+            label="灏辫瘖绉戝"
             align="center"
             key="deptname"
             prop="deptname"
             width="120"
           />
           <el-table-column
-            label="鍖荤敓"
+            label="鎺ヨ瘖鍖荤敓"
             align="center"
             key="drname"
             prop="drname"
             width="120"
           />
-          <el-table-column
-            label="鐘舵�侊紙鏈畾锛�"
-            align="center"
-            key="telcode"
-            prop="telcode"
-            width="120"
-          />
-          <el-table-column
-            label="灏辫瘖鏃堕棿"
-            align="center"
-            key="createTime"
-            prop="createTime"
-            width="160"
-          >
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="澶嶈瘖鏃堕棿"
-            align="center"
-            prop="updateTime"
-            width="160"
-          >
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.updateTime) }}</span>
-            </template>
-          </el-table-column>
+
           <el-table-column
             label="鎿嶄綔"
             fixed="right"
@@ -291,15 +342,6 @@
                   ><i class="el-icon-zoom-in"></i>鏌ョ湅</span
                 ></el-button
               >
-              <el-button
-                size="medium"
-                type="text"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['system:user:edit']"
-                ><span class="button-textxg"
-                  ><i class="el-icon-edit"></i>淇敼</span
-                ></el-button
-              >
             </template>
           </el-table-column>
         </el-table>
@@ -313,126 +355,107 @@
         />
       </el-col>
     </el-row>
-
-    <!-- 娣诲姞鎴栦慨鏀圭敤鎴烽厤缃璇濇 -->
     <el-dialog
-      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
-      :visible.sync="Labelchange"
-      width="900px"
+      title="鎵归噺娣诲姞浠诲姟"
+      :visible.sync="batchTaskVisible"
+      width="90%"
+      append-to-body
     >
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="濮撳悕" prop="name">
-              <el-input
-                v-model="form.name"
-                placeholder="璇疯緭鍏ュ鍚�"
-                maxlength="30"
+      <el-row :gutter="20">
+        <!-- 宸︿晶锛氶�変腑鎮h�呭垪琛� -->
+        <el-col :span="12">
+          <div class="batch-patient-section">
+            <h4>閫変腑鎮h�咃紙{{ selectedPatients.length }}浜猴級</h4>
+            <el-table
+              :data="selectedPatients"
+              border
+              style="width: 100%"
+              size="small"
+            >
+              <el-table-column prop="patname" label="濮撳悕" width="100" />
+              <el-table-column prop="sex" label="鎬у埆" width="80">
+                <template slot-scope="scope">
+                  {{ scope.row.sex === 1 ? "鐢�" : "濂�" }}
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="灏辫瘖鏃堕棿"
+                align="center"
+                key="admitdate"
+                prop="admitdate"
+              >
+                <template slot-scope="scope">
+                  <span>{{ formatTime(scope.row.admitdate) }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column prop="outhospno" label="鐥呮鍙�" />
+              <el-table-column prop="deptname" label="绉戝" />
+            </el-table>
+          </div>
+        </el-col>
+
+        <!-- 鍙充晶锛氫换鍔″垪琛� -->
+        <el-col :span="12">
+          <div class="batch-task-section">
+            <h4>浠诲姟鍒楄〃锛堣閫夋嫨1涓换鍔★級</h4>
+            <el-table
+              :data="taskList"
+              border
+              style="width: 100%"
+              size="small"
+              @current-change="handleTaskSelectionChange"
+              highlight-current-row
+            >
+              <el-table-column
+                label="浠诲姟鍚嶇О"
+                fixed
+                align="center"
+                key="taskName"
+                prop="taskName"
+                :show-overflow-tooltip="true"
               />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎬у埆" prop="sex">
-              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
-                <el-option
-                  v-for="dict in dict.type.sys_user_sex"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢绫诲瀷" prop="idcardtype">
-              <el-select v-model="form.idcardtype" placeholder="璇烽�夋嫨鎬у埆">
-                <el-option
-                  v-for="item in paperstypes"
-                  :key="item.papersname"
-                  :label="item.papersname"
-                  :value="item.papersname"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="璇佷欢鍙�" prop="idcardno">
-              <el-input
-                v-model="form.idcardno"
-                placeholder="璇疯緭鍏ヨ瘉浠跺彿"
-                maxlength="50"
+
+              <el-table-column
+                label="鏈嶅姟椤圭洰"
+                align="center"
+                key="templatename"
+                prop="templatename"
+                :show-overflow-tooltip="true"
               />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="鏈汉鎵嬫満鍙�" prop="telcode">
-              <el-input
-                v-model="form.telcode"
-                placeholder="璇疯緭鍏ユ墜鏈哄彿"
-                maxlength="30"
+
+              <el-table-column
+                label="鍒涘缓浜�"
+                align="center"
+                key="createBy"
+                prop="createBy"
+                :show-overflow-tooltip="true"
               />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="浜插睘鎵嬫満鍙�" prop="relativetelcode">
-              <el-input
-                v-model="form.relativetelcode"
-                placeholder="璇疯緭鍏ヤ翰灞炴墜鏈哄彿"
-                type="password"
-                maxlength="20"
-                show-password
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="骞撮緞" prop="age">
-              <el-input
-                v-model="form.age"
-                placeholder="璇疯緭鍏ュ勾榫�"
-                maxlength="30"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎮h�呮爣绛�">
-              <!-- <el-select v-model="form.sex" placeholder="璇烽�夋嫨"> -->
-              <el-select v-model="form.tagList" multiple placeholder="璇烽�夋嫨">
-                <el-option
-                  v-for="item in optionstag"
-                  :key="item.tagid"
-                  :label="item.tagname"
-                  :value="item.tagid"
-                >
-                </el-option>
-              </el-select>
-              <!-- </el-select> -->
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="澶囨敞">
-              <el-input
-                v-model="form.remark"
-                type="textarea"
-                placeholder="璇疯緭鍏ュ唴瀹�"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
+              <el-table-column
+                label="鍒涘缓鏃堕棿"
+                sortable
+                align="center"
+                prop="createTime"
+              >
+                <template slot-scope="scope">
+                  <span>{{ formatTime(scope.row.createTime) }}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 搴曢儴鎸夐挳 -->
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-        <el-button @click="cancel">鍙� 娑�</el-button>
+        <el-button @click="batchTaskVisible = false">鍙� 娑�</el-button>
+        <el-button
+          type="primary"
+          :loading="batchLoading"
+          @click="submitBatchTask"
+          >鍒涘缓浠诲姟</el-button
+        >
       </div>
     </el-dialog>
-
     <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
     <el-dialog
       :title="upload.title"
@@ -478,12 +501,15 @@
           </div>
         </el-upload>
       </div>
+
       <!-- 瀵煎叆妫�鏌� -->
       <div class="uploading" v-else-if="dractive == 2">
         <el-table :data="uploadingData" style="width: 100%">
           <el-table-column prop="serial" label="搴忓彿"> </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="name" label="濮撳悕" width="100">
+          </el-table-column>
+          <el-table-column prop="sex" label="鎬у埆" width="100">
+          </el-table-column>
           <el-table-column prop="certificate" label="璇佷欢绫诲瀷">
           </el-table-column>
           <el-table-column prop="certificatenum" label="璇佷欢鍙风爜">
@@ -534,10 +560,14 @@
   updatePatouthosp,
   delPatouthosp,
 } from "@/api/smartor/patouthosp";
+import { particularpatient } from "@/api/patient/homepage";
 import { listtag } from "@/api/system/label";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { query360PatInfo, getTasklist, addSubtask } from "@/api/AiCentre/index";
+
+import store from "@/store";
 
 export default {
   name: "Userhuanze",
@@ -598,20 +628,75 @@
       Labelchange: false, //淇敼鏂板寮圭獥
       propss: { multiple: true },
       optionstag: [], //鏍囩鍒楄〃
+      batchTaskVisible: false, // 寮圭獥鍙鎬�
+      selectedPatients: [], // 閫変腑鐨勬偅鑰呭垪琛�
+      taskList: [], // 浠诲姟鍒楄〃
+      selectedTask: null, // 閫変腑鐨勪换鍔″垪琛�
+      batchLoading: false, // 鎵归噺鎻愪氦鍔犺浇鐘舵��
+      deptcode: "",
       Patientrange: [
         {
           name: "鍏ㄩ儴",
-          id: 1,
+          id: 999,
         },
         {
           name: "褰撳墠绉戝",
           id: 1,
         },
       ],
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: "1400466972205912064",
+            YongHuXM: "JNRMYY",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
       defaultProps: {
         children: "children",
         label: "label",
       },
+      sourcetype: [
+        {
+          value: 1,
+          label: "绉戝",
+          children: [],
+        },
+        {
+          value: 2,
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
+        },
+      ],
       // 鐢ㄦ埛瀵煎叆鍙傛暟
       upload: {
         // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -631,7 +716,10 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-
+        searchscope: 3,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
       },
       // 琛ㄥ崟鏍¢獙
       rules: {
@@ -688,6 +776,18 @@
     },
   },
   created() {
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
     this.getList();
     this.gettabList();
   },
@@ -695,8 +795,21 @@
     /** 鏌ヨ鎮h�呭垪琛� */
     getList() {
       this.loading = true;
+      if (this.queryParams.searchscope == 3) {
+        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.queryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      if (this.dateRange) {
+        this.queryParams.beginTime = this.dateRange[0];
+        this.queryParams.endTime = this.dateRange[1];
+      } else {
+        this.queryParams.beginTime = "";
+        this.queryParams.endTime = "";
+      }
       listPatouthosp(this.queryParams).then((response) => {
-        console.log(response);
         this.userList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -716,6 +829,25 @@
         this.optionstag = response.rows;
       });
     },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.queryParams.leavehospitaldistrictcodes = [];
+      this.queryParams.leaveldeptcodes = [];
+
+      if (type == 1) {
+        this.queryParams.leaveldeptcodes.push(code);
+        this.queryParams.leavehospitaldistrictcodes = [];
+        this.queryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.queryParams.leavehospitaldistrictcodes.push(code);
+        this.queryParams.leaveldeptcodes = [];
+        this.queryParams.searchscope = 2;
+      } else {
+        this.queryParams.searchscope = 3;
+      }
+    },
     // 鏌ヨ瀵煎叆灞曠ず鍒楄〃
     geterryList() {
       this.loading = true;
@@ -725,7 +857,23 @@
         this.loading = false;
       });
     },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname) {
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+      if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
+        this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
+        this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
+      }
 
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
     // 绛涢�夎妭鐐�
     filterNode(value, data) {
       if (!value) return true;
@@ -765,7 +913,14 @@
     resetQuery() {
       this.dateRange = [];
       this.resetForm("queryForm");
-      this.$refs.tree.setCurrentKey(null);
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        searchscope: 3,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
@@ -796,24 +951,19 @@
     //淇敼/鏂板鎮h��
     submitForm() {
       if (this.amendtag) {
-        alterpatient(this.form)
-          .then((response) => {
-            console.log(response);
-          })
-          .then(() => {
-            this.getList();
-            this.$modal.msgSuccess("淇敼鎴愬姛");
-          });
+        console.log(22);
+        this.form.isoperation = 2;
       } else {
-        addpatient(this.form)
-          .then((response) => {
-            console.log(response);
-          })
-          .then(() => {
-            this.getList();
-            this.$modal.msgSuccess("娣诲姞鎴愬姛");
-          });
+        this.form.isoperation = 1;
       }
+      alterpatient(this.form)
+        .then((response) => {
+          console.log(response);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("淇濆瓨鎴愬姛");
+        });
       this.reset();
       // this.idds = "";
       this.Labelchange = false;
@@ -851,7 +1001,7 @@
     /** 涓嬭浇妯℃澘鎿嶄綔 */
     importTemplate() {
       this.download(
-        "system/user/importTemplate",
+        "smartor/import/getImportPatTemplate",
         {},
         `user_template_${new Date().getTime()}.xlsx`
       );
@@ -888,6 +1038,113 @@
       this.upload.open = false;
       this.dractive = 1;
     },
+    /** 鎵归噺娣诲姞浠诲姟鎸夐挳鐐瑰嚮 */
+    handleBatchAddTask() {
+      // 鏍¢獙鏄惁閫変腑鎮h��
+      if (this.ids.length === 0) {
+        this.$modal.msgWarning("璇疯嚦灏戦�変腑1鍚嶆偅鑰�");
+        return;
+      }
+
+      // 鑾峰彇閫変腑鎮h�呯殑绉戝淇℃伅锛堢敤浜庢牎楠屽悓涓�绉戝锛�
+      const patientDepts = new Set();
+      let deptcode = "";
+      this.ids.forEach((patId) => {
+        const patient = this.userList.find((item) => item.patid === patId);
+        if (patient) {
+          patientDepts.add(patient.deptname);
+          deptcode = patient.deptcode;
+        }
+      });
+
+      // 鏍¢獙鏄惁鍚屼竴绉戝
+      if (patientDepts.size > 1) {
+        this.$modal.msgError("閫変腑鐨勬偅鑰呬笉灞炰簬鍚屼竴绉戝锛屾棤娉曟壒閲忔坊鍔犱换鍔�");
+        return;
+      }
+
+      // 鑾峰彇閫変腑鎮h�呭垪琛�
+      this.selectedPatients = this.userList.filter((item) =>
+        this.ids.includes(item.patid)
+      );
+
+      // 鏄剧ず寮圭獥
+      this.batchTaskVisible = true;
+
+      // 鑾峰彇浠诲姟鍒楄〃
+      this.loadTaskList(deptcode);
+    },
+
+    /** 鍔犺浇浠诲姟鍒楄〃 */
+    loadTaskList(deptcode) {
+      this.batchLoading = true;
+      let topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        serviceType: 3,
+        type: 2,
+        deptcode: deptcode,
+      };
+      getTasklist(topqueryParams).then((response) => {
+        this.taskList = response.rows;
+        this.batchLoading = false;
+      });
+    },
+
+    /** 澶勭悊浠诲姟閫夋嫨鍙樺寲 */
+    handleTaskSelectionChange(currentRow) {
+      this.selectedTask = currentRow;
+    },
+
+    // 閲嶅啓鎵归噺鎻愪氦鏂规硶
+    async submitBatchTask() {
+      // 鏍¢獙鏄惁閫変腑浠诲姟
+      if (!this.selectedTask) {
+        this.$modal.msgWarning("璇烽�夋嫨1涓换鍔�");
+        return;
+      }
+
+      this.batchLoading = true;
+      const successPatients = [];
+      const failedPatients = [];
+
+      try {
+        // 閬嶅巻閫変腑鐨勬偅鑰咃紝閫愪釜璋冪敤鎺ュ彛
+        for (const patient of this.selectedPatients) {
+          const params = {
+            taskId: this.selectedTask.taskId,
+            taskName: this.selectedTask.taskName,
+            serviceType: this.selectedTask.serviceType,
+            ...patient,
+            age: "",
+          };
+
+          try {
+            await addSubtask(params);
+            successPatients.push(patient.patname);
+          } catch (error) {
+            failedPatients.push(patient.patname);
+          }
+        }
+
+        // 鏄剧ず澶勭悊缁撴灉
+        let message = `鎴愬姛涓� ${successPatients.length} 鍚嶆偅鑰呮坊鍔犱换鍔;
+        if (failedPatients.length > 0) {
+          message += `锛�${failedPatients.length} 鍚嶆偅鑰呮坊鍔犲け璐;
+        }
+        this.$modal.msgSuccess(message);
+
+        this.batchTaskVisible = false;
+        this.getList(); // 鍒锋柊鎮h�呭垪琛�
+      } catch (error) {
+        this.$modal.msgError("鎵归噺娣诲姞浠诲姟杩囩▼涓嚭閿�");
+      } finally {
+        this.batchLoading = false;
+      }
+    },
+
+    /** 鎵归噺娣诲姞鎮h�呬换鍔℃帴鍙� */
+    batchAddPatientTask(params) {},
   },
 };
 </script>
@@ -938,4 +1195,41 @@
 .button-textsc {
   color: #28cfe6;
 }
+.batch-patient-section,
+.batch-task-section {
+  padding: 15px;
+  border: 1px solid #ebeef5;
+  border-radius: 4px;
+  margin-bottom: 15px;
+}
+
+.el-table--enable-row-hover .el-table__body tr:hover > td {
+  background-color: #f5f7fa;
+}
+.el-table__body tr.current-row > td {
+  background-color: #e6f7ff;
+}
+
+/* 绂佺敤鐘舵�佷笅鎸夐挳鏍峰紡 */
+.el-button.is-disabled {
+  cursor: not-allowed;
+}
+.batch-patient-section h4,
+.batch-task-section h4 {
+  margin-top: 0;
+  margin-bottom: 15px;
+  color: #303133;
+  font-size: 16px;
+}
+
+/* 琛ㄦ牸鏍峰紡浼樺寲 */
+.el-table {
+  margin-bottom: 10px;
+}
+
+/* 寮圭獥搴曢儴鎸夐挳闂磋窛 */
+.dialog-footer {
+  text-align: right;
+  padding: 10px 20px 20px;
+}
 </style>

--
Gitblit v1.9.3