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 @@ +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{0}: rebase (finish): returning to refs/heads/lishui-Smartor +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{1}: rebase (start): checkout HEAD~5 +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{2}: reset: moving to origin/lishui-Smartor +[33ma65bf99[m HEAD@{3}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor +[33ma65bf99[m HEAD@{4}: commit (amend): 娴嬭瘯瀹屾垚 +[33m95948fe[m HEAD@{5}: rebase (continue) (edit): 娴嬭瘯瀹屾垚 +[33m745b9af[m HEAD@{6}: commit (amend): 娴嬭瘯瀹屾垚 +[33m6f917a9[m HEAD@{7}: rebase (continue) (edit): 娴嬭瘯瀹屾垚 +[33m960960c[m HEAD@{8}: commit (amend): 浣犵殑鎻愪氦淇℃伅 +[33m488008e[m HEAD@{9}: rebase: fast-forward +[33m9a164d2[m HEAD@{10}: rebase (start): checkout HEAD~5 +[33m01e7b73[m HEAD@{11}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor +[33m01e7b73[m HEAD@{12}: commit (amend): 娴嬭瘯瀹屾垚 +[33m748b8c4[m HEAD@{13}: rebase (continue) (edit): 娴嬭瘯瀹屾垚 +[33mad098d5[m HEAD@{14}: commit (amend): 娴嬭瘯瀹屾垚 +[33m8220a01[m HEAD@{15}: rebase: fast-forward +[33m488008e[m HEAD@{16}: rebase: fast-forward +[33m9a164d2[m HEAD@{17}: rebase: fast-forward +[33m9403890[m HEAD@{18}: rebase: fast-forward +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{19}: rebase (start): checkout HEAD~5 +[33mb685449[m HEAD@{20}: rebase (abort): updating HEAD +[33mb685449[m HEAD@{21}: rebase (abort): updating HEAD +[33mb685449[m HEAD@{22}: commit: 娴嬭瘯瀹屾垚 +[33m8220a01[m HEAD@{23}: commit: 娴嬭瘯瀹屾垚 +[33m488008e[m HEAD@{24}: commit: 浣犵殑鎻愪氦淇℃伅 +[33m9a164d2[m HEAD@{25}: commit: 浣犵殑鎻愪氦淇℃伅 +[33m9403890[m HEAD@{26}: rebase (continue) (finish): returning to refs/heads/lishui-Smartor +[33m9403890[m HEAD@{27}: rebase (continue) (finish): refs/heads/lishui-Smartor onto 022e8035e5143328ba01d76a74ea5f86e5c994f0 +[33m9403890[m HEAD@{28}: commit: 娴嬭瘯瀹屾垚 +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{29}: checkout: moving from lishui-sf to lishui-Smartor +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{30}: checkout: moving from lishui-Smartor to lishui-sf +[33m022e803[m[33m ([m[1;36mHEAD -> [m[1;32mlishui-Smartor[m[33m, [m[1;31morigin/lishui-Smartor[m[33m, [m[1;32mlishui-sf[m[33m)[m HEAD@{31}: commit: 娴嬭瘯瀹屾垚 +[33m4898664[m HEAD@{32}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mb7f7f38[m[33m ([m[1;32mwuxi-smartor[m[33m)[m HEAD@{33}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m4898664[m HEAD@{34}: commit: 娴嬭瘯瀹屾垚 +[33m337fb92[m HEAD@{35}: commit: 娴嬭瘯瀹屾垚 +[33ma7a20b2[m HEAD@{36}: checkout: moving from HeNan-Smartor to lishui-Smartor +[33m56d56f3[m[33m ([m[1;32mHeNan-Smartor[m[33m)[m HEAD@{37}: checkout: moving from lishui-Smartor to HeNan-Smartor +[33ma7a20b2[m HEAD@{38}: commit: 娴嬭瘯瀹屾垚 +[33m6f1e7a6[m HEAD@{39}: commit: 娴嬭瘯瀹屾垚 +[33m5fba330[m HEAD@{40}: commit: 娴嬭瘯瀹屾垚 +[33m209b2f7[m HEAD@{41}: commit: 娴嬭瘯瀹屾垚 +[33m53f4f0a[m HEAD@{42}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mb7f7f38[m[33m ([m[1;32mwuxi-smartor[m[33m)[m HEAD@{43}: commit: 娴嬭瘯瀹屾垚 +[33me353f0e[m[33m ([m[1;31morigin/wuxi-smartor[m[33m)[m HEAD@{44}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m53f4f0a[m HEAD@{45}: commit: 娴嬭瘯瀹屾垚 +[33m2eff945[m HEAD@{46}: commit: 娴嬭瘯瀹屾垚 +[33mb6c854d[m HEAD@{47}: checkout: moving from HeNan-Smartor to lishui-Smartor +[33m56d56f3[m[33m ([m[1;32mHeNan-Smartor[m[33m)[m HEAD@{48}: commit: 娴嬭瘯瀹屾垚 +[33mb6c854d[m HEAD@{49}: checkout: moving from lishui-Smartor to HeNan-Smartor +[33mb6c854d[m HEAD@{50}: commit: 娴嬭瘯瀹屾垚 +[33mec2f429[m HEAD@{51}: commit: 娴嬭瘯瀹屾垚 +[33mc1f1ecb[m HEAD@{52}: checkout: moving from wuxi-smartor to lishui-Smartor +[33me353f0e[m[33m ([m[1;31morigin/wuxi-smartor[m[33m)[m HEAD@{53}: commit: 娴嬭瘯瀹屾垚 +[33me580006[m HEAD@{54}: commit: 娴嬭瘯瀹屾垚 +[33mffdeb04[m HEAD@{55}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mc1f1ecb[m HEAD@{56}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mffdeb04[m HEAD@{57}: commit: 娴嬭瘯瀹屾垚 +[33m55c665c[m HEAD@{58}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mc1f1ecb[m HEAD@{59}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m55c665c[m HEAD@{60}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mc1f1ecb[m HEAD@{61}: commit: 娴嬭瘯瀹屾垚 +[33m7449ee9[m HEAD@{62}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m55c665c[m HEAD@{63}: commit: 娴嬭瘯瀹屾垚 +[33mf93c1fb[m HEAD@{64}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m7449ee9[m HEAD@{65}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mf93c1fb[m HEAD@{66}: commit: 娴嬭瘯瀹屾垚 +[33mb3b10f3[m HEAD@{67}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m7449ee9[m HEAD@{68}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mb3b10f3[m HEAD@{69}: commit: 娴嬭瘯瀹屾垚 +[33m30e7ca1[m HEAD@{70}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m7449ee9[m HEAD@{71}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m30e7ca1[m HEAD@{72}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m7449ee9[m HEAD@{73}: commit: 娴嬭瘯瀹屾垚 +[33m9ed874d[m HEAD@{74}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m30e7ca1[m HEAD@{75}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m9ed874d[m HEAD@{76}: checkout: moving from lishui-Smartor to lishui-Smartor +[33m9ed874d[m HEAD@{77}: commit: 娴嬭瘯瀹屾垚 +[33m6253746[m HEAD@{78}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m30e7ca1[m HEAD@{79}: commit: 娴嬭瘯瀹屾垚 +[33m8b120ce[m HEAD@{80}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m6253746[m HEAD@{81}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m8b120ce[m HEAD@{82}: commit: 娴嬭瘯瀹屾垚 +[33md846a58[m HEAD@{83}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m6253746[m HEAD@{84}: commit: 娴嬭瘯瀹屾垚 +[33m5fb8598[m HEAD@{85}: checkout: moving from master to lishui-Smartor +[33mf08b133[m[33m ([m[1;31morigin/master[m[33m, [m[1;31morigin/HEAD[m[33m, [m[1;32mmaster[m[33m)[m HEAD@{86}: checkout: moving from lishui-Smartor to master +[33m5fb8598[m HEAD@{87}: checkout: moving from master to lishui-Smartor +[33mf08b133[m[33m ([m[1;31morigin/master[m[33m, [m[1;31morigin/HEAD[m[33m, [m[1;32mmaster[m[33m)[m HEAD@{88}: commit: 娴嬭瘯瀹屾垚 +[33m7c5b7bd[m HEAD@{89}: commit: 娴嬭瘯瀹屾垚 +[33ma52f35a[m HEAD@{90}: checkout: moving from lishui-Smartor to master +[33m5fb8598[m HEAD@{91}: commit: 娴嬭瘯瀹屾垚 +[33maa06424[m HEAD@{92}: checkout: moving from master to lishui-Smartor +[33ma52f35a[m HEAD@{93}: checkout: moving from lishui-Smartor to master +[33maa06424[m HEAD@{94}: checkout: moving from master to lishui-Smartor +[33ma52f35a[m HEAD@{95}: checkout: moving from lishui-Smartor to master +[33maa06424[m HEAD@{96}: commit: 娴嬭瘯瀹屾垚 +[33m5733abb[m HEAD@{97}: checkout: moving from master to lishui-Smartor +[33ma52f35a[m HEAD@{98}: commit: 娴嬭瘯瀹屾垚 +[33m246ad67[m HEAD@{99}: checkout: moving from lishui-Smartor to master +[33m5733abb[m HEAD@{100}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md846a58[m HEAD@{101}: commit: 娴嬭瘯瀹屾垚 +[33mba57b51[m HEAD@{102}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m5733abb[m HEAD@{103}: commit: 娴嬭瘯瀹屾垚 +[33m9668152[m HEAD@{104}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mba57b51[m HEAD@{105}: commit: 娴嬭瘯瀹屾垚 +[33mfe70ca5[m HEAD@{106}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m9668152[m HEAD@{107}: commit: 娴嬭瘯瀹屾垚 +[33mf06ac34[m HEAD@{108}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mfe70ca5[m HEAD@{109}: commit: 娴嬭瘯瀹屾垚 +[33m510b433[m HEAD@{110}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mf06ac34[m HEAD@{111}: commit: 娴嬭瘯瀹屾垚 +[33m20cd2de[m HEAD@{112}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m510b433[m HEAD@{113}: commit: 娴嬭瘯瀹屾垚 +[33me946f91[m HEAD@{114}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m20cd2de[m HEAD@{115}: commit: 娴嬭瘯瀹屾垚 +[33mfe379fd[m HEAD@{116}: checkout: moving from wuxi-smartor to lishui-Smartor +[33me946f91[m HEAD@{117}: commit: 娴嬭瘯瀹屾垚 +[33m952ce53[m HEAD@{118}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mfe379fd[m HEAD@{119}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m952ce53[m HEAD@{120}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mfe379fd[m HEAD@{121}: commit: 娴嬭瘯瀹屾垚 +[33m9cc3dcf[m HEAD@{122}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m952ce53[m HEAD@{123}: commit: 娴嬭瘯瀹屾垚 +[33md9004dd[m HEAD@{124}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m9cc3dcf[m HEAD@{125}: commit: 娴嬭瘯瀹屾垚 +[33m3ae495d[m HEAD@{126}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md9004dd[m HEAD@{127}: commit: 娴嬭瘯瀹屾垚 +[33ma90f11d[m HEAD@{128}: commit: 娴嬭瘯瀹屾垚 +[33m125529d[m HEAD@{129}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m3ae495d[m HEAD@{130}: commit: 娴嬭瘯瀹屾垚 +[33mdafbb90[m HEAD@{131}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m125529d[m HEAD@{132}: commit: 娴嬭瘯瀹屾垚 +[33mce16687[m HEAD@{133}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mdafbb90[m HEAD@{134}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mce16687[m HEAD@{135}: commit: 娴嬭瘯瀹屾垚 +[33m039c34d[m HEAD@{136}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mdafbb90[m HEAD@{137}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m039c34d[m HEAD@{138}: commit: 娴嬭瘯瀹屾垚 +[33m51102f4[m HEAD@{139}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mdafbb90[m HEAD@{140}: commit: 娴嬭瘯瀹屾垚 +[33m665ac63[m HEAD@{141}: commit: 娴嬭瘯瀹屾垚 +[33m9a5dd25[m HEAD@{142}: commit: 娴嬭瘯瀹屾垚 +[33m880e036[m HEAD@{143}: commit: 娴嬭瘯瀹屾垚 +[33me10381f[m HEAD@{144}: commit: 娴嬭瘯瀹屾垚 +[33mc7c591d[m HEAD@{145}: commit: 娴嬭瘯瀹屾垚 +[33maf3ff15[m HEAD@{146}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m51102f4[m HEAD@{147}: checkout: moving from lishui-Smartor to wuxi-smartor +[33maf3ff15[m HEAD@{148}: commit: 娴嬭瘯瀹屾垚 +[33m36d1334[m HEAD@{149}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m51102f4[m HEAD@{150}: commit: 娴嬭瘯瀹屾垚 +[33md4744cf[m HEAD@{151}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m36d1334[m HEAD@{152}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md4744cf[m HEAD@{153}: commit: 娴嬭瘯瀹屾垚 +[33me750691[m HEAD@{154}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m36d1334[m HEAD@{155}: commit: 娴嬭瘯瀹屾垚 +[33ma22820c[m HEAD@{156}: checkout: moving from wuxi-smartor to lishui-Smartor +[33me750691[m HEAD@{157}: commit: 娴嬭瘯瀹屾垚 +[33mef60bc9[m HEAD@{158}: commit: 娴嬭瘯瀹屾垚 +[33mf37b479[m HEAD@{159}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma22820c[m HEAD@{160}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mf37b479[m HEAD@{161}: commit: 娴嬭瘯瀹屾垚 +[33m547be67[m HEAD@{162}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma22820c[m HEAD@{163}: commit: 娴嬭瘯瀹屾垚 +[33mf3f7256[m HEAD@{164}: checkout: moving from master to lishui-Smartor +[33m246ad67[m HEAD@{165}: checkout: moving from lishui-Smartor to master +[33mf3f7256[m HEAD@{166}: commit: 娴嬭瘯瀹屾垚 +[33m84e20d0[m HEAD@{167}: checkout: moving from master to lishui-Smartor +[33m246ad67[m HEAD@{168}: commit: 娴嬭瘯瀹屾垚 +[33mc97bd0d[m HEAD@{169}: commit: 娴嬭瘯瀹屾垚 +[33mbdb26dc[m HEAD@{170}: checkout: moving from lishui-Smartor to master +[33m84e20d0[m HEAD@{171}: checkout: moving from master to lishui-Smartor +[33mbdb26dc[m HEAD@{172}: commit: 娴嬭瘯瀹屾垚 +[33m3b6c56e[m HEAD@{173}: checkout: moving from lishui-Smartor to master +[33m84e20d0[m HEAD@{174}: commit: 娴嬭瘯瀹屾垚 +[33m572a624[m HEAD@{175}: checkout: moving from master to lishui-Smartor +[33m3b6c56e[m HEAD@{176}: commit: 娴嬭瘯瀹屾垚 +[33m0d18860[m HEAD@{177}: checkout: moving from lishui-Smartor to master +[33m572a624[m HEAD@{178}: commit: 娴嬭瘯瀹屾垚 +[33ma5bc95e[m HEAD@{179}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m547be67[m HEAD@{180}: commit: 娴嬭瘯瀹屾垚 +[33mc4fb353[m HEAD@{181}: commit: 娴嬭瘯瀹屾垚 +[33ma398c62[m HEAD@{182}: checkout: moving from master to wuxi-smartor +[33m0d18860[m HEAD@{183}: commit: 娴嬭瘯瀹屾垚 +[33md5806f3[m HEAD@{184}: commit (merge): 娴嬭瘯瀹屾垚 +[33m783b99e[m HEAD@{185}: commit: 娴嬭瘯瀹屾垚 +[33m77a8ca0[m HEAD@{186}: checkout: moving from wuxi-smartor to master +[33ma398c62[m HEAD@{187}: commit: 娴嬭瘯瀹屾垚 +[33m98b9fdc[m HEAD@{188}: commit: 娴嬭瘯瀹屾垚 +[33m9dd3964[m HEAD@{189}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma5bc95e[m HEAD@{190}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m9dd3964[m HEAD@{191}: commit: 娴嬭瘯瀹屾垚 +[33m4cf6b25[m HEAD@{192}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma5bc95e[m HEAD@{193}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m4cf6b25[m HEAD@{194}: commit: 娴嬭瘯瀹屾垚 +[33m3bab592[m HEAD@{195}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma5bc95e[m HEAD@{196}: commit: 娴嬭瘯瀹屾垚 +[33mbe764ba[m HEAD@{197}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m3bab592[m HEAD@{198}: commit: 娴嬭瘯瀹屾垚 +[33m23f920e[m HEAD@{199}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mbe764ba[m HEAD@{200}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m23f920e[m HEAD@{201}: commit: 娴嬭瘯瀹屾垚 +[33m03d20b4[m HEAD@{202}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mbe764ba[m HEAD@{203}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m03d20b4[m HEAD@{204}: commit: 娴嬭瘯瀹屾垚 +[33m31cbe57[m HEAD@{205}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mbe764ba[m HEAD@{206}: commit: 娴嬭瘯瀹屾垚 +[33me46bb66[m HEAD@{207}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m31cbe57[m HEAD@{208}: checkout: moving from lishui-Smartor to wuxi-smartor +[33me46bb66[m HEAD@{209}: commit: 娴嬭瘯瀹屾垚 +[33m8ed125f[m HEAD@{210}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m31cbe57[m HEAD@{211}: commit: 娴嬭瘯瀹屾垚 +[33m66b105c[m HEAD@{212}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m8ed125f[m HEAD@{213}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m66b105c[m HEAD@{214}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m8ed125f[m HEAD@{215}: commit: 缁熻瀹屾垚 +[33m37d2ba3[m HEAD@{216}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m66b105c[m HEAD@{217}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m37d2ba3[m HEAD@{218}: commit: 娴嬭瘯瀹屾垚 +[33m45f9797[m HEAD@{219}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m66b105c[m HEAD@{220}: commit: 娴嬭瘯瀹屾垚 +[33m88cd1b9[m HEAD@{221}: checkout: moving from master to wuxi-smartor +[33m77a8ca0[m HEAD@{222}: commit: 娴嬭瘯瀹屾垚 +[33mddba782[m HEAD@{223}: checkout: moving from lishui-Smartor to master +[33m45f9797[m HEAD@{224}: commit: 娴嬭瘯瀹屾垚 +[33m0e3739a[m HEAD@{225}: commit: 娴嬭瘯瀹屾垚 +[33m54489da[m HEAD@{226}: commit: 娴嬭瘯瀹屾垚 +[33m303d443[m HEAD@{227}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m88cd1b9[m HEAD@{228}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m303d443[m HEAD@{229}: commit: 娴嬭瘯瀹屾垚 +[33m5a8e93d[m HEAD@{230}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m88cd1b9[m HEAD@{231}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m5a8e93d[m HEAD@{232}: commit: 娴嬭瘯瀹屾垚 +[33m4413b46[m HEAD@{233}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m88cd1b9[m HEAD@{234}: commit: 娴嬭瘯瀹屾垚 +[33m78fc1cf[m HEAD@{235}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m4413b46[m HEAD@{236}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m78fc1cf[m HEAD@{237}: commit: 娴嬭瘯瀹屾垚 +[33m901206c[m HEAD@{238}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m4413b46[m HEAD@{239}: commit: 娴嬭瘯瀹屾垚 +[33m0529f31[m HEAD@{240}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m901206c[m HEAD@{241}: commit: 娴嬭瘯瀹屾垚 +[33mf710fa7[m HEAD@{242}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m0529f31[m HEAD@{243}: commit: 娴嬭瘯瀹屾垚 +[33m08c27c1[m HEAD@{244}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mf710fa7[m HEAD@{245}: commit: 娴嬭瘯瀹屾垚 +[33m33c6294[m HEAD@{246}: commit: 娴嬭瘯瀹屾垚 +[33m55ee279[m HEAD@{247}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m08c27c1[m HEAD@{248}: commit: 娴嬭瘯瀹屾垚 +[33m6d7cd13[m HEAD@{249}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m55ee279[m HEAD@{250}: commit: 娴嬭瘯瀹屾垚 +[33m136b920[m HEAD@{251}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m6d7cd13[m HEAD@{252}: commit: 娴嬭瘯瀹屾垚 +[33m8e71817[m HEAD@{253}: commit: 娴嬭瘯瀹屾垚 +[33mb7092c2[m HEAD@{254}: commit: 娴嬭瘯瀹屾垚 +[33mbc241c4[m HEAD@{255}: checkout: moving from master to lishui-Smartor +[33mddba782[m HEAD@{256}: checkout: moving from lishui-Smartor to master +[33mbc241c4[m HEAD@{257}: commit: 娴嬭瘯瀹屾垚 +[33m5e17454[m HEAD@{258}: checkout: moving from master to lishui-Smartor +[33mddba782[m HEAD@{259}: checkout: moving from lishui-Smartor to master +[33m5e17454[m HEAD@{260}: checkout: moving from master to lishui-Smartor +[33mddba782[m HEAD@{261}: commit: 娴嬭瘯瀹屾垚 +[33m552e2c4[m HEAD@{262}: checkout: moving from lishui-Smartor to master +[33m5e17454[m HEAD@{263}: commit: 娴嬭瘯瀹屾垚 +[33m186b271[m HEAD@{264}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m136b920[m HEAD@{265}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m186b271[m HEAD@{266}: commit: 娴嬭瘯瀹屾垚 +[33m6535680[m HEAD@{267}: commit: 娴嬭瘯瀹屾垚 +[33m6be4939[m HEAD@{268}: commit: 娴嬭瘯瀹屾垚 +[33m400d13d[m HEAD@{269}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m136b920[m HEAD@{270}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m400d13d[m HEAD@{271}: commit: 娴嬭瘯瀹屾垚 +[33m3877190[m HEAD@{272}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m136b920[m HEAD@{273}: commit: 娴嬭瘯瀹屾垚 +[33m55c064e[m HEAD@{274}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m3877190[m HEAD@{275}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m55c064e[m HEAD@{276}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m3877190[m HEAD@{277}: commit: 娴嬭瘯瀹屾垚 +[33m78f514b[m HEAD@{278}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m55c064e[m HEAD@{279}: commit: 娴嬭瘯瀹屾垚 +[33m2b67e58[m HEAD@{280}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m78f514b[m HEAD@{281}: commit: 娴嬭瘯瀹屾垚 +[33mfecb2f5[m HEAD@{282}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m2b67e58[m HEAD@{283}: commit: 娴嬭瘯瀹屾垚 +[33m91dc8cc[m HEAD@{284}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mfecb2f5[m HEAD@{285}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m91dc8cc[m HEAD@{286}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mfecb2f5[m HEAD@{287}: commit: 娴嬭瘯瀹屾垚 +[33m4395f0d[m HEAD@{288}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m91dc8cc[m HEAD@{289}: commit: 娴嬭瘯瀹屾垚 +[33m6a1bafa[m HEAD@{290}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m4395f0d[m HEAD@{291}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m6a1bafa[m HEAD@{292}: commit: 娴嬭瘯瀹屾垚 +[33md74a76f[m HEAD@{293}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m4395f0d[m HEAD@{294}: commit: 娴嬭瘯瀹屾垚 +[33m327d234[m HEAD@{295}: commit: 娴嬭瘯瀹屾垚 +[33m56b8443[m HEAD@{296}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md74a76f[m HEAD@{297}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m56b8443[m HEAD@{298}: commit: 娴嬭瘯瀹屾垚 +[33m8d0f7fc[m HEAD@{299}: commit: 娴嬭瘯瀹屾垚 +[33m38c9042[m HEAD@{300}: commit: 娴嬭瘯瀹屾垚 +[33m7d47700[m HEAD@{301}: commit: 娴嬭瘯瀹屾垚 +[33m273e2fa[m HEAD@{302}: commit: 娴嬭瘯瀹屾垚 +[33m401c835[m HEAD@{303}: commit: 娴嬭瘯瀹屾垚 +[33m60e5b16[m HEAD@{304}: commit: 娴嬭瘯瀹屾垚 +[33m6e54a66[m HEAD@{305}: commit: 娴嬭瘯瀹屾垚 +[33mee8f1a0[m HEAD@{306}: commit: 娴嬭瘯瀹屾垚 +[33m5f3691d[m HEAD@{307}: commit: 娴嬭瘯瀹屾垚 +[33m4b60348[m HEAD@{308}: commit: 娴嬭瘯瀹屾垚 +[33m418e3a7[m HEAD@{309}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md74a76f[m HEAD@{310}: commit: 娴嬭瘯瀹屾垚 +[33ma022656[m HEAD@{311}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m418e3a7[m HEAD@{312}: commit: 娴嬭瘯瀹屾垚 +[33m4c9eab7[m HEAD@{313}: commit: 娴嬭瘯瀹屾垚 +[33m15e42d9[m HEAD@{314}: checkout: moving from master to lishui-Smartor +[33m552e2c4[m HEAD@{315}: commit: 娴嬭瘯瀹屾垚 +[33m823bd7c[m HEAD@{316}: checkout: moving from lishui-Smartor to master +[33m15e42d9[m HEAD@{317}: commit: 娴嬭瘯瀹屾垚 +[33m9f5b4e2[m HEAD@{318}: checkout: moving from wuxi-smartor to lishui-Smartor +[33ma022656[m HEAD@{319}: commit: 娴嬭瘯瀹屾垚 +[33m9259056[m HEAD@{320}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m9f5b4e2[m HEAD@{321}: commit: 娴嬭瘯瀹屾垚 +[33m99a916e[m HEAD@{322}: commit: 娴嬭瘯瀹屾垚 +[33mabde816[m HEAD@{323}: commit: 娴嬭瘯瀹屾垚 +[33m81ffbda[m HEAD@{324}: checkout: moving from master to lishui-Smartor +[33m823bd7c[m HEAD@{325}: commit: 娴嬭瘯瀹屾垚 +[33m84f0f55[m HEAD@{326}: checkout: moving from lishui-Smartor to master +[33m81ffbda[m HEAD@{327}: checkout: moving from master to lishui-Smartor +[33m84f0f55[m HEAD@{328}: checkout: moving from lishui-Smartor to master +[33m81ffbda[m HEAD@{329}: commit: 娴嬭瘯瀹屾垚 +[33m935e93f[m HEAD@{330}: checkout: moving from master to lishui-Smartor +[33m84f0f55[m HEAD@{331}: checkout: moving from lishui-Smartor to master +[33m935e93f[m HEAD@{332}: commit: 娴嬭瘯瀹屾垚 +[33mb73b5dd[m HEAD@{333}: checkout: moving from master to lishui-Smartor +[33m84f0f55[m HEAD@{334}: checkout: moving from lishui-Smartor to master +[33mb73b5dd[m HEAD@{335}: commit: 娴嬭瘯瀹屾垚 +[33m2daa54c[m HEAD@{336}: checkout: moving from master to lishui-Smartor +[33m84f0f55[m HEAD@{337}: checkout: moving from lishui-Smartor to master +[33m2daa54c[m HEAD@{338}: commit: 娴嬭瘯瀹屾垚 +[33m073edc9[m HEAD@{339}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m9259056[m HEAD@{340}: checkout: moving from master to wuxi-smartor +[33m84f0f55[m HEAD@{341}: commit: 娴嬭瘯瀹屾垚 +[33md7b9ffb[m HEAD@{342}: checkout: moving from lishui-Smartor to master +[33m073edc9[m HEAD@{343}: commit: 娴嬭瘯瀹屾垚 +[33m838d8b5[m HEAD@{344}: checkout: moving from master to lishui-Smartor +[33md7b9ffb[m HEAD@{345}: checkout: moving from lishui-Smartor to master +[33m838d8b5[m HEAD@{346}: checkout: moving from master to lishui-Smartor +[33md7b9ffb[m HEAD@{347}: commit: 娴嬭瘯瀹屾垚 +[33mb8085c1[m HEAD@{348}: checkout: moving from wuxi-smartor to master +[33m9259056[m HEAD@{349}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m838d8b5[m HEAD@{350}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m9259056[m HEAD@{351}: commit: 娴嬭瘯瀹屾垚 +[33md9a95a7[m HEAD@{352}: checkout: moving from master to wuxi-smartor +[33mb8085c1[m HEAD@{353}: checkout: moving from lishui-Smartor to master +[33m838d8b5[m HEAD@{354}: checkout: moving from master to lishui-Smartor +[33mb8085c1[m HEAD@{355}: commit: 娴嬭瘯瀹屾垚 +[33mbaeeb80[m HEAD@{356}: checkout: moving from lishui-Smartor to master +[33m838d8b5[m HEAD@{357}: commit: 娴嬭瘯瀹屾垚 +[33m3fd01fa[m HEAD@{358}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md9a95a7[m HEAD@{359}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m3fd01fa[m HEAD@{360}: commit: 娴嬭瘯瀹屾垚 +[33m88481a3[m HEAD@{361}: checkout: moving from wuxi-smartor to lishui-Smartor +[33md9a95a7[m HEAD@{362}: commit: 娴嬭瘯瀹屾垚 +[33mffb5cf7[m HEAD@{363}: checkout: moving from master to wuxi-smartor +[33mbaeeb80[m HEAD@{364}: commit: 娴嬭瘯瀹屾垚 +[33m5271bf2[m HEAD@{365}: checkout: moving from lishui-Smartor to master +[33m88481a3[m HEAD@{366}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mffb5cf7[m HEAD@{367}: commit: 娴嬭瘯瀹屾垚 +[33mf5c2015[m HEAD@{368}: checkout: moving from DeBug to wuxi-smartor +[33m6d3e75d[m[33m ([m[1;31morigin/DeBug[m[33m, [m[1;32mDeBug[m[33m)[m HEAD@{369}: checkout: moving from lishui-Smartor to DeBug +[33m88481a3[m HEAD@{370}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mf5c2015[m HEAD@{371}: checkout: moving from master to wuxi-smartor +[33m5271bf2[m HEAD@{372}: commit: 娴嬭瘯瀹屾垚 +[33m0516a6b[m HEAD@{373}: checkout: moving from lishui-Smartor to master +[33m88481a3[m HEAD@{374}: commit: 娴嬭瘯瀹屾垚 +[33m12eb16c[m HEAD@{375}: commit: 娴嬭瘯瀹屾垚 +[33m083ae82[m HEAD@{376}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mf5c2015[m HEAD@{377}: commit: 娴嬭瘯瀹屾垚 +[33m28f8a2e[m HEAD@{378}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m083ae82[m HEAD@{379}: commit: 娴嬭瘯瀹屾垚 +[33m36b7179[m HEAD@{380}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m28f8a2e[m HEAD@{381}: commit: 娴嬭瘯瀹屾垚 +[33m5e20020[m HEAD@{382}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m36b7179[m HEAD@{383}: checkout: moving from master to lishui-Smartor +[33m0516a6b[m HEAD@{384}: checkout: moving from wuxi-smartor to master +[33m5e20020[m HEAD@{385}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m36b7179[m HEAD@{386}: commit: 娴嬭瘯瀹屾垚 +[33m03a3eff[m HEAD@{387}: checkout: moving from master to lishui-Smartor +[33m0516a6b[m HEAD@{388}: commit: 娴嬭瘯瀹屾垚 +[33m32674b0[m HEAD@{389}: checkout: moving from lishui-Smartor to master +[33m03a3eff[m HEAD@{390}: checkout: moving from master to lishui-Smartor +[33m32674b0[m HEAD@{391}: checkout: moving from lishui-Smartor to master +[33m03a3eff[m HEAD@{392}: commit: 娴嬭瘯瀹屾垚 +[33m2b1cfea[m HEAD@{393}: commit: 娴嬭瘯瀹屾垚 +[33mff99a9b[m HEAD@{394}: checkout: moving from master to lishui-Smartor +[33m32674b0[m HEAD@{395}: checkout: moving from lishui-Smartor to master +[33mff99a9b[m HEAD@{396}: commit: 娴嬭瘯瀹屾垚 +[33mcf2c2a9[m HEAD@{397}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m5e20020[m HEAD@{398}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mcf2c2a9[m HEAD@{399}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m5e20020[m HEAD@{400}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mcf2c2a9[m HEAD@{401}: commit: 娴嬭瘯瀹屾垚 +[33ma77752e[m HEAD@{402}: commit: 娴嬭瘯瀹屾垚 +[33m3bb35f1[m HEAD@{403}: commit: 娴嬭瘯瀹屾垚 +[33mb0dd238[m HEAD@{404}: commit: 娴嬭瘯瀹屾垚 +[33m57a7537[m HEAD@{405}: commit: 娴嬭瘯瀹屾垚 +[33m83d8322[m HEAD@{406}: checkout: moving from master to lishui-Smartor +[33m32674b0[m HEAD@{407}: commit: 娴嬭瘯瀹屾垚 +[33mf6bc6ed[m HEAD@{408}: checkout: moving from lishui-Smartor to master +[33m83d8322[m HEAD@{409}: commit: 娴嬭瘯瀹屾垚 +[33mee1d4af[m HEAD@{410}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{411}: checkout: moving from lishui-Smartor to master +[33mee1d4af[m HEAD@{412}: commit: 娴嬭瘯瀹屾垚 +[33mbcf3cae[m HEAD@{413}: commit: 娴嬭瘯瀹屾垚 +[33md5f7da9[m HEAD@{414}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m5e20020[m HEAD@{415}: commit: 娴嬭瘯瀹屾垚 +[33mee31f47[m HEAD@{416}: checkout: moving from lishui-Smartor to wuxi-smartor +[33md5f7da9[m HEAD@{417}: commit (merge): 娴嬭瘯瀹屾垚 +[33m5acc6d2[m HEAD@{418}: commit: 娴嬭瘯瀹屾垚 +[33m355bbb7[m HEAD@{419}: commit: 娴嬭瘯瀹屾垚 +[33ma3d2f84[m HEAD@{420}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mee31f47[m HEAD@{421}: checkout: moving from lishui-Smartor to wuxi-smartor +[33ma3d2f84[m HEAD@{422}: commit: 娴嬭瘯瀹屾垚 +[33mbc99b53[m HEAD@{423}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mee31f47[m HEAD@{424}: commit: 娴嬭瘯瀹屾垚 +[33m84b1d28[m HEAD@{425}: checkout: moving from lishui-Smartor to wuxi-smartor +[33mbc99b53[m HEAD@{426}: commit: 娴嬭瘯瀹屾垚 +[33m17edb0e[m HEAD@{427}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m84b1d28[m HEAD@{428}: commit: 娴嬭瘯瀹屾垚 +[33mbfce8d1[m HEAD@{429}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m17edb0e[m HEAD@{430}: checkout: moving from wuxi-smartor to lishui-Smartor +[33mbfce8d1[m HEAD@{431}: commit: 娴嬭瘯瀹屾垚 +[33m44d24a2[m HEAD@{432}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m17edb0e[m HEAD@{433}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m44d24a2[m HEAD@{434}: commit: 娴嬭瘯瀹屾垚 +[33m5f4c59e[m HEAD@{435}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m17edb0e[m HEAD@{436}: commit: 娴嬭瘯瀹屾垚 +[33m891f159[m HEAD@{437}: commit: 娴嬭瘯瀹屾垚 +[33m50873f4[m HEAD@{438}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m5f4c59e[m HEAD@{439}: commit: 娴嬭瘯瀹屾垚 +[33m4f3692a[m HEAD@{440}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m50873f4[m HEAD@{441}: checkout: moving from wuxi-smartor to lishui-Smartor +[33m4f3692a[m HEAD@{442}: commit: 娴嬭瘯瀹屾垚 +[33m321891f[m HEAD@{443}: commit: 娴嬭瘯瀹屾垚 +[33m3b8d057[m HEAD@{444}: commit: 娴嬭瘯瀹屾垚 +[33mf6bc6ed[m HEAD@{445}: merge master: Fast-forward +[33m9507541[m HEAD@{446}: checkout: moving from lishui-Smartor to wuxi-smartor +[33m50873f4[m HEAD@{447}: commit: 娴嬭瘯瀹屾垚 +[33mec64a69[m HEAD@{448}: commit: 娴嬭瘯瀹屾垚 +[33m8aa0592[m HEAD@{449}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{450}: checkout: moving from lishui-Smartor to master +[33m8aa0592[m HEAD@{451}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{452}: checkout: moving from lishui-Smartor to master +[33m8aa0592[m HEAD@{453}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{454}: checkout: moving from lishui-Smartor to master +[33m8aa0592[m HEAD@{455}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{456}: checkout: moving from lishui-Smartor to master +[33m8aa0592[m HEAD@{457}: commit: 娴嬭瘯瀹屾垚 +[33ma5faf6e[m HEAD@{458}: commit (merge): 娴嬭瘯瀹屾垚 +[33m46784b2[m HEAD@{459}: checkout: moving from master to lishui-Smartor +[33mf6bc6ed[m HEAD@{460}: commit: 娴嬭瘯瀹屾垚 +[33mf4e079f[m HEAD@{461}: checkout: moving from lishui-Smartor to master +[33m46784b2[m HEAD@{462}: commit: 娴嬭瘯瀹屾垚 +[33me48362d[m HEAD@{463}: commit (merge): 娴嬭瘯瀹屾垚 +[33m4cd2bfd[m HEAD@{464}: checkout: moving from master to lishui-Smartor +[33mf4e079f[m HEAD@{465}: commit: 娴嬭瘯瀹屾垚 +[33mdea82b7[m HEAD@{466}: commit: 娴嬭瘯瀹屾垚 +[33m0c2a0bd[m HEAD@{467}: checkout: moving from lishui-Smartor to master +[33m4cd2bfd[m HEAD@{468}: commit: 娴嬭瘯瀹屾垚 +[33m7cfedaa[m HEAD@{469}: commit (merge): 娴嬭瘯瀹屾垚 +[33m98589bb[m HEAD@{470}: checkout: moving from master to lishui-Smartor +[33m0c2a0bd[m HEAD@{471}: commit: 娴嬭瘯瀹屾垚 +[33m48e96f3[m HEAD@{472}: checkout: moving from lishui-Smartor to master +[33m98589bb[m HEAD@{473}: checkout: moving from master to lishui-Smartor +[33m48e96f3[m HEAD@{474}: commit: 娴嬭瘯瀹屾垚 +[33mfc63b5b[m HEAD@{475}: checkout: moving from lishui-Smartor to master +[33m98589bb[m HEAD@{476}: commit: 娴嬭瘯瀹屾垚 +[33m981fbdd[m HEAD@{477}: pull --tags origin lishui-Smartor: Fast-forward +[33m8c79267[m HEAD@{478}: reset: moving to 8c79267eb478e2986c5293d3fb48f1c3da18c544 +[33m981fbdd[m HEAD@{479}: checkout: moving from linshi-smartor to lishui-Smartor +[33m981fbdd[m HEAD@{480}: checkout: moving from linshi-smartor to linshi-smartor +[33m981fbdd[m HEAD@{481}: checkout: moving from lishui-Smartor to linshi-smartor +[33m981fbdd[m HEAD@{482}: checkout: moving from master to lishui-Smartor +[33mfc63b5b[m HEAD@{483}: commit: 娴嬭瘯瀹屾垚 +[33maca3443[m HEAD@{484}: checkout: moving from lishui-Smartor to master +[33m981fbdd[m HEAD@{485}: commit: 娴嬭瘯瀹屾垚 +[33m6de02b3[m HEAD@{486}: checkout: moving from master to lishui-Smartor +[33maca3443[m HEAD@{487}: checkout: moving from lishui-Smartor to master +[33m6de02b3[m HEAD@{488}: checkout: moving from master to lishui-Smartor +[33maca3443[m HEAD@{489}: checkout: moving from lishui-Smartor to master +[33m6de02b3[m HEAD@{490}: commit: 娴嬭瘯瀹屾垚 +[33m9896138[m HEAD@{491}: commit (merge): 娴嬭瘯瀹屾垚 +[33m4a7648d[m HEAD@{492}: checkout: moving from master to lishui-Smartor +[33maca3443[m HEAD@{493}: commit: 娴嬭瘯瀹屾垚 +[33m1a090a4[m HEAD@{494}: commit: 娴嬭瘯瀹屾垚 +[33m8c79267[m HEAD@{495}: commit: 娴嬭瘯瀹屾垚 +[33m080186b[m HEAD@{496}: checkout: moving from lishui-Smartor to master +[33m4a7648d[m HEAD@{497}: commit: 娴嬭瘯瀹屾垚 +[33m09a1bd5[m HEAD@{498}: commit: 娴嬭瘯瀹屾垚 +[33m4492ab0[m HEAD@{499}: commit: 娴嬭瘯瀹屾垚 +[33meef0168[m HEAD@{500}: commit (merge): 娴嬭瘯瀹屾垚 +[33m3dcfdb6[m HEAD@{501}: checkout: moving from master to lishui-Smartor +[33m080186b[m HEAD@{502}: commit: 娴嬭瘯瀹屾垚 +[33m0a4cc3c[m HEAD@{503}: checkout: moving from external to master +[33m3a7caf4[m[33m ([m[1;31morigin/external[m[33m, [m[1;32mexternal[m[33m)[m HEAD@{504}: checkout: moving from master to external +[33m0a4cc3c[m HEAD@{505}: checkout: moving from external to master +[33m3a7caf4[m[33m ([m[1;31morigin/external[m[33m, [m[1;32mexternal[m[33m)[m HEAD@{506}: commit: 娴嬭瘯瀹屾垚 +[33m5fcfaee[m HEAD@{507}: commit: 娴嬭瘯瀹屾垚 +[33mc8204d0[m HEAD@{508}: checkout: moving from master to external +[33m0a4cc3c[m HEAD@{509}: checkout: moving from external to master +[33mc8204d0[m HEAD@{510}: checkout: moving from master to external +[33m0a4cc3c[m HEAD@{511}: checkout: moving from external to master +[33mc8204d0[m HEAD@{512}: checkout: moving from external to external +[33mc8204d0[m HEAD@{513}: checkout: moving from master to external +[33m0a4cc3c[m HEAD@{514}: commit: 娴嬭瘯瀹屾垚 +[33m1cb1fbf[m HEAD@{515}: checkout: moving from external to master +[33mc8204d0[m HEAD@{516}: commit: 娴嬭瘯瀹屾垚 +[33m621935e[m HEAD@{517}: checkout: moving from master to external +[33m1cb1fbf[m HEAD@{518}: reset: moving to HEAD +[33m1cb1fbf[m HEAD@{519}: checkout: moving from external to master +[33m621935e[m HEAD@{520}: checkout: moving from master to external +[33m1cb1fbf[m HEAD@{521}: checkout: moving from external to master +[33m621935e[m HEAD@{522}: checkout: moving from 1cb1fbf80c955986385377b5f84e8915d1e655d6 to external +[33m1cb1fbf[m HEAD@{523}: checkout: moving from external to 1cb1fbf80c955986385377b5f84e8915d1e655d6 +[33m621935e[m HEAD@{524}: checkout: moving from wuxi-smartor to external +[33m9507541[m HEAD@{525}: checkout: moving from external to wuxi-smartor +[33m621935e[m HEAD@{526}: commit: 娴嬭瘯瀹屾垚 +[33mc7e1537[m HEAD@{527}: checkout: moving from wuxi-smartor to external +[33m9507541[m HEAD@{528}: checkout: moving from master to wuxi-smartor +[33m1cb1fbf[m HEAD@{529}: commit: 娴嬭瘯瀹屾垚 +[33m77fb64c[m HEAD@{530}: checkout: moving from lishui-Smartor to master +[33m3dcfdb6[m HEAD@{531}: commit: 涓芥按鎻愪氦 +[33m77fb64c[m HEAD@{532}: checkout: moving from master to lishui-Smartor +[33m77fb64c[m HEAD@{533}: checkout: moving from wuxi-smartor to master +[33m9507541[m HEAD@{534}: checkout: moving from wuxi-smartor to wuxi-smartor +[33m9507541[m HEAD@{535}: checkout: moving from master to wuxi-smartor +[33m77fb64c[m HEAD@{536}: commit: 鏂板崕鎻愪氦 +[33m9507541[m HEAD@{537}: merge wuxi-smartor: Fast-forward +[33m07e07d6[m HEAD@{538}: checkout: moving from wuxi-smartor to master +[33m9507541[m HEAD@{539}: commit: 鏃犻敗鎻愪氦 +[33m07e07d6[m HEAD@{540}: checkout: moving from master to wuxi-smartor +[33m07e07d6[m HEAD@{541}: commit: 鏂板崕鎻愪氦 +[33mb26c48a[m HEAD@{542}: checkout: moving from external to master +[33mc7e1537[m HEAD@{543}: commit: 澶栭摼鐙珛 +[33mc87c46a[m HEAD@{544}: commit: 澶栭摼鐙珛 +[33m4fb7f36[m HEAD@{545}: checkout: moving from master to external +[33mb26c48a[m HEAD@{546}: commit: 娴嬭瘯瀹屾垚 +[33mc1139d1[m HEAD@{547}: checkout: moving from external to master +[33m4fb7f36[m HEAD@{548}: checkout: moving from master to external +[33mc1139d1[m HEAD@{549}: checkout: moving from external to master +[33m4fb7f36[m HEAD@{550}: commit: 娴嬭瘯瀹屾垚 +[33mc1139d1[m HEAD@{551}: checkout: moving from master to external +[33mc1139d1[m HEAD@{552}: commit: 娴嬭瘯瀹屾垚 +[33mb1d81d0[m HEAD@{553}: commit: 娴嬭瘯瀹屾垚 +[33mae117f0[m HEAD@{554}: commit: 娴嬭瘯瀹屾垚 +[33m5dc9d1b[m HEAD@{555}: commit: 娴嬭瘯瀹屾垚 +[33m9a1a82e[m HEAD@{556}: commit: 娴嬭瘯瀹屾垚 +[33m294e513[m HEAD@{557}: commit: 娴嬭瘯瀹屾垚 +[33m007d388[m 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