.gitconfig
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,3 @@ [user] name = WXL (wul) email = wl_5969728@163.com e -i HEAD~1
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> : é 置代ç ç¼è¾ä¾èµ 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> : 宿é¨åæ£è æ°æ®äº¤äºapiå°è£ ï¼å建aiç¥è¯åºç¸å ³è·¯ç±é¡µé¢ 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> : 宿宣æãé®å·è·¯ç±è®¾ç½®ãé®å·æ¨¡å页é¢åå ¶æ·»å /ä¿®æ¹é¡µé¢é¨åå¸å±å¼å cb0e31a - heimawl <1785969728@qq.com> : ä¼å页é¢ä¸»é¢ 792c283 - heimawl <1785969728@qq.com> : 宿ä¸ä¼ æä»¶åæ¥éª¤é¡µé¢åæ ç¾ç®¡ç模å忥æå»º 61cb6f1 - heimawl <1785969728@qq.com> : å®è£ echarts5.4.0ä¾èµï¼å®æ´æ£è 管ç主页é¢åå ¶ä¸ªäººä¿¡æ¯åéå±é¡µé¢åºç¡å¼å 6e7acd5 - heimawl <1785969728@qq.com> : ç»ä»¶åºæ´çï¼ä¾èµå®è£ ãexcelå¯¼å ¥å¯¼å ¥æ¹æ³æ´ç 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> : ç¬¬ä¸æ¬¡ä¿®æ¹ et --hard HEAD@{1}
¶Ô±ÈÐÂÎļþ @@ -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: æµè¯å®æ 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. 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 }); } src/api/AiCentre/index.js
@@ -9,4 +9,4 @@ export * from './external' export * from './patientexternal' export * from './EChartsdata' export * from './satisfaction' export * from './satisfactionse' src/api/AiCentre/satisfactionse.js
src/assets/order/example.mp3Binary files differ
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; 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)" 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 => { src/utils/request.js
@@ -17,7 +17,7 @@ // axiosä¸è¯·æ±é ç½®æbaseURLé项ï¼è¡¨ç¤ºè¯·æ±URLå ¬å ±é¨å baseURL: process.env.VUE_APP_BASE_API, // è¶ æ¶ timeout: 10000, timeout: 100000, }); // requestæ¦æªå¨ src/utils/sipService-cs.js
ÎļþÃû´Ó src/utils/sipService-bd.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', () => { 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: { 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() { 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() { 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() { 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: "æ£å¨å è½½æªå®æé®å·æ°æ®...", 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> 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="æ¥çå½åæ£è ä¿¡æ¯" 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>æ£è æ¡£æ¡ä¿¡æ¯</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="æ£è 忬¡é访" 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, }; // æ£è åºç¡ä¿¡æ¯ 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(); }, // å¨methodsé¨åï¼ä¿®æ¹handleOptionChangeæ¹æ³: 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); // ä¿åä¹åå nextQuestion=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 { // æ£å¸¸è·³è½¬é»è¾ 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; /* ä¿æç©ºç½ç¬¦åºåå¹¶æ£å¸¸æ¢è¡ */ word-break: break-all; /* å¨é¿åè¯æURLå°åå é¨è¿è¡æ¢è¡ */ 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> src/views/followvisit/record/physical/index.vue
@@ -711,7 +711,6 @@ const queryParams = { pid: Number(this.patid), allhosp: "0", pageNum: 1, }; // æ£è åºç¡ä¿¡æ¯ messagelistpatient(queryParams).then((response) => { 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: "宣æå ³æ", }, ]; 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) => { 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() { 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"> 宣æç»è®¡ <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; 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" > 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: "æ£å¸¸" }, { 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(); }, // ç§å®¤/é¢åºå¤ç 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: "éç°å¿ä¸å»å»é¢ " }, ], 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"> <!-- 左侧ï¼é䏿£è å表 --> <el-col :span="12"> <div class="batch-patient-section"> <h4>é䏿£è ï¼{{ 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>æ£è ç§å®¤æ å¹é æå¡</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 @@ }); }, //æ£è 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() { // æ ¡éªæ¯å¦é䏿£è 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; } // è·åé䏿£è çç§å®¤ä¿¡æ¯ï¼ç¨äºæ ¡éªåä¸ç§å®¤ï¼ 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; } // è·åé䏿£è å表 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(); // å·æ°æ£è å表 } catch (error) { this.$modal.msgError("æ¹éæ·»å ä»»å¡è¿ç¨ä¸åºé"); } finally { this.batchLoading = false; } }, /** æ¹éæ·»å æ£è 任塿¥å£ */ 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> 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"> 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">æ£è èå´</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="æ£è ï¼"> <el-input v-model="patientqueryParams.name" @keyup.enter.native="handleQuery" ></el-input> </el-form-item> <el-form-item label="æ£è è¯æï¼"> <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> <!-- éæ©æ£è å表 --> <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="责任æ¤å£«" 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, // 妿鿩äº"å ¨é¨"ï¼åä¼ ææç åº/ç§å®¤ä»£ç 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(); }); }, // å¨methodsä¸ä¿®æ¹ç»è®¡æ¹æ³ 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;