From 23f74bc3f782d183f66a08bd8ce4790cc61f4e61 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 05 九月 2025 14:50:24 +0800
Subject: [PATCH] 测试完成

---
 src/api/AiCentre/index.js                                  |    2 
 src/views/index.vue                                        |  175 +
 src/views/followvisit/zbAgain/index.vue                    |    4 
 e -i HEAD~1                                                |    0 
 src/views/patient/patient/outpatient.vue                   |  347 ++++
 src/views/knowledge/questionnaire/compilequer/index.vue    |   39 
 .gitconfig                                                 |    3 
 src/views/patient/propaganda/QuestionnaireTask.vue         |    1 
 et --hard HEAD@{1}                                         |  559 +++++++
 src/views/followvisit/record/detailpage/index.vue          | 1202 ++++++++++-----
 src/views/followvisit/record/detailpage/MergeAndModify.vue |  449 +++++
 src/components/CallButton/index.vue                        |    4 
 src/views/followvisit/discharge/outpatientService.vue      |    5 
 src/layout/components/Sidebar/SidebarItem.vue              |    1 
 src/api/AiCentre/external.js                               |   10 
 src/utils/sipService-cs.js                                 |    2 
 src/views/followvisit/tasklist/index.vue                   |    6 
 h origin --force --all                                     |  258 +++
 src/store/modules/user.js                                  |    4 
 src/views/followvisit/again/index.vue                      |    5 
 src/utils/sipService.js                                    |    2 
 src/views/knowledge/education/index.vue                    |    2 
 src/assets/order/example.mp3                               |    0 
 src/utils/request.js                                       |    2 
 src/views/followvisit/record/physical/index.vue            |    1 
 src/api/AiCentre/satisfactionse.js                         |    0 
 src/views/login.vue                                        |    1 
 src/views/sfstatistics/percentage/index.vue                |  988 ++++++++++++
 e -i HEAD~7                                                |  442 +++++
 src/views/followvisit/discharge/index.vue                  |    4 
 30 files changed, 3,920 insertions(+), 598 deletions(-)

diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 0000000..084d239
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,3 @@
+[user]
+    name = WXL (wul)
+    email = wl_5969728@163.com
\ No newline at end of file
diff --git a/e -i HEAD~1 b/e -i HEAD~1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/e -i HEAD~1
diff --git a/e -i HEAD~7 b/e -i HEAD~7
new file mode 100644
index 0000000..8f99b67
--- /dev/null
+++ b/e -i HEAD~7
@@ -0,0 +1,442 @@
+ac8b123 - WXL (wul) <wl_5969728@163.com> : 娴嬭瘯瀹屾垚
+cd51caf - 鍚撮緳 <wl_5969728@163.com> : 娴嬭瘯瀹屾垚
+b685449 - WXL (wul) <wl_5969728@163.com> : 娴嬭瘯瀹屾垚
+8220a01 - WXL (wul) <wl_5969728@163.com> : 娴嬭瘯瀹屾垚
+488008e - WXL <wl_5969728@163.com> : 浣犵殑鎻愪氦淇℃伅
+9a164d2 - WXL <wl_5969728@163.com> : 浣犵殑鎻愪氦淇℃伅
+9403890 - 鍚撮緳 <wl_5969728@163.com> : 娴嬭瘯瀹屾垚
+022e803 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4898664 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+337fb92 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a7a20b2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6f1e7a6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5fba330 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+209b2f7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+53f4f0a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2eff945 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b6c854d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ec2f429 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c1f1ecb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7449ee9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9ed874d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6253746 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5fb8598 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+aa06424 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5733abb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9668152 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f06ac34 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+20cd2de - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+fe379fd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9cc3dcf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3ae495d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+dafbb90 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+665ac63 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9a5dd25 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+880e036 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e10381f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c7c591d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+af3ff15 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+36d1334 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a22820c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f3f7256 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+84e20d0 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+572a624 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a5bc95e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+be764ba - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e46bb66 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8ed125f - WXL <1785969728@qq.com> : 缁熻瀹屾垚
+37d2ba3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+45f9797 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0e3739a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+54489da - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+303d443 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5a8e93d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4413b46 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0529f31 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+08c27c1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6d7cd13 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8e71817 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b7092c2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bc241c4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5e17454 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+186b271 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6535680 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6be4939 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+400d13d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3877190 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+78f514b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+fecb2f5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4395f0d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+327d234 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+56b8443 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8d0f7fc - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+38c9042 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7d47700 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+273e2fa - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+401c835 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+60e5b16 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6e54a66 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ee8f1a0 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5f3691d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4b60348 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+418e3a7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4c9eab7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+15e42d9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9f5b4e2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+99a916e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+abde816 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+81ffbda - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+935e93f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b73b5dd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2daa54c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+073edc9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+838d8b5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3fd01fa - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+88481a3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+12eb16c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+083ae82 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+36b7179 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+03a3eff - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2b1cfea - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ff99a9b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+cf2c2a9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a77752e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3bb35f1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b0dd238 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+57a7537 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+83d8322 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ee1d4af - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bcf3cae - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d5f7da9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5acc6d2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+355bbb7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a3d2f84 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ee31f47 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bc99b53 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+84b1d28 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bfce8d1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+44d24a2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+17edb0e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+891f159 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5f4c59e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4f3692a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+321891f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3b8d057 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+50873f4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ec64a69 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8aa0592 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a5faf6e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f6bc6ed - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+46784b2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e48362d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f4e079f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+dea82b7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4cd2bfd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7cfedaa - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0c2a0bd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+48e96f3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+98589bb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+fc63b5b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+981fbdd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6de02b3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9896138 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+aca3443 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1a090a4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8c79267 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4a7648d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+09a1bd5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4492ab0 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+eef0168 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+080186b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0a4cc3c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1cb1fbf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3dcfdb6 - WXL <1785969728@qq.com> : 涓芥按鎻愪氦
+77fb64c - WXL <1785969728@qq.com> : 鏂板崕鎻愪氦
+9507541 - WXL <1785969728@qq.com> : 鏃犻敗鎻愪氦
+07e07d6 - WXL <1785969728@qq.com> : 鏂板崕鎻愪氦
+b26c48a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c1139d1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b1d81d0 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ae117f0 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5dc9d1b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9a1a82e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+294e513 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+007d388 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bf6643a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2a39af9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0c26cb5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+196465c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9a9bd52 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7611c86 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b557dde - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+021f489 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+df311bf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7fca01a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a7c11f4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f2d3945 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f1d0ce1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b229d5e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0a9c173 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6f35ca7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b10795e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+cdba63e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+83598fa - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9da8c98 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+39bb435 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2fe94c2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7e1ced1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+476569c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+83898e6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2c4c416 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b5a56d5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2073439 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5c35457 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4e6c841 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d27e3ad - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9ff0d92 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a49ce34 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+88d423c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+df59cae - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+44fe7b7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7eaee92 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+aa055fa - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d03829b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a346cfb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8dcf298 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c73a2c3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c4f2875 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b50917f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+62bfa86 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0733833 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+09b701d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+adf7c94 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9bc2723 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+720f7c4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8904734 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8aca823 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d1367a2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1b7eb08 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+fe7f65e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+77a9385 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+17b041e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e13d441 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ad0ecac - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9201094 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d96a756 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1811ac2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a9a1a5c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bac13bc - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+41b1f52 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2599fae - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8ec6407 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3d50e2c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+2c9ddeb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+dad71d3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+40bdf0b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+841b389 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b5f603e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a4dff39 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6b6cc07 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b14bdee - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e717068 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+bc8e3ab - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8f7984b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9f4da36 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+76196fb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+49299bb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+452e7fb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+193b6ba - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+96915c5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b09476a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0e4451c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+cc73ea5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+df21bfb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c936ac9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+3207bfd - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+43bb102 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+fdf8b9c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0700456 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1bbfe08 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+814116f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e60efcf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9d01523 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a46f200 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1e78fbf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+387d9eb - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+245a920 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f77e656 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1f644c6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9955d35 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+76c3072 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4fffa66 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+0c80816 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8d2e62d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1be7d1d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+46c0208 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+253d66f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1589350 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+247854b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b032588 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e5f6689 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+43988e7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b33fce1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+968d62e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f9e7074 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f488fea - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+75f1a2d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f357f41 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+711c995 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+90610c8 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5041f08 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+6bc5561 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+d811436 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a85d70f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+628fd01 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e7d8000 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+48f86b3 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4e7be54 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4e9179c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+49fcdb7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5d6b3e5 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+998b86e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+1f7e676 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e6af7e6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f6cedc2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+97eaf47 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+9eec698 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e4f0f4a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+257f46b - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5c559f7 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b2278ee - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+5339f63 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c437204 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4065fe2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e014c6f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+47efee4 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4dc66a6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+7d77cff - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+554cfce - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+4bc27ca - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+c1857ba - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ddd5408 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f4dcb9c - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+f3bf996 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+b5c6bd9 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+cd3f1d6 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e98f65f - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+ca4592d - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+e8fb5c1 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+a46348a - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+32d69fc - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+412ecc2 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8ec0ecf - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+399367e - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+8f4cb95 - WXL <1785969728@qq.com> : 娴嬭瘯瀹屾垚
+da407d5 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+ca2d35a - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+d84cde7 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+59953d5 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+cf9259c - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+7992520 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+59272d9 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+ad70f14 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+3b774a1 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+f93cb40 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+2ef938e - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+0d74436 - WXL <1785969728@qq.com> : 鎸囨爣瀹屾垚
+d94d00d - WXL <1785969728@qq.com> : 闅忚棰樺簱瀹屾垚
+4e32f11 - WXL <1785969728@qq.com> : 瀹屾垚
+04332cb - WXL <1785969728@qq.com> : 瀹屾垚
+dc3d15d - WXL <1785969728@qq.com> : 闅忚棰樺簱瀹屾垚
+c50a8b1 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+3b7c66d - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+0b750c8 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+6b39414 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+0d95833 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+8399d18 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+32cb501 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+8a980bd - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+ea19bff - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+d28d837 - WXL <1785969728@qq.com> : 闅忚銆佸璇婂鏌ャ�佷綋妫�閫氱煡銆侀棶鍗峰垪琛�
+b509c45 - WXL <1785969728@qq.com> : 闅忚銆佸璇婂鏌ャ�佷綋妫�閫氱煡銆侀棶鍗峰垪琛�
+58f5620 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+ac84e78 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+be170d2 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+40e3b74 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+42419e9 - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+6d3e75d - WXL <1785969728@qq.com> : 鎻愪氦淇℃伅
+f76f423 - WXL <1785969728@qq.com> : 11
+2aecb22 - heimawl <1785969728@qq.com> : 11
+d29df60 - heimawl <1785969728@qq.com> : 11
+f719b59 - heimawl <1785969728@qq.com> : 11
+351fc95 - heimawl <1785969728@qq.com> : 11
+66223fb - heimawl <1785969728@qq.com> : 11
+40df27a - heimawl <1785969728@qq.com> : 11
+c81b2f6 - heimawl <1785969728@qq.com> : 11
+2d2377d - heimawl <1785969728@qq.com> : 瀹屾垚缁熻妯″潡鍩烘湰鎼缓
+b77e396 - heimawl <1785969728@qq.com> : 11
+54d166e - heimawl <1785969728@qq.com> : 11
+a879953 - heimawl <1785969728@qq.com> : 11
+8cdcc9b - heimawl <1785969728@qq.com> : 11
+958f682 - heimawl <1785969728@qq.com> : 澶囨敞淇℃伅
+a91ca68 - heimawl <1785969728@qq.com> : 鏇存柊涓婚
+eb29d75 - heimawl <1785969728@qq.com> : 瀹屾垚璇濇湳搴撱�佹寚鏍囧簱銆佹ā鏉垮簱銆侀〉闈㈠強鍏跺瓙椤甸潰鎼缓
+363e9da - heimawl <1785969728@qq.com> : 鏇存敼缂栬緫鍣ㄦ牱寮�
+12cf420 - heimawl <1785969728@qq.com> : 閰嶇疆浠g爜缂栬緫渚濊禆
+39ad2d8 - heimawl <1785969728@qq.com> : 11
+696e74d - heimawl <1785969728@qq.com> : 11
+0db1337 - heimawl <1785969728@qq.com> : 鏅鸿兘涓績椤垫洿鏂�
+a1e3f22 - heimawl <1785969728@qq.com> : 浜岀淮鐮侀瑙堥〉
+bd5fbcf - heimawl <1785969728@qq.com> : 11
+55b71c3 - heimawl <1785969728@qq.com> : 瀹屾垚閮ㄥ垎鎮h�呮暟鎹氦浜抋pi灏佽锛屽垱寤篴i鐭ヨ瘑搴撶浉鍏宠矾鐢遍〉闈�
+d9a8691 - heimawl <1785969728@qq.com> : 瀹屾垚鏍囩绠$悊妯″潡鏁版嵁浜や簰
+92301a6 - heimawl <1785969728@qq.com> : 娴嬭瘯鎺ュ彛
+f98059f - heimawl <1785969728@qq.com> : 瀹屾垚棰樺簱绠$悊妯″潡鎼缓
+26ac0c2 - heimawl <1785969728@qq.com> : 灏佽api鎺ュ彛锛屽鏁欑鐞嗘ā鍧楁惌寤�
+d9cbb5e - heimawl <1785969728@qq.com> : 瀹屾垚鏍囩绠$悊妯″潡鎼缓
+3ddea12 - heimawl <1785969728@qq.com> : 琛ュ厖闂嵎绠$悊缂栬緫椤甸潰甯冨眬
+b850b4c - heimawl <1785969728@qq.com> : 瀹屾垚棰樺簱绠$悊椤甸潰璺敱璁剧疆锛岄棶鍗锋煡鐪嬮〉闈㈠竷灞�
+8d7b4ba - heimawl <1785969728@qq.com> : 瀹屾垚瀹f暀銆侀棶鍗疯矾鐢辫缃�侀棶鍗锋ā鍧楅〉闈㈠強鍏舵坊鍔�/淇敼椤甸潰閮ㄥ垎甯冨眬寮�鍙�
+cb0e31a - heimawl <1785969728@qq.com> : 浼樺寲椤甸潰涓婚
+792c283 - heimawl <1785969728@qq.com> : 瀹屾垚涓婁紶鏂囦欢鍚勬楠ら〉闈㈠強鏍囩绠$悊妯″潡鍒濇鎼缓
+61cb6f1 - heimawl <1785969728@qq.com> : 瀹夎echarts5.4.0渚濊禆锛屽畬鏁存偅鑰呯鐞嗕富椤甸潰鍙婂叾涓汉淇℃伅鍙婇檮灞為〉闈㈠熀纭�寮�鍙�
+6e7acd5 - heimawl <1785969728@qq.com> : 缁勪欢搴撴暣鐞嗭紝渚濊禆瀹夎銆乪xcel瀵煎叆瀵煎叆鏂规硶鏁寸悊
+4de052a - heimawl <1785969728@qq.com> : 鍚撮緳鍒嗘敮鍒濆鎻愪氦
+8b50c04 - yxh <172933527@qq.com> : yxh
+66db2bb - yxh <172933527@qq.com> : yxh
+4fd8412 - yxh <172933527@qq.com> : yxh
+a6f4edd - yxh <172933527@qq.com> : Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/smartor-web
+cfd89f9 - yxh <172933527@qq.com> : yxh
+a742ab9 - qianxj <qianxj15@sina.com> : hide id
+58c7cea - yxh <172933527@qq.com> : yxh
+5bedda9 - yxh <172933527@qq.com> : yxh
+acd7802 - yxh <172933527@qq.com> : Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/smartor-web
+af1f597 - yxh <172933527@qq.com> : yxh
+79f2ded - yxh <172933527@qq.com> : yxh
+7fac76a - qianxj <qianxj15@sina.com> : Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/smartor-web
+d49d271 - qianxj <qianxj15@sina.com> : update svytopic
+76bd95c - yxh <172933527@qq.com> : Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/smartor-web
+c57d049 - qianxj <qianxj15@sina.com> : update svytopic
+72c05d4 - qianxj <qianxj15@sina.com> : update svytopic
+a8c0f41 - qianxj <qianxj15@sina.com> : update svytopic
+164feee - qianxj <qianxj15@sina.com> : update svytopic
+2e5dd70 - qianxj <qianxj15@sina.com> : update topic
+eb692fd - qianxj <qianxj15@sina.com> : update topic
+d274e9d - qianxj <qianxj15@sina.com> : qianxj
+a9ade10 - qianxj <qianxj15@sina.com> : update
+2b1c001 - yxh <172933527@qq.com> : yxh
+1bd342d - qianxj <qianxj15@sina.com> : update1
+26b67ee - qianxj <qianxj15@sina.com> : update patarchive
+3db1d85 - qianxj <qianxj15@sina.com> : update
+110790e - qianxj <qianxj15@sina.com> : update patarchive
+57b6bce - qianxj <qianxj15@sina.com> : update face
+93cff80 - yxh <172933527@qq.com> : yxh
+aad1dc2 - yxh <172933527@qq.com> : yxh
+0a31e0b - yxh <172933527@qq.com> : yxh
+5ce577d - yxh <172933527@qq.com> : yxh
+f65cbb4 - yxh <172933527@qq.com> : yxh
+b83120c - yxh <172933527@qq.com> : yxh
+878850a - yxh <172933527@qq.com> : yxh
+877300e - qianxj <qianxj15@sina.com> : update step1
+8b4c8fc - qianxj <qianxj15@sina.com> : update title
+621c4bb - yxh <172933527@qq.com> : 绗竴娆′慨鏀�
\ No newline at end of file
diff --git "a/et --hard HEAD@\1731\175" "b/et --hard HEAD@\1731\175"
new file mode 100644
index 0000000..153194b
--- /dev/null
+++ "b/et --hard HEAD@\1731\175"
@@ -0,0 +1,559 @@
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{0}: rebase (finish): returning to refs/heads/lishui-Smartor
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{1}: rebase (start): checkout HEAD~5
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{2}: reset: moving to origin/lishui-Smartor
+a65bf99 HEAD@{3}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor
+a65bf99 HEAD@{4}: commit (amend): 娴嬭瘯瀹屾垚
+95948fe HEAD@{5}: rebase (continue) (edit): 娴嬭瘯瀹屾垚
+745b9af HEAD@{6}: commit (amend): 娴嬭瘯瀹屾垚
+6f917a9 HEAD@{7}: rebase (continue) (edit): 娴嬭瘯瀹屾垚
+960960c HEAD@{8}: commit (amend): 浣犵殑鎻愪氦淇℃伅
+488008e HEAD@{9}: rebase: fast-forward
+9a164d2 HEAD@{10}: rebase (start): checkout HEAD~5
+01e7b73 HEAD@{11}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor
+01e7b73 HEAD@{12}: commit (amend): 娴嬭瘯瀹屾垚
+748b8c4 HEAD@{13}: rebase (continue) (edit): 娴嬭瘯瀹屾垚
+ad098d5 HEAD@{14}: commit (amend): 娴嬭瘯瀹屾垚
+8220a01 HEAD@{15}: rebase: fast-forward
+488008e HEAD@{16}: rebase: fast-forward
+9a164d2 HEAD@{17}: rebase: fast-forward
+9403890 HEAD@{18}: rebase: fast-forward
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{19}: rebase (start): checkout HEAD~5
+b685449 HEAD@{20}: rebase (abort): updating HEAD
+b685449 HEAD@{21}: rebase (abort): updating HEAD
+b685449 HEAD@{22}: commit: 娴嬭瘯瀹屾垚
+8220a01 HEAD@{23}: commit: 娴嬭瘯瀹屾垚
+488008e HEAD@{24}: commit: 浣犵殑鎻愪氦淇℃伅
+9a164d2 HEAD@{25}: commit: 浣犵殑鎻愪氦淇℃伅
+9403890 HEAD@{26}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor
+9403890 HEAD@{27}: rebase (continue) (finish): refs/heads/lishui-Smartor onto 022e8035e5143328ba01d76a74ea5f86e5c994f0
+9403890 HEAD@{28}: commit: 娴嬭瘯瀹屾垚
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{29}: checkout: moving from lishui-sf to lishui-Smartor
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{30}: checkout: moving from lishui-Smartor to lishui-sf
+022e803 (HEAD -> lishui-Smartor, origin/lishui-Smartor, lishui-sf) HEAD@{31}: commit: 娴嬭瘯瀹屾垚
+4898664 HEAD@{32}: checkout: moving from wuxi-smartor to lishui-Smartor
+b7f7f38 (wuxi-smartor) HEAD@{33}: checkout: moving from lishui-Smartor to wuxi-smartor
+4898664 HEAD@{34}: commit: 娴嬭瘯瀹屾垚
+337fb92 HEAD@{35}: commit: 娴嬭瘯瀹屾垚
+a7a20b2 HEAD@{36}: checkout: moving from HeNan-Smartor to lishui-Smartor
+56d56f3 (HeNan-Smartor) HEAD@{37}: checkout: moving from lishui-Smartor to HeNan-Smartor
+a7a20b2 HEAD@{38}: commit: 娴嬭瘯瀹屾垚
+6f1e7a6 HEAD@{39}: commit: 娴嬭瘯瀹屾垚
+5fba330 HEAD@{40}: commit: 娴嬭瘯瀹屾垚
+209b2f7 HEAD@{41}: commit: 娴嬭瘯瀹屾垚
+53f4f0a HEAD@{42}: checkout: moving from wuxi-smartor to lishui-Smartor
+b7f7f38 (wuxi-smartor) HEAD@{43}: commit: 娴嬭瘯瀹屾垚
+e353f0e (origin/wuxi-smartor) HEAD@{44}: checkout: moving from lishui-Smartor to wuxi-smartor
+53f4f0a HEAD@{45}: commit: 娴嬭瘯瀹屾垚
+2eff945 HEAD@{46}: commit: 娴嬭瘯瀹屾垚
+b6c854d HEAD@{47}: checkout: moving from HeNan-Smartor to lishui-Smartor
+56d56f3 (HeNan-Smartor) HEAD@{48}: commit: 娴嬭瘯瀹屾垚
+b6c854d HEAD@{49}: checkout: moving from lishui-Smartor to HeNan-Smartor
+b6c854d HEAD@{50}: commit: 娴嬭瘯瀹屾垚
+ec2f429 HEAD@{51}: commit: 娴嬭瘯瀹屾垚
+c1f1ecb HEAD@{52}: checkout: moving from wuxi-smartor to lishui-Smartor
+e353f0e (origin/wuxi-smartor) HEAD@{53}: commit: 娴嬭瘯瀹屾垚
+e580006 HEAD@{54}: commit: 娴嬭瘯瀹屾垚
+ffdeb04 HEAD@{55}: checkout: moving from lishui-Smartor to wuxi-smartor
+c1f1ecb HEAD@{56}: checkout: moving from wuxi-smartor to lishui-Smartor
+ffdeb04 HEAD@{57}: commit: 娴嬭瘯瀹屾垚
+55c665c HEAD@{58}: checkout: moving from lishui-Smartor to wuxi-smartor
+c1f1ecb HEAD@{59}: checkout: moving from wuxi-smartor to lishui-Smartor
+55c665c HEAD@{60}: checkout: moving from lishui-Smartor to wuxi-smartor
+c1f1ecb HEAD@{61}: commit: 娴嬭瘯瀹屾垚
+7449ee9 HEAD@{62}: checkout: moving from wuxi-smartor to lishui-Smartor
+55c665c HEAD@{63}: commit: 娴嬭瘯瀹屾垚
+f93c1fb HEAD@{64}: checkout: moving from lishui-Smartor to wuxi-smartor
+7449ee9 HEAD@{65}: checkout: moving from wuxi-smartor to lishui-Smartor
+f93c1fb HEAD@{66}: commit: 娴嬭瘯瀹屾垚
+b3b10f3 HEAD@{67}: checkout: moving from lishui-Smartor to wuxi-smartor
+7449ee9 HEAD@{68}: checkout: moving from wuxi-smartor to lishui-Smartor
+b3b10f3 HEAD@{69}: commit: 娴嬭瘯瀹屾垚
+30e7ca1 HEAD@{70}: checkout: moving from lishui-Smartor to wuxi-smartor
+7449ee9 HEAD@{71}: checkout: moving from wuxi-smartor to lishui-Smartor
+30e7ca1 HEAD@{72}: checkout: moving from lishui-Smartor to wuxi-smartor
+7449ee9 HEAD@{73}: commit: 娴嬭瘯瀹屾垚
+9ed874d HEAD@{74}: checkout: moving from wuxi-smartor to lishui-Smartor
+30e7ca1 HEAD@{75}: checkout: moving from lishui-Smartor to wuxi-smartor
+9ed874d HEAD@{76}: checkout: moving from lishui-Smartor to lishui-Smartor
+9ed874d HEAD@{77}: commit: 娴嬭瘯瀹屾垚
+6253746 HEAD@{78}: checkout: moving from wuxi-smartor to lishui-Smartor
+30e7ca1 HEAD@{79}: commit: 娴嬭瘯瀹屾垚
+8b120ce HEAD@{80}: checkout: moving from lishui-Smartor to wuxi-smartor
+6253746 HEAD@{81}: checkout: moving from wuxi-smartor to lishui-Smartor
+8b120ce HEAD@{82}: commit: 娴嬭瘯瀹屾垚
+d846a58 HEAD@{83}: checkout: moving from lishui-Smartor to wuxi-smartor
+6253746 HEAD@{84}: commit: 娴嬭瘯瀹屾垚
+5fb8598 HEAD@{85}: checkout: moving from master to lishui-Smartor
+f08b133 (origin/master, origin/HEAD, master) HEAD@{86}: checkout: moving from lishui-Smartor to master
+5fb8598 HEAD@{87}: checkout: moving from master to lishui-Smartor
+f08b133 (origin/master, origin/HEAD, master) HEAD@{88}: commit: 娴嬭瘯瀹屾垚
+7c5b7bd HEAD@{89}: commit: 娴嬭瘯瀹屾垚
+a52f35a HEAD@{90}: checkout: moving from lishui-Smartor to master
+5fb8598 HEAD@{91}: commit: 娴嬭瘯瀹屾垚
+aa06424 HEAD@{92}: checkout: moving from master to lishui-Smartor
+a52f35a HEAD@{93}: checkout: moving from lishui-Smartor to master
+aa06424 HEAD@{94}: checkout: moving from master to lishui-Smartor
+a52f35a HEAD@{95}: checkout: moving from lishui-Smartor to master
+aa06424 HEAD@{96}: commit: 娴嬭瘯瀹屾垚
+5733abb HEAD@{97}: checkout: moving from master to lishui-Smartor
+a52f35a HEAD@{98}: commit: 娴嬭瘯瀹屾垚
+246ad67 HEAD@{99}: checkout: moving from lishui-Smartor to master
+5733abb HEAD@{100}: checkout: moving from wuxi-smartor to lishui-Smartor
+d846a58 HEAD@{101}: commit: 娴嬭瘯瀹屾垚
+ba57b51 HEAD@{102}: checkout: moving from lishui-Smartor to wuxi-smartor
+5733abb HEAD@{103}: commit: 娴嬭瘯瀹屾垚
+9668152 HEAD@{104}: checkout: moving from wuxi-smartor to lishui-Smartor
+ba57b51 HEAD@{105}: commit: 娴嬭瘯瀹屾垚
+fe70ca5 HEAD@{106}: checkout: moving from lishui-Smartor to wuxi-smartor
+9668152 HEAD@{107}: commit: 娴嬭瘯瀹屾垚
+f06ac34 HEAD@{108}: checkout: moving from wuxi-smartor to lishui-Smartor
+fe70ca5 HEAD@{109}: commit: 娴嬭瘯瀹屾垚
+510b433 HEAD@{110}: checkout: moving from lishui-Smartor to wuxi-smartor
+f06ac34 HEAD@{111}: commit: 娴嬭瘯瀹屾垚
+20cd2de HEAD@{112}: checkout: moving from wuxi-smartor to lishui-Smartor
+510b433 HEAD@{113}: commit: 娴嬭瘯瀹屾垚
+e946f91 HEAD@{114}: checkout: moving from lishui-Smartor to wuxi-smartor
+20cd2de HEAD@{115}: commit: 娴嬭瘯瀹屾垚
+fe379fd HEAD@{116}: checkout: moving from wuxi-smartor to lishui-Smartor
+e946f91 HEAD@{117}: commit: 娴嬭瘯瀹屾垚
+952ce53 HEAD@{118}: checkout: moving from lishui-Smartor to wuxi-smartor
+fe379fd HEAD@{119}: checkout: moving from wuxi-smartor to lishui-Smartor
+952ce53 HEAD@{120}: checkout: moving from lishui-Smartor to wuxi-smartor
+fe379fd HEAD@{121}: commit: 娴嬭瘯瀹屾垚
+9cc3dcf HEAD@{122}: checkout: moving from wuxi-smartor to lishui-Smartor
+952ce53 HEAD@{123}: commit: 娴嬭瘯瀹屾垚
+d9004dd HEAD@{124}: checkout: moving from lishui-Smartor to wuxi-smartor
+9cc3dcf HEAD@{125}: commit: 娴嬭瘯瀹屾垚
+3ae495d HEAD@{126}: checkout: moving from wuxi-smartor to lishui-Smartor
+d9004dd HEAD@{127}: commit: 娴嬭瘯瀹屾垚
+a90f11d HEAD@{128}: commit: 娴嬭瘯瀹屾垚
+125529d HEAD@{129}: checkout: moving from lishui-Smartor to wuxi-smartor
+3ae495d HEAD@{130}: commit: 娴嬭瘯瀹屾垚
+dafbb90 HEAD@{131}: checkout: moving from wuxi-smartor to lishui-Smartor
+125529d HEAD@{132}: commit: 娴嬭瘯瀹屾垚
+ce16687 HEAD@{133}: checkout: moving from lishui-Smartor to wuxi-smartor
+dafbb90 HEAD@{134}: checkout: moving from wuxi-smartor to lishui-Smartor
+ce16687 HEAD@{135}: commit: 娴嬭瘯瀹屾垚
+039c34d HEAD@{136}: checkout: moving from lishui-Smartor to wuxi-smartor
+dafbb90 HEAD@{137}: checkout: moving from wuxi-smartor to lishui-Smartor
+039c34d HEAD@{138}: commit: 娴嬭瘯瀹屾垚
+51102f4 HEAD@{139}: checkout: moving from lishui-Smartor to wuxi-smartor
+dafbb90 HEAD@{140}: commit: 娴嬭瘯瀹屾垚
+665ac63 HEAD@{141}: commit: 娴嬭瘯瀹屾垚
+9a5dd25 HEAD@{142}: commit: 娴嬭瘯瀹屾垚
+880e036 HEAD@{143}: commit: 娴嬭瘯瀹屾垚
+e10381f HEAD@{144}: commit: 娴嬭瘯瀹屾垚
+c7c591d HEAD@{145}: commit: 娴嬭瘯瀹屾垚
+af3ff15 HEAD@{146}: checkout: moving from wuxi-smartor to lishui-Smartor
+51102f4 HEAD@{147}: checkout: moving from lishui-Smartor to wuxi-smartor
+af3ff15 HEAD@{148}: commit: 娴嬭瘯瀹屾垚
+36d1334 HEAD@{149}: checkout: moving from wuxi-smartor to lishui-Smartor
+51102f4 HEAD@{150}: commit: 娴嬭瘯瀹屾垚
+d4744cf HEAD@{151}: checkout: moving from lishui-Smartor to wuxi-smartor
+36d1334 HEAD@{152}: checkout: moving from wuxi-smartor to lishui-Smartor
+d4744cf HEAD@{153}: commit: 娴嬭瘯瀹屾垚
+e750691 HEAD@{154}: checkout: moving from lishui-Smartor to wuxi-smartor
+36d1334 HEAD@{155}: commit: 娴嬭瘯瀹屾垚
+a22820c HEAD@{156}: checkout: moving from wuxi-smartor to lishui-Smartor
+e750691 HEAD@{157}: commit: 娴嬭瘯瀹屾垚
+ef60bc9 HEAD@{158}: commit: 娴嬭瘯瀹屾垚
+f37b479 HEAD@{159}: checkout: moving from lishui-Smartor to wuxi-smartor
+a22820c HEAD@{160}: checkout: moving from wuxi-smartor to lishui-Smartor
+f37b479 HEAD@{161}: commit: 娴嬭瘯瀹屾垚
+547be67 HEAD@{162}: checkout: moving from lishui-Smartor to wuxi-smartor
+a22820c HEAD@{163}: commit: 娴嬭瘯瀹屾垚
+f3f7256 HEAD@{164}: checkout: moving from master to lishui-Smartor
+246ad67 HEAD@{165}: checkout: moving from lishui-Smartor to master
+f3f7256 HEAD@{166}: commit: 娴嬭瘯瀹屾垚
+84e20d0 HEAD@{167}: checkout: moving from master to lishui-Smartor
+246ad67 HEAD@{168}: commit: 娴嬭瘯瀹屾垚
+c97bd0d HEAD@{169}: commit: 娴嬭瘯瀹屾垚
+bdb26dc HEAD@{170}: checkout: moving from lishui-Smartor to master
+84e20d0 HEAD@{171}: checkout: moving from master to lishui-Smartor
+bdb26dc HEAD@{172}: commit: 娴嬭瘯瀹屾垚
+3b6c56e HEAD@{173}: checkout: moving from lishui-Smartor to master
+84e20d0 HEAD@{174}: commit: 娴嬭瘯瀹屾垚
+572a624 HEAD@{175}: checkout: moving from master to lishui-Smartor
+3b6c56e HEAD@{176}: commit: 娴嬭瘯瀹屾垚
+0d18860 HEAD@{177}: checkout: moving from lishui-Smartor to master
+572a624 HEAD@{178}: commit: 娴嬭瘯瀹屾垚
+a5bc95e HEAD@{179}: checkout: moving from wuxi-smartor to lishui-Smartor
+547be67 HEAD@{180}: commit: 娴嬭瘯瀹屾垚
+c4fb353 HEAD@{181}: commit: 娴嬭瘯瀹屾垚
+a398c62 HEAD@{182}: checkout: moving from master to wuxi-smartor
+0d18860 HEAD@{183}: commit: 娴嬭瘯瀹屾垚
+d5806f3 HEAD@{184}: commit (merge): 娴嬭瘯瀹屾垚
+783b99e HEAD@{185}: commit: 娴嬭瘯瀹屾垚
+77a8ca0 HEAD@{186}: checkout: moving from wuxi-smartor to master
+a398c62 HEAD@{187}: commit: 娴嬭瘯瀹屾垚
+98b9fdc HEAD@{188}: commit: 娴嬭瘯瀹屾垚
+9dd3964 HEAD@{189}: checkout: moving from lishui-Smartor to wuxi-smartor
+a5bc95e HEAD@{190}: checkout: moving from wuxi-smartor to lishui-Smartor
+9dd3964 HEAD@{191}: commit: 娴嬭瘯瀹屾垚
+4cf6b25 HEAD@{192}: checkout: moving from lishui-Smartor to wuxi-smartor
+a5bc95e HEAD@{193}: checkout: moving from wuxi-smartor to lishui-Smartor
+4cf6b25 HEAD@{194}: commit: 娴嬭瘯瀹屾垚
+3bab592 HEAD@{195}: checkout: moving from lishui-Smartor to wuxi-smartor
+a5bc95e HEAD@{196}: commit: 娴嬭瘯瀹屾垚
+be764ba HEAD@{197}: checkout: moving from wuxi-smartor to lishui-Smartor
+3bab592 HEAD@{198}: commit: 娴嬭瘯瀹屾垚
+23f920e HEAD@{199}: checkout: moving from lishui-Smartor to wuxi-smartor
+be764ba HEAD@{200}: checkout: moving from wuxi-smartor to lishui-Smartor
+23f920e HEAD@{201}: commit: 娴嬭瘯瀹屾垚
+03d20b4 HEAD@{202}: checkout: moving from lishui-Smartor to wuxi-smartor
+be764ba HEAD@{203}: checkout: moving from wuxi-smartor to lishui-Smartor
+03d20b4 HEAD@{204}: commit: 娴嬭瘯瀹屾垚
+31cbe57 HEAD@{205}: checkout: moving from lishui-Smartor to wuxi-smartor
+be764ba HEAD@{206}: commit: 娴嬭瘯瀹屾垚
+e46bb66 HEAD@{207}: checkout: moving from wuxi-smartor to lishui-Smartor
+31cbe57 HEAD@{208}: checkout: moving from lishui-Smartor to wuxi-smartor
+e46bb66 HEAD@{209}: commit: 娴嬭瘯瀹屾垚
+8ed125f HEAD@{210}: checkout: moving from wuxi-smartor to lishui-Smartor
+31cbe57 HEAD@{211}: commit: 娴嬭瘯瀹屾垚
+66b105c HEAD@{212}: checkout: moving from lishui-Smartor to wuxi-smartor
+8ed125f HEAD@{213}: checkout: moving from wuxi-smartor to lishui-Smartor
+66b105c HEAD@{214}: checkout: moving from lishui-Smartor to wuxi-smartor
+8ed125f HEAD@{215}: commit: 缁熻瀹屾垚
+37d2ba3 HEAD@{216}: checkout: moving from wuxi-smartor to lishui-Smartor
+66b105c HEAD@{217}: checkout: moving from lishui-Smartor to wuxi-smartor
+37d2ba3 HEAD@{218}: commit: 娴嬭瘯瀹屾垚
+45f9797 HEAD@{219}: checkout: moving from wuxi-smartor to lishui-Smartor
+66b105c HEAD@{220}: commit: 娴嬭瘯瀹屾垚
+88cd1b9 HEAD@{221}: checkout: moving from master to wuxi-smartor
+77a8ca0 HEAD@{222}: commit: 娴嬭瘯瀹屾垚
+ddba782 HEAD@{223}: checkout: moving from lishui-Smartor to master
+45f9797 HEAD@{224}: commit: 娴嬭瘯瀹屾垚
+0e3739a HEAD@{225}: commit: 娴嬭瘯瀹屾垚
+54489da HEAD@{226}: commit: 娴嬭瘯瀹屾垚
+303d443 HEAD@{227}: checkout: moving from wuxi-smartor to lishui-Smartor
+88cd1b9 HEAD@{228}: checkout: moving from lishui-Smartor to wuxi-smartor
+303d443 HEAD@{229}: commit: 娴嬭瘯瀹屾垚
+5a8e93d HEAD@{230}: checkout: moving from wuxi-smartor to lishui-Smartor
+88cd1b9 HEAD@{231}: checkout: moving from lishui-Smartor to wuxi-smartor
+5a8e93d HEAD@{232}: commit: 娴嬭瘯瀹屾垚
+4413b46 HEAD@{233}: checkout: moving from wuxi-smartor to lishui-Smartor
+88cd1b9 HEAD@{234}: commit: 娴嬭瘯瀹屾垚
+78fc1cf HEAD@{235}: checkout: moving from lishui-Smartor to wuxi-smartor
+4413b46 HEAD@{236}: checkout: moving from wuxi-smartor to lishui-Smartor
+78fc1cf HEAD@{237}: commit: 娴嬭瘯瀹屾垚
+901206c HEAD@{238}: checkout: moving from lishui-Smartor to wuxi-smartor
+4413b46 HEAD@{239}: commit: 娴嬭瘯瀹屾垚
+0529f31 HEAD@{240}: checkout: moving from wuxi-smartor to lishui-Smartor
+901206c HEAD@{241}: commit: 娴嬭瘯瀹屾垚
+f710fa7 HEAD@{242}: checkout: moving from lishui-Smartor to wuxi-smartor
+0529f31 HEAD@{243}: commit: 娴嬭瘯瀹屾垚
+08c27c1 HEAD@{244}: checkout: moving from wuxi-smartor to lishui-Smartor
+f710fa7 HEAD@{245}: commit: 娴嬭瘯瀹屾垚
+33c6294 HEAD@{246}: commit: 娴嬭瘯瀹屾垚
+55ee279 HEAD@{247}: checkout: moving from lishui-Smartor to wuxi-smartor
+08c27c1 HEAD@{248}: commit: 娴嬭瘯瀹屾垚
+6d7cd13 HEAD@{249}: checkout: moving from wuxi-smartor to lishui-Smartor
+55ee279 HEAD@{250}: commit: 娴嬭瘯瀹屾垚
+136b920 HEAD@{251}: checkout: moving from lishui-Smartor to wuxi-smartor
+6d7cd13 HEAD@{252}: commit: 娴嬭瘯瀹屾垚
+8e71817 HEAD@{253}: commit: 娴嬭瘯瀹屾垚
+b7092c2 HEAD@{254}: commit: 娴嬭瘯瀹屾垚
+bc241c4 HEAD@{255}: checkout: moving from master to lishui-Smartor
+ddba782 HEAD@{256}: checkout: moving from lishui-Smartor to master
+bc241c4 HEAD@{257}: commit: 娴嬭瘯瀹屾垚
+5e17454 HEAD@{258}: checkout: moving from master to lishui-Smartor
+ddba782 HEAD@{259}: checkout: moving from lishui-Smartor to master
+5e17454 HEAD@{260}: checkout: moving from master to lishui-Smartor
+ddba782 HEAD@{261}: commit: 娴嬭瘯瀹屾垚
+552e2c4 HEAD@{262}: checkout: moving from lishui-Smartor to master
+5e17454 HEAD@{263}: commit: 娴嬭瘯瀹屾垚
+186b271 HEAD@{264}: checkout: moving from wuxi-smartor to lishui-Smartor
+136b920 HEAD@{265}: checkout: moving from lishui-Smartor to wuxi-smartor
+186b271 HEAD@{266}: commit: 娴嬭瘯瀹屾垚
+6535680 HEAD@{267}: commit: 娴嬭瘯瀹屾垚
+6be4939 HEAD@{268}: commit: 娴嬭瘯瀹屾垚
+400d13d HEAD@{269}: checkout: moving from wuxi-smartor to lishui-Smartor
+136b920 HEAD@{270}: checkout: moving from lishui-Smartor to wuxi-smartor
+400d13d HEAD@{271}: commit: 娴嬭瘯瀹屾垚
+3877190 HEAD@{272}: checkout: moving from wuxi-smartor to lishui-Smartor
+136b920 HEAD@{273}: commit: 娴嬭瘯瀹屾垚
+55c064e HEAD@{274}: checkout: moving from lishui-Smartor to wuxi-smartor
+3877190 HEAD@{275}: checkout: moving from wuxi-smartor to lishui-Smartor
+55c064e HEAD@{276}: checkout: moving from lishui-Smartor to wuxi-smartor
+3877190 HEAD@{277}: commit: 娴嬭瘯瀹屾垚
+78f514b HEAD@{278}: checkout: moving from wuxi-smartor to lishui-Smartor
+55c064e HEAD@{279}: commit: 娴嬭瘯瀹屾垚
+2b67e58 HEAD@{280}: checkout: moving from lishui-Smartor to wuxi-smartor
+78f514b HEAD@{281}: commit: 娴嬭瘯瀹屾垚
+fecb2f5 HEAD@{282}: checkout: moving from wuxi-smartor to lishui-Smartor
+2b67e58 HEAD@{283}: commit: 娴嬭瘯瀹屾垚
+91dc8cc HEAD@{284}: checkout: moving from lishui-Smartor to wuxi-smartor
+fecb2f5 HEAD@{285}: checkout: moving from wuxi-smartor to lishui-Smartor
+91dc8cc HEAD@{286}: checkout: moving from lishui-Smartor to wuxi-smartor
+fecb2f5 HEAD@{287}: commit: 娴嬭瘯瀹屾垚
+4395f0d HEAD@{288}: checkout: moving from wuxi-smartor to lishui-Smartor
+91dc8cc HEAD@{289}: commit: 娴嬭瘯瀹屾垚
+6a1bafa HEAD@{290}: checkout: moving from lishui-Smartor to wuxi-smartor
+4395f0d HEAD@{291}: checkout: moving from wuxi-smartor to lishui-Smartor
+6a1bafa HEAD@{292}: commit: 娴嬭瘯瀹屾垚
+d74a76f HEAD@{293}: checkout: moving from lishui-Smartor to wuxi-smartor
+4395f0d HEAD@{294}: commit: 娴嬭瘯瀹屾垚
+327d234 HEAD@{295}: commit: 娴嬭瘯瀹屾垚
+56b8443 HEAD@{296}: checkout: moving from wuxi-smartor to lishui-Smartor
+d74a76f HEAD@{297}: checkout: moving from lishui-Smartor to wuxi-smartor
+56b8443 HEAD@{298}: commit: 娴嬭瘯瀹屾垚
+8d0f7fc HEAD@{299}: commit: 娴嬭瘯瀹屾垚
+38c9042 HEAD@{300}: commit: 娴嬭瘯瀹屾垚
+7d47700 HEAD@{301}: commit: 娴嬭瘯瀹屾垚
+273e2fa HEAD@{302}: commit: 娴嬭瘯瀹屾垚
+401c835 HEAD@{303}: commit: 娴嬭瘯瀹屾垚
+60e5b16 HEAD@{304}: commit: 娴嬭瘯瀹屾垚
+6e54a66 HEAD@{305}: commit: 娴嬭瘯瀹屾垚
+ee8f1a0 HEAD@{306}: commit: 娴嬭瘯瀹屾垚
+5f3691d HEAD@{307}: commit: 娴嬭瘯瀹屾垚
+4b60348 HEAD@{308}: commit: 娴嬭瘯瀹屾垚
+418e3a7 HEAD@{309}: checkout: moving from wuxi-smartor to lishui-Smartor
+d74a76f HEAD@{310}: commit: 娴嬭瘯瀹屾垚
+a022656 HEAD@{311}: checkout: moving from lishui-Smartor to wuxi-smartor
+418e3a7 HEAD@{312}: commit: 娴嬭瘯瀹屾垚
+4c9eab7 HEAD@{313}: commit: 娴嬭瘯瀹屾垚
+15e42d9 HEAD@{314}: checkout: moving from master to lishui-Smartor
+552e2c4 HEAD@{315}: commit: 娴嬭瘯瀹屾垚
+823bd7c HEAD@{316}: checkout: moving from lishui-Smartor to master
+15e42d9 HEAD@{317}: commit: 娴嬭瘯瀹屾垚
+9f5b4e2 HEAD@{318}: checkout: moving from wuxi-smartor to lishui-Smartor
+a022656 HEAD@{319}: commit: 娴嬭瘯瀹屾垚
+9259056 HEAD@{320}: checkout: moving from lishui-Smartor to wuxi-smartor
+9f5b4e2 HEAD@{321}: commit: 娴嬭瘯瀹屾垚
+99a916e HEAD@{322}: commit: 娴嬭瘯瀹屾垚
+abde816 HEAD@{323}: commit: 娴嬭瘯瀹屾垚
+81ffbda HEAD@{324}: checkout: moving from master to lishui-Smartor
+823bd7c HEAD@{325}: commit: 娴嬭瘯瀹屾垚
+84f0f55 HEAD@{326}: checkout: moving from lishui-Smartor to master
+81ffbda HEAD@{327}: checkout: moving from master to lishui-Smartor
+84f0f55 HEAD@{328}: checkout: moving from lishui-Smartor to master
+81ffbda HEAD@{329}: commit: 娴嬭瘯瀹屾垚
+935e93f HEAD@{330}: checkout: moving from master to lishui-Smartor
+84f0f55 HEAD@{331}: checkout: moving from lishui-Smartor to master
+935e93f HEAD@{332}: commit: 娴嬭瘯瀹屾垚
+b73b5dd HEAD@{333}: checkout: moving from master to lishui-Smartor
+84f0f55 HEAD@{334}: checkout: moving from lishui-Smartor to master
+b73b5dd HEAD@{335}: commit: 娴嬭瘯瀹屾垚
+2daa54c HEAD@{336}: checkout: moving from master to lishui-Smartor
+84f0f55 HEAD@{337}: checkout: moving from lishui-Smartor to master
+2daa54c HEAD@{338}: commit: 娴嬭瘯瀹屾垚
+073edc9 HEAD@{339}: checkout: moving from wuxi-smartor to lishui-Smartor
+9259056 HEAD@{340}: checkout: moving from master to wuxi-smartor
+84f0f55 HEAD@{341}: commit: 娴嬭瘯瀹屾垚
+d7b9ffb HEAD@{342}: checkout: moving from lishui-Smartor to master
+073edc9 HEAD@{343}: commit: 娴嬭瘯瀹屾垚
+838d8b5 HEAD@{344}: checkout: moving from master to lishui-Smartor
+d7b9ffb HEAD@{345}: checkout: moving from lishui-Smartor to master
+838d8b5 HEAD@{346}: checkout: moving from master to lishui-Smartor
+d7b9ffb HEAD@{347}: commit: 娴嬭瘯瀹屾垚
+b8085c1 HEAD@{348}: checkout: moving from wuxi-smartor to master
+9259056 HEAD@{349}: checkout: moving from lishui-Smartor to wuxi-smartor
+838d8b5 HEAD@{350}: checkout: moving from wuxi-smartor to lishui-Smartor
+9259056 HEAD@{351}: commit: 娴嬭瘯瀹屾垚
+d9a95a7 HEAD@{352}: checkout: moving from master to wuxi-smartor
+b8085c1 HEAD@{353}: checkout: moving from lishui-Smartor to master
+838d8b5 HEAD@{354}: checkout: moving from master to lishui-Smartor
+b8085c1 HEAD@{355}: commit: 娴嬭瘯瀹屾垚
+baeeb80 HEAD@{356}: checkout: moving from lishui-Smartor to master
+838d8b5 HEAD@{357}: commit: 娴嬭瘯瀹屾垚
+3fd01fa HEAD@{358}: checkout: moving from wuxi-smartor to lishui-Smartor
+d9a95a7 HEAD@{359}: checkout: moving from lishui-Smartor to wuxi-smartor
+3fd01fa HEAD@{360}: commit: 娴嬭瘯瀹屾垚
+88481a3 HEAD@{361}: checkout: moving from wuxi-smartor to lishui-Smartor
+d9a95a7 HEAD@{362}: commit: 娴嬭瘯瀹屾垚
+ffb5cf7 HEAD@{363}: checkout: moving from master to wuxi-smartor
+baeeb80 HEAD@{364}: commit: 娴嬭瘯瀹屾垚
+5271bf2 HEAD@{365}: checkout: moving from lishui-Smartor to master
+88481a3 HEAD@{366}: checkout: moving from wuxi-smartor to lishui-Smartor
+ffb5cf7 HEAD@{367}: commit: 娴嬭瘯瀹屾垚
+f5c2015 HEAD@{368}: checkout: moving from DeBug to wuxi-smartor
+6d3e75d (origin/DeBug, DeBug) HEAD@{369}: checkout: moving from lishui-Smartor to DeBug
+88481a3 HEAD@{370}: checkout: moving from wuxi-smartor to lishui-Smartor
+f5c2015 HEAD@{371}: checkout: moving from master to wuxi-smartor
+5271bf2 HEAD@{372}: commit: 娴嬭瘯瀹屾垚
+0516a6b HEAD@{373}: checkout: moving from lishui-Smartor to master
+88481a3 HEAD@{374}: commit: 娴嬭瘯瀹屾垚
+12eb16c HEAD@{375}: commit: 娴嬭瘯瀹屾垚
+083ae82 HEAD@{376}: checkout: moving from wuxi-smartor to lishui-Smartor
+f5c2015 HEAD@{377}: commit: 娴嬭瘯瀹屾垚
+28f8a2e HEAD@{378}: checkout: moving from lishui-Smartor to wuxi-smartor
+083ae82 HEAD@{379}: commit: 娴嬭瘯瀹屾垚
+36b7179 HEAD@{380}: checkout: moving from wuxi-smartor to lishui-Smartor
+28f8a2e HEAD@{381}: commit: 娴嬭瘯瀹屾垚
+5e20020 HEAD@{382}: checkout: moving from lishui-Smartor to wuxi-smartor
+36b7179 HEAD@{383}: checkout: moving from master to lishui-Smartor
+0516a6b HEAD@{384}: checkout: moving from wuxi-smartor to master
+5e20020 HEAD@{385}: checkout: moving from lishui-Smartor to wuxi-smartor
+36b7179 HEAD@{386}: commit: 娴嬭瘯瀹屾垚
+03a3eff HEAD@{387}: checkout: moving from master to lishui-Smartor
+0516a6b HEAD@{388}: commit: 娴嬭瘯瀹屾垚
+32674b0 HEAD@{389}: checkout: moving from lishui-Smartor to master
+03a3eff HEAD@{390}: checkout: moving from master to lishui-Smartor
+32674b0 HEAD@{391}: checkout: moving from lishui-Smartor to master
+03a3eff HEAD@{392}: commit: 娴嬭瘯瀹屾垚
+2b1cfea HEAD@{393}: commit: 娴嬭瘯瀹屾垚
+ff99a9b HEAD@{394}: checkout: moving from master to lishui-Smartor
+32674b0 HEAD@{395}: checkout: moving from lishui-Smartor to master
+ff99a9b HEAD@{396}: commit: 娴嬭瘯瀹屾垚
+cf2c2a9 HEAD@{397}: checkout: moving from wuxi-smartor to lishui-Smartor
+5e20020 HEAD@{398}: checkout: moving from lishui-Smartor to wuxi-smartor
+cf2c2a9 HEAD@{399}: checkout: moving from wuxi-smartor to lishui-Smartor
+5e20020 HEAD@{400}: checkout: moving from lishui-Smartor to wuxi-smartor
+cf2c2a9 HEAD@{401}: commit: 娴嬭瘯瀹屾垚
+a77752e HEAD@{402}: commit: 娴嬭瘯瀹屾垚
+3bb35f1 HEAD@{403}: commit: 娴嬭瘯瀹屾垚
+b0dd238 HEAD@{404}: commit: 娴嬭瘯瀹屾垚
+57a7537 HEAD@{405}: commit: 娴嬭瘯瀹屾垚
+83d8322 HEAD@{406}: checkout: moving from master to lishui-Smartor
+32674b0 HEAD@{407}: commit: 娴嬭瘯瀹屾垚
+f6bc6ed HEAD@{408}: checkout: moving from lishui-Smartor to master
+83d8322 HEAD@{409}: commit: 娴嬭瘯瀹屾垚
+ee1d4af HEAD@{410}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{411}: checkout: moving from lishui-Smartor to master
+ee1d4af HEAD@{412}: commit: 娴嬭瘯瀹屾垚
+bcf3cae HEAD@{413}: commit: 娴嬭瘯瀹屾垚
+d5f7da9 HEAD@{414}: checkout: moving from wuxi-smartor to lishui-Smartor
+5e20020 HEAD@{415}: commit: 娴嬭瘯瀹屾垚
+ee31f47 HEAD@{416}: checkout: moving from lishui-Smartor to wuxi-smartor
+d5f7da9 HEAD@{417}: commit (merge): 娴嬭瘯瀹屾垚
+5acc6d2 HEAD@{418}: commit: 娴嬭瘯瀹屾垚
+355bbb7 HEAD@{419}: commit: 娴嬭瘯瀹屾垚
+a3d2f84 HEAD@{420}: checkout: moving from wuxi-smartor to lishui-Smartor
+ee31f47 HEAD@{421}: checkout: moving from lishui-Smartor to wuxi-smartor
+a3d2f84 HEAD@{422}: commit: 娴嬭瘯瀹屾垚
+bc99b53 HEAD@{423}: checkout: moving from wuxi-smartor to lishui-Smartor
+ee31f47 HEAD@{424}: commit: 娴嬭瘯瀹屾垚
+84b1d28 HEAD@{425}: checkout: moving from lishui-Smartor to wuxi-smartor
+bc99b53 HEAD@{426}: commit: 娴嬭瘯瀹屾垚
+17edb0e HEAD@{427}: checkout: moving from wuxi-smartor to lishui-Smartor
+84b1d28 HEAD@{428}: commit: 娴嬭瘯瀹屾垚
+bfce8d1 HEAD@{429}: checkout: moving from lishui-Smartor to wuxi-smartor
+17edb0e HEAD@{430}: checkout: moving from wuxi-smartor to lishui-Smartor
+bfce8d1 HEAD@{431}: commit: 娴嬭瘯瀹屾垚
+44d24a2 HEAD@{432}: checkout: moving from lishui-Smartor to wuxi-smartor
+17edb0e HEAD@{433}: checkout: moving from wuxi-smartor to lishui-Smartor
+44d24a2 HEAD@{434}: commit: 娴嬭瘯瀹屾垚
+5f4c59e HEAD@{435}: checkout: moving from lishui-Smartor to wuxi-smartor
+17edb0e HEAD@{436}: commit: 娴嬭瘯瀹屾垚
+891f159 HEAD@{437}: commit: 娴嬭瘯瀹屾垚
+50873f4 HEAD@{438}: checkout: moving from wuxi-smartor to lishui-Smartor
+5f4c59e HEAD@{439}: commit: 娴嬭瘯瀹屾垚
+4f3692a HEAD@{440}: checkout: moving from lishui-Smartor to wuxi-smartor
+50873f4 HEAD@{441}: checkout: moving from wuxi-smartor to lishui-Smartor
+4f3692a HEAD@{442}: commit: 娴嬭瘯瀹屾垚
+321891f HEAD@{443}: commit: 娴嬭瘯瀹屾垚
+3b8d057 HEAD@{444}: commit: 娴嬭瘯瀹屾垚
+f6bc6ed HEAD@{445}: merge master: Fast-forward
+9507541 HEAD@{446}: checkout: moving from lishui-Smartor to wuxi-smartor
+50873f4 HEAD@{447}: commit: 娴嬭瘯瀹屾垚
+ec64a69 HEAD@{448}: commit: 娴嬭瘯瀹屾垚
+8aa0592 HEAD@{449}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{450}: checkout: moving from lishui-Smartor to master
+8aa0592 HEAD@{451}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{452}: checkout: moving from lishui-Smartor to master
+8aa0592 HEAD@{453}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{454}: checkout: moving from lishui-Smartor to master
+8aa0592 HEAD@{455}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{456}: checkout: moving from lishui-Smartor to master
+8aa0592 HEAD@{457}: commit: 娴嬭瘯瀹屾垚
+a5faf6e HEAD@{458}: commit (merge): 娴嬭瘯瀹屾垚
+46784b2 HEAD@{459}: checkout: moving from master to lishui-Smartor
+f6bc6ed HEAD@{460}: commit: 娴嬭瘯瀹屾垚
+f4e079f HEAD@{461}: checkout: moving from lishui-Smartor to master
+46784b2 HEAD@{462}: commit: 娴嬭瘯瀹屾垚
+e48362d HEAD@{463}: commit (merge): 娴嬭瘯瀹屾垚
+4cd2bfd HEAD@{464}: checkout: moving from master to lishui-Smartor
+f4e079f HEAD@{465}: commit: 娴嬭瘯瀹屾垚
+dea82b7 HEAD@{466}: commit: 娴嬭瘯瀹屾垚
+0c2a0bd HEAD@{467}: checkout: moving from lishui-Smartor to master
+4cd2bfd HEAD@{468}: commit: 娴嬭瘯瀹屾垚
+7cfedaa HEAD@{469}: commit (merge): 娴嬭瘯瀹屾垚
+98589bb HEAD@{470}: checkout: moving from master to lishui-Smartor
+0c2a0bd HEAD@{471}: commit: 娴嬭瘯瀹屾垚
+48e96f3 HEAD@{472}: checkout: moving from lishui-Smartor to master
+98589bb HEAD@{473}: checkout: moving from master to lishui-Smartor
+48e96f3 HEAD@{474}: commit: 娴嬭瘯瀹屾垚
+fc63b5b HEAD@{475}: checkout: moving from lishui-Smartor to master
+98589bb HEAD@{476}: commit: 娴嬭瘯瀹屾垚
+981fbdd HEAD@{477}: pull --tags origin lishui-Smartor: Fast-forward
+8c79267 HEAD@{478}: reset: moving to 8c79267eb478e2986c5293d3fb48f1c3da18c544
+981fbdd HEAD@{479}: checkout: moving from linshi-smartor to lishui-Smartor
+981fbdd HEAD@{480}: checkout: moving from linshi-smartor to linshi-smartor
+981fbdd HEAD@{481}: checkout: moving from lishui-Smartor to linshi-smartor
+981fbdd HEAD@{482}: checkout: moving from master to lishui-Smartor
+fc63b5b HEAD@{483}: commit: 娴嬭瘯瀹屾垚
+aca3443 HEAD@{484}: checkout: moving from lishui-Smartor to master
+981fbdd HEAD@{485}: commit: 娴嬭瘯瀹屾垚
+6de02b3 HEAD@{486}: checkout: moving from master to lishui-Smartor
+aca3443 HEAD@{487}: checkout: moving from lishui-Smartor to master
+6de02b3 HEAD@{488}: checkout: moving from master to lishui-Smartor
+aca3443 HEAD@{489}: checkout: moving from lishui-Smartor to master
+6de02b3 HEAD@{490}: commit: 娴嬭瘯瀹屾垚
+9896138 HEAD@{491}: commit (merge): 娴嬭瘯瀹屾垚
+4a7648d HEAD@{492}: checkout: moving from master to lishui-Smartor
+aca3443 HEAD@{493}: commit: 娴嬭瘯瀹屾垚
+1a090a4 HEAD@{494}: commit: 娴嬭瘯瀹屾垚
+8c79267 HEAD@{495}: commit: 娴嬭瘯瀹屾垚
+080186b HEAD@{496}: checkout: moving from lishui-Smartor to master
+4a7648d HEAD@{497}: commit: 娴嬭瘯瀹屾垚
+09a1bd5 HEAD@{498}: commit: 娴嬭瘯瀹屾垚
+4492ab0 HEAD@{499}: commit: 娴嬭瘯瀹屾垚
+eef0168 HEAD@{500}: commit (merge): 娴嬭瘯瀹屾垚
+3dcfdb6 HEAD@{501}: checkout: moving from master to lishui-Smartor
+080186b HEAD@{502}: commit: 娴嬭瘯瀹屾垚
+0a4cc3c HEAD@{503}: checkout: moving from external to master
+3a7caf4 (origin/external, external) HEAD@{504}: checkout: moving from master to external
+0a4cc3c HEAD@{505}: checkout: moving from external to master
+3a7caf4 (origin/external, external) HEAD@{506}: commit: 娴嬭瘯瀹屾垚
+5fcfaee HEAD@{507}: commit: 娴嬭瘯瀹屾垚
+c8204d0 HEAD@{508}: checkout: moving from master to external
+0a4cc3c HEAD@{509}: checkout: moving from external to master
+c8204d0 HEAD@{510}: checkout: moving from master to external
+0a4cc3c HEAD@{511}: checkout: moving from external to master
+c8204d0 HEAD@{512}: checkout: moving from external to external
+c8204d0 HEAD@{513}: checkout: moving from master to external
+0a4cc3c HEAD@{514}: commit: 娴嬭瘯瀹屾垚
+1cb1fbf HEAD@{515}: checkout: moving from external to master
+c8204d0 HEAD@{516}: commit: 娴嬭瘯瀹屾垚
+621935e HEAD@{517}: checkout: moving from master to external
+1cb1fbf HEAD@{518}: reset: moving to HEAD
+1cb1fbf HEAD@{519}: checkout: moving from external to master
+621935e HEAD@{520}: checkout: moving from master to external
+1cb1fbf HEAD@{521}: checkout: moving from external to master
+621935e HEAD@{522}: checkout: moving from 1cb1fbf80c955986385377b5f84e8915d1e655d6 to external
+1cb1fbf HEAD@{523}: checkout: moving from external to 1cb1fbf80c955986385377b5f84e8915d1e655d6
+621935e HEAD@{524}: checkout: moving from wuxi-smartor to external
+9507541 HEAD@{525}: checkout: moving from external to wuxi-smartor
+621935e HEAD@{526}: commit: 娴嬭瘯瀹屾垚
+c7e1537 HEAD@{527}: checkout: moving from wuxi-smartor to external
+9507541 HEAD@{528}: checkout: moving from master to wuxi-smartor
+1cb1fbf HEAD@{529}: commit: 娴嬭瘯瀹屾垚
+77fb64c HEAD@{530}: checkout: moving from lishui-Smartor to master
+3dcfdb6 HEAD@{531}: commit: 涓芥按鎻愪氦
+77fb64c HEAD@{532}: checkout: moving from master to lishui-Smartor
+77fb64c HEAD@{533}: checkout: moving from wuxi-smartor to master
+9507541 HEAD@{534}: checkout: moving from wuxi-smartor to wuxi-smartor
+9507541 HEAD@{535}: checkout: moving from master to wuxi-smartor
+77fb64c HEAD@{536}: commit: 鏂板崕鎻愪氦
+9507541 HEAD@{537}: merge wuxi-smartor: Fast-forward
+07e07d6 HEAD@{538}: checkout: moving from wuxi-smartor to master
+9507541 HEAD@{539}: commit: 鏃犻敗鎻愪氦
+07e07d6 HEAD@{540}: checkout: moving from master to wuxi-smartor
+07e07d6 HEAD@{541}: commit: 鏂板崕鎻愪氦
+b26c48a HEAD@{542}: checkout: moving from external to master
+c7e1537 HEAD@{543}: commit: 澶栭摼鐙珛
+c87c46a HEAD@{544}: commit: 澶栭摼鐙珛
+4fb7f36 HEAD@{545}: checkout: moving from master to external
+b26c48a HEAD@{546}: commit: 娴嬭瘯瀹屾垚
+c1139d1 HEAD@{547}: checkout: moving from external to master
+4fb7f36 HEAD@{548}: checkout: moving from master to external
+c1139d1 HEAD@{549}: checkout: moving from external to master
+4fb7f36 HEAD@{550}: commit: 娴嬭瘯瀹屾垚
+c1139d1 HEAD@{551}: checkout: moving from master to external
+c1139d1 HEAD@{552}: commit: 娴嬭瘯瀹屾垚
+b1d81d0 HEAD@{553}: commit: 娴嬭瘯瀹屾垚
+ae117f0 HEAD@{554}: commit: 娴嬭瘯瀹屾垚
+5dc9d1b HEAD@{555}: commit: 娴嬭瘯瀹屾垚
+9a1a82e HEAD@{556}: commit: 娴嬭瘯瀹屾垚
+294e513 HEAD@{557}: commit: 娴嬭瘯瀹屾垚
+007d388 HEAD@{558}: commit: 娴嬭瘯瀹屾垚
diff --git a/h origin --force --all b/h origin --force --all
new file mode 100644
index 0000000..333a0b5
--- /dev/null
+++ b/h origin --force --all
@@ -0,0 +1,258 @@
+
+                   SSUUMMMMAARRYY OOFF LLEESSSS CCOOMMMMAANNDDSS
+
+      Commands marked with * may be preceded by a number, _N.
+      Notes in parentheses indicate the behavior if _N is given.
+      A key preceded by a caret indicates the Ctrl key; thus ^K is ctrl-K.
+
+  h  H                 Display this help.
+  q  :q  Q  :Q  ZZ     Exit.
+ ---------------------------------------------------------------------------
+
+                           MMOOVVIINNGG
+
+  e  ^E  j  ^N  CR  *  Forward  one line   (or _N lines).
+  y  ^Y  k  ^K  ^P  *  Backward one line   (or _N lines).
+  f  ^F  ^V  SPACE  *  Forward  one window (or _N lines).
+  b  ^B  ESC-v      *  Backward one window (or _N lines).
+  z                 *  Forward  one window (and set window to _N).
+  w                 *  Backward one window (and set window to _N).
+  ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.
+  d  ^D             *  Forward  one half-window (and set half-window to _N).
+  u  ^U             *  Backward one half-window (and set half-window to _N).
+  ESC-)  RightArrow *  Right one half screen width (or _N positions).
+  ESC-(  LeftArrow  *  Left  one half screen width (or _N positions).
+  ESC-}  ^RightArrow   Right to last column displayed.
+  ESC-{  ^LeftArrow    Left  to first column.
+  F                    Forward forever; like "tail -f".
+  ESC-F                Like F but stop when search pattern is found.
+  r  ^R  ^L            Repaint screen.
+  R                    Repaint screen, discarding buffered input.
+        ---------------------------------------------------
+        Default "window" is the screen height.
+        Default "half-window" is half of the screen height.
+ ---------------------------------------------------------------------------
+
+                          SSEEAARRCCHHIINNGG
+
+  /_p_a_t_t_e_r_n          *  Search forward for (_N-th) matching line.
+  ?_p_a_t_t_e_r_n          *  Search backward for (_N-th) matching line.
+  n                 *  Repeat previous search (for _N-th occurrence).
+  N                 *  Repeat previous search in reverse direction.
+  ESC-n             *  Repeat previous search, spanning files.
+  ESC-N             *  Repeat previous search, reverse dir. & spanning files.
+  ESC-u                Undo (toggle) search highlighting.
+  ESC-U                Clear search highlighting.
+  &_p_a_t_t_e_r_n          *  Display only matching lines.
+        ---------------------------------------------------
+        A search pattern may begin with one or more of:
+        ^N or !  Search for NON-matching lines.
+        ^E or *  Search multiple files (pass thru END OF FILE).
+        ^F or @  Start search at FIRST file (for /) or last file (for ?).
+        ^K       Highlight matches, but don't move (KEEP position).
+        ^R       Don't use REGULAR EXPRESSIONS.
+        ^W       WRAP search if no match found.
+ ---------------------------------------------------------------------------
+
+                           JJUUMMPPIINNGG
+
+  g  <  ESC-<       *  Go to first line in file (or line _N).
+  G  >  ESC->       *  Go to last line in file (or line _N).
+  p  %              *  Go to beginning of file (or _N percent into file).
+  t                 *  Go to the (_N-th) next tag.
+  T                 *  Go to the (_N-th) previous tag.
+  {  (  [           *  Find close bracket } ) ].
+  }  )  ]           *  Find open bracket { ( [.
+  ESC-^F _<_c_1_> _<_c_2_>  *  Find close bracket _<_c_2_>.
+  ESC-^B _<_c_1_> _<_c_2_>  *  Find open bracket _<_c_1_>.
+        ---------------------------------------------------
+        Each "find close bracket" command goes forward to the close bracket 
+          matching the (_N-th) open bracket in the top line.
+        Each "find open bracket" command goes backward to the open bracket 
+          matching the (_N-th) close bracket in the bottom line.
+
+  m_<_l_e_t_t_e_r_>            Mark the current top line with <letter>.
+  M_<_l_e_t_t_e_r_>            Mark the current bottom line with <letter>.
+  '_<_l_e_t_t_e_r_>            Go to a previously marked position.
+  ''                   Go to the previous position.
+  ^X^X                 Same as '.
+  ESC-M_<_l_e_t_t_e_r_>        Clear a mark.
+        ---------------------------------------------------
+        A mark is any upper-case or lower-case letter.
+        Certain marks are predefined:
+             ^  means  beginning of the file
+             $  means  end of the file
+ ---------------------------------------------------------------------------
+
+                        CCHHAANNGGIINNGG FFIILLEESS
+
+  :e [_f_i_l_e]            Examine a new file.
+  ^X^V                 Same as :e.
+  :n                *  Examine the (_N-th) next file from the command line.
+  :p                *  Examine the (_N-th) previous file from the command line.
+  :x                *  Examine the first (or _N-th) file from the command line.
+  :d                   Delete the current file from the command line list.
+  =  ^G  :f            Print current file name.
+ ---------------------------------------------------------------------------
+
+                    MMIISSCCEELLLLAANNEEOOUUSS CCOOMMMMAANNDDSS
+
+  -_<_f_l_a_g_>              Toggle a command line option [see OPTIONS below].
+  --_<_n_a_m_e_>             Toggle a command line option, by name.
+  __<_f_l_a_g_>              Display the setting of a command line option.
+  ___<_n_a_m_e_>             Display the setting of an option, by name.
+  +_c_m_d                 Execute the less cmd each time a new file is examined.
+
+  !_c_o_m_m_a_n_d             Execute the shell command with $SHELL.
+  |XX_c_o_m_m_a_n_d            Pipe file between current pos & mark XX to shell command.
+  s _f_i_l_e               Save input to a file.
+  v                    Edit the current file with $VISUAL or $EDITOR.
+  V                    Print version number of "less".
+ ---------------------------------------------------------------------------
+
+                           OOPPTTIIOONNSS
+
+        Most options may be changed either on the command line,
+        or from within less by using the - or -- command.
+        Options may be given in one of two forms: either a single
+        character preceded by a -, or a name preceded by --.
+
+  -?  ........  --help
+                  Display help (from command line).
+  -a  ........  --search-skip-screen
+                  Search skips current screen.
+  -A  ........  --SEARCH-SKIP-SCREEN
+                  Search starts just after target line.
+  -b [_N]  ....  --buffers=[_N]
+                  Number of buffers.
+  -B  ........  --auto-buffers
+                  Don't automatically allocate buffers for pipes.
+  -c  ........  --clear-screen
+                  Repaint by clearing rather than scrolling.
+  -d  ........  --dumb
+                  Dumb terminal.
+  -D xx_c_o_l_o_r  .  --color=xx_c_o_l_o_r
+                  Set screen colors.
+  -e  -E  ....  --quit-at-eof  --QUIT-AT-EOF
+                  Quit at end of file.
+  -f  ........  --force
+                  Force open non-regular files.
+  -F  ........  --quit-if-one-screen
+                  Quit if entire file fits on first screen.
+  -g  ........  --hilite-search
+                  Highlight only last match for searches.
+  -G  ........  --HILITE-SEARCH
+                  Don't highlight any matches for searches.
+  -h [_N]  ....  --max-back-scroll=[_N]
+                  Backward scroll limit.
+  -i  ........  --ignore-case
+                  Ignore case in searches that do not contain uppercase.
+  -I  ........  --IGNORE-CASE
+                  Ignore case in all searches.
+  -j [_N]  ....  --jump-target=[_N]
+                  Screen position of target lines.
+  -J  ........  --status-column
+                  Display a status column at left edge of screen.
+  -k [_f_i_l_e]  .  --lesskey-file=[_f_i_l_e]
+                  Use a lesskey file.
+  -K  ........  --quit-on-intr
+                  Exit less in response to ctrl-C.
+  -L  ........  --no-lessopen
+                  Ignore the LESSOPEN environment variable.
+  -m  -M  ....  --long-prompt  --LONG-PROMPT
+                  Set prompt style.
+  -n  -N  ....  --line-numbers  --LINE-NUMBERS
+                  Don't use line numbers.
+  -o [_f_i_l_e]  .  --log-file=[_f_i_l_e]
+                  Copy to log file (standard input only).
+  -O [_f_i_l_e]  .  --LOG-FILE=[_f_i_l_e]
+                  Copy to log file (unconditionally overwrite).
+  -p [_p_a_t_t_e_r_n]  --pattern=[_p_a_t_t_e_r_n]
+                  Start at pattern (from command line).
+  -P [_p_r_o_m_p_t]   --prompt=[_p_r_o_m_p_t]
+                  Define new prompt.
+  -q  -Q  ....  --quiet  --QUIET  --silent --SILENT
+                  Quiet the terminal bell.
+  -r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
+                  Output "raw" control characters.
+  -s  ........  --squeeze-blank-lines
+                  Squeeze multiple blank lines.
+  -S  ........  --chop-long-lines
+                  Chop (truncate) long lines rather than wrapping.
+  -t [_t_a_g]  ..  --tag=[_t_a_g]
+                  Find a tag.
+  -T [_t_a_g_s_f_i_l_e] --tag-file=[_t_a_g_s_f_i_l_e]
+                  Use an alternate tags file.
+  -u  -U  ....  --underline-special  --UNDERLINE-SPECIAL
+                  Change handling of backspaces.
+  -V  ........  --version
+                  Display the version number of "less".
+  -w  ........  --hilite-unread
+                  Highlight first new line after forward-screen.
+  -W  ........  --HILITE-UNREAD
+                  Highlight first new line after any forward movement.
+  -x [_N[,...]]  --tabs=[_N[,...]]
+                  Set tab stops.
+  -X  ........  --no-init
+                  Don't use termcap init/deinit strings.
+  -y [_N]  ....  --max-forw-scroll=[_N]
+                  Forward scroll limit.
+  -z [_N]  ....  --window=[_N]
+                  Set size of window.
+  -" [_c[_c]]  .  --quotes=[_c[_c]]
+                  Set shell quote characters.
+  -~  ........  --tilde
+                  Don't display tildes after end of file.
+  -# [_N]  ....  --shift=[_N]
+                  Set horizontal scroll amount (0 = one half screen width).
+                --file-size
+                  Automatically determine the size of the input file.
+                --follow-name
+                  The F command changes files if the input file is renamed.
+                --incsearch
+                  Search file as each pattern character is typed in.
+                --line-num-width=N
+                  Set the width of the -N line number field to N characters.
+                --mouse
+                  Enable mouse input.
+                --no-keypad
+                  Don't send termcap keypad init/deinit strings.
+                --no-histdups
+                  Remove duplicates from command history.
+                --rscroll=C
+                  Set the character used to mark truncated lines.
+                --save-marks
+                  Retain marks across invocations of less.
+                --status-col-width=N
+                  Set the width of the -J status column to N characters.
+                --use-backslash
+                  Subsequent options use backslash as escape char.
+                --use-color
+                  Enables colored text.
+                --wheel-lines=N
+                  Each click of the mouse wheel moves N lines.
+
+
+ ---------------------------------------------------------------------------
+
+                          LLIINNEE EEDDIITTIINNGG
+
+        These keys can be used to edit text being entered 
+        on the "command line" at the bottom of the screen.
+
+ RightArrow ..................... ESC-l ... Move cursor right one character.
+ LeftArrow ...................... ESC-h ... Move cursor left one character.
+ ctrl-RightArrow  ESC-RightArrow  ESC-w ... Move cursor right one word.
+ ctrl-LeftArrow   ESC-LeftArrow   ESC-b ... Move cursor left one word.
+ HOME ........................... ESC-0 ... Move cursor to start of line.
+ END ............................ ESC-$ ... Move cursor to end of line.
+ BACKSPACE ................................ Delete char to left of cursor.
+ DELETE ......................... ESC-x ... Delete char under cursor.
+ ctrl-BACKSPACE   ESC-BACKSPACE ........... Delete word to left of cursor.
+ ctrl-DELETE .... ESC-DELETE .... ESC-X ... Delete word under cursor.
+ ctrl-U ......... ESC (MS-DOS only) ....... Delete entire line.
+ UpArrow ........................ ESC-k ... Retrieve previous command line.
+ DownArrow ...................... ESC-j ... Retrieve next command line.
+ TAB ...................................... Complete filename & cycle.
+ SHIFT-TAB ...................... ESC-TAB   Complete filename & reverse cycle.
+ ctrl-L ................................... Complete filename, list all.
diff --git a/src/api/AiCentre/external.js b/src/api/AiCentre/external.js
index cba2ebd..9288107 100644
--- a/src/api/AiCentre/external.js
+++ b/src/api/AiCentre/external.js
@@ -92,7 +92,7 @@
     data: data
   });
 }
-// 鏂板鏈嶅姟
+// 鍐嶆闅忚鏈嶅姟
 export function addserviceSubtask(data) {
   return request({
     url: "/smartor/serviceSubtask/addSubTaskAgain",
@@ -100,4 +100,12 @@
     data: data
   });
 }
+// 鍐嶆闅忚鏈嶅姟
+export function addSubtask(data) {
+  return request({
+    url: "/smartor/serviceSubtask/addSubTask",
+    method: "post",
+    data: data
+  });
+}
 
diff --git a/src/api/AiCentre/index.js b/src/api/AiCentre/index.js
index 7455089..a124c74 100644
--- a/src/api/AiCentre/index.js
+++ b/src/api/AiCentre/index.js
@@ -9,4 +9,4 @@
 export * from './external'
 export * from './patientexternal'
 export * from './EChartsdata'
-export * from './satisfaction'
+export * from './satisfactionse'
diff --git a/src/api/AiCentre/satisfaction.js b/src/api/AiCentre/satisfactionse.js
similarity index 100%
rename from src/api/AiCentre/satisfaction.js
rename to src/api/AiCentre/satisfactionse.js
diff --git a/src/assets/order/example.mp3 b/src/assets/order/example.mp3
new file mode 100644
index 0000000..1c210d7
--- /dev/null
+++ b/src/assets/order/example.mp3
Binary files differ
diff --git a/src/components/CallButton/index.vue b/src/components/CallButton/index.vue
index 47931a4..4d055cd 100644
--- a/src/components/CallButton/index.vue
+++ b/src/components/CallButton/index.vue
@@ -37,7 +37,7 @@
     },
   },
   data() {
-    const randomNum = Math.floor(Math.random() * 11) + 1000; // 鍐呴儴瀹氫箟
+    const randomNum = Math.floor(Math.random() * 20) + 1000; // 鍐呴儴瀹氫箟
     return {
       isCalling: false,
       callStatus: "idle", // idle, calling, connected, ended
@@ -69,6 +69,8 @@
     },
   },
   mounted() {
+    console.log('褰撳墠鍒嗘満鍙�',this.sipConfig);
+
     sipService.init(this.sipConfig);
     sipService.onStatusChange = (status) => {
       this.sipStatus = status.text;
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index 4853fbb..846a3d1 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -14,7 +14,6 @@
       </template>
       <sidebar-item
         v-for="child in item.children"
-        :key="child.path"
         :is-nest="true"
         :item="child"
         :base-path="resolvePath(child.path)"
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 36c9b90..ab91acf 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -158,6 +158,10 @@
           localStorage.setItem('orgname', '闈掔敯鍘夸腑鍖诲尰闄�');
           localStorage.setItem('ZuHuID', '1429338802177000005');
           localStorage.setItem('deptCode', '');
+          }else if (orgid=='47240004533118111A1001') {
+          localStorage.setItem('orgname', '榫欐硥甯備汉姘戝尰闄�');
+          localStorage.setItem('ZuHuID', '1429338802177000007');
+          localStorage.setItem('deptCode', '');
           }
           resolve()
         }).catch(error => {
diff --git a/src/utils/request.js b/src/utils/request.js
index 57969d4..71723d0 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -17,7 +17,7 @@
   // axios涓姹傞厤缃湁baseURL閫夐」锛岃〃绀鸿姹俇RL鍏叡閮ㄥ垎
   baseURL: process.env.VUE_APP_BASE_API,
   // 瓒呮椂
-  timeout: 10000,
+  timeout: 100000,
 });
 
 // request鎷︽埅鍣�
diff --git a/src/utils/sipService-bd.js b/src/utils/sipService-cs.js
similarity index 98%
rename from src/utils/sipService-bd.js
rename to src/utils/sipService-cs.js
index 8318c1a..1654ccc 100644
--- a/src/utils/sipService-bd.js
+++ b/src/utils/sipService-cs.js
@@ -160,7 +160,7 @@
       };
     });
     this.currentSession.on('failed', (e) => {
-        this.updateCallStatus('failed', `鍛煎彨澶辫触2: ${e.cause}`);
+        this.updateCallStatus('failed', `鍛煎彨澶辫触2: ${e}`);
       });
 
       this.currentSession.on('ended', () => {
diff --git a/src/utils/sipService.js b/src/utils/sipService.js
index 9088bad..baa65a9 100644
--- a/src/utils/sipService.js
+++ b/src/utils/sipService.js
@@ -63,7 +63,7 @@
 
         const options = {
           sessionTimers: true, // 鍚敤浼氳瘽璁℃椂鍣�
-          sessionTimersExpires: 90,
+          sessionTimersExpires: 150,
           extraHeaders: ["Accept: application/sdp"],
           mediaConstraints: { audio: true, video: false },
           rtcOfferConstraints: {
diff --git a/src/views/followvisit/again/index.vue b/src/views/followvisit/again/index.vue
index bccd382..daa9a30 100644
--- a/src/views/followvisit/again/index.vue
+++ b/src/views/followvisit/again/index.vue
@@ -1197,8 +1197,9 @@
       });
     },
     affiliation() {
-      this.topqueryParams.drcode = store.getters.hisUserId;
-      this.topqueryParams.nurseId = store.getters.hisUserId;
+
+      this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
+
       this.getList(1);
     },
     onthatday() {
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 3953e03..10c8f04 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1059,8 +1059,8 @@
       });
     },
     affiliation() {
-      this.topqueryParams.drcode = store.getters.hisUserId;
-      this.topqueryParams.nurseId = store.getters.hisUserId;
+
+      this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
       this.getList(1);
     },
     onthatday() {
diff --git a/src/views/followvisit/discharge/outpatientService.vue b/src/views/followvisit/discharge/outpatientService.vue
index 0601da8..4895852 100644
--- a/src/views/followvisit/discharge/outpatientService.vue
+++ b/src/views/followvisit/discharge/outpatientService.vue
@@ -1181,8 +1181,9 @@
       });
     },
     affiliation() {
-      this.topqueryParams.drcode = store.getters.hisUserId;
-      this.topqueryParams.nurseId = store.getters.hisUserId;
+
+      this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
+
       this.getList(1);
     },
     onthatday() {
diff --git a/src/views/followvisit/record/detailpage/MergeAndModify.vue b/src/views/followvisit/record/detailpage/MergeAndModify.vue
new file mode 100644
index 0000000..6449d1e
--- /dev/null
+++ b/src/views/followvisit/record/detailpage/MergeAndModify.vue
@@ -0,0 +1,449 @@
+<template>
+  <div class="merge-questionnaire-container">
+    <div class="merge-header">
+      <h3>鍚堝苟缂栬緫闂嵎 (鍏� {{ services.length }} 涓湭瀹屾垚鏈嶅姟)</h3>
+      <el-tag
+        v-for="service in services"
+        :key="service.id"
+        type="info"
+        style="margin-right: 10px"
+      >
+        {{ service.taskName }} ({{ service.sendname }})
+      </el-tag>
+    </div>
+
+    <div class="merge-content">
+      <div class="question-list">
+        <div
+          v-for="(question, index) in mergedQuestions"
+          :key="question.uniqueKey"
+          class="question-item"
+        >
+          <!-- 棰樼洰灞曠ず - 涓庣埗缁勪欢淇濇寔涓�鑷� -->
+          <div
+            :class="
+              question.isabnormal ? 'scriptTopic-isabnormal' : 'scriptTopic-dev'
+            "
+          >
+            <div class="dev-text">
+              {{ index + 1 }}銆乕{{
+                getQuestionType(question.scriptType)
+              }}]<span> {{ question.scriptContent }}</span>
+            </div>
+
+            <!-- 鍗曢�� -->
+            <div class="dev-xx" v-if="question.scriptType == 1">
+              <el-radio-group
+                v-model="question.mergedResult"
+                @change="
+                  handleOptionChange(
+                    $event,
+                    index,
+                    question.svyLibTemplateTargetoptions,
+                    question
+                  )
+                "
+                >11
+                <el-radio
+                  v-for="(
+                    option, optIndex
+                  ) in question.svyLibTemplateTargetoptions"
+                  :key="optIndex"
+                  :label="option.optioncontent"
+                  :class="option.isabnormal ? 'red-star' : ''"
+                >
+                  {{ option.optioncontent }}
+                </el-radio>
+              </el-radio-group>
+            </div>
+
+            <!-- 澶氶�� -->
+            <div class="dev-xx" v-if="question.scriptType == 2">
+              <el-checkbox-group
+                v-model="question.mergedResult"
+                @change="updateScore($event, index, question.options, question)"
+              >
+                <el-checkbox
+                  v-for="(option, optIndex) in question.options"
+                  :key="optIndex"
+                  :label="option.optioncontent"
+                  :class="option.isabnormal ? 'red-star' : ''"
+                >
+                  {{ option.optioncontent }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </div>
+
+            <!-- 濉┖ -->
+            <div class="dev-xx" v-if="question.scriptType == 4">
+              <el-input
+                type="textarea"
+                :rows="2"
+                placeholder="璇疯緭鍏ョ瓟妗�"
+                v-model="question.mergedResult"
+                clearable
+              />
+            </div>
+
+            <!-- 闄勫姞杈撳叆妗� -->
+            <div v-if="question.showAppendInput" class="append-input-container">
+              <el-input
+                type="textarea"
+                :rows="2"
+                placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+                v-model="question.answerps"
+                clearable
+              />
+            </div>
+
+            <!-- 鎻愮ず淇℃伅 -->
+            <div v-show="question.prompt">
+              <el-alert :title="question.prompt" type="warning" />
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="merge-footer">
+      <el-button @click="handleCancel">鍙栨秷</el-button>
+      <el-button type="primary" @click="handleSave" :loading="isSaving"
+        >淇濆瓨鍒版墍鏈夐棶鍗�</el-button
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getsearchrResults,
+  serviceSubtaskDetailedit,
+  serviceSubtaskDetailadd,
+  Editsingletaskson,
+  getTaskservelist,
+  alterpatient,
+} from "@/api/AiCentre/index";
+
+export default {
+  props: {
+    selectedServices: {
+      type: Array,
+      required: true,
+    },
+    patid: {
+      type: [String, Number],
+      required: true,
+    },
+  },
+  data() {
+    return {
+      services: [],
+      mergedQuestions: [], // 鍚堝苟鍚庣殑闂鏁版嵁
+      isSaving: false,
+    };
+  },
+  created() {
+    this.loadServicesData();
+  },
+  methods: {
+    getQuestionType(type) {
+      const types = { 1: "鍗曢��", 2: "澶氶��", 4: "闂瓟" };
+      return types[type] || "鏈煡";
+    },
+
+    async loadServicesData() {
+      this.services = this.selectedServices;
+
+      const loading = this.$loading({
+        lock: true,
+        text: "姝e湪鍔犺浇鏈畬鎴愰棶鍗锋暟鎹�...",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+
+      try {
+        // 鍙姞杞芥湭瀹屾垚鐨勬湇鍔¢棶鍗锋暟鎹�
+        const requests = this.services.map((service) =>
+          getsearchrResults({
+            taskid: service.taskid,
+            patid: this.patid,
+            subId: service.id,
+            isFinish: false, // 纭繚鍙幏鍙栨湭瀹屾垚鐨勯棶鍗�
+          })
+        );
+
+        const responses = await Promise.all(requests);
+
+        // 鍚堝苟鎵�鏈夐棶棰橈紝鍘婚噸
+        const allQuestions = [];
+        const questionMap = {};
+
+        responses.forEach((response, index) => {
+          if (response.code == 200 && response.data.scriptResult) {
+            response.data.scriptResult.forEach((q) => {
+              const key = `${q.scriptContent}_${q.scriptType}`;
+              if (!questionMap[key]) {
+                questionMap[key] = {
+                  ...q,
+                  uniqueKey: key,
+                  mergedResult: q.scriptType == 2 ? [] : null,
+                  originalServices: [], // 璁板綍鍘熷鏈嶅姟ID
+                };
+                allQuestions.push(questionMap[key]);
+              }
+              questionMap[key].originalServices.push(this.services[index].id);
+            });
+          }
+        });
+
+        // 鍒濆鍖栧悎骞剁粨鏋�
+        this.mergedQuestions = allQuestions.map((q) => ({
+          ...q,
+          mergedResult: q.scriptType == 2 ? [] : q.scriptResult || null,
+        }));
+        console.log(this.mergedQuestions);
+      } catch (error) {
+        this.$message.error("鍔犺浇闂嵎鏁版嵁澶辫触: " + error.message);
+      } finally {
+        loading.close();
+      }
+    },
+
+    // 澶勭悊閫夐」鍙樺寲 (涓庣埗缁勪欢淇濇寔涓�鑷�)
+    handleOptionChange(selectedOption, questionIndex, options, question) {
+      const selectedOptionObj = options.find(
+        (item) => item.optioncontent == selectedOption
+      );
+
+      // 璁剧疆寮傚父鐘舵��
+      question.isabnormal = !!selectedOptionObj?.isabnormal;
+
+      // 澶勭悊闄勫姞杈撳叆妗嗘樉绀�
+      question.showAppendInput = selectedOptionObj?.appendflag == 1;
+      if (!question.showAppendInput) {
+        question.answerps = "";
+      }
+
+      this.$forceUpdate();
+    },
+
+    // 鏇存柊澶氶�夊垎鏁� (涓庣埗缁勪欢淇濇寔涓�鑷�)
+    updateScore(selectedValues, questionIndex, options, question) {
+      const abnormalOptions = options.filter((opt) => opt.isabnormal);
+      question.isabnormal = abnormalOptions.some((opt) =>
+        selectedValues.includes(opt.optioncontent)
+      );
+      this.$forceUpdate();
+    },
+
+    handleCancel() {
+      this.$emit("cancel");
+    },
+
+    async handleSave() {
+      this.isSaving = true;
+
+      try {
+        const saveResults = [];
+        const updateServicePromises = [];
+
+        // 1. 淇濆瓨鎵�鏈夐棶鍗烽棶棰�
+        for (const service of this.services) {
+          const serviceId = service.id;
+          const questionsToSave = this.mergedQuestions
+            .filter((q) => q.originalServices.includes(serviceId))
+            .map((question) => ({
+              scriptid: question.id,
+              scriptResultId: question.scriptResultId,
+              scriptType: question.scriptType,
+              questiontext: question.scriptContent,
+              asrtext:
+                question.scriptType == 2
+                  ? question.mergedResult.join("&")
+                  : question.mergedResult,
+              answerps: question.answerps || null,
+              isabnormal: question.isabnormal || false,
+            }));
+
+          // 淇濆瓨闂鏁版嵁
+          for (const question of questionsToSave) {
+            const saveData = {
+              taskid: service.taskid,
+              patid: this.patid,
+              subId: serviceId,
+              ...question,
+            };
+
+            if (saveData.isabnormal) {
+              saveData.excep = 1;
+            }
+
+            try {
+              const response = question.scriptResultId
+                ? await serviceSubtaskDetailedit(saveData)
+                : await serviceSubtaskDetailadd(saveData);
+
+              saveResults.push({
+                serviceId,
+                success: response.code === 200,
+                message:
+                  response.message ||
+                  (response.code === 200 ? "淇濆瓨鎴愬姛" : "淇濆瓨澶辫触"),
+              });
+            } catch (error) {
+              saveResults.push({
+                serviceId,
+                success: false,
+                message: error.message || "淇濆瓨澶辫触",
+              });
+            }
+          }
+
+          // 2. 鏇存柊鏈嶅姟鐘舵�佷负宸插畬鎴� (sendstate = 6)
+          updateServicePromises.push(this.updateServiceStatus(serviceId));
+        }
+
+        // 绛夊緟鎵�鏈夋湇鍔$姸鎬佹洿鏂板畬鎴�
+        const updateResults = await Promise.all(updateServicePromises);
+        updateResults.forEach((result) => {
+          if (!result.success) {
+            saveResults.push({
+              serviceId: result.serviceId,
+              success: false,
+              message: result.message || "鏈嶅姟鐘舵�佹洿鏂板け璐�",
+            });
+          }
+        });
+
+        // 缁熻缁撴灉
+        const successCount = saveResults.filter((r) => r.success).length;
+        const totalCount = saveResults.length;
+
+        // 閫氱煡鐖剁粍浠�
+        this.$emit("save", {
+          successCount,
+          totalCount,
+          results: saveResults,
+        });
+
+        if (successCount === totalCount) {
+          this.$message.success("鎵�鏈夐棶鍗峰拰鏈嶅姟鐘舵�佹洿鏂版垚鍔�");
+        } else {
+          this.$message.warning(
+            `鎴愬姛淇濆瓨 ${successCount} 椤癸紝澶辫触 ${totalCount - successCount} 椤筦
+          );
+        }
+      } catch (error) {
+        this.$message.error("淇濆瓨杩囩▼涓彂鐢熼敊璇�: " + error.message);
+      } finally {
+        this.isSaving = false;
+      }
+    },
+    // 鏂板鏂规硶锛氭洿鏂版湇鍔$姸鎬�
+    async updateServiceStatus(serviceId) {
+      try {
+        // 鑾峰彇鏈嶅姟褰撳墠鏁版嵁
+        const res = await getTaskservelist({
+          patid: this.patid,
+          subId: serviceId,
+        });
+
+        if (res.code === 200) {
+          const serviceData = res.rows[0].serviceSubtaskList.find(
+            (item) => item.id === serviceId
+          );
+
+          if (serviceData) {
+            // 鏇存柊鏈嶅姟鐘舵�佷负宸插畬鎴� (sendstate = 6)
+            const updateRes = await Editsingletaskson({
+              ...serviceData,
+              sendstate: 6, // 璁剧疆涓哄凡瀹屾垚鐘舵��
+              remark: "閫氳繃鍚堝苟缂栬緫瀹屾垚", // 鍙�夛細娣诲姞澶囨敞
+            });
+
+            return {
+              serviceId,
+              success: updateRes.code === 200,
+              message: updateRes.message || "鏈嶅姟鐘舵�佹洿鏂版垚鍔�",
+            };
+          }
+        }
+        return {
+          serviceId,
+          success: false,
+          message: "鑾峰彇鏈嶅姟鏁版嵁澶辫触",
+        };
+      } catch (error) {
+        return {
+          serviceId,
+          success: false,
+          message: error.message || "鏇存柊鏈嶅姟鐘舵�佸け璐�",
+        };
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+.merge-questionnaire-container {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+  padding: 20px;
+}
+
+.merge-header {
+  margin-bottom: 20px;
+}
+
+.merge-content {
+  flex: 1;
+  overflow-y: auto;
+}
+
+.question-list {
+  padding: 10px;
+}
+
+/* 涓庣埗缁勪欢涓�鑷寸殑棰樼洰鏍峰紡 */
+.scriptTopic-dev {
+  margin-bottom: 20px;
+  padding: 15px;
+  border: 1px solid #ebeef5;
+  border-radius: 4px;
+}
+
+.scriptTopic-isabnormal {
+  margin-bottom: 20px;
+  padding: 15px;
+  border: 1px solid #f56c6c;
+  border-radius: 4px;
+  background-color: #fff6f6;
+}
+
+.dev-text {
+  font-size: 16px;
+  margin-bottom: 15px;
+  color: #333;
+}
+
+.dev-xx {
+  margin-left: 20px;
+}
+
+.append-input-container {
+  margin-top: 15px;
+}
+
+.red-star {
+  color: #f56c6c;
+}
+
+.merge-footer {
+  margin-top: 20px;
+  text-align: right;
+  padding-top: 15px;
+  border-top: 1px solid #ebeef5;
+}
+</style>
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 3ed901e..426e933 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -18,6 +18,32 @@
                 >鍙睍绀烘湰娆℃湇鍔′俊鎭�</el-button
               >
             </div>
+            <div style="margin-left: 20px; color: #59a0f0">
+              <el-link
+                href="https://9.208.2.207:6060/search-homepage"
+                target="_blank"
+                :underline="true"
+              >
+                鍓嶅線CDSS鏌ヨ
+              </el-link>
+            </div>
+            <div class="merge-controls" v-if="Whetherall">
+              <el-button
+                type="primary"
+                @click="toggleMergeMode"
+                :disabled="selectedServices.length < 2"
+              >
+                {{ isMergeMode ? "鍙栨秷鍚堝苟" : "鍚堝苟缂栬緫闂嵎" }}
+              </el-button>
+              <el-button
+                v-if="isMergeMode"
+                type="success"
+                @click="openMergeDialog"
+                :disabled="selectedServices.length < 2"
+              >
+                寮�濮嬪悎骞� (宸查�� {{ selectedServices.length }} 涓湇鍔�)
+              </el-button>
+            </div>
           </div>
           <!-- <el-button type="success">闅忚鍚庣煭淇�</el-button> -->
         </div>
@@ -27,7 +53,14 @@
           :data="logsheetlist"
           :row-class-name="tableRowClassName"
           style="width: 100%"
+          @selection-change="handleSelectionChange"
         >
+          <el-table-column
+            type="selection"
+            width="55"
+            :selectable="checkSelectable"
+            v-if="Whetherall"
+          ></el-table-column>
           <el-table-column
             prop="sendname"
             align="center"
@@ -204,118 +237,427 @@
         </el-table>
       </div>
     </div>
-    <div class="Followuserinfos">
-      <div>
-        <el-form
-          ref="userform"
-          :model="form"
-          :rules="userrules"
-          label-width="120px"
-        >
+    <!-- 娣诲姞鍚堝苟缂栬緫瀵硅瘽妗� -->
+    <el-dialog
+      title="鍚堝苟缂栬緫闂嵎"
+      :visible.sync="mergeDialogVisible"
+      width="80%"
+      top="5vh"
+      v-dialogDrag
+    >
+      <MergeAndModify
+        v-if="mergeDialogVisible"
+        :selected-services="selectedServices"
+        :patid="patid"
+        @save="handleMergeSave"
+        @cancel="mergeDialogVisible = false"
+      />
+    </el-dialog>
+    <div class="action-container">
+      <div class="call-action">
+        <div class="call-container">
+          <!-- <div class="call-header">
+            <h2>涓�閿懠鍙姛鑳�</h2>
+          </div> -->
+
           <div class="headline">
-            <div>浜哄伐澶勭悊</div>
-            <el-row :gutter="20">
-              <el-col :span="8"
-                ><el-form-item label="鑱旂郴鐢佃瘽">
-                  <el-input
-                    placeholder="鑱旂郴鐢佃瘽缂哄け"
-                    v-model="userform.telcode"
-                  >
-                    <el-button
-                      slot="append"
-                      icon="el-icon-phone"
-                      @click="handleCall(userform.telcode, 'tel')"
-                      :disabled="!isValidPhone(userform.telcode)"
-                    ></el-button
-                  ></el-input> </el-form-item
-              ></el-col>
-              <el-col :span="8"
-                ><el-form-item label="鑱旂郴浜虹數璇�">
-                  <el-input
-                    placeholder="鑱旂郴浜虹數璇濈己澶�"
-                    v-model="userform.relativetelcode"
-                  >
-                    <el-button
-                      slot="append"
-                      icon="el-icon-phone"
-                      @click="handleCall(userform.relativetelcode, 'relative')"
-                      :disabled="!isValidPhone(userform.relativetelcode)"
-                    ></el-button
-                  ></el-input> </el-form-item
-              ></el-col>
-              <el-col :span="8"
-                ><el-form-item label="鑱旂郴浜哄叧绯�">
-                  <el-input
-                    placeholder="鑱旂郴浜哄叧绯荤己澶�"
-                    v-model="userform.relation"
-                  ></el-input> </el-form-item
-              ></el-col>
-            </el-row>
-
-            <div style="margin-left: 30px">
-              <el-button type="primary" plain @click="Editsingletasksonyic('')"
-                >淇濆瓨鏈嶅姟</el-button
-              >
-            </div>
+            <div>闅忚鍐呭</div>
           </div>
-          <el-row :gutter="20" v-if="callStatus !== 'idle'">
-            <el-col :span="24">
-              <el-alert
-                :title="callStatusText"
-                :type="callStatusType"
-                :closable="false"
-                show-icon
-              />
-            </el-col>
-          </el-row>
+          <div>
+            <el-tabs v-model="activeName" type="border-card">
+              <el-tab-pane name="wj">
+                <span class="mulsz" slot="label"
+                  ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
+                >
+                <div class="CONTENT">
+                  <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
 
-          <!-- 鎸傛柇鎸夐挳锛堜粎鍦ㄩ�氳瘽涓樉绀猴級 -->
-          <el-row :gutter="20" v-if="callStatus === 'connected'">
-            <el-col :span="24" style="text-align: center; margin-top: 10px">
-              <el-button
-                type="danger"
-                icon="el-icon-phone"
-                @click="endCurrentCall"
-                :loading="isEndingCall"
-              >
-                鎸傛柇鐢佃瘽
-              </el-button>
-            </el-col>
-          </el-row>
-          <el-form-item label="闅忚璁板綍">
-            <el-input type="textarea" v-model="form.remark"></el-input>
-          </el-form-item>
+                  <div class="preview-left" v-if="!Voicetype">
+                    <div
+                      class="topic-dev"
+                      v-for="(item, index) in tableDatatop"
+                      :key="item.id"
+                    >
+                      <!-- 鍗曢�� -->
+                      <div
+                        :class="
+                          item.isabnormal
+                            ? 'scriptTopic-isabnormal'
+                            : 'scriptTopic-dev'
+                        "
+                        :key="index"
+                        v-if="item.scriptType == 1 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
+                            item.scriptContent
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-radio-group
+                            v-model="item.scriptResult"
+                            @change="
+                              handleOptionChange(
+                                $event,
+                                index,
+                                item.svyLibTemplateTargetoptions,
+                                item
+                              )
+                            "
+                          >
+                            <el-radio
+                              v-for="(
+                                items, indexs
+                              ) in item.svyLibTemplateTargetoptions"
+                              :class="items.isabnormal ? 'red-star' : ''"
+                              :key="indexs"
+                              :label="items.optioncontent"
+                              >{{ items.optioncontent }}</el-radio
+                            >
+                          </el-radio-group>
+                        </div>
+                        <div
+                          v-if="item.showAppendInput||item.answerps"
+                          class="append-input-container"
+                        >
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+                            v-model="item.answerps"
+                            clearable
+                          ></el-input>
+                        </div>
+                        <div v-show="item.prompt">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+                      <!-- 澶氶�� -->
+                      <div
+                        :class="
+                          item.isabnormal
+                            ? 'scriptTopic-isabnormal'
+                            : 'scriptTopic-dev'
+                        "
+                        :key="index"
+                        v-if="item.scriptType == 2 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕澶氶�塢<span>{{
+                            item.scriptContent
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-checkbox-group
+                            v-model="item.scriptResult"
+                            @change="updateScore($event, index, item)"
+                          >
+                            <el-checkbox
+                              :class="items.isabnormal ? 'red-star' : ''"
+                              @change="$forceUpdate()"
+                              v-for="(
+                                items, indexs
+                              ) in item.svyLibTemplateTargetoptions"
+                              :key="indexs"
+                              :label="items.optioncontent"
+                            >
+                              {{ items.optioncontent }}
+                            </el-checkbox>
+                          </el-checkbox-group>
+                        </div>
+                        <div v-show="item.prompt && item.scriptResult[0]">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+                      <!-- 濉┖ -->
+                      <div
+                        class="scriptTopic-dev"
+                        :key="index"
+                        v-if="item.scriptType == 4 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                            item.scriptContent
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                            clearable
+                          >
+                          </el-input>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
 
-          <el-form-item label="澶勭悊鎰忚">
-            <div>
-              <el-button plain type="warning" @click="Editsingletaskson('1')"
-                >鏆備笉澶勭悊</el-button
-              >
-              <el-button plain type="success" @click="Editsingletaskson('2')"
-                >鐥呮儏绋冲畾</el-button
-              >
-              <el-button plain type="primary" @click="Editsingletaskson('3')"
-                >閫氱煡灏辫瘖</el-button
-              >
-              <!-- <el-button type="danger" @click="Editsingletaskson('4')"
-    >澶辫</el-button
-  > -->
-              <el-button plain type="info" @click="Editsingletaskson('5')"
-                >涓績闅忚</el-button
-              >
-              <el-button
-                type="primary"
-                round
-                v-if="this.form.isVisitAgain != 2"
-                @click="sendAgain()"
-                >鍐嶆闅忚</el-button
-              >
-            </div>
-          </el-form-item>
-        </el-form>
-        <el-collapse>
-          <el-collapse-item title="鏌ョ湅褰撳墠鎮h�呬俊鎭�" name="1">
+                  <div class="preview-left" v-else>
+                    <div
+                      class="topic-dev"
+                      v-for="(item, index) in tableDatatop"
+                      :key="item.id"
+                    >
+                      <div v-if="item.targetvalue">
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
+                            item.questiontext
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-radio-group
+                            v-model="item.matchedtext"
+                            @change="
+                              handleOptionChange(
+                                $event,
+                                index,
+                                item.ivrTaskScriptTargetoptionList,
+                                item
+                              )
+                            "
+                          >
+                            <el-radio
+                              v-for="(items, index) in item.scriptResult"
+                              :key="items"
+                              :label="items"
+                              >{{ items }}</el-radio
+                            >
+                          </el-radio-group>
+                        </div>
+                        <div v-show="item.prompt">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+
+                      <div class="scriptTopic-dev" :key="index" v-else>
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                            item.questiontext
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.matchedtext"
+                            clearable
+                          >
+                          </el-input>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <el-button
+                    v-if="Voicetype"
+                    type="primary"
+                    @click="yuyingetdetail"
+                    >淇濆瓨鏈嶅姟璇︽儏</el-button
+                  >
+                  <el-button v-else type="primary" @click="getdetail"
+                    >淇濆瓨鏈嶅姟璇︽儏</el-button
+                  >
+                </div>
+              </el-tab-pane>
+
+              <el-tab-pane name="yy">
+                <span class="mulsz" slot="label"
+                  ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
+                >
+                <div class="borderdiv">
+                  <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+                  <div
+                    style="
+                      display: flex;
+                      text-align: center;
+                      align-items: center;
+                      color: #59a0f0;
+                    "
+                  >
+                    瀹屾暣璇煶锛�
+                    <mini-audio
+                      :audio-source="
+                        voice ? voice : '@assets/order/example.mp3'
+                      "
+                    ></mini-audio>
+                  </div>
+                  <div class="preview-left">
+                    <div v-for="item in voiceDatatop">
+                      <div class="leftside">
+                        <i class="el-icon-phone-outline"></i
+                        ><span>{{ item.questiontext }}</span>
+                      </div>
+                      <div class="offside">
+                        <i class="el-icon-user"></i>
+                        <div class="offside-value">
+                          <el-input
+                            type="textarea"
+                            :autosize="{ minRows: 1 }"
+                            v-model="item.asrtext"
+                          ></el-input>
+
+                          <div>
+                            <mini-audio
+                              :audio-source="
+                                item.questionvoice
+                                  ? item.questionvoice
+                                  : '@assets/order/example.mp3'
+                              "
+                            ></mini-audio>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <el-button
+                    v-if="Voicetype"
+                    type="primary"
+                    @click="yuyingetdetail"
+                    >淇濆瓨闅忚璇︽儏</el-button
+                  >
+                  <el-button v-else type="primary" @click="getdetail"
+                    >淇濆瓨闅忚璇︽儏</el-button
+                  >
+                </div>
+              </el-tab-pane>
+            </el-tabs>
+          </div>
+        </div>
+      </div>
+      <div class="manual-action">
+        <div class="Followuserinfos">
+          <div>
+            <el-form
+              ref="userform"
+              :model="form"
+              :rules="userrules"
+              label-width="120px"
+            >
+              <div class="headline">
+                <div>浜哄伐澶勭悊</div>
+                <div style="margin: 0 30px">
+                  <el-button
+                    type="primary"
+                    plain
+                    @click="Editsingletasksonyic('')"
+                    >淇濆瓨鍩虹淇℃伅</el-button
+                  >
+                </div>
+                <div>
+                  <el-button
+                    type="primary"
+                    round
+                    v-if="this.form.isVisitAgain != 2"
+                    @click="sendAgain()"
+                    >鍐嶆闅忚</el-button
+                  >
+                </div>
+              </div>
+              <el-row>
+                <el-col :span="14"
+                  ><el-form-item label="鑱旂郴鐢佃瘽">
+                    <el-input
+                      placeholder="鑱旂郴鐢佃瘽缂哄け"
+                      v-model="userform.telcode"
+                    >
+                      <el-button
+                        slot="append"
+                        icon="el-icon-phone"
+                        @click="handleCall(userform.telcode, 'tel')"
+                        :disabled="!isValidPhone(userform.telcode)"
+                      ></el-button
+                    ></el-input> </el-form-item
+                ></el-col>
+              </el-row>
+              <el-row>
+                <el-col :span="14"
+                  ><el-form-item label="鑱旂郴浜虹數璇�">
+                    <el-input
+                      placeholder="鑱旂郴浜虹數璇濈己澶�"
+                      v-model="userform.relativetelcode"
+                    >
+                      <el-button
+                        slot="append"
+                        icon="el-icon-phone"
+                        @click="
+                          handleCall(userform.relativetelcode, 'relative')
+                        "
+                        :disabled="!isValidPhone(userform.relativetelcode)"
+                      ></el-button
+                    ></el-input> </el-form-item
+                ></el-col>
+                <el-col :span="10"
+                  ><el-form-item label="鑱旂郴浜哄叧绯�">
+                    <el-input
+                      placeholder="鑱旂郴浜哄叧绯荤己澶�"
+                      v-model="userform.relation"
+                    ></el-input> </el-form-item
+                ></el-col>
+              </el-row>
+              <div class="call-controls">
+                <CallButton
+                  ref="callButton"
+                  :phoneNumber="currentPhoneNumber"
+                  style="display: none"
+                />
+
+                <div v-if="callStatus === 'connected'" class="hangup-btn">
+                  <el-button
+                    type="danger"
+                    icon="el-icon-phone"
+                    @click="endCurrentCall"
+                    :loading="isEndingCall"
+                  >
+                    鎸傛柇鐢佃瘽
+                  </el-button>
+                </div>
+                <div class="call-status" v-if="callStatus !== 'idle'">
+                  <el-alert
+                    :title="callStatusText"
+                    :type="callStatusType"
+                    :closable="false"
+                    show-icon
+                  />
+                </div>
+              </div>
+              <el-form-item label="闅忚璁板綍">
+                <el-input type="textarea" v-model="form.remark"></el-input>
+              </el-form-item>
+
+              <el-form-item label="澶勭悊鎰忚">
+                <div>
+                  <el-button
+                    plain
+                    type="warning"
+                    @click="Editsingletaskson('1')"
+                    >鏆備笉澶勭悊</el-button
+                  >
+                  <el-button
+                    plain
+                    type="success"
+                    @click="Editsingletaskson('2')"
+                    >鐥呮儏绋冲畾</el-button
+                  >
+                  <el-button
+                    plain
+                    type="primary"
+                    @click="Editsingletaskson('3')"
+                    >閫氱煡灏辫瘖</el-button
+                  >
+                  <el-button plain type="info" @click="Editsingletaskson('5')"
+                    >涓績闅忚</el-button
+                  >
+                </div>
+              </el-form-item>
+            </el-form>
+
             <div class="detailed">
+              <h3>鎮h�呮。妗堜俊鎭�</h3>
               <el-form ref="userform" :model="userform" label-width="100px">
                 <el-row :gutter="20">
                   <el-col :span="12">
@@ -365,261 +707,13 @@
                       /> </el-form-item
                   ></el-col>
                 </el-row>
-                <!-- <el-row :gutter="20">
-                  <el-col :span="24">
-                    <el-form-item label="鏍囩" prop="desc">
-                      <div class="xinz-inf">
-                        <el-tag
-                          :key="tag.tagname"
-                          type="success"
-                          v-for="tag in dynamicTags"
-                          :disable-transitions="false"
-                        >
-                          {{ tag.tagname }}
-                        </el-tag>
-                      </div>
-                    </el-form-item>
-                  </el-col>
-                </el-row> -->
               </el-form>
             </div>
-          </el-collapse-item>
-        </el-collapse>
+          </div>
+        </div>
       </div>
     </div>
-    <div>
-      <h2>涓�閿懠鍙姛鑳�</h2>
-      <CallButton
-        ref="callButton"
-        :phoneNumber="currentPhoneNumber"
-        style="display: none"
-      />
-    </div>
-    <div>
-      <el-tabs v-model="activeName" type="border-card">
-        <el-tab-pane name="wj">
-          <span class="mulsz" slot="label"
-            ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
-          >
-          <div class="CONTENT">
-            <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
 
-            <div class="preview-left" v-if="!Voicetype">
-              <div
-                class="topic-dev"
-                v-for="(item, index) in tableDatatop"
-                :key="item.id"
-              >
-                <!-- 鍗曢�� -->
-                <div
-                  :class="
-                    item.isabnormal
-                      ? 'scriptTopic-isabnormal'
-                      : 'scriptTopic-dev'
-                  "
-                  :key="index"
-                  v-if="item.scriptType == 1 && !item.astrict"
-                >
-                  <div class="dev-text">
-                    {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
-                  </div>
-                  <div class="dev-xx">
-                    <el-radio-group
-                      v-model="item.scriptResult"
-                      @change="
-                        handleOptionChange(
-                          $event,
-                          index,
-                          item.svyLibTemplateTargetoptions
-                        )
-                      "
-                    >
-                      <el-radio
-                        v-for="(
-                          items, indexs
-                        ) in item.svyLibTemplateTargetoptions"
-                        :class="items.isabnormal ? 'red-star' : ''"
-                        :key="indexs"
-                        :label="items.optioncontent"
-                        >{{ items.optioncontent }}</el-radio
-                      >
-                    </el-radio-group>
-                  </div>
-                  <div v-show="item.prompt">
-                    <el-alert :title="item.prompt" type="warning"> </el-alert>
-                  </div>
-                </div>
-                <!-- 澶氶�� -->
-                <div
-                  :class="
-                    item.isabnormal
-                      ? 'scriptTopic-isabnormal'
-                      : 'scriptTopic-dev'
-                  "
-                  :key="index"
-                  v-if="item.scriptType == 2 && !item.astrict"
-                >
-                  <div class="dev-text">
-                    {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
-                  </div>
-                  <div class="dev-xx">
-                    <el-checkbox-group
-                      v-model="item.scriptResult"
-                      @change="updateScore($event, index, item)"
-                    >
-                      <el-checkbox
-                        :class="items.isabnormal ? 'red-star' : ''"
-                        @change="$forceUpdate()"
-                        v-for="(
-                          items, indexs
-                        ) in item.svyLibTemplateTargetoptions"
-                        :key="indexs"
-                        :label="items.optioncontent"
-                      >
-                        {{ items.optioncontent }}
-                      </el-checkbox>
-                    </el-checkbox-group>
-                  </div>
-                  <div v-show="item.prompt && item.scriptResult[0]">
-                    <el-alert :title="item.prompt" type="warning"> </el-alert>
-                  </div>
-                </div>
-                <!-- 濉┖ -->
-                <div
-                  class="scriptTopic-dev"
-                  :key="index"
-                  v-if="item.scriptType == 4 && !item.astrict"
-                >
-                  <div class="dev-text">
-                    {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span>
-                  </div>
-                  <div class="dev-xx">
-                    <el-input
-                      type="textarea"
-                      :rows="2"
-                      placeholder="璇疯緭鍏ョ瓟妗�"
-                      v-model="item.scriptResult"
-                      clearable
-                    >
-                    </el-input>
-                  </div>
-                </div>
-              </div>
-            </div>
-
-            <div class="preview-left" v-else>
-              <div
-                class="topic-dev"
-                v-for="(item, index) in tableDatatop"
-                :key="item.id"
-              >
-                <div v-if="item.targetvalue">
-                  <div class="dev-text">
-                    {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.questiontext }}</span>
-                  </div>
-                  <div class="dev-xx">
-                    <el-radio-group
-                      v-model="item.matchedtext"
-                      @change="handleOptionChange($event, index, item)"
-                    >
-                      <el-radio
-                        v-for="(items, index) in item.scriptResult"
-                        :key="items"
-                        :label="items"
-                        >{{ items }}</el-radio
-                      >
-                    </el-radio-group>
-                  </div>
-                  <div v-show="item.prompt">
-                    <el-alert :title="item.prompt" type="warning"> </el-alert>
-                  </div>
-                </div>
-
-                <div class="scriptTopic-dev" :key="index" v-else>
-                  <div class="dev-text">
-                    {{ index + 1 }}銆乕闂瓟]<span>{{ item.questiontext }}</span>
-                  </div>
-                  <div class="dev-xx">
-                    <el-input
-                      type="textarea"
-                      :rows="2"
-                      placeholder="璇疯緭鍏ョ瓟妗�"
-                      v-model="item.matchedtext"
-                      clearable
-                    >
-                    </el-input>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
-              >淇濆瓨鏈嶅姟璇︽儏</el-button
-            >
-            <el-button v-else type="primary" @click="getdetail"
-              >淇濆瓨鏈嶅姟璇︽儏</el-button
-            >
-          </div>
-        </el-tab-pane>
-
-        <el-tab-pane name="yy">
-          <span class="mulsz" slot="label"
-            ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
-          >
-          <div class="borderdiv">
-            <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
-            <div
-              style="
-                display: flex;
-                text-align: center;
-                align-items: center;
-                color: #59a0f0;
-              "
-            >
-              瀹屾暣璇煶锛�
-              <mini-audio
-                :audio-source="
-                  voice ? voice : 'https://example.com/example.mp3'
-                "
-              ></mini-audio>
-            </div>
-            <div class="preview-left">
-              <div v-for="item in voiceDatatop">
-                <div class="leftside">
-                  <i class="el-icon-phone-outline"></i
-                  ><span>{{ item.questiontext }}</span>
-                </div>
-                <div class="offside">
-                  <i class="el-icon-user"></i>
-                  <div class="offside-value">
-                    <el-input
-                      type="textarea"
-                      :autosize="{ minRows: 1 }"
-                      v-model="item.asrtext"
-                    ></el-input>
-
-                    <div>
-                      <mini-audio
-                        :audio-source="
-                          item.questionvoice
-                            ? item.questionvoice
-                            : 'https://example.com/example.mp3'
-                        "
-                      ></mini-audio>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
-              >淇濆瓨闅忚璇︽儏</el-button
-            >
-            <el-button v-else type="primary" @click="getdetail"
-              >淇濆瓨闅忚璇︽儏</el-button
-            >
-          </div>
-        </el-tab-pane>
-      </el-tabs>
-    </div>
     <el-dialog
       title="鎮h�呭啀娆¢殢璁�"
       v-dialogDrags
@@ -788,9 +882,11 @@
   listcontactinformation,
 } from "@/api/patient/homepage";
 import CallButton from "@/components/CallButton";
+import MergeAndModify from "./MergeAndModify.vue";
 export default {
   components: {
     CallButton,
+    MergeAndModify,
   },
 
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
@@ -827,6 +923,9 @@
       tableDatatop: [], //棰樼洰琛�
       voiceDatatop: [], //棰樼洰琛�
       dynamicTags: [],
+      isMergeMode: false,
+      mergeDialogVisible: false,
+      selectedServices: [], // 閫変腑鐨勬湇鍔″垪琛�
       zcrules: {
         resource: [
           { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
@@ -1061,7 +1160,6 @@
       const queryParams = {
         pid: Number(this.patid),
         allhosp: "0",
-        pageNum: 1,
       };
       // 鎮h�呭熀纭�淇℃伅
       messagelistpatient(queryParams).then((response) => {
@@ -1184,6 +1282,7 @@
           scriptid: item.id,
           excep: excep,
           questiontext: item.scriptContent,
+          answerps: item.answerps || null, // 娣诲姞闄勫姞淇℃伅
         };
         if (item.scriptType == 2 && item.scriptResult[0]) {
           obj.asrtext = item.scriptResult.join("&");
@@ -1230,7 +1329,7 @@
             })
             .catch(() => {
               if (this.form.serviceType == 13) {
-                if (this.visitCount) {
+                if (this.visitCount != 1) {
                   this.$router.push({
                     path: "/logisticsservice/zbAgain",
                   });
@@ -1240,7 +1339,7 @@
                   });
                 }
               } else if (this.form.serviceType == 2) {
-                if (this.visitCount) {
+                if (this.visitCount != 1) {
                   this.$router.push({
                     path: "/logisticsservice/again",
                   });
@@ -1257,42 +1356,42 @@
           console.error("鍙戠敓閿欒锛�", error);
         });
     },
+    // 鐢佃瘽============================
     // 楠岃瘉鐢佃瘽鍙风爜鏍煎紡骞惰繑鍥為敊璇俊鎭�
-validatePhoneNumber(phone) {
-  if (!phone) {
-    return { isValid: false, message: '璇疯緭鍏ョ數璇濆彿鐮�' };
-  }
+    validatePhoneNumber(phone) {
+      if (!phone) {
+        return { isValid: false, message: "璇疯緭鍏ョ數璇濆彿鐮�" };
+      }
 
-  // 鎵嬫満鍙锋鍒�
-  const mobileRegex = /^1[3-9]\d{9}$/;
+      // 鎵嬫満鍙锋鍒�
+      const mobileRegex = /^1[3-9]\d{9}$/;
 
-  // 甯﹀尯鍙风殑鍥哄畾鐢佃瘽锛堝畬鏁存牸寮忥級
-  const landlineFullRegex = /^0\d{2,3}-?\d{7,8}$/;
+      // 甯﹀尯鍙风殑鍥哄畾鐢佃瘽锛堝畬鏁存牸寮忥級
+      const landlineFullRegex = /^0\d{2,3}-?\d{7,8}$/;
 
-  // 涓嶅甫鍖哄彿鐨勫浐瀹氱數璇濓紙浠呮湰鍦板彿鐮侊級
-  const landlineLocalRegex = /^\d{7,8}$/;
+      // 涓嶅甫鍖哄彿鐨勫浐瀹氱數璇濓紙浠呮湰鍦板彿鐮侊級
+      const landlineLocalRegex = /^\d{7,8}$/;
 
-  if (mobileRegex.test(phone)) {
-    return { isValid: true, type: 'mobile' };
-  } else if (landlineFullRegex.test(phone)) {
-    return { isValid: true, type: 'landline' };
-  } else if (landlineLocalRegex.test(phone)) {
-    return {
-      isValid: false,
-      message: '鏈湴鍙风爜璇锋坊鍔犲尯鍙凤紙濡�028-1234567锛�'
-    };
-  } else {
-    return {
-      isValid: false,
-      message: '璇疯緭鍏ユ纭殑鐢佃瘽鍙风爜锛堟墜鏈哄彿鎴栧甫鍖哄彿鐨勫浐瀹氱數璇濓級'
-    };
-  }
-},
-
-// 浣跨敤绀轰緥
-isValidPhone(phone) {
-  return this.validatePhoneNumber(phone).isValid;
-},
+      if (mobileRegex.test(phone)) {
+        return { isValid: true, type: "mobile" };
+      } else if (landlineFullRegex.test(phone)) {
+        return { isValid: true, type: "landline" };
+      } else if (landlineLocalRegex.test(phone)) {
+        return {
+          isValid: false,
+          message: "鏈湴鍙风爜璇锋坊鍔犲尯鍙凤紙濡�028-1234567锛�",
+        };
+      } else {
+        return {
+          isValid: false,
+          message: "璇疯緭鍏ユ纭殑鐢佃瘽鍙风爜锛堟墜鏈哄彿鎴栧甫鍖哄彿鐨勫浐瀹氱數璇濓級",
+        };
+      }
+    },
+    // 浣跨敤绀轰緥
+    isValidPhone(phone) {
+      return this.validatePhoneNumber(phone).isValid;
+    },
     handleCall(phone, type) {
       if (!this.isValidPhone(phone)) {
         this.$message.error("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
@@ -1312,10 +1411,9 @@
         });
       });
     },
-
     // 澶勭悊閫氳瘽鐘舵�佸彉鍖�
     handleCallStatusChange(status) {
-      console.log(status,'status');
+      console.log(status, "status");
 
       this.callStatus = status.type;
 
@@ -1334,7 +1432,6 @@
         this.$message.error(`鍛煎彨澶辫触: ${status.text}`);
       }
     },
-
     // 缁撴潫褰撳墠閫氳瘽
     endCurrentCall() {
       if (!this.currentCall) return;
@@ -1540,7 +1637,7 @@
         })
         .catch(() => {});
     },
-    handleOptionChange(a, b, c) {
+    aahandleOptionChange(a, b, c) {
       const result = c.find((item) => item.optioncontent == a);
       if (result.nextQuestion == 0) {
         this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
@@ -1569,6 +1666,98 @@
       }
       this.$forceUpdate();
     },
+    // 鍦╩ethods閮ㄥ垎锛屼慨鏀筯andleOptionChange鏂规硶:
+    handleOptionChange(selectedOption, questionIndex, options, a) {
+      if (document.activeElement) {
+        document.activeElement.blur();
+      }
+
+      // 鎵惧埌琚�変腑鐨勯�夐」瀵硅薄
+      const selectedOptionObj = options.find(
+        (item) => item.optioncontent == selectedOption
+      );
+
+      // 澶勭悊寮傚父鐘舵�侀珮浜�
+      this.tableDatatop[questionIndex].isabnormal =
+        !!selectedOptionObj.isabnormal;
+      // 澶勭悊闄勫姞杈撳叆妗嗘樉绀�
+
+      this.tableDatatop[questionIndex].showAppendInput =
+        selectedOptionObj.appendflag == 1;
+      console.log(this.tableDatatop);
+
+      // if (!this.tableDatatop[questionIndex].showAppendInput) {
+      //   this.tableDatatop[questionIndex].answerps = ""; // 娓呴櫎闄勫姞淇℃伅
+      // }
+      // 淇濆瓨褰撳墠棰樼洰涔嬪墠宸茬粡闅愯棌鐨勯鐩姸鎬�
+      const previouslyHiddenBeforeCurrent = this.tableDatatop
+        .slice(0, questionIndex)
+        .map((item, index) => (item.astrict ? index : -1))
+        .filter((index) => index !== -1);
+
+      // 淇濆瓨涔嬪墠鍥爊extQuestion=0鑰岄殣钘忕殑棰樼洰鑼冨洿
+      const previouslyHiddenByEnd = this.tableDatatop
+        .map((item, index) => (item.hiddenByEnd ? index : -1))
+        .filter((index) => index !== -1);
+
+      // 濡傛灉branchFlag涓�1锛屽鐞嗛鐩烦杞�
+      if (a.branchFlag == 1) {
+        if (selectedOptionObj.nextQuestion == 0) {
+          // 缁撴潫闂瓟 - 闅愯棌鍚庨潰鎵�鏈夐鐩苟鏍囪
+          this.tableDatatop = this.tableDatatop.map((item, index) => ({
+            ...item,
+            astrict: index > questionIndex,
+            hiddenByEnd: index > questionIndex, // 鏍囪杩欎簺棰樼洰鏄缁撴潫闂瓟闅愯棌鐨�
+          }));
+        } else {
+          // 姝e父璺宠浆閫昏緫
+          const nextQuestionIndex = selectedOptionObj.nextQuestion - 1;
+
+          this.tableDatatop = this.tableDatatop.map((item, index) => {
+            // 淇濈暀褰撳墠棰樼洰涔嬪墠鐨勯殣钘忕姸鎬�
+            if (index < questionIndex) {
+              return {
+                ...item,
+                astrict: previouslyHiddenBeforeCurrent.includes(index),
+                hiddenByEnd: false, // 娓呴櫎缁撴潫鏍囪
+              };
+            }
+
+            // 褰撳墠棰樼洰鎬绘槸鍙
+            if (index === questionIndex) {
+              return { ...item, astrict: 0, hiddenByEnd: false };
+            }
+
+            // 鏄剧ず鐩爣涓嬩竴棰�
+            if (index === nextQuestionIndex) {
+              return { ...item, astrict: 0, hiddenByEnd: false };
+            }
+
+            // 濡傛灉鏄箣鍓嶈缁撴潫闂瓟闅愯棌鐨勯鐩紝鐜板湪搴旇鎭㈠鏄剧ず
+            if (item.hiddenByEnd) {
+              return { ...item, astrict: 0, hiddenByEnd: false };
+            }
+
+            // 闅愯棌褰撳墠棰樺拰鐩爣棰樹箣闂寸殑棰樼洰
+            if (index > questionIndex && index < nextQuestionIndex) {
+              return { ...item, astrict: 1, hiddenByEnd: false };
+            }
+
+            // 鍏朵粬鎯呭喌淇濇寔鍘熺姸
+            return item;
+          });
+        }
+      } else {
+        // 濡傛灉娌℃湁璺宠浆锛屽彧闇�纭繚涓嬩竴棰樺彲瑙�
+        this.tableDatatop = this.tableDatatop.map((item, index) => ({
+          ...item,
+          astrict: index === questionIndex + 1 ? 0 : item.astrict,
+          hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
+        }));
+      }
+
+      this.$forceUpdate();
+    },
     overdata() {
       this.tableDatatop.forEach((item, index) => {
         var obj = item.svyLibTemplateTargetoptions.find(
@@ -1588,6 +1777,10 @@
     setupsubtask() {
       this.$refs["zcform"].validate((valid) => {
         if (valid) {
+          if (this.form.date1 && new Date(this.form.date1) < new Date()) {
+            this.$message.error("闅忚鏃堕棿涓嶈兘灏忎簬褰撳墠鏃堕棿");
+            return false;
+          }
           this.form.remark =
             this.form.remark + "銆�" + this.getCurrentTime() + "銆�";
           let form = structuredClone(this.form);
@@ -1642,69 +1835,205 @@
       return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
     },
     updateScore(a, b, c) {},
+    // 鍚堝苟淇敼鐩稿叧=============================
+    toggleMergeMode() {
+      this.isMergeMode = !this.isMergeMode;
+      if (!this.isMergeMode) {
+        this.selectedServices = [];
+      }
+    },
+
+    handleSelectionChange(selection) {
+      this.selectedServices = selection
+        .filter(
+          (item) => !item.preachformson || !item.preachformson.includes("3")
+        )
+        .map((item) => ({
+          id: item.id,
+          taskid: item.taskid,
+          taskName: item.taskName,
+          sendname: item.sendname,
+        }));
+    },
+    checkSelectable(row, index) {
+      // 褰� sendstate 涓� 6 鏃朵笉鍙��
+      return row.sendstate !== 6;
+    },
+    openMergeDialog() {
+      if (this.selectedServices.length < 2) {
+        this.$message.warning("璇疯嚦灏戦�夋嫨2涓棶鍗锋湇鍔¤繘琛屽悎骞�");
+        return;
+      }
+      this.mergeDialogVisible = true;
+    },
+
+    handleMergeSave(mergedData) {
+      // 澶勭悊鍚堝苟淇濆瓨閫昏緫
+      this.mergeDialogVisible = false;
+      this.isMergeMode = false;
+      this.selectedServices = [];
+
+      // 鏄剧ず淇濆瓨缁撴灉
+      if (mergedData.successCount == mergedData.totalCount) {
+        this.$message.success(`鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗穈);
+      } else if (mergedData.successCount > 0) {
+        this.$message.warning(
+          `鎴愬姛淇濆瓨 ${mergedData.successCount} 涓棶鍗凤紝澶辫触 ${
+            mergedData.totalCount - mergedData.successCount
+          } 涓猔
+        );
+      } else {
+        this.$message.error("鎵�鏈夐棶鍗蜂繚瀛樺け璐�");
+      }
+
+      // 鍒锋柊鏁版嵁
+      this.getTaskservelist();
+    },
   },
 };
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 .Followupdetailspage {
   margin: 10px;
+  display: flex;
+  flex-direction: column;
+  gap: 20px;
+}
+
+.action-container {
+  display: flex;
+  gap: 20px;
+  margin: 0 10px 20px 10px;
+
+  .manual-action {
+    flex: 1;
+    min-width: 0;
+    height: 100%; /* 纭繚楂樺害缁ф壙 */
+  }
+
+  .call-action {
+    width: 60%;
+    min-width: 0;
+    height: 100%; /* 纭繚楂樺害缁ф壙 */
+  }
+}
+
+.call-container {
+  padding: 20px;
+  background: #fff;
+  border: 1px solid #dcdfe6;
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+  border-radius: 4px;
+  height: 100%;
+
+  .call-header {
+    margin-bottom: 20px;
+
+    h2 {
+      font-size: 20px;
+      color: #333;
+      margin: 0;
+      padding-bottom: 10px;
+      border-bottom: 1px solid #eee;
+    }
+  }
+
+  .call-status {
+    margin-bottom: 20px;
+  }
+
+  .hangup-btn {
+    text-align: center;
+    margin-top: 20px;
+  }
+}
+.merge-controls {
+  background: #f5f7fa;
+  border-radius: 4px;
+  margin-left: 20px;
 }
 .Followuserinfo {
-  margin: 20px 10px;
+  margin: 10px 10px 0 10px;
   align-items: center;
   padding: 30px;
   background: #ffff;
   border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
   .userinfo-text {
     font-size: 20px;
     margin-right: 20px;
     margin-bottom: 10px;
   }
+
   .userinfo-value {
     color: rgb(15, 139, 211);
+
     span {
       margin-right: 20px;
     }
   }
 }
+
 ::v-deep.el-table .warning-row {
   background: #c4e2ee;
 }
+
 .Followuserinfos {
-  margin: 20px 10px;
   align-items: center;
   padding: 30px;
   background: #ffff;
   border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+  height: 100%; /* 纭繚楂樺害缁ф壙 */
+  min-height: 880px; /* 鏈�灏忛珮搴︿笌闅忚鍐呭涓�鑷� */
+  display: flex;
+  flex-direction: column;
+
   .userinfo-text {
     font-size: 20px;
     margin-right: 20px;
     margin-bottom: 10px;
   }
+
   .userinfo-value {
     color: rgb(15, 139, 211);
+
     span {
       margin-right: 20px;
     }
   }
+
+  .el-form {
+    flex: 1;
+    overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+    max-height: calc(880px - 60px); /* 鍑忓幓padding */
+    padding-right: 10px; /* 闃叉婊氬姩鏉¢伄鎸″唴瀹� */
+  }
+}
+.append-input-container {
+  margin-top: 15px;
+  padding: 10px;
+  background-color: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #dcdfe6;
 }
 .borderdiv {
   min-height: 60vh;
   font-size: 20px;
   padding: 30px;
+
   .title {
     font-size: 22px;
     font-weight: bold;
     margin-bottom: 20px;
     text-align: center;
   }
+
   .leftside {
     margin: 30px 0;
+
     span {
       width: 400px;
       margin-left: 20px;
@@ -1714,9 +2043,11 @@
       border-radius: 10px;
     }
   }
+
   .offside {
     display: flex;
     flex-direction: row-reverse;
+
     .offside-value {
       padding: 10px;
       background: rgb(217, 173, 253);
@@ -1726,8 +2057,15 @@
     }
   }
 }
+.topic-dev[inert] {
+  opacity: 0.5;
+  pointer-events: none;
+}
 .CONTENT {
   padding: 10px;
+  height: 100%;
+  min-height: 660px; /* 璁剧疆鏈�灏忛珮搴� */
+
   .title {
     font-size: 22px;
     font-weight: bold;
@@ -1735,40 +2073,47 @@
     text-align: center;
   }
 }
+
 .preview-left {
   margin: 20px;
-  //   margin: 20px;
   padding: 30px;
-  // background: #ffff;
   border: 1px solid #dcdfe6;
-  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+  max-height: 580px; /* 璁剧疆鏈�澶ч珮搴� */
+  overflow-y: auto; /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
+
   .topic-dev {
     margin-bottom: 25px;
     font-size: 20px !important;
+
     .dev-text {
       margin-bottom: 10px;
     }
   }
 }
+
 .scriptTopic-isabnormal {
   color: red;
 }
+
 .detailed {
   width: 88%;
   border-radius: 8px;
   padding: 30px;
   margin-bottom: 30px;
   background-color: #ddf0f8;
+
   .bg-purple {
     margin-bottom: 20px;
   }
+
   .spanvalue {
     display: inline-block;
     min-width: 200px;
     border-bottom: 1px solid rgb(172, 172, 172);
   }
 }
+
 .headline {
   font-size: 24px;
   height: 40px;
@@ -1776,79 +2121,94 @@
   padding-left: 5px;
   margin-bottom: 10px;
   display: flex;
-  // justify-content: space-between;
+
   .Add-details {
     font-size: 18px;
     color: #02a7f0;
     cursor: pointer;
   }
 }
+
 .red-star {
   ::v-deep.el-radio__label {
     position: relative;
-    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    padding-right: 10px;
   }
+
   ::v-deep.el-radio__label::after {
     content: "*";
     color: red;
     position: absolute;
-    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    right: -5px;
     top: 0;
   }
+
   ::v-deep.el-input-group__textarea {
-    white-space: pre-wrap; /* 淇濇寔绌虹櫧绗﹀簭鍒楀苟姝e父鎹㈣ */
-    word-break: break-all; /* 鍦ㄩ暱鍗曡瘝鎴朥RL鍦板潃鍐呴儴杩涜鎹㈣ */
+    white-space: pre-wrap;
+    word-break: break-all;
   }
+
   ::v-deep.el-checkbox__label {
     position: relative;
-    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    padding-right: 10px;
   }
+
   ::v-deep.el-checkbox__label::after {
     content: "*";
     color: red;
     position: absolute;
-    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    right: -5px;
     top: 0;
   }
 }
+
 ::v-deep.offside-value .el-radio__label {
   color: #fff;
 }
+
 ::v-deep.el-link.el-link--default {
   color: #02a7f0 !important;
 }
+
 .el-message-box__btns button:nth-child(2) {
   margin-left: 10px;
   background-color: #f57676;
   border-color: #f57676;
 }
+
 .el-icon-phone {
   transition: all 0.3s;
 }
+
 .el-button[disabled] .el-icon-phone {
   color: #c0c4cc;
 }
+
 .el-button:not([disabled]) .el-icon-phone {
   color: #409eff;
 }
+
 .el-button:not([disabled]):hover .el-icon-phone {
   color: #66b1ff;
   transform: scale(1.1);
 }
+
 .mulsz {
   font-size: 25px;
   margin-top: 20px;
 }
+
 .el-input.is-disabled .el-input__inner {
-  background-color: #fff; /* 鑳屾櫙棰滆壊 */
-  border-color: #dcdfe6; /* 杈规棰滆壊 */
-  color: #080808 !important; /* 鏂囧瓧棰滆壊 */
-  cursor: not-allowed; /* 榧犳爣鏍峰紡 */
+  background-color: #fff;
+  border-color: #dcdfe6;
+  color: #080808 !important;
+  cursor: not-allowed;
 }
+
 .el-textarea.is-disabled .el-textarea__inner {
-  background-color: #fff; /* 鑳屾櫙棰滆壊 */
-  border-color: #dcdfe6; /* 杈规棰滆壊 */
-  color: #080808 !important; /* 鏂囧瓧棰滆壊 */
-  cursor: not-allowed; /* 榧犳爣鏍峰紡 */
+  background-color: #fff;
+  border-color: #dcdfe6;
+  color: #080808 !important;
+  cursor: not-allowed;
 }
 </style>
diff --git a/src/views/followvisit/record/physical/index.vue b/src/views/followvisit/record/physical/index.vue
index 58077c6..53ca223 100644
--- a/src/views/followvisit/record/physical/index.vue
+++ b/src/views/followvisit/record/physical/index.vue
@@ -711,7 +711,6 @@
       const queryParams = {
         pid: Number(this.patid),
         allhosp: "0",
-        pageNum: 1,
       };
       // 鎮h�呭熀纭�淇℃伅
       messagelistpatient(queryParams).then((response) => {
diff --git a/src/views/followvisit/tasklist/index.vue b/src/views/followvisit/tasklist/index.vue
index 60564ca..5143c6f 100644
--- a/src/views/followvisit/tasklist/index.vue
+++ b/src/views/followvisit/tasklist/index.vue
@@ -732,6 +732,7 @@
             label: "闂嵎闅忚",
           },
         ];
+        this.topqueryParams.type=2;
       } else if (this.tasktopic == 4 || this.tasktopic == 8) {
         if (!this.topqueryParams.type) this.topqueryParams.type = "3";
         this.longtermlist = [
@@ -740,6 +741,7 @@
             label: "瀹f暀鍏虫��",
           },
         ];
+        this.topqueryParams.type=3;
       } else if (this.tasktopic == 5) {
         if (!this.topqueryParams.type) this.topqueryParams.type = "1";
         this.longtermlist = [
@@ -753,10 +755,6 @@
           },
         ];
       }
-      // this.topqueryParams.typename = this.findLabelByValue(
-      //   this.taskoptions,
-      //   this.tasktopic
-      // );
       this.topqueryParams.beginTime = this.dateRange[0];
       this.topqueryParams.endTime = this.dateRange[1];
       getTasklist(this.topqueryParams).then((response) => {
diff --git a/src/views/followvisit/zbAgain/index.vue b/src/views/followvisit/zbAgain/index.vue
index e53487e..fa4c662 100644
--- a/src/views/followvisit/zbAgain/index.vue
+++ b/src/views/followvisit/zbAgain/index.vue
@@ -1187,8 +1187,8 @@
       });
     },
     affiliation() {
-      this.topqueryParams.drcode = store.getters.hisUserId;
-      this.topqueryParams.nurseId = store.getters.hisUserId;
+
+      this.topqueryParams.managementDoctorCode= store.getters.hisUserId;
       this.getList(1);
     },
     onthatday() {
diff --git a/src/views/index.vue b/src/views/index.vue
index d76be1a..ac2876e 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -20,7 +20,7 @@
             <el-row :gutter="20">
               <el-col :span="10">
                 <div class="home-user-task-stats">
-                  <p>{{ OutpatientData.rs }}</p>
+                  <p>{{ OutpatientData.rc }}</p>
                   <div class="text-color2">
                     <p>闂ㄨ瘖灏辫瘖閲忥紙浜烘锛�</p>
                   </div>
@@ -28,7 +28,7 @@
               </el-col>
               <el-col :span="10">
                 <div class="home-user-task-stats">
-                  <p>{{ OutpatientData.rc }}</p>
+                  <p>{{ OutpatientData.rs }}</p>
                   <div class="text-color2">
                     <p>闂ㄨ瘖鏈嶅姟閲忥紙浜烘锛�</p>
                   </div>
@@ -62,7 +62,7 @@
             <el-row :gutter="20">
               <el-col :span="10">
                 <div class="home-user-task-stats">
-                  <p style="color: red">{{ DischargeData.rs }}</p>
+                  <p style="color: red">{{ DischargeData.rc }}</p>
                 </div>
                 <div class="text-color2">
                   <p>鍑洪櫌灏辫瘖閲忥紙浜烘锛�</p>
@@ -70,7 +70,7 @@
               </el-col>
               <el-col :span="10">
                 <div class="home-user-task-stats">
-                  <p style="color: red">{{ DischargeData.rc }}</p>
+                  <p style="color: red">{{ DischargeData.rs }}</p>
                   <div class="text-color2">
                     <p>鍑洪櫌鏈嶅姟閲忥紙浜烘锛�</p>
                   </div>
@@ -94,15 +94,30 @@
                 style="margin-left: 390px"
                 @change="changes"
               >
-                <el-radio-button label="鍛�" @click="dyat = 7"></el-radio-button>
                 <el-radio-button
-                  label="鏈�"
-                  @click="dyat = 30"
+                  label="杩戜竴鍛�"
+                  @click="dyat = 7"
                 ></el-radio-button>
                 <el-radio-button
-                  label="骞�"
-                  @click="dyat = 360"
+                  label="杩戜竴鏈�"
+                  @click="dyat = 31"
                 ></el-radio-button>
+                <el-radio-button
+                  label="杩戜竴骞�"
+                  @click="dyat = 365"
+                ></el-radio-button>
+                <el-radio-button label="鑷畾涔�">
+                  <el-date-picker
+                    v-if="radio1 === '鑷畾涔�'"
+                    v-model="customDateRange"
+                    type="daterange"
+                    range-separator="鑷�"
+                    start-placeholder="寮�濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                    value-format="yyyy-MM-dd"
+                    @change="handleCustomDateChange"
+                  ></el-date-picker>
+                </el-radio-button>
               </el-radio-group>
             </div>
             <!-- 涓儴绾挎�ф煴鐘跺浘 -->
@@ -113,13 +128,18 @@
         </el-col>
         <!-- 鍙宠竟鍒楄〃 -->
         <el-col :span="4" class="aside">
-          <div class="grid-content bg-purple" style="margin-top: -180px">
+          <div class="grid-contentsa bg-purple" style="margin-top: -180px">
             <div class="title">
               绉戝鏈嶅姟閲�
               <span>{{ endatd }} ~ {{ statd }}</span>
             </div>
-            <div style="max-height: 690px; width: 100%; overflow: auto">
-              <el-table style="width: 100%" :data="SkuTop">
+            <div class="dept-table-container">
+              <el-table
+                v-if="SkuTop.length > 0"
+                style="width: 100%"
+                :data="SkuTop"
+                :height="tableHeight"
+              >
                 <template v-for="(item, index) in SkuTop"></template>
                 <el-table-column
                   prop="order"
@@ -129,7 +149,7 @@
                 ></el-table-column>
                 <el-table-column
                   prop="deptname"
-                  width="88"
+                  width="120"
                   class-name="name"
                 ></el-table-column>
 
@@ -137,24 +157,26 @@
                   <template slot-scope="scope"> {{ scope.row.rc }}娆� </template>
                 </el-table-column>
               </el-table>
+              <div v-else class="empty-tip">
+                <el-empty description="鏆傛棤绉戝鏈嶅姟鏁版嵁"></el-empty>
+              </div>
             </div>
           </div>
         </el-col>
       </el-row>
       <!-- 搴曢儴涓�涓� -->
       <el-row :gutter="20" style="margin-bottom: 20px">
-        <el-col :span="24">
+        <!-- <el-col :span="24">
           <div class="grid-content bg-purple" style="min-height: 300px">
             <div class="title">
               瀹f暀缁熻
               <span class="el-icon-s-unfold moreIcon"></span>
             </div>
             <div class="cooperate">
-              <!-- 鍚堜綔鍖哄煙 -->
               <div class="pieChart" id="pieCharts"></div>
             </div>
           </div>
-        </el-col>
+        </el-col> -->
         <!-- <el-col :span="9">
           <div class="grid-content bg-purple" style="min-height: 300px">
             <div class="title">
@@ -306,7 +328,7 @@
       mypPieCharts: null,
       lastWidth: window.innerWidth,
       lastHeight: window.innerHeight,
-      radio1: "鏈�",
+      radio1: "杩戜竴骞�",
       ticketStatistics: {},
       timeTypeMap: {
         鍛�: "day",
@@ -330,7 +352,8 @@
       SkuTop: [],
       cylinderSeries: [],
       cylinderXAxis: [],
-      dyat: 30,
+      customDateRange: [], // 鑷畾涔夋棩鏈熻寖鍥�
+      dyat: 365,
       intervalId: null,
     };
   },
@@ -344,16 +367,32 @@
       return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD HH:mm:ss");
     },
     statd() {
+      if (this.radio1 === "鑷畾涔�" && this.customDateRange.length > 0) {
+        return this.customDateRange[1];
+      }
       return dayjs().format("YYYY-MM-DD");
     },
     endatd() {
+      if (this.radio1 === "鑷畾涔�" && this.customDateRange.length > 0) {
+        return this.customDateRange[0];
+      }
       return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD");
+    },
+    tableHeight() {
+      // 鏍规嵁鏁版嵁閲忓姩鎬佽绠楅珮搴�
+      const rowHeight = 40; // 姣忚澶х害楂樺害
+      const headerHeight = 40; // 琛ㄥご楂樺害
+      const minHeight = 500; // 鏈�灏忛珮搴�
+      const maxHeight = 600; // 鏈�澶ч珮搴�
+
+      const calculatedHeight = this.SkuTop.length * rowHeight + headerHeight;
+      return Math.min(Math.max(calculatedHeight, minHeight), maxHeight);
     },
   },
   created() {
     this.getTopdata();
     this.getgraphdata();
-    this.getranking();
+    // this.getranking();
     this.$nextTick(function () {
       this.myEcharts2();
       this.getnodeCollect();
@@ -372,15 +411,35 @@
   methods: {
     // 鏀瑰彉鏃堕棿浜嬩欢
     changes() {
-      if (this.radio1 == "鍛�") {
-        this.dyat = 7;
-      } else if (this.radio1 == "鏈�") {
-        this.dyat = 30;
-      } else {
-        this.dyat = 360;
+      switch (this.radio1) {
+        case "杩戜竴鍛�":
+          this.dyat = 7;
+          break;
+        case "杩戜竴鏈�":
+          this.dyat = 30;
+          break;
+        case "杩戜竴骞�":
+          this.dyat = 365;
+          break;
+        case "鑷畾涔�":
+          // 鑷畾涔夋棩鏈熷鐞嗗湪handleCustomDateChange鏂规硶涓�
+          return;
       }
+      this.refreshData();
+    },
+
+    // 澶勭悊鑷畾涔夋棩鏈熷彉鍖�
+    handleCustomDateChange(range) {
+      if (!range || range.length !== 2) return;
+
+      this.customDateRange = range;
+      this.refreshData();
+    },
+
+    // 缁熶竴鍒锋柊鏁版嵁鐨勬柟娉�
+    refreshData() {
       this.getgraphdata();
-      this.getranking();
+      // this.getranking();
       this.getTopdata();
       this.myEcharts2();
       this.getnodeCollect();
@@ -461,12 +520,7 @@
       let params = {
         startDate: this.endatd,
         endDate: this.statd,
-        timeType:
-          this.radio1 === "鍛�"
-            ? "day"
-            : this.radio1 === "鏈�"
-            ? "month"
-            : "year",
+        timeType: this.getTimeType(),
       };
 
       try {
@@ -477,6 +531,28 @@
       } catch (error) {
         console.error("鑾峰彇鍥捐〃鏁版嵁澶辫触:", error);
       }
+    },
+
+    // 鑾峰彇鏃堕棿绫诲瀷
+    getTimeType() {
+      if (this.radio1 === "杩戜竴鍛�" || this.radio1 === "杩戜竴鏈�") {
+        return "day";
+      }
+
+      if (this.radio1 === "杩戜竴骞�") {
+        return "month";
+      }
+
+      // 鑷畾涔夋棩鏈熻寖鍥�
+      if (this.radio1 === "鑷畾涔�" && this.customDateRange.length === 2) {
+        const start = dayjs(this.customDateRange[0]);
+        const end = dayjs(this.customDateRange[1]);
+        const diffDays = end.diff(start, "day");
+
+        return diffDays > 60 ? "month" : "day";
+      }
+
+      return "day"; // 榛樿杩斿洖day绫诲瀷
     },
     processChartData(data) {
       // 鎸夋椂闂存帓搴忕‘淇濇暟鎹『搴忔纭�
@@ -492,14 +568,11 @@
 
       sortedData.forEach((item) => {
         // 鏍规嵁鏃堕棿绫诲瀷鏍煎紡鍖栨樉绀�
-        let timeLabel = item.timePeriod;
-        if (this.radio1 === "鍛�") {
-          timeLabel = dayjs(item.timePeriod).format("MM-DD");
-        } else if (this.radio1 === "鏈�") {
-          timeLabel = item.timePeriod.split("-")[1] + "鏈�";
-        } else {
-          timeLabel = item.timePeriod.split("-")[0] + "骞�";
-        }
+        const timeType = this.getTimeType();
+        const timeLabel =
+          timeType === "day"
+            ? dayjs(item.timePeriod).format("MM-DD")
+            : dayjs(item.timePeriod).format("YYYY-MM");
 
         xAxisData.push(timeLabel);
         dischargeFollowData.push(item.dischargeFollowCount);
@@ -623,7 +696,7 @@
           },
         },
         legend: {
-          data: ["鍑洪櫌闅忚閲�", "闂ㄨ瘖闅忚閲�", "鍑洪櫌鏈嶅姟浜烘", "闂ㄨ瘖鏈嶅姟浜烘"],
+          data: ["鍑洪櫌鏈嶅姟閲�", "闂ㄨ瘖鏈嶅姟閲�", "鍑洪櫌灏辫瘖浜烘", "闂ㄨ瘖灏辫瘖浜烘"],
         },
         xAxis: [
           {
@@ -655,7 +728,7 @@
         grid: { top: "35%" },
         series: [
           {
-            name: "鍑洪櫌闅忚閲�",
+            name: "鍑洪櫌鏈嶅姟閲�",
             type: "bar",
             tooltip: {
               valueFormatter: function (value) {
@@ -665,7 +738,7 @@
             data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖
           },
           {
-            name: "闂ㄨ瘖闅忚閲�",
+            name: "闂ㄨ瘖鏈嶅姟閲�",
             type: "bar",
             tooltip: {
               valueFormatter: function (value) {
@@ -675,7 +748,7 @@
             data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖
           },
           {
-            name: "鍑洪櫌鏈嶅姟浜烘",
+            name: "鍑洪櫌灏辫瘖浜烘",
             type: "line",
             smooth: 0.3,
             yAxisIndex: 1,
@@ -687,7 +760,7 @@
             data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖
           },
           {
-            name: "闂ㄨ瘖鏈嶅姟浜烘",
+            name: "闂ㄨ瘖灏辫瘖浜烘",
             type: "line",
             smooth: 0.3,
             yAxisIndex: 1,
@@ -836,6 +909,12 @@
   .echars1 {
     flex: 1;
   }
+}
+.dept-table-container {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  min-height: 0; /* 閲嶈锛氬厑璁稿唴瀹规敹缂� */
 }
 ::v-deep .el-table {
   td:first-child {
@@ -1094,6 +1173,12 @@
   padding: 0 10px;
   text-align: center;
 }
+.grid-contentsa {
+  min-height: 600px;
+  border-radius: 20px;
+  padding: 0 10px;
+  text-align: center;
+}
 
 .grid-contents {
   min-height: 36px;
diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue
index 12d16fd..8643427 100644
--- a/src/views/knowledge/education/index.vue
+++ b/src/views/knowledge/education/index.vue
@@ -88,7 +88,6 @@
                 >
                   <el-option
                     v-for="item in courtyardlist"
-                    :key="item.label"
                     :label="item.label"
                     :value="item.label"
                   >
@@ -112,7 +111,6 @@
                 >
                   <el-option
                     v-for="(item, index) in qyoptions"
-                    :key="item.value"
                     :label="item.label"
                     :value="item.value"
                   >
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 139dba5..246989c 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -262,7 +262,7 @@
                   <el-option
                     class="ruleFormaa"
                     v-for="item in flatArray"
-                    :key="item.deptCode"
+                    :key="item.id"
                     :label="item.label"
                     :value="item.deptCode"
                   >
@@ -285,7 +285,7 @@
                   <el-option
                     class="ruleFormaa"
                     v-for="item in flatArray"
-                    :key="item.deptCode"
+                    :key="item.id"
                     :label="item.label"
                     :value="item.deptCode"
                   >
@@ -566,10 +566,10 @@
                     </el-form-item></el-col
                   >
                   <el-col :span="12"
-                    ><el-form-item label="鏄惁鍙敤">
-                      <el-radio-group v-model="topicobj.isenable">
+                    ><el-form-item label="鏄惁闅愯棌">
+                      <el-radio-group v-model="topicobj.ishide">
                         <el-radio
-                          v-for="(item, index) in usable"
+                          v-for="(item, index) in hides"
                           :label="item.value"
                           >{{ item.label }}</el-radio
                         >
@@ -582,8 +582,8 @@
                   v-if="topicobj.scriptType == 1"
                 >
                   <el-radio-group v-model="topicobj.branchFlag">
-                    <el-radio :label="1">鏄�</el-radio>
-                    <el-radio :label="0">鍚�</el-radio>
+                    <el-radio label="1">鏄�</el-radio>
+                    <el-radio label="0">鍚�</el-radio>
                   </el-radio-group>
                 </el-form-item>
                 <el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1">
@@ -656,6 +656,12 @@
                         <el-radio-group v-model="item.isabnormal">
                           <el-radio :label="1">鏄�</el-radio>
                           <el-radio :label="0">鍚�</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                      <el-form-item label="鏄惁閫変腑鏀堕泦闄勫姞淇℃伅">
+                        <el-radio-group v-model="item.appendflag">
+                          <el-radio label="1">鏄�</el-radio>
+                          <el-radio label="0">鍚�</el-radio>
                         </el-radio-group>
                       </el-form-item>
                     </el-row>
@@ -749,9 +755,7 @@
         >
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-        <el-button @click="toExamine('ruleForm')"
-          >淇濆瓨闂鏁版嵁</el-button
-        >
+        <el-button @click="toExamine('ruleForm')">淇濆瓨闂鏁版嵁</el-button>
       </div>
       <!-- 闂嵎棰勮 -->
       <div v-if="Editprogress == 3">
@@ -1299,6 +1303,7 @@
         svyTemplateLibScripts: [],
         tempDetpRelevances: [],
         svyLibTemplateTagList: [],
+        suitway: [],
         scoreType: "4",
         isenable: "0",
         longTemp: "0",
@@ -1404,6 +1409,10 @@
       usable: [
         { value: "0", label: "鍙敤" },
         { value: "1", label: "鍋滅敤" },
+      ],
+      hides: [
+        { value: 0, label: "姝e父" },
+        { value: 1, label: "闅愯棌" },
       ],
       longtype: [
         { value: "0", label: "鏅�氫换鍔�" },
@@ -1622,8 +1631,8 @@
           this.confirmillness();
           this.putbelongDepts();
           this.$modal.closeLoading();
-          // this.$router.go(-1);
-          window.location.reload();
+          this.$router.go(-1);
+          // window.location.reload();
         });
       } else {
         this.ruleForm.isoperation = 1;
@@ -1643,8 +1652,8 @@
     // 棰樼洰鏍¢獙
     toExamine() {
       // 閬嶅巻棰樼洰闆嗗悎
-      for (let i = 0; i <  this.ruleForm.svyTemplateLibScripts.length; i++) {
-        const question =  this.ruleForm.svyTemplateLibScripts[i];
+      for (let i = 0; i < this.ruleForm.svyTemplateLibScripts.length; i++) {
+        const question = this.ruleForm.svyTemplateLibScripts[i];
 
         // 濡傛灉 scriptType 涓� 4锛屽垯璺宠繃褰撳墠棰樼洰
         if (question.scriptType === 4) {
@@ -1675,7 +1684,7 @@
 
       // 濡傛灉鎵�鏈夐鐩兘鏍¢獙閫氳繃锛岃繑鍥� true
       console.log("鎵�鏈夐鐩牎楠岄�氳繃锛岄�夐」鍚嶇О鏃犻噸澶�");
-       this.Departmenttreatment();
+      this.Departmenttreatment();
     },
 
     // 绉戝/闄㈠尯澶勭悊
diff --git a/src/views/login.vue b/src/views/login.vue
index d506da5..e7f61cb 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -119,6 +119,7 @@
         { value: "47231022633110211A2101", label: "涓芥按甯備腑鍖婚櫌" },
         { value: "47246102433112211A2101", label: "缂欎簯鍘夸腑鍖诲尰闄� " },
         { value: "47240018433118111A2101", label: "榫欐硥甯備腑鍖诲尰闄� " },
+        { value: "47240004533118111A1001", label: "榫欐硥甯備汉姘戝尰闄� " },
         { value: "47243006833112611A2101", label: "搴嗗厓鍘夸腑鍖诲尰闄� " },
         { value: "47234002X33112111A2101", label: "闈掔敯鍘夸腑鍖诲尰闄� " },
        ],
diff --git a/src/views/patient/patient/outpatient.vue b/src/views/patient/patient/outpatient.vue
index 02b2368..3952a15 100644
--- a/src/views/patient/patient/outpatient.vue
+++ b/src/views/patient/patient/outpatient.vue
@@ -67,16 +67,16 @@
             ></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
+            <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"
@@ -85,7 +85,7 @@
                 :default-time="['12:00:00']"
               >
               </el-date-picker> -->
-            </el-form-item>
+          </el-form-item>
           <el-row>
             <!-- <el-form-item label=" 灏辫瘖鏃ユ湡 " prop="admitdate">
               <el-date-picker
@@ -150,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">
@@ -228,7 +240,13 @@
               <el-button
                 size="medium"
                 type="text"
-                @click="gettoken360(scope.row.idcardno,scope.row.drcode,scope.row.drname)"
+                @click="
+                  gettoken360(
+                    scope.row.idcardno,
+                    scope.row.drcode,
+                    scope.row.drname
+                  )
+                "
                 ><span class="button-textsc">{{
                   scope.row.patname
                 }}</span></el-button
@@ -301,7 +319,23 @@
             prop="drname"
             width="120"
           />
-
+          <el-table-column
+            label="鏄惁瀛樺湪浠诲姟"
+            align="center"
+            key="serverState"
+            prop="serverState"
+            width="100"
+          >
+            <template slot-scope="scope">
+              <span
+                :style="{
+                  color: scope.row.serverState == 1 ? 'green' : 'gray',
+                }"
+              >
+                {{ scope.row.serverState == 1 ? "鏄�" : "鏃�" }}
+              </span>
+            </template>
+          </el-table-column>
           <el-table-column
             label="鎿嶄綔"
             fixed="right"
@@ -337,7 +371,113 @@
         />
       </el-col>
     </el-row>
+    <el-dialog
+      title="鎵归噺娣诲姞浠诲姟"
+      :visible.sync="batchTaskVisible"
+      width="90%"
+      append-to-body
+    >
+      <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-table-column
+                label="鏈嶅姟椤圭洰"
+                align="center"
+                key="templatename"
+                prop="templatename"
+                :show-overflow-tooltip="true"
+              />
+
+              <el-table-column
+                label="鍒涘缓浜�"
+                align="center"
+                key="createBy"
+                prop="createBy"
+                :show-overflow-tooltip="true"
+              />
+              <el-table-column
+                label="鍒涘缓鏃堕棿"
+                sortable
+                align="center"
+                prop="createTime"
+              >
+                <template slot-scope="scope">
+                  <span>{{ formatTime(scope.row.createTime) }}</span>
+                </template>
+              </el-table-column>
+              <template #empty>
+                <div class="empty-message">
+                  <i class="el-icon-warning"></i>
+                  <span>鎮h�呯瀹ゆ棤鍖归厤鏈嶅姟</span>
+                </div>
+              </template>
+            </el-table>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 搴曢儴鎸夐挳 -->
+      <div slot="footer" class="dialog-footer">
+        <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"
@@ -383,6 +523,7 @@
           </div>
         </el-upload>
       </div>
+
       <!-- 瀵煎叆妫�鏌� -->
       <div class="uploading" v-else-if="dractive == 2">
         <el-table :data="uploadingData" style="width: 100%">
@@ -446,7 +587,7 @@
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-import { query360PatInfo } from "@/api/AiCentre/index";
+import { query360PatInfo, getTasklist, addSubtask } from "@/api/AiCentre/index";
 
 import store from "@/store";
 
@@ -509,6 +650,12 @@
       Labelchange: false, //淇敼鏂板寮圭獥
       propss: { multiple: true },
       optionstag: [], //鏍囩鍒楄〃
+      batchTaskVisible: false, // 寮圭獥鍙鎬�
+      selectedPatients: [], // 閫変腑鐨勬偅鑰呭垪琛�
+      taskList: [], // 浠诲姟鍒楄〃
+      selectedTask: null, // 閫変腑鐨勪换鍔″垪琛�
+      batchLoading: false, // 鎵归噺鎻愪氦鍔犺浇鐘舵��
+      deptcode: "",
       Patientrange: [
         {
           name: "鍏ㄩ儴",
@@ -680,9 +827,9 @@
       if (this.dateRange) {
         this.queryParams.beginTime = this.dateRange[0];
         this.queryParams.endTime = this.dateRange[1];
-      }else{
-        this.queryParams.beginTime = '';
-        this.queryParams.endTime = '';
+      } else {
+        this.queryParams.beginTime = "";
+        this.queryParams.endTime = "";
       }
       listPatouthosp(this.queryParams).then((response) => {
         this.userList = response.rows;
@@ -733,11 +880,11 @@
       });
     },
     //鎮h��360璺宠浆
-    gettoken360(sfzh,drcode,drname) {
+    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';
+      if (this.postData.XiaoXiTou.ZuHuMC == "涓芥按甯備腑鍖婚櫌") {
+        this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728";
+        this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY";
       }
 
       query360PatInfo(this.postData).then((res) => {
@@ -796,7 +943,7 @@
         leaveldeptcodes: [],
         leavehospitaldistrictcodes: [],
       };
-        this.handleQuery();
+      this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
@@ -913,6 +1060,125 @@
       this.upload.open = false;
       this.dractive = 1;
     },
+    /** 鎵归噺娣诲姞浠诲姟鎸夐挳鐐瑰嚮 */
+    handleBatchAddTask() {
+      // 鏍¢獙鏄惁閫変腑鎮h��
+      if (this.ids.length === 0) {
+        this.$modal.msgWarning("璇疯嚦灏戦�変腑1鍚嶆偅鑰�");
+        return;
+      }
+      // 妫�鏌ラ�変腑鐨勬偅鑰呬腑鏄惁鏈夊凡鏈変换鍔$殑
+      const hasTaskPatients = this.userList.filter(
+        (item) => this.ids.includes(item.patid) && item.serverState == 1
+      );
+
+      if (hasTaskPatients.length > 0) {
+        const patientNames = hasTaskPatients.map((p) => p.patname).join("銆�");
+        this.$modal.msgError(
+          `閫変腑鐨勬偅鑰� ${patientNames} 宸叉湁浠诲姟锛屾棤娉曢噸澶嶆坊鍔燻
+        );
+        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,
+            sendstate:2,
+            ...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>
@@ -963,4 +1229,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>
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index a8e83be..dd695de 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -84,6 +84,7 @@
                   <el-radio-group v-model="form.longTask">
                     <el-radio :label="0">鑷畾涔夊懆鏈�</el-radio>
                     <el-radio :label="1">闀挎湡浠诲姟</el-radio>
+                    <el-radio :label="2">鍥哄畾浠诲姟</el-radio>
                   </el-radio-group>
                 </el-form-item>
                 <el-row :gutter="20" v-if="form.longTask">
diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue
index 1556c77..2f4cb09 100644
--- a/src/views/sfstatistics/percentage/index.vue
+++ b/src/views/sfstatistics/percentage/index.vue
@@ -1,37 +1,6 @@
 <template>
   <div class="Questionnairemanagement">
-    <!-- 宸︿晶鏍� -->
-    <!-- <div class="sidecolumn">
-      <div class="sidecolumn-top">
-        <div class="top-wj">鎮h�呰寖鍥�</div>
-      </div>
-
-      <div class="bottom-fl">
-        <el-tabs
-          tab-position="right"
-          v-model="activeName"
-          @tab-click="handleClick"
-        >
-          <el-tab-pane label="鍏ㄩ儴" name="first"></el-tab-pane>
-          <el-tab-pane label="浣忛櫌" name="bhospitalized"></el-tab-pane>
-          <el-tab-pane label="鍦ㄩ櫌" name="Inhospital"></el-tab-pane>
-          <el-tab-pane label="闂ㄨ瘖" name="outpatient"></el-tab-pane>
-          <el-tab-pane label="浣撴" name="physical"></el-tab-pane>
-        </el-tabs>
-      </div>
-    </div> -->
-    <!-- 鍙充晶鏁版嵁 -->
     <div class="leftvlue">
-      <!-- <div class="leftvlue-top">
-        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
-          <el-tab-pane name="Local">
-            <span class="mulsz" slot="label">鎸夊嚭闄㈢梾鍖虹粺璁� </span>
-          </el-tab-pane>
-          <el-tab-pane name="sharing">
-            <span class="mulsz" slot="label">鎸夊嚭闄㈢瀹ょ粺璁� </span>
-          </el-tab-pane>
-        </el-tabs>
-      </div> -->
       <div class="leftvlue-bg">
         <el-row :gutter="20">
           <!--鏍囩鏁版嵁-->
@@ -44,17 +13,6 @@
               v-show="showSearch"
               label-width="98px"
             >
-              <!-- <el-form-item label="鍖婚櫌" prop="userName">
-                <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨">
-                  <el-option
-                    v-for="item in options"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select>
-              </el-form-item> -->
               <el-form-item label="缁熻绫诲瀷" prop="userName">
                 <el-select
                   v-model="queryParams.statisticaltype"
@@ -160,49 +118,231 @@
                   v-hasPermi="['system:user:add']"
                   >鏂板</el-button
                 >
-              </el-col>
-
-              <el-col :span="1.5">
                 <el-button
-                  type="danger"
+                  type="primary"
                   plain
-                  icon="el-icon-delete"
+                  icon="el-icon-data-line"
                   size="medium"
-                  :disabled="multiple"
-                  @click="handleDelete"
-                  v-hasPermi="['system:user:remove']"
-                  >鍒犻櫎</el-button
+                  @click="showChartDialog"
+                  >缁熻瓒嬪娍鍥�</el-button
                 >
               </el-col>
-              <el-col :span="1.5">
-                <div class="documentf">
-                  <div class="document">
-                    <el-button
-                      type="warning"
-                      plain
-                      icon="el-icon-download"
-                      size="medium"
-                      @click="handleExport"
-                      v-hasPermi="['system:user:export']"
-                      >瀵煎嚭</el-button
-                    >
-                  </div>
-                </div>
-              </el-col>
-
-              <!-- <el-col :span="1.5"> </el-col> -->
             </el-row>
-            <!-- <right-toolbar
-          :showSearch.sync="showSearch"
-          @queryTable="getList"
-          :columns="columns"
-        ></right-toolbar> -->
+
             <el-table
               v-loading="loading"
               :data="userList"
               :border="true"
               @selection-change="handleSelectionChange"
+              @row-click="handleRowClick"
+              @expand-change="handleRowClick"
+              :row-key="getRowKey"
+              :expand-row-keys="expands"
             >
+              <!-- 灞曞紑琛岀澶村垪 -->
+              <el-table-column type="expand">
+                <template slot-scope="props">
+                  <el-table
+                    :data="props.row.doctorStats"
+                    border
+                    style="width: 95%; margin: 0 auto"
+                    class="inner-table"
+                  >
+                    <el-table-column
+                      label="鍖荤敓濮撳悕"
+                      prop="drname"
+                      align="center"
+                    />
+                    <el-table-column
+                      label="绉戝"
+                      width="120"
+                      prop="deptname"
+                      align="center"
+                    />
+                    <el-table-column
+                      label="鍑洪櫌浜烘"
+                      prop="dischargeCount"
+                      align="center"
+                    />
+                    <el-table-column
+                      label="鍑洪櫌浜烘"
+                      align="center"
+                      key="dischargeCount"
+                      prop="dischargeCount"
+                    >
+                    </el-table-column>
+
+                    <el-table-column
+                      label="鏃犻渶闅忚浜烘"
+                      align="center"
+                      width="100"
+                      key="nonFollowUp"
+                      prop="nonFollowUp"
+                    >
+                    </el-table-column>
+                    <el-table-column
+                      label="搴旈殢璁夸汉娆�"
+                      align="center"
+                      width="100"
+                      key="followUpNeeded"
+                      prop="followUpNeeded"
+                    >
+                    </el-table-column>
+                    <el-table-column align="center" label="棣栨鍑洪櫌闅忚">
+                      <el-table-column
+                        label="搴旈殢璁�"
+                        align="center"
+                        key="needFollowUp"
+                        prop="needFollowUp"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="寰呴殢璁�"
+                        align="center"
+                        key="pendingFollowUp"
+                        prop="pendingFollowUp"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚鎴愬姛"
+                        align="center"
+                        key="followUpSuccess"
+                        prop="followUpSuccess"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚澶辫触"
+                        align="center"
+                        key="followUpFail"
+                        prop="followUpFail"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚鐜�"
+                        align="center"
+                        width="120"
+                        key="followUpRate"
+                        prop="followUpRate"
+                      >
+                        <!-- <template slot-scope="scope">
+                    <span
+                      >{{
+                        (Number(scope.row.followUpRate) * 100).toFixed(2)
+                      }}%</span
+                    >
+                  </template> -->
+                      </el-table-column>
+                      <el-table-column
+                        label="鍙婃椂鐜�"
+                        align="center"
+                        width="120"
+                        key="rate"
+                        prop="rate"
+                      >
+                        <template slot-scope="scope">
+                          <el-button
+                            size="medium"
+                            type="text"
+                            @click="Seedetails(scope.row)"
+                            ><span class="button-zx"
+                              >{{
+                                (Number(scope.row.rate) * 100).toFixed(2)
+                              }}%</span
+                            ></el-button
+                          >
+                        </template>
+                      </el-table-column>
+                      <el-table-column
+                        label="浜哄伐"
+                        align="center"
+                        key="manual"
+                        prop="manual"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="鐭俊"
+                        align="center"
+                        key="sms"
+                        prop="sms"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="寰俊"
+                        align="center"
+                        key="weChat"
+                        prop="weChat"
+                      >
+                      </el-table-column>
+                    </el-table-column>
+                    <el-table-column align="center" label="鍐嶆鍑洪櫌闅忚">
+                      <el-table-column
+                        label="搴旈殢璁�"
+                        align="center"
+                        key="needFollowUpAgain"
+                        prop="needFollowUpAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="寰呴殢璁�"
+                        align="center"
+                        key="pendingFollowUpAgain"
+                        prop="pendingFollowUpAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚鎴愬姛"
+                        align="center"
+                        key="followUpSuccessAgain"
+                        prop="followUpSuccessAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚澶辫触"
+                        align="center"
+                        key="followUpFailAgain"
+                        prop="followUpFailAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="闅忚鐜�"
+                        align="center"
+                        width="120"
+                        key="followUpRateAgain"
+                        prop="followUpRateAgain"
+                      >
+                        <!-- <template slot-scope="scope">
+                    <span
+                      >{{
+                        (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2)
+                      }}%</span
+                    >
+                  </template> -->
+                      </el-table-column>
+                      <el-table-column
+                        label="浜哄伐"
+                        align="center"
+                        key="manualAgain"
+                        prop="manualAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="鐭俊"
+                        align="center"
+                        key="smsAgain"
+                        prop="smsAgain"
+                      >
+                      </el-table-column>
+                      <el-table-column
+                        label="寰俊"
+                        align="center"
+                        key="weChatAgain"
+                        prop="weChatAgain"
+                      >
+                      </el-table-column>
+                    </el-table-column>
+                  </el-table>
+                </template>
+              </el-table-column>
               <el-table-column
                 label="鍑洪櫌鐥呭尯"
                 align="center"
@@ -379,6 +519,254 @@
         </el-row>
       </div>
     </div>
+    <!-- 缁熻瓒嬪娍鍥惧脊绐� -->
+    <el-dialog
+      title="闅忚缁熻瓒嬪娍鍥�"
+      :visible.sync="chartDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <div class="chart-container">
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <div class="chart-title">闅忚鐘舵�佸垎甯�</div>
+            <div id="pieChart" style="width: 100%; height: 400px"></div>
+          </el-col>
+          <el-col :span="12">
+            <div class="chart-title">闅忚瓒嬪娍鍒嗘瀽</div>
+            <div id="barLineChart" style="width: 100%; height: 400px"></div>
+          </el-col>
+        </el-row>
+      </div>
+    </el-dialog>
+    <el-dialog
+      title="鏈強鏃堕殢璁挎偅鑰呮湇鍔�"
+      :visible.sync="SeedetailsVisible"
+      v-loading="Seedloading"
+      width="70%"
+      :close-on-click-modal="false"
+    >
+      <div class="examine-jic">
+        <div class="jic-value">
+          <el-row :gutter="20">
+            <!--鐢ㄦ埛鏁版嵁-->
+            <el-form
+              :model="patientqueryParams"
+              ref="queryForm"
+              size="small"
+              :inline="true"
+              label-width="98px"
+            >
+              <el-form-item label="鎮h�咃細">
+                <el-input
+                  v-model="patientqueryParams.name"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="鎮h�呰瘖鏂細">
+                <el-input
+                  v-model="patientqueryParams.leavediagname"
+                  @keyup.enter.native="handleQuery"
+                ></el-input>
+              </el-form-item>
+
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  size="medium"
+                  @click="handleQuery"
+                  >鎼滅储</el-button
+                >
+                <el-button
+                  icon="el-icon-refresh"
+                  size="medium"
+                  @click="resetQuery"
+                  >鍙栨秷鍒涘缓</el-button
+                >
+              </el-form-item>
+            </el-form>
+            <!-- 閫夋嫨鎮h�呭垪琛� -->
+            <el-table :data="logsheetlist" style="width: 100%">
+              <el-table-column
+                prop="sendname"
+                align="center"
+                label="濮撳悕"
+                width="100"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="taskName"
+                align="center"
+                width="200"
+                show-overflow-tooltip
+                label="浠诲姟鍚嶇О"
+              >
+              </el-table-column>
+              <el-table-column
+                prop="sendstate"
+                align="center"
+                width="200"
+                label="浠诲姟鐘舵��"
+              >
+                <template slot-scope="scope">
+                  <div v-if="scope.row.sendstate == 1">
+                    <el-tag type="primary" :disable-transitions="false"
+                      >琛ㄥ崟宸查鍙�</el-tag
+                    >
+                  </div>
+                  <div v-if="scope.row.sendstate == 2">
+                    <el-tag type="primary" :disable-transitions="false"
+                      >寰呴殢璁�</el-tag
+                    >
+                  </div>
+                  <div v-if="scope.row.sendstate == 3">
+                    <el-tag type="success" :disable-transitions="false"
+                      >琛ㄥ崟宸插彂閫�</el-tag
+                    >
+                  </div>
+                  <div v-if="scope.row.sendstate == 4">
+                    <el-tag type="info" :disable-transitions="false"
+                      >涓嶆墽琛�</el-tag
+                    >
+                  </div>
+                  <div v-if="scope.row.sendstate == 5">
+                    <el-tag type="danger" :disable-transitions="false"
+                      >鍙戦�佸け璐�</el-tag
+                    >
+                  </div>
+                  <div v-if="scope.row.sendstate == 6">
+                    <el-tag type="success" :disable-transitions="false"
+                      >宸插畬鎴�</el-tag
+                    >
+                  </div>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="visitTime"
+                align="center"
+                label="搴旈殢璁挎椂闂�"
+                width="200"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                prop="finishtime"
+                align="center"
+                label="闅忚瀹屾垚鏃堕棿"
+                width="200"
+                show-overflow-tooltip
+              >
+              </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="璐d换鎶ゅ+"
+                width="120"
+                align="center"
+                key="nurseName"
+                prop="nurseName"
+              />
+              <el-table-column
+                label="涓绘不鍖荤敓"
+                width="120"
+                align="center"
+                key="drname"
+                prop="drname"
+              />
+
+              <el-table-column
+                label="缁撴灉鐘舵��"
+                align="center"
+                key="excep"
+                prop="excep"
+                width="120"
+              >
+                <template slot-scope="scope">
+                  <dict-tag
+                    :options="dict.type.sys_yujing"
+                    :value="scope.row.excep"
+                  />
+                </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
+                prop="templatename"
+                align="center"
+                label="鏈嶅姟妯℃澘"
+                width="200"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <el-table-column
+                prop="remark"
+                align="center"
+                label="鏈嶅姟璁板綍"
+                width="200"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+
+              <el-table-column
+                prop="bankcardno"
+                align="center"
+                label="鍛煎彨鐘舵��"
+                width="210"
+              >
+              </el-table-column>
+              <el-table-column
+                label="鎿嶄綔"
+                fixed="right"
+                align="center"
+                width="200"
+                class-name="small-padding fixed-width"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="medium"
+                    type="text"
+                    @click="SeedetailsgGo(scope.row)"
+                    ><span class="button-zx"
+                      ><i class="el-icon-s-order"></i>鏌ョ湅</span
+                    ></el-button
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-row>
+          <pagination
+            v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6"
+            :total="patienttotal"
+            :page.sync="patientqueryParams.pn"
+            :limit.sync="patientqueryParams.ps"
+            @pagination="Seedetails"
+          />
+        </div>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -431,8 +819,13 @@
     return {
       topactiveName: "Local", //椤堕儴閫夋嫨
       activeName: "first", //渚ц竟閫夋嫨
+      expands: [],
       // 閬僵灞�
       loading: false,
+      Seedloading: false,
+      chartDialogVisible: false,
+      pieChart: null,
+      barLineChart: null,
       // 閫変腑鏁扮粍
       ids: [],
       // 闈炲崟涓鐢�
@@ -560,6 +953,8 @@
         serviceType: [2],
         dateRange: [],
         statisticaltype: 1,
+        leavehospitaldistrictcodes: ["all"], // 榛樿閫変腑鍏ㄩ儴鐥呭尯
+        deptcodes: [], // 榛樿閫変腑鍏ㄩ儴绉戝
       },
       // 鍒椾俊鎭�
       columns: [
@@ -588,6 +983,40 @@
         this.userList = response.data;
       });
     },
+    getRowKey(row) {
+      return row.statisticaltype === 1
+        ? row.leavehospitaldistrictcode
+        : row.deptcode;
+    },
+
+    // 澶勭悊琛岀偣鍑诲睍寮�
+    handleRowClick(row) {
+      console.log(row, "row");
+
+      // 濡傛灉宸茬粡灞曞紑鍒欐敹璧�
+      if (this.expands.includes(this.getRowKey(row))) {
+        this.expands = [];
+        return;
+      }
+      // 澶勭悊鏌ヨ鍙傛暟
+      const params = {
+        ...this.queryParams,
+        // 濡傛灉閫夋嫨浜�"鍏ㄩ儴"锛屽垯浼犳墍鏈夌梾鍖�/绉戝浠g爜
+        leavehospitaldistrictcodes: [row.leavehospitaldistrictcode],
+        drcode: "1",
+      };
+      // 濡傛灉璇ヨ杩樻病鏈夊姞杞藉尰鐢熸暟鎹紝鍒欏姞杞�
+      if (!row.doctorStats) {
+        this.loading = true;
+        getSfStatistics(params).then((res) => {
+          this.$set(row, "doctorStats", res.data);
+          this.expands = [this.getRowKey(row)];
+          this.loading = false;
+        });
+      } else {
+        this.expands = [this.getRowKey(row)];
+      }
+    },
     /** 淇敼鏍囩 */
     handleUpdate(row) {
       console.log(row, "淇敼鏍囩");
@@ -611,6 +1040,25 @@
         this.flatArray = this.flattenArray(response.data);
         console.log(this.flatArray, "this.flatArray");
       });
+      // 瀛樺偍鎵�鏈夌瀹や唬鐮�
+      this.allDeptCodes = store.getters.belongDepts.map(
+        (dept) => dept.deptCode
+      );
+
+      // 鐥呭尯鍒楄〃
+      this.flatArrayhospit = store.getters.belongWards.map((ward) => {
+        return {
+          label: ward.districtName,
+          value: ward.districtCode,
+        };
+      });
+
+      // 瀛樺偍鎵�鏈夌梾鍖轰唬鐮�
+      this.allWardCodes = store.getters.belongWards.map(
+        (ward) => ward.districtCode
+      );
+      this.flatArraydept.push({ label: "鍏ㄩ儴", value: "all" });
+      this.flatArrayhospit.push({ label: "鍏ㄩ儴", value: "all" });
     },
     flattenArray(multiArray) {
       let result = [];
@@ -762,6 +1210,354 @@
         `user_${new Date().getTime()}.xlsx`
       );
     },
+    // 鏄剧ず鍥捐〃寮圭獥
+
+    showChartDialog() {
+      this.chartDialogVisible = true;
+      this.$nextTick(() => {
+        this.initPieChart();
+        this.initBarLineChart();
+      });
+    },
+    // 鍦╩ethods涓慨鏀圭粺璁℃柟娉�
+    showChartDialog() {
+      this.chartDialogVisible = true;
+      this.$nextTick(() => {
+        console.log(this.userList, "this.userList");
+
+        this.initCharts();
+      });
+    },
+
+    // 鏂板鍒濆鍖栧浘琛ㄦ柟娉�
+    initCharts() {
+      this.initPieChart();
+      this.initBarLineChart();
+    },
+
+    // 鍒濆鍖栭ゼ鍥�
+initPieChart() {
+  const echarts = require("echarts");
+  const pieDom = document.getElementById("pieChart");
+  if (!pieDom) return;
+
+  if (this.pieChart) {
+    this.pieChart.dispose();
+  }
+
+  this.pieChart = echarts.init(pieDom);
+
+  // 璁$畻楗煎浘鏁版嵁
+  const followUpData = {
+    pending: 0,
+    success: 0,
+    fail: 0,
+  };
+
+  this.userList.forEach((item) => {
+    followUpData.pending += item.pendingFollowUp || 0;
+    followUpData.success += item.followUpSuccess || 0;
+    followUpData.fail += item.followUpFail || 0;
+  });
+
+  // 浣跨敤鏇寸編瑙傜殑棰滆壊鏂规
+  const pieOption = {
+    title: {
+      text: "闅忚鐘舵�佸垎甯�",
+      left: "center",
+      textStyle: {
+        color: '#333',
+        fontSize: 16
+      }
+    },
+    tooltip: {
+      trigger: "item",
+      formatter: "{a} <br/>{b}: {c} ({d}%)",
+    },
+    legend: {
+      orient: "vertical",
+      left: "left",
+      data: ["寰呴殢璁�", "闅忚鎴愬姛", "闅忚澶辫触"],
+      textStyle: {
+        color: '#666'
+      }
+    },
+    color: ['#FF9D4D', '#36B37E', '#FF5C5C'], // 鏂扮殑閰嶈壊鏂规
+    series: [
+      {
+        name: "闅忚鐘舵��",
+        type: "pie",
+        radius: ["40%", "70%"],
+        avoidLabelOverlap: true,
+        itemStyle: {
+          borderRadius: 10,
+          borderColor: "#fff",
+          borderWidth: 2
+        },
+        label: {
+          show: true,
+          formatter: "{b}: {c} ({d}%)",
+          color: '#333'
+        },
+        emphasis: {
+          label: {
+            show: true,
+            fontSize: "18",
+            fontWeight: "bold"
+          },
+          itemStyle: {
+            shadowBlur: 10,
+            shadowOffsetX: 0,
+            shadowColor: 'rgba(0, 0, 0, 0.5)'
+          }
+        },
+        data: [
+          {
+            value: followUpData.pending,
+            name: "寰呴殢璁�"
+          },
+          {
+            value: followUpData.success,
+            name: "闅忚鎴愬姛"
+          },
+          {
+            value: followUpData.fail,
+            name: "闅忚澶辫触"
+          }
+        ]
+      }
+    ]
+  };
+
+  this.pieChart.setOption(pieOption);
+  window.addEventListener("resize", this.resizePieChart);
+},
+
+// 鍒濆鍖栨煴鐘舵姌绾垮浘
+initBarLineChart() {
+  const echarts = require("echarts");
+  const barDom = document.getElementById("barLineChart");
+  if (!barDom) return;
+
+  if (this.barLineChart) {
+    this.barLineChart.dispose();
+  }
+
+  this.barLineChart = echarts.init(barDom);
+
+  // 鍑嗗鏁版嵁
+  const categories = this.userList.map(
+    (item) => item.leavehospitaldistrictname || item.deptname
+  );
+
+  const dischargeData = this.userList.map(
+    (item) => item.dischargeCount || 0
+  );
+  const followUpData = this.userList.map(
+    (item) => item.followUpNeeded || 0
+  );
+
+  // 鏂板涓ゆ潯鎶樼嚎鏁版嵁
+ const followUpRateData = this.userList.map(item => {
+    if (!item.followUpRate) return 0;
+    // 鍘绘帀鐧惧垎鍙峰苟杞负鏁板瓧
+    const rateStr = String(item.followUpRate).replace('%', '');
+    return parseFloat(rateStr) || 0;
+  });
+
+  const timelyRateData = this.userList.map(item =>
+    item.rate ? (Number(item.rate) * 100).toFixed(2) : 0
+  );
+
+  const option = {
+    title: {
+      text: "绉戝/鐥呭尯闅忚瓒嬪娍",
+      left: "center",
+      textStyle: {
+        color: '#333',
+        fontSize: 16
+      }
+    },
+    tooltip: {
+      trigger: "axis",
+      axisPointer: {
+        type: "cross",
+        crossStyle: {
+          color: "#999",
+        },
+      },
+    },
+    legend: {
+      data: ["鍑洪櫌浜烘", "搴旈殢璁夸汉娆�", "闅忚鐜�(%)", "鍙婃椂鐜�(%)"],
+      top: "bottom",
+      textStyle: {
+        color: '#666'
+      }
+    },
+    color: ['#5470C6', '#91CC75', '#EE6666', '#9A60B4'], // 鏂板绱壊鐢ㄤ簬鍙婃椂鐜�
+    xAxis: {
+      type: "category",
+      data: categories,
+      axisLabel: {
+        interval: 0,
+        rotate: 30,
+        color: '#666'
+      },
+      axisLine: {
+        lineStyle: {
+          color: '#ddd'
+        }
+      }
+    },
+    yAxis: [
+      {
+        type: "value",
+        name: "浜烘",
+        min: 0,
+        axisLabel: {
+          color: '#666'
+        },
+        axisLine: {
+          lineStyle: {
+            color: '#ddd'
+          }
+        },
+        splitLine: {
+          lineStyle: {
+            color: '#f0f0f0'
+          }
+        }
+      },
+      {
+        type: "value",
+        name: "鐧惧垎姣�(%)",
+        min: 0,
+        max: 100,
+        axisLabel: {
+          color: '#666',
+          formatter: '{value}%'
+        },
+        axisLine: {
+          lineStyle: {
+            color: '#ddd'
+          }
+        },
+        splitLine: {
+          show: false
+        }
+      }
+    ],
+    series: [
+      {
+        name: "鍑洪櫌浜烘",
+        type: "bar",
+        barWidth: "25%",
+        data: dischargeData,
+        itemStyle: {
+          borderRadius: [4, 4, 0, 0]
+        }
+      },
+      {
+        name: "搴旈殢璁夸汉娆�",
+        type: "bar",
+        barWidth: "25%",
+        data: followUpData,
+        itemStyle: {
+          borderRadius: [4, 4, 0, 0]
+        }
+      },
+      {
+        name: "闅忚鐜�(%)",
+        type: "line",
+        yAxisIndex: 1,
+        data: followUpRateData,
+        symbolSize: 8,
+        lineStyle: {
+          width: 3
+        },
+        markLine: {
+          silent: true,
+          data: [{
+            yAxis: 80,
+            lineStyle: {
+              color: '#EE6666',
+              type: 'dashed'
+            },
+            // label: {
+            //   position: 'end',
+            //   formatter: '鐩爣80%'
+            // }
+          }]
+        }
+      },
+      {
+        name: "鍙婃椂鐜�(%)",
+        type: "line",
+        yAxisIndex: 1,
+        data: timelyRateData,
+        symbolSize: 8,
+        lineStyle: {
+          width: 3,
+          type: 'dotted' // 浣跨敤铏氱嚎鍖哄垎
+        },
+        markLine: {
+          silent: true,
+          data: [{
+            yAxis: 90,
+            lineStyle: {
+              color: '#9A60B4',
+              type: 'dashed'
+            },
+            // label: {
+            //   position: 'end',
+            //   formatter: '鐩爣90%'
+            // }
+          }]
+        }
+      }
+    ],
+    grid: {
+      top: '15%',
+      left: '3%',
+      right: '4%',
+      bottom: '15%',
+      containLabel: true
+    }
+  };
+
+  this.barLineChart.setOption(option);
+  window.addEventListener("resize", this.resizeBarLineChart);
+},
+
+    // 鍥捐〃鍝嶅簲寮忚皟鏁存柟娉�
+    resizePieChart() {
+      if (this.pieChart) {
+        this.pieChart.resize();
+      }
+    },
+
+    resizeBarLineChart() {
+      if (this.barLineChart) {
+        this.barLineChart.resize();
+      }
+    },
+
+    // 鍦ㄧ粍浠堕攢姣佹椂娓呯悊
+    beforeDestroy() {
+      // 绉婚櫎浜嬩欢鐩戝惉
+      window.removeEventListener("resize", this.resizePieChart);
+      window.removeEventListener("resize", this.resizeBarLineChart);
+
+      // 閿�姣佸浘琛ㄥ疄渚�
+      if (this.pieChart) {
+        this.pieChart.dispose();
+        this.pieChart = null;
+      }
+      if (this.barLineChart) {
+        this.barLineChart.dispose();
+        this.barLineChart = null;
+      }
+    },
   },
 };
 </script>
@@ -858,6 +1654,52 @@
     font-size: 20px;
   }
 }
+/* 浣胯鏈夋墜鍨嬫寚閽� */
+.el-table__row {
+  cursor: pointer;
+}
+/* 鍐呭眰鍖荤敓琛ㄦ牸鏍峰紡 */
+.inner-table {
+  // 琛ㄥご鑳屾櫙鑹�
+  ::v-deep .el-table__header-wrapper {
+    background-color: #f0f7ff !important;
+
+    th {
+      background-color: #f0f7ff !important;
+    }
+  }
+
+  // 琛ㄦ牸琛岃儗鏅壊
+  ::v-deep .el-table__body-wrapper {
+    tr {
+      background-color: #f9fbfe !important;
+
+      &:hover {
+        background-color: #e6f1ff !important;
+      }
+    }
+  }
+
+  // 杈规棰滆壊
+  ::v-deep .el-table--border {
+    border-color: #d9e8ff !important;
+
+    td,
+    th {
+      border-color: #d9e8ff !important;
+    }
+  }
+
+  // 鏂戦┈绾规晥鏋�
+  ::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
+    background-color: #f5f9ff !important;
+  }
+}
+/* 灞曞紑琛屾牱寮� */
+.el-table__expanded-cell {
+  padding: 10px 0 !important;
+  background: #f8f8f8;
+}
 .document {
   width: 100px;
   height: 50px;

--
Gitblit v1.9.3