From ffa22cc18c75c0a73a3fd987e2b62fbf55316db2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 25 六月 2026 15:22:46 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/discharge/index.vue | 1566 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 1,206 insertions(+), 360 deletions(-)

diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index e6ab23b..0e25341 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1,67 +1,11 @@
 <template>
   <div class="app-container">
-    <div class="leftvlue" style="margin-bottom: 20px">
-      <el-row :gutter="10">
-        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
-          <el-card
-            shadow="hover"
-            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
-          >
-            <div style="padding: 8px" @click="$router.push(item.router)">
-              <span>{{ item.name }}</span>
-              <div
-                style="
-                  text-align: center;
-                  font-size: 18px;
-                  margin-top: 10px;
-                  font-weight: 600;
-                "
-              >
-                {{ item.value }}
-              </div>
-            </div>
-          </el-card>
-        </el-col>
-        <el-col :span="2.5">
-          <div class="ysfleftvlue">
-            <el-card shadow="hover">
-              <div style="padding: 8px">
-                <span>琛ㄥ崟宸插彂閫�</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ yfsvalue }}
-                </div>
-              </div>
-            </el-card>
-          </div>
-        </el-col>
-        <el-col :span="2.5">
-          <div class="errleftvlue">
-            <el-card shadow="hover">
-              <div style="padding: 8px">
-                <span>寮傚父</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ ycvalue }}
-                </div>
-              </div>
-            </el-card>
-          </div>
-        </el-col>
-      </el-row>
-    </div>
+    <statistics-cards
+      :cardlist="cardlist"
+      :ycvalue="ycvalue"
+      :jgvalue="jgvalue"
+      :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+    />
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
       <el-form
@@ -90,6 +34,17 @@
             end-placeholder="缁撴潫鏃ユ湡"
           ></el-date-picker>
         </el-form-item>
+        <el-form-item label="搴旈殢璁挎椂闂�">
+          <el-date-picker
+            v-model="dateRangefs"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
 
         <el-form-item label="鎮h�呭鍚�" prop="sendname">
           <el-input
@@ -97,7 +52,41 @@
             placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
           ></el-input>
         </el-form-item>
-
+        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+          <el-input
+            v-model="topqueryParams.leavediagname"
+            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+          <el-input
+            v-model="topqueryParams.updateBy"
+            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="涓绘不鍖荤敓" prop="drname">
+          <el-input
+            v-model="topqueryParams.drname"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+          <el-input
+            v-model="topqueryParams.managementDoctor"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鏃ユ湡闄愬埗" prop="status">
+          <el-select v-model="endOut" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in endOuts"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="鎮h�呰寖鍥�" prop="status">
           <el-cascader
             v-model="topqueryParams.scopetype"
@@ -108,10 +97,21 @@
           ></el-cascader>
         </el-form-item>
 
-        <el-form-item label="浠诲姟鐘舵��" prop="status">
-          <el-select v-model="topqueryParams.sendstate" placeholder="璇烽�夋嫨">
+        <el-form-item label="闅忚鐘舵��" prop="status">
+          <el-cascader
+            v-model="serviceStatusValue"
+            placeholder="璇烽�夋嫨"
+            :options="serviceStatusOptions"
+            :props="cascaderProps"
+            @change="handleServiceStatusChange"
+            clearable
+          ></el-cascader>
+        </el-form-item>
+
+        <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+          <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
             <el-option
-              v-for="item in topicoptions"
+              v-for="item in topicoptionssort"
               :key="item.value"
               :label="item.label"
               :value="item.value"
@@ -136,16 +136,6 @@
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
         <el-col :span="1.5">
-          <el-button
-            type="primary"
-            plain
-            icon="el-icon-plus"
-            size="medium"
-            @click="handleAdd"
-            >鏂板</el-button
-          >
-        </el-col>
-        <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -154,12 +144,21 @@
                 icon="el-icon-upload2"
                 size="medium"
                 @click="handleExport"
-                v-hasPermi="['system:user:export']"
                 >瀵煎嚭</el-button
               >
             </div>
           </div>
         </el-col>
+        <!-- <el-col :span="1.5">
+          <el-button
+            type="primary"
+            icon="el-icon-plus"
+            size="medium"
+            @click="handleAdd"
+            >鏂板</el-button
+          >
+        </el-col> -->
+
         <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
@@ -201,11 +200,51 @@
             </div>
           </div>
         </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button type="primary" size="medium" @click="affiliation()"
+                >鏈汉鎵�灞炴湇鍔�</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button type="success" size="medium" @click="onthatday()"
+                >浠婃棩鏈嶅姟</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5" v-if="orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'">
+          <div class="documentf">
+            <div class="document">
+              <el-tooltip
+                content="璇峰厛閫変腑鏈嶅姟"
+                placement="top"
+                :disabled="!multiple"
+              >
+                <div class="tooltip-wrapper">
+                  <el-button
+                    type="primary"
+                    :disabled="multiple"
+                    class="purple-button"
+                    @click="scoreDialogVisible = true"
+                  >
+                    婊℃剰搴﹁皟鏌�
+                  </el-button>
+                </div>
+              </el-tooltip>
+            </div>
+          </div>
+        </el-col>
       </el-row>
       <el-table
         v-loading="loading"
+        ref="userform"
         :data="userList"
-        height="660"
         :row-class-name="tableRowClassName"
         @selection-change="handleSelectionChange"
       >
@@ -213,14 +252,16 @@
         <el-table-column
           label="浠诲姟鍚嶇О"
           fixed
+          width="150"
+          show-overflow-tooltip
           align="center"
           key="taskName"
           prop="taskName"
-          width="180"
         />
         <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
         <el-table-column
           label="濮撳悕"
+          width="100"
           align="center"
           key="sendname"
           prop="sendname"
@@ -230,9 +271,12 @@
               size="medium"
               type="text"
               @click="
-                $router.push({
-                  path: '/patient/indexls'+'?current='+scope.row.sfzh
-                })
+                gettoken360(
+                  scope.row.sfzh,
+                  scope.row.drcode,
+                  scope.row.drname,
+                  scope.row.patid
+                )
               "
               ><span class="button-textsc">{{
                 scope.row.sendname
@@ -240,6 +284,126 @@
             >
           </template>
         </el-table-column>
+        <el-table-column
+          label="璇婃柇鍚嶇О"
+          align="center"
+          key="leavediagname"
+          prop="leavediagname"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="闅忚鐘舵��"
+          align="center"
+          key="sendstateView"
+          prop="sendstateView"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+              popper-class="statistics-tooltip"
+            >
+              <div v-if="scope.row.sendstateView == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstateView == 2">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstateView == 3">
+                <el-tag type="warning" :disable-transitions="false"
+                  >鏃犻渶闅忚</el-tag
+                >
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="浠诲姟鎵ц鏂瑰紡"
+          align="center"
+          key="preachform"
+          prop="preachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="闅忚瀹屾垚鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.finishtime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑洪櫌鏃ユ湡"
+          width="146"
+          align="center"
+          key="endtime"
+          prop="endtime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
+          label="搴旈殢璁挎棩鏈�"
+          width="146"
+          align="center"
+          key="visitTime"
+          prop="visitTime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.visitTime) }}</span>
+          </template></el-table-column
+        >
+        <!-- 鍘� -->
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          width="120"
+          align="center"
+          key="drname"
+          prop="drname"
+        />
+        <el-table-column
+          v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
+          label="闅忚浜哄憳"
+          align="center"
+          key="updateBy"
+          prop="updateBy"
+          width="120"
+        />
         <el-table-column
           label="浠诲姟鐘舵��"
           align="center"
@@ -261,7 +425,7 @@
               </div>
               <div v-if="scope.row.sendstate == 2">
                 <el-tag type="primary" :disable-transitions="false"
-                  >寰呮墽琛�</el-tag
+                  >寰呴殢璁�</el-tag
                 >
               </div>
               <div v-if="scope.row.sendstate == 3">
@@ -278,75 +442,16 @@
                 >
               </div>
               <div v-if="scope.row.sendstate == 6">
-                <el-tag type="danger" :disable-transitions="false"
+                <el-tag type="success" :disable-transitions="false"
                   >宸插畬鎴�</el-tag
                 >
+              </div>
+              <div v-if="scope.row.sendstate == 7">
+                <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
               </div>
             </el-tooltip>
           </template>
         </el-table-column>
-        <!-- <el-table-column
-          label="浠诲姟寮傚父璇存槑"
-          width="120"
-          align="center"
-          key="remark"
-          prop="remark" -->
-        />
-
-        <el-table-column
-          label="浜哄伐澶勭悊鎰忚"
-          align="center"
-          key="suggest"
-          prop="suggest"
-          width="120"
-        >
-          <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.sys_suggest"
-              :value="scope.row.suggest"
-            />
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="闅忚浜哄憳"
-          align="center"
-          key="createBy"
-          prop="createBy"
-          width="120"
-        />
-        <el-table-column
-          label="闅忚鏃堕棿"
-          sortable
-          align="center"
-          prop="finishtime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.finishtime) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鍑洪櫌鏃ユ湡"
-          width="200"
-          align="center"
-          key="endtime"
-          prop="endtime"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.endtime) }}</span>
-          </template></el-table-column
-        >
-        <el-table-column
-          label="搴旈殢璁挎棩鏈�"
-          width="200"
-          align="center"
-          key="longSendTime"
-          prop="longSendTime"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.longSendTime) }}</span>
-          </template></el-table-column
-        >
         <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
@@ -359,19 +464,20 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="韬唤璇佸彿鐮�"
-          width="200"
-          align="center"
-          key="sfzh"
-          prop="sfzh"
-        />
-        <el-table-column
           label="鑱旂郴鐢佃瘽"
           width="200"
           align="center"
           key="phone"
           prop="phone"
         />
+        <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+
         <el-table-column
           label="璐d换鎶ゅ+"
           width="120"
@@ -380,13 +486,12 @@
           prop="nurseName"
         />
         <el-table-column
-          label="涓绘不鍖荤敓"
-          width="120"
+          label="缁忕鍖荤敓"
           align="center"
-          key="drname"
-          prop="drname"
+          key="managementDoctor"
+          prop="managementDoctor"
+          width="120"
         />
-
         <!-- <el-table-column
           label="鐥呭巻鍙�"
           align="center"
@@ -397,7 +502,7 @@
         /> -->
 
         <!-- <el-table-column label="骞撮緞" align="center" key="age" prop="age" /> -->
-        <!-- <el-table-column label="鎬у埆" align="center" key="sex" prop="sex" /> -->
+        <!-- <el-table-column label="鎬у埆"width="100" align="center" key="sex" prop="sex" /> -->
         <!-- <el-table-column label="搴婂彿" align="center" key="badNo" prop="badNo" /> -->
         <el-table-column
           label="绉戝"
@@ -416,16 +521,6 @@
         >
         </el-table-column>
 
-        <!-- <el-table-column
-          label="鐤剧梾鍚嶇О"
-          align="center"
-          key="icdName"
-          prop="icdName"
-          width="120"
-          :show-overflow-tooltip="true"
-        >
-        </el-table-column> -->
-
         <el-table-column
           label="鍑洪櫌闅忚妯℃澘鍚嶇О"
           align="center"
@@ -433,18 +528,7 @@
           prop="templatename"
           width="200"
         />
-        <el-table-column
-          label="浠诲姟鎵ц鏂瑰紡"
-          align="center"
-          key="preachform"
-          prop="preachform"
-          width="160"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
-          </template>
-        </el-table-column>
+
         <!-- <el-table-column
           label="浠诲姟鍙戦�佹祦绋�"
           align="center"
@@ -459,31 +543,38 @@
             </span>
           </template>
         </el-table-column> -->
+
         <el-table-column
           label="浠诲姟缁撴灉璇存槑"
-          width="200"
+          width="220"
           align="center"
           key="remark"
           prop="remark"
         >
           <template slot-scope="scope" v-if="scope.row.remark">
-            <el-tag
-              type="warning"
-              v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
-              >{{ scope.row.remark }}</el-tag
+            <el-tooltip
+              :content="scope.row.remark"
+              placement="top"
+              effect="dark"
             >
-            <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+              <el-tag
+                type="warning"
+                v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+                >{{ scope.row.remark }}</el-tag
+              >
+              <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+            </el-tooltip>
           </template>
         </el-table-column>
         <el-table-column
           label="鎿嶄綔"
           align="center"
           fixed="right"
-          width="200"
+          width="300"
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
-            <el-tooltip
+            <!-- <el-tooltip
               class="item"
               effect="dark"
               content="鍐嶆闅忚"
@@ -492,8 +583,8 @@
               <el-button
                 size="medium"
                 type="text"
+                v-if="scope.row.isVisitAgain!=2"
                 @click="followupvisit(scope.row)"
-                v-hasPermi="['system:user:edit']"
                 ><span class="button-bb"
                   ><i class="el-icon-s-promotion"></i>鍐嶆闅忚</span
                 ></el-button
@@ -515,10 +606,18 @@
                   ><i class="el-icon-remove-outline"></i>鏆傚仠鏈嶅姟</span
                 ></el-button
               >
-            </el-tooltip>
+            </el-tooltip> -->
             <el-button size="medium" type="text" @click="Seedetails(scope.row)"
               ><span class="button-zx"
                 ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+              ></el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              @click="handleUpdate(scope.row)"
+              ><span class="button-textxga"
+                ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
               ></el-button
             >
           </template>
@@ -533,58 +632,251 @@
         @pagination="getList"
       />
     </el-row>
+    <!-- 婊℃剰搴﹀脊妗� -->
+    <el-dialog
+      title="闅忚婊℃剰搴﹁瘎鍒�"
+      :visible.sync="scoreDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <el-table :data="selectedRows" border style="width: 100%">
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          prop="sendname"
+        />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          width="180"
+          align="center"
+          prop="taskName"
+        />
+        <!-- 鏂板璇勫垎鍒� -->
+        <el-table-column
+          label="鐪熷疄鎬�(20)"
+          align="center"
+          key="authenticity"
+          prop="authenticity"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.authenticity"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓�鍛ㄥ唴瀹屾垚(20)"
+          align="center"
+          key="weekFinish"
+          prop="weekFinish"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.weekFinish"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瑙勮寖鎬�(10)"
+          align="center"
+          key="standard"
+          prop="standard"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.standard"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍙婃椂鎬�(10)"
+          align="center"
+          key="timeliness"
+          prop="timeliness"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.timeliness"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瀹f暀鎯呭喌(10)"
+          align="center"
+          key="library"
+          prop="library"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.library"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鐜婊℃剰搴�(10)"
+          align="center"
+          key="environment"
+          prop="environment"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.environment"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍖荤敓婊℃剰搴�(10)"
+          align="center"
+          key="doctorSatisfaction"
+          prop="doctorSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.doctorSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎶ゅ+婊℃剰搴�(10)"
+          align="center"
+          key="nurseSatisfaction"
+          prop="nurseSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.nurseSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎬诲垎"
+          align="center"
+          key="total"
+          prop="total"
+          fixed="right"
+        >
+          <template slot-scope="scope">
+            <span>{{ calculateTotal(scope.row) }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
     <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
     <el-dialog
-      :title="title"
-      :visible.sync="addalteropen"
-      width="700px"
-      append-to-body
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
     >
-      <el-form ref="form" :model="form" label-width="100px">
-        <el-row :gutter="20">
-          <el-col :span="12"
-            ><el-form-item label="浠诲姟鍚嶇О">
-              <el-input v-model="form.name"></el-input> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24"
-            ><el-form-item label="鎵�灞炵瀹�">
-              <el-select v-model="form.region" placeholder="璇烽�夋嫨绉戝">
-                <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-                <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-              </el-select> </el-form-item></el-col
-        ></el-row>
-        <el-row :gutter="20">
-          <el-col :span="24"
-            ><el-form-item label="闅忚绫诲瀷">
-              <el-select v-model="form.region" placeholder="璇烽�夋嫨闅忚绫诲瀷">
-                <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-                <el-option label="鍖哄煙浜�" value="beijing"></el-option>
-              </el-select> </el-form-item
-          ></el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="鏈嶅姟妯″潡">
-              <el-select v-model="form.region" placeholder="璇烽�夋嫨妯″潡">
-                <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-                <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" width="100" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" width="100" prop="sex">
+              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+                <el-option
+                  v-for="dict in sextype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
         </el-row>
-        <el-row :gutter="20">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+              <el-input
+                v-model="form.filterDrname"
+                placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="24">
-            <el-form-item label="褰卞儚闅忚瑕佹眰">
-              <el-input type="textarea" v-model="form.desc"></el-input>
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+              <!-- 鎻愰啋鏂囧瓧 -->
+              <div class="filter-warning">
+                <i class="el-icon-warning-outline"></i>
+                璇ュ姛鑳介�傜敤浜庢浜°�佸垪鍏ュ尰闄㈤粦鍚嶅崟銆佹槑纭嫆缁濋殢璁跨瓑鎮h�呯殑杩囨护鎺掗櫎锛岃繃婊ゅ悗璇ユ偅鑰呮墍鏈夎繘琛屼腑浠诲姟鍏ㄩ儴鍋滄涓旀棤娉曞尮閰嶆柊鐨勯殢璁夸换鍔★紝璇疯皑鎱庢搷浣滐紒
+              </div>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">鎻� 浜�</el-button>
-        <el-button @click="cancel">杩� 鍥�</el-button>
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
     <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
@@ -664,46 +956,74 @@
     </el-dialog>
     <!-- 鍐嶆闅忚 -->
     <el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
-      <el-form ref="form" :model="zcform" label-width="80px">
-        <el-form-item label="鎮h�呭悕绉�">
-          <el-input style="width: 400px" v-model="zcform.name"></el-input>
-        </el-form-item>
+      <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
         <el-form-item label="浠诲姟鍚嶇О">
-          <el-input style="width: 400px" v-model="zcform.name"></el-input>
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.taskName"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="闅忚鏂瑰紡">
+        <el-form-item label="鎮h�呭悕绉�">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.sendname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="骞撮緞">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.age"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="绉戝">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.deptname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鐥呭尯">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.leavehospitaldistrictname"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="闅忚鏂瑰紡" prop="resource">
           <el-radio-group v-model="zcform.resource">
             <el-radio label="1">鏈梾鍖洪殢璁�</el-radio>
             <el-radio label="2">闅忚涓績闅忚</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="鍗冲埢鍙戦��">
+        <!-- <el-form-item label="鍗冲埢鍙戦��">
           <el-switch v-model="zcform.delivery"></el-switch>
+        </el-form-item> -->
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.endtime"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="闅忚鏃堕棿" v-if="!zcform.delivery">
-          <el-col :span="11">
-            <el-date-picker
-              type="date"
-              placeholder="閫夋嫨鏃ユ湡"
-              v-model="zcform.date1"
-              style="width: 100%"
-            ></el-date-picker>
-          </el-col>
-          <el-col class="line" :span="2">-</el-col>
-          <el-col :span="11">
-            <el-time-picker
-              placeholder="閫夋嫨鏃堕棿"
-              v-model="zcform.date2"
-              style="width: 100%"
-            ></el-time-picker>
-          </el-col>
+        <el-form-item label="闅忚瀹屾垚鏃堕棿" prop="date1">
+          <el-date-picker
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+            v-model="zcform.date1"
+            style="width: 100%"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="闅忚璁板綍">
+          <el-input type="textarea" v-model="zcform.remark"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="dialogFormVisible = false"
-          >纭� 瀹�</el-button
-        >
+        <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
       </div>
     </el-dialog>
   </div>
@@ -711,23 +1031,31 @@
 
 <script>
 import {
-  listUser,
-  getUser,
   delUser,
   addUser,
   updateUser,
   resetUserPwd,
   changeUserStatus,
 } from "@/api/system/user";
-import { getTaskservelist, buidegetTasklist } from "@/api/AiCentre/index";
+import {
+  getTaskservelist,
+  buidegetTasklist,
+  addserviceSubtask,
+  query360PatInfo,
+  addsatisfaction,
+  query360PatInfonh,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
 import Treeselect from "@riophae/vue-treeselect";
+import StatisticsCards from "@/components/StatisticsCards";
+
 import store from "@/store";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "Discharge",
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
-  components: { Treeselect },
+  components: { Treeselect, StatisticsCards },
   data() {
     return {
       // 閬僵灞�
@@ -757,6 +1085,7 @@
       initPassword: undefined,
       // 鏃ユ湡鑼冨洿
       dateRange: [],
+      dateRangefs: [],
       // 宀椾綅閫夐」
       postOptions: [],
       ruleForm: {
@@ -765,7 +1094,9 @@
       zcform: {},
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
-      ycvalue: "",
+      Labelchange: false,
+      ycvalue: 0,
+      jgvalue: "",
       yfsvalue: "",
       inputValue: "",
       preachform: "",
@@ -774,11 +1105,44 @@
       radios: [],
       previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
       total: 0, // 鎬绘潯鏁�
-      ImportQuantity: 999, //瀵煎奖鍍忛殢璁挎暟閲�
-      //棰勮褰卞儚闅忚淇℃伅
-      previewvalue: {
-        username: "杩欎釜鍖荤敓瀵逛綘鎬庝箞鏍�",
+      // 婊℃剰搴﹁皟鏌ユ暟鎹�
+      scoreDialogVisible: false,
+      selectedRows: [],
+      // 绾ц仈閫夋嫨鍣ㄧ粦瀹氬��
+      serviceStatusValue: 10,
+      cascaderProps: {
+        expandTrigger: "hover", // 鎮仠灞曞紑
+        checkStrictly: true, // 鉁� 鍏抽敭锛氬厑璁搁�変腑浠绘剰涓�绾�
+        emitPath: false, // 鉁� 鍙繑鍥為�変腑鐨勫�硷紝涓嶈繑鍥炶矾寰勬暟缁�
       },
+      // 鏈嶅姟鐘舵�侀�夐」锛堜竴绾у拰浜岀骇鍊间笉鍐茬獊锛�
+      serviceStatusOptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 10, // 涓�绾э細寰呴殢璁�
+          label: "寰呴殢璁�",
+          children: [
+            { value: 1, label: "琚鍙�" },
+            { value: 2, label: "寰呭彂閫�" },
+            { value: 3, label: "宸插彂閫�" },
+            { value: 5, label: "鍙戦�佸け璐�" },
+            { value: 7, label: "瓒呮椂" },
+          ],
+        },
+        {
+          value: 20, // 涓�绾э細宸插畬鎴�
+          label: "宸插畬鎴�",
+          children: [{ value: 6, label: "宸插畬鎴�" }],
+        },
+        {
+          value: 30, // 涓�绾э細鏃犻渶闅忚
+          label: "鏃犻渶闅忚",
+          children: [{ value: 4, label: "涓嶆墽琛�" }],
+        },
+      ],
       value: [],
       list: [],
 
@@ -801,41 +1165,35 @@
       loading: false,
       cardlist: [
         {
-          name: "鍑洪櫌鏈嶅姟鎬婚噺",
-          value: 0,
-        },
-        {
-          name: "鎮h�呰繃婊�",
-          value: 0,
-        },
-        {
-          name: "搴旈殢璁�",
+          name: "鎮h�呮湇鍔℃�婚噺",
           value: 0,
         },
 
-        // {
-        //   name: "寮傚父",
-        //   value: 0,
-        // },
         {
-          name: "鍙戦�佸け璐�",
+          name: "鏃犻渶闅忚",
           value: 0,
         },
         {
-          name: "寰呮墽琛�",
+          name: "闇�闅忚",
           value: 0,
         },
         {
-          name: "宸插彂閫�",
+          name: "寰呴殢璁�",
           value: 0,
         },
-
-        // {
-        //   name: "琛ㄥ崟宸插彂閫�",
-        //   value: 0,
-        // },
+        {
+          name: "宸插畬鎴�",
+          value: 0,
+        },
       ],
-
+      zcrules: {
+        date1: [
+          { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+        ],
+        resource: [
+          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+        ],
+      },
       // 琛ㄥ崟鍙傛暟
       form: {
         phonenumber: "",
@@ -845,43 +1203,102 @@
         qystatus: "",
         btstatus: "",
       },
+      // endOut: 1,
+      endOut:
+        localStorage.getItem("orgname") == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+      endOuts: [
+        {
+          value: 0,
+          label: "鎴鑷冲綋鏃ユ湇鍔�",
+        },
+        {
+          value: 1,
+          label: "鍏ㄩ儴鏈嶅姟",
+        },
+      ],
+      topicoptionssort: [
+        {
+          value: 0,
+          label: "鍑洪櫌鏃堕棿(姝e簭)",
+        },
+        {
+          value: 1,
+          label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+        },
+        {
+          value: 2,
+          label: "鍙戦�佹椂闂�(姝e簭)",
+        },
+        {
+          value: 3,
+          label: "鍙戦�佹椂闂�(鍊掑簭)",
+        },
+        {
+          value: 7,
+          label: "搴旈殢璁挎棩鏈�(姝e簭)",
+        },
+        {
+          value: 8,
+          label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
+        },
+        {
+          value: 9,
+          label: "鎸夌収鎮h�呮帓搴�",
+        },
+      ],
       // 鏌ヨ鍙傛暟
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
+        sendstateView: 1,
+        sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
         serviceType: 2,
+        sendstate: null,
         searchscope: 3,
+        visitCount: 1,
         scopetype: [],
         leaveldeptcodes: [],
         leavehospitaldistrictcodes: [],
       },
+      orgname: "",
       propss: { multiple: true },
       options: [],
 
       topicoptions: [
         {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
           value: 1,
-          label: "琛ㄥ崟宸查鍙�",
+          label: "寰呴殢璁�",
         },
         {
           value: 2,
-          label: "寰呮墽琛�",
+          label: "闅忚涓�",
         },
         {
           value: 3,
-          label: "琛ㄥ崟宸插彂閫�",
+          label: "鏈畬鎴�",
         },
         {
           value: 4,
-          label: "涓嶆墽琛�",
+          label: "宸插畬鎴�",
         },
         {
           value: 5,
-          label: "鍙戦�佸け璐�",
+          label: "鏃犻渶闅忚",
+        },
+      ],
+
+      sextype: [
+        {
+          value: 1,
+          label: "鐢�",
         },
         {
-          value: 6,
-          label: "宸插畬鎴�",
+          value: 2,
+          label: "濂�",
         },
       ],
       topicoptionsyj: [
@@ -890,10 +1307,49 @@
           label: "寮傚父",
         },
         {
+          value: 2,
+          label: "璀﹀憡",
+        },
+        {
           value: 0,
           label: "姝e父",
         },
       ],
+      url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: localStorage.getItem("YongHuID"),
+            YongHuXM: localStorage.getItem("YongHuXM"),
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
+      amendtag: false,
       errtype: "",
       leavehospitaldistrictcode: "",
       serviceState: [],
@@ -902,11 +1358,24 @@
       rules: {},
     };
   },
-  watch: {},
+  watch: {
+    // 鐩戝惉璺敱鍙傛暟鍙樺寲
+    "$route.query": {
+      handler(newQuery, oldQuery) {
+        if (newQuery?.errtype !== oldQuery?.errtype) {
+          console.log(22);
+          this.loadData();
+        }
+      },
+      immediate: true,
+    },
+  },
   created() {
     this.serviceState = store.getters.serviceState;
     this.checkboxlist = store.getters.checkboxlist;
+    this.orgname = localStorage.getItem("orgname");
     this.errtype = this.$route.query.errtype;
+
     this.leavehospitaldistrictcode =
       this.$route.query.leavehospitaldistrictcode;
     this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
@@ -921,8 +1390,20 @@
         value: dept.districtCode,
       };
     });
-    if (this.errtype) {
+    if (this.errtype == 1) {
       this.toleadExport(2);
+    } else if (this.errtype == 2) {
+      // 寰呴殢璁�
+      this.toleadExport(3);
+    } else if (this.errtype == 3) {
+      // 澶辫触
+      this.toleadExport(4);
+    } else if (this.errtype == 4) {
+      // 寮傚父
+      this.toleadExport(2);
+    } else if (this.errtype == 5) {
+      // 鍏ㄩ儴
+      this.toleadExport(5);
     } else {
       this.getList(1);
     }
@@ -931,10 +1412,27 @@
     });
   },
   activated() {
-    this.getList(1);
+    this.errtype = this.$route.query.errtype;
+    if (this.errtype == 1) {
+      this.toleadExport(2);
+    } else if (this.errtype == 2) {
+      // 寰呴殢璁�
+      this.toleadExport(3);
+    } else if (this.errtype == 3) {
+      // 澶辫触
+      this.toleadExport(4);
+    } else if (this.errtype == 4) {
+      // 寮傚父
+      this.toleadExport(2);
+    } else if (this.errtype == 5) {
+      // 鍏ㄩ儴
+      this.toleadExport(5);
+    } else {
+      this.getList(1);
+    }
   },
   methods: {
-    /** 鏌ヨ褰卞儚闅忚鏈嶅姟鍒楄〃 */
+    /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
     getList(refresh) {
       // 榛樿鍏ㄩ儴
       if (this.topqueryParams.searchscope == 3) {
@@ -944,26 +1442,46 @@
         this.topqueryParams.leavehospitaldistrictcodes =
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
+      if (this.endOut == 0) {
+        this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
+          this.getEndOfDay()
+        );
+      } else {
+        // this.topqueryParams.endSendDateTime = null;
+      }
       // 鎺ュ彈寮傚父璺宠浆
       if (this.errtype) {
         this.topqueryParams.leavehospitaldistrictcodes.push(
           this.leavehospitaldistrictcode
         );
-        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
       }
       this.loading = true;
+      if (
+        this.topqueryParams.leavehospitaldistrictcodes[0] &&
+        this.topqueryParams.leaveldeptcodes[0]
+      ) {
+        this.topqueryParams.deptOrDistrict = 2;
+      } else {
+        this.topqueryParams.deptOrDistrict = 1;
+      }
+      if (!this.followupAuthority()) {
+        this.$message.warning("鏈厤缃瀹�/鐥呭尯鐩稿叧鏉冮檺涓嶅彲鏌ヨ");
+        return Promise.reject(new Error("鏃犳潈闄愭煡璇�"));
+      }
+
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
         if (refresh) {
           this.cardlist[0].value =
-            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
-          this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[2].value = response.rows[0].ysf;
-          this.ycvalue = response.rows[0].yc;
-          this.cardlist[3].value = response.rows[0].fssb;
-          this.cardlist[4].value = response.rows[0].dfs;
-          this.cardlist[5].value = response.rows[0].yfs2;
+            Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
+          // this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[1].value = response.rows[0].wxsf || 0;
+          this.ycvalue = Number(response.rows[0].yc) || 0
+          this.jgvalue = response.rows[0].jg;
+          this.cardlist[2].value = response.rows[0].xsf || 0;
+          this.cardlist[3].value = response.rows[0].dsf || 0;
+          this.cardlist[4].value = response.rows[0].ywc || 0;
           this.yfsvalue = response.rows[0].yfs;
         }
         this.loading = false;
@@ -992,6 +1510,55 @@
         this.total = response.total;
       });
     },
+    loadData() {
+      this.errtype = this.$route.query.errtype;
+      if (this.errtype == 1) {
+        this.toleadExport(2);
+      } else if (this.errtype == 2) {
+        // 寰呴殢璁�
+        this.toleadExport(3);
+      } else if (this.errtype == 3) {
+        // 澶辫触
+        this.toleadExport(4);
+      } else if (this.errtype == 4) {
+        // 寮傚父
+        this.toleadExport(2);
+      } else if (this.errtype == 5) {
+        // 鍏ㄩ儴
+        this.toleadExport(5);
+      } else {
+        this.getList(1);
+      }
+    },
+    // 鏃堕棿
+    getEndOfDay() {
+      const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
+      date.setHours(23, 59, 59, 0); // 灏嗘椂闂磋缃负23:59:59.000
+      return date;
+    },
+    formatDateToYYYYMMDDHHMMSS(date) {
+      const year = date.getFullYear();
+      const month = String(date.getMonth() + 1).padStart(2, "0"); // 鏈堜唤琛ラ浂
+      const day = String(date.getDate()).padStart(2, "0"); // 鏃ユ湡琛ラ浂
+      const hours = String(date.getHours()).padStart(2, "0");
+      const minutes = String(date.getMinutes()).padStart(2, "0");
+      const seconds = String(date.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day}`;
+    },
+    affiliation() {
+      this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
+      this.getList(1);
+    },
+    onthatday() {
+      this.topqueryParams.startSendDateTime = this.getCurrentDate();
+      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.getList(1);
+    },
+    getCurrentDate() {
+      const now = new Date();
+      return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+    },
     buidegetTasklist(type) {
       if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
@@ -1009,24 +1576,24 @@
       let obj = {
         pageNum: 1,
         pageSize: 10,
-        leavehospitaldistrictcodes: this.topqueryParams.leavehospitaldistrictcodes,
+        leavehospitaldistrictcodes:
+          this.topqueryParams.leavehospitaldistrictcodes,
         sendstates: [2, 3],
         leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
       };
       buidegetTasklist(obj).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
-        if (refresh) {
-          this.cardlist[0].value =
-            Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
-          this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[2].value = response.rows[0].ysf;
-          this.ycvalue = response.rows[0].yc;
-          this.cardlist[3].value = response.rows[0].fssb;
-          this.cardlist[4].value = response.rows[0].dfs;
-          this.cardlist[5].value = response.rows[0].yfs2;
-          this.yfsvalue = response.rows[0].yfs;
-        }
+        this.cardlist[0].value =
+          Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
+        this.cardlist[1].value = response.rows[0].wzx;
+        this.cardlist[2].value = response.rows[0].ysf;
+        this.ycvalue = Number(response.rows[0].yc) || 0
+        this.jgvalue = response.rows[0].jg;
+        this.cardlist[3].value = response.rows[0].fssb;
+        this.cardlist[4].value = response.rows[0].dsf;
+        // this.cardlist[5].value = response.rows[0].yfs2;
+        this.yfsvalue = response.rows[0].yfs;
         this.loading = false;
         this.userList.forEach((item) => {
           let idArray = null;
@@ -1086,11 +1653,7 @@
           row.status = row.status === "0" ? "1" : "0";
         });
     },
-    // 鍙栨秷鎸夐挳
-    cancel() {
-      this.addalteropen = false;
-      this.reset();
-    },
+
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
@@ -1119,9 +1682,13 @@
           store.getters.belongWards.map((obj) => obj.districtCode);
       }
       this.topqueryParams.pageNum = 1;
-      this.topqueryParams.startOutHospTime = this.dateRange[0];
-      this.topqueryParams.endOutHospTime = this.dateRange[1];
-
+      // 鍒ゆ柇鏄笉鏄伐浣滃彴蹇嵎鏌ヨ
+      if (this.errtype != 2) {
+        this.topqueryParams.startOutHospTime = this.dateRange[0];
+        this.topqueryParams.endOutHospTime = this.dateRange[1];
+        this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+        this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      }
       this.getList(refresh);
     },
     // 鎮h�呰寖鍥村鐞�
@@ -1130,7 +1697,6 @@
       let code = value.slice(-1)[0];
       this.topqueryParams.leavehospitaldistrictcodes = [];
       this.topqueryParams.leaveldeptcodes = [];
-
       if (type == 1) {
         this.topqueryParams.leaveldeptcodes.push(code);
         this.topqueryParams.leavehospitaldistrictcodes = [];
@@ -1143,22 +1709,116 @@
         this.topqueryParams.searchscope = 3;
       }
     },
+    // 鏈嶅姟鐘舵�佸彉鏇村鐞�
+    handleServiceStatusChange(value) {
+      // 娓呯┖閫夋嫨
+      if (value === null || value === undefined || value === "") {
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = null;
+        return;
+      }
+      console.log(value, "value");
+
+      // 涓�绾ц妭鐐圭殑鍊硷紙澶т簬绛変簬10锛�
+      if (value >= 10) {
+        // 閫変腑浜嗕竴绾�
+        switch (value) {
+          case 10:
+            this.topqueryParams.sendstateView = 1; // 寰呴殢璁�
+            break;
+          case 20:
+            this.topqueryParams.sendstateView = 2; // 宸插畬鎴�
+            break;
+          case 30:
+            this.topqueryParams.sendstateView = 3; // 鏃犻渶闅忚
+            break;
+        }
+        this.topqueryParams.sendstate = null;
+      } else {
+        // 閫変腑浜嗕簩绾э紙鍏蜂綋鐘舵�侊級
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = value;
+      }
+    },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.dateRange = [];
+      this.dateRangefs = [];
+      this.serviceStatusValue = 10;
       this.topqueryParams = {
         pageNum: 1,
         pageSize: 10,
+        sendstateView: 1,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
         serviceType: 2,
-        searchscope: 2,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
       };
       this.handleQuery(1);
     },
-    // 澶氶�夋閫変腑鏁版嵁
-    handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.userId);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
+    handleSelectionChange(rows) {
+      console.log(rows, 911);
+
+      this.selectedRows = rows.map((row) => {
+        // 鍒濆鍖栬瘎鍒嗗瓧娈�
+        return {
+          ...row,
+          authenticity: row.authenticity || 0,
+          weekFinish: row.weekFinish || 0,
+          standard: row.standard || 0,
+          timeliness: row.timeliness || 0,
+          library: row.library || 0,
+          environment: row.environment || 0,
+          doctorSatisfaction: row.doctorSatisfaction || 0,
+          nurseSatisfaction: row.nurseSatisfaction || 0,
+        };
+      });
+
+      if (this.selectedRows.length > 0) {
+        this.multiple = false;
+      } else {
+        this.multiple = true;
+      }
+    },
+
+    // 璁$畻鎬诲垎
+    calculateTotal(row) {
+      return (
+        (row.authenticity || 0) +
+        (row.weekFinish || 0) +
+        (row.standard || 0) +
+        (row.timeliness || 0) +
+        (row.library || 0) +
+        (row.environment || 0) +
+        (row.doctorSatisfaction || 0) +
+        (row.nurseSatisfaction || 0)
+      );
+    },
+
+    // 淇濆瓨璇勫垎
+    saveScores() {
+      this.selectedRows.forEach((item) => {
+        item.createBy = null;
+        item.patName = item.sendname;
+        item.hospitaldistrictname = item.leavehospitaldistrictname;
+      });
+      addsatisfaction(this.selectedRows).then((res) => {
+        if (res.code == 200) {
+          this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        } else {
+          this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        }
+      });
+      // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
     },
     //鍒犻櫎閫夐」
     handleClose(tag) {
@@ -1190,6 +1850,38 @@
         },
       });
     },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname, id) {
+      const orgname = localStorage.getItem("orgname");
+      if (orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+        query360PatInfonh(id).then((res) => {
+          if (res.data) {
+            window.open(res.data, "_blank");
+          } else {
+            this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+          }
+        });
+        return;
+      } else if (
+        orgname == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+        orgname == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+      ) {
+        let url = `http://192.200.81.189:9100/blj/view?BINGRENID=${id}&YONGHUID=DBA`;
+        window.open(url, "_blank");
+        return;
+      }
+
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
 
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
     handleResetPwd(row) {
@@ -1207,24 +1899,28 @@
         })
         .catch(() => {});
     },
-
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
     /** 鎻愪氦鎸夐挳 */
     submitForm: function () {
       this.$refs["form"].validate((valid) => {
         if (valid) {
-          if (this.form.userId != undefined) {
-            updateUser(this.form).then((response) => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
+          this.form.isoperation = 2;
+          this.form.notrequiredFlag = 1;
+          alterpatient(this.form)
+            .then((response) => {
+              console.log(response);
+            })
+            .then(() => {
               this.getList(1);
+              this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
             });
-          } else {
-            addUser(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList(1);
-            });
-          }
+
+          this.reset();
+          this.Labelchange = false;
         }
       });
     },
@@ -1289,11 +1985,8 @@
     Seedetails(row) {
       let type = "";
       console.log(row, "rwo");
-      if (row.preachformson) {
-        if (row.preachformson.includes("3")) {
-          type = 1;
-          console.log(type, "rwo");
-        }
+      if (row.type == 1) {
+        type = 1;
       }
       this.$router.push({
         path: "/followvisit/record/detailpage/",
@@ -1302,11 +1995,14 @@
           patid: row.patid,
           id: row.id,
           Voicetype: type,
+          visitCount: this.topqueryParams.visitCount,
         },
       });
     },
     // 鍐嶆闅忚
-    followupvisit() {
+    followupvisit(row) {
+      this.zcform = row;
+      this.zcform.endtime = this.formatTime(this.zcform.endtime);
       this.dialogFormVisible = true;
     },
     onSubmit() {},
@@ -1328,7 +2024,7 @@
           }).then((res) => {
             if (res.code == 200) {
               objson.sendstate = 4;
-              objson.remark = '鏈嶅姟鏆傚仠';
+              objson.remark = "鏈嶅姟鏆傚仠";
               Editsingletaskson(objson).then((res) => {
                 if (res.code) {
                   this.$modal.msgSuccess("璁板綍鎴愬姛");
@@ -1340,34 +2036,115 @@
         })
         .catch(() => {});
     },
+    // 鎮h�呰繃婊よЕ鍙�
+    handleUpdate(row) {
+      particularpatient(row.patid).then((response) => {
+        this.form = response.data;
+        this.form.filterDrname = store.getters.nickName;
+      });
+      this.amendtag = true;
+      this.Labelchange = true;
+    },
     // 渚挎嵎鎸夐挳
     toleadExport(too) {
+      console.log(too, "too");
+
       if (too == 1) {
         this.topqueryParams.sendstate = 4;
         this.topqueryParams.excep = null;
       } else if (too == 2) {
         this.topqueryParams.excep = 1;
+        this.topqueryParams.sendstate = null;
+      } else if (too == 3) {
+        this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
+          this.getEndOfDay()
+        );
+        console.log(1111, this.topqueryParams.endSendDateTime);
+
+        this.topqueryParams.excep = null;
+        this.topqueryParams.sendstate = 2;
+        this.topqueryParams.scopetype = null;
+      } else if (too == 4) {
+        this.topqueryParams.excep = null;
+        this.topqueryParams.sendstate = 5;
+        this.topqueryParams.scopetype = null;
+      } else if (too == 5) {
+        this.topqueryParams.excep = null;
+        this.topqueryParams.sendstate = null;
+        this.topqueryParams.scopetype = null;
       }
-      this.handleQuery();
+      this.handleQuery(1);
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
+      const originalPageNum = this.topqueryParams.pageNum;
+      const originalPageSize = this.topqueryParams.pageSize;
       this.topqueryParams.pageNum = null;
       this.topqueryParams.pageSize = null;
+      this.topqueryParams.subIdList = this.selectedRows.map((item) => item.id);
       this.download(
-        "smartor/serviceSubtask/export",
+        "smartor/serviceSubtask/patItemExport",
         {
           ...this.topqueryParams,
         },
         `user_${new Date().getTime()}.xlsx`
-      );
+      ).finally(() => {
+        // 瀵煎嚭鍚庢仮澶嶅垎椤靛弬鏁�
+        this.topqueryParams.pageNum = originalPageNum;
+        this.topqueryParams.pageSize = originalPageSize;
+        this.getList();
+      });
     },
     // 寮傚父鍒楁覆鏌�
     tableRowClassName({ row, rowIndex }) {
       if (row.excep == 1) {
         return "warning-row";
+      } else if (row.excep == 2) {
+        return "remind-row";
       }
       return "";
+    },
+    // 鍒涘缓鍐嶆闅忚鏈嶅姟
+    setupsubtask() {
+      this.$refs["zcform"].validate((valid) => {
+        if (valid) {
+          this.zcform.remark =
+            this.zcform.remark + "銆�" + this.getCurrentTime() + "銆�";
+          let form = structuredClone(this.zcform);
+          form.visitTime = this.formatTime(form.date1);
+          form.finishtime = "";
+          if (form.resource) {
+            if (form.resource == 2) {
+              form.serviceType = 13;
+            }
+          } else {
+            this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡");
+          }
+          form.id = null;
+          form.sendstate = 2;
+          form.preachform = form.preachformson;
+          form.longTask = 0;
+          addserviceSubtask(form).then((res) => {
+            if (res.code == 200) {
+              this.$modal.msgSuccess("鍒涘缓鎴愬姛");
+            } else {
+              this.$modal.msgError("鍒涘缓澶辫触");
+            }
+            this.dialogFormVisible = false;
+          });
+        }
+      });
+    },
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+      const hours = String(now.getHours()).padStart(2, "0");
+      const minutes = String(now.getMinutes()).padStart(2, "0");
+      const seconds = String(now.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
     },
   },
 };
@@ -1386,6 +2163,9 @@
 }
 ::v-deep.el-table .warning-row {
   background: #eec4c4;
+}
+::v-deep.el-table .remind-row {
+  background: #fcf5aa;
 }
 
 .documentf {
@@ -1466,10 +2246,12 @@
   }
 }
 ::v-deep.leftvlue .el-card__body {
-  background: #d0e9fd;
+  background: #f2f8ff;
+  color: #324a9b;
 }
 ::v-deep.leftvlue .el-card__body:hover {
-  background: #8dc8f8;
+  background: #3664d9;
+  color: #fff;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 ::v-deep.errleftvlue .el-card__body {
@@ -1479,12 +2261,16 @@
   background: #f88d96;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
+::v-deep.jgleftvlue .el-card__body:hover {
+  background: #f7f075;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
 
 ::v-deep.ysfleftvlue .el-card__body {
   background: #d0fdd8;
 }
 ::v-deep.ysfleftvlue .el-card__body:hover {
-  background: #8df8a4;
+  background: #0abc54;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
 .button-bb {
@@ -1509,7 +2295,7 @@
   color: #ffffff;
 }
 .button-zx {
-  background: #4fabe9;
+  background: #324a9b;
   padding: 5px;
   border-radius: 1px;
   color: #ffffff;
@@ -1520,11 +2306,71 @@
     font-size: 24px;
   }
 }
+.purple-button {
+  background-color: #7e22ce;
+  border-color: #7e22ce;
+  color: #fff;
+}
 
+.purple-button:hover,
+.purple-button:focus {
+  background-color: #9333ea;
+  border-color: #9333ea;
+}
+
+.purple-button:active {
+  background-color: #6b21a8;
+  border-color: #6b21a8;
+}
+.button-textxga {
+  color: #de7897;
+}
+.purple-button.is-disabled {
+  background-color: #d8b4fe;
+  border-color: #d8b4fe;
+  opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+.statistics-tooltip {
+  background: #ffffff !important;
+  color: #1976d2 !important;
+  border: 1px solid #bbdefb !important;
+  border-radius: 8px !important;
+  padding: 10px 14px !important;
+  font-size: 13px !important;
+  line-height: 1.6 !important;
+  box-shadow: 0 4px 12px rgba(25, 118, 210, 0.15) !important;
+}
+.statistics-tooltip .popper__arrow {
+  border-bottom-color: #bbdefb !important;
+}
+
+.statistics-tooltip .popper__arrow::after {
+  border-bottom-color: #ffffff !important;
+}
 // 閫夐」瀛椾綋鏀惧ぇ
 // ::v-deep.el-checkbox-group {
 //   span {
 //     font-size: 24px;
 //   }
 // }
+.filter-warning {
+  margin-top: 8px;
+  padding: 10px 14px;
+  background: #fff7e6;
+  border: 1px solid #ffe58f;
+  border-radius: 6px;
+  color: #d46b08;
+  font-size: 18px;
+  line-height: 1.6;
+  display: flex;
+  align-items: flex-start;
+  gap: 6px;
+}
+
+.filter-warning .el-icon-warning-outline {
+  font-size: 16px;
+  color: #faad14;
+  flex-shrink: 0;
+  margin-top: 2px;
+}
 </style>

--
Gitblit v1.9.3