Compare commits
777 Commits
develop-cl
...
zhaoyun
| Author | SHA1 | Date | |
|---|---|---|---|
| a7d93cb13e | |||
| 58ae7c418c | |||
| 8289f43219 | |||
| 8056e4c18a | |||
| 18391c1fe5 | |||
| 54c39d2308 | |||
| 9b422b06e0 | |||
| f1912090c4 | |||
| 3f06348570 | |||
| 137f3109a7 | |||
| 69666137e3 | |||
| c73e03b695 | |||
| f0dfcbf801 | |||
| 85994e2e17 | |||
| eaa3472194 | |||
| 189f39e790 | |||
| 034ac71f13 | |||
| ef59a574a9 | |||
| 23a3215121 | |||
| e225aa8941 | |||
| 447153a5a0 | |||
| 69f51c7cbc | |||
| 29e3b61165 | |||
| fab178b2fb | |||
| 11618e3d6c | |||
| c9507bb3c1 | |||
| 5623a41522 | |||
| 2a55d36440 | |||
| 4ccf272d4f | |||
| ccb803fe81 | |||
| 90dd0662ff | |||
| d9434abb84 | |||
| 0d1710a4d8 | |||
| ff8a52f242 | |||
| a8c90dce11 | |||
| f0bdf543fe | |||
| 2b6f573d29 | |||
| 1e8e7ebd8c | |||
| 29ff2d0a5c | |||
| 83d2e98b2b | |||
| 3b83d3aa8d | |||
| 813617a837 | |||
| 913a971ce4 | |||
| bdec44d6c5 | |||
| 207e74508c | |||
| 4a505a8c2d | |||
| 7bdcbad284 | |||
| b0f7b301f9 | |||
| b4de4d32de | |||
| 05c0be2269 | |||
| 17d23ccd68 | |||
| 2661ef48c0 | |||
| ad7beaf349 | |||
| 2efd3e5458 | |||
| 9cdee5dedb | |||
| 11bfa06529 | |||
| 15adcfdfac | |||
| 42a95ad7a8 | |||
| 099989e6db | |||
| 30461d7577 | |||
| 5b2b9d0721 | |||
| 9db5ced4e3 | |||
| bd14563691 | |||
| 2392689f6c | |||
| 883514ff1c | |||
| 31aac00918 | |||
| 57fb8dcbbf | |||
| e4193fe5a7 | |||
| 46b0297cfb | |||
| 37b3d2e6a7 | |||
| a550cbdf17 | |||
| 740dde3693 | |||
| c2389cdca5 | |||
| 6499e79db2 | |||
| 9ebc2e0493 | |||
| 4d1164abbf | |||
| 4f7e54c69d | |||
| 36565f47e4 | |||
| f65f9dbfb3 | |||
| 9b6ca223c5 | |||
| fd7ee53a97 | |||
| 74cd551e2b | |||
| 86c7da151c | |||
| aea5ad38bc | |||
| ad33518a7b | |||
| bcd64e3746 | |||
| bd53721306 | |||
| 515ed84118 | |||
| 2e839b0b62 | |||
| 179c5097d6 | |||
| 91bd1ec9c2 | |||
| 041de38149 | |||
| 05a8183311 | |||
| 76d6656ea3 | |||
| 7869252ec2 | |||
| f366986bb6 | |||
| 72c381258f | |||
| 75b98f9776 | |||
| 5452e27341 | |||
| 173b76742d | |||
| 7e6516e527 | |||
| c91b9b07b3 | |||
| 840793c61d | |||
| afdc63c072 | |||
| d0cdaac864 | |||
| 0e2ed75ec1 | |||
| 46a33af654 | |||
| 6b9b4d06c6 | |||
| e4b571e56b | |||
| b03cb76e95 | |||
| bffa686b45 | |||
| 0627c0c6c7 | |||
| 4d94424367 | |||
| 4c33b85f6b | |||
| a4a104cf2a | |||
| 6b09f6fb28 | |||
| c409e076ae | |||
| 09bf429f4d | |||
| dfc5d6bfcc | |||
| 597855859c | |||
| a628585bcb | |||
| 64a22316b2 | |||
| 36a82949bd | |||
| a560caaea7 | |||
| 61da654093 | |||
| ee4c267586 | |||
| 818cd2ff91 | |||
| 8ba05f504b | |||
| 45dc5c5d07 | |||
| d84b23ff8e | |||
| 07f50ca09e | |||
| 281ee2979b | |||
| bff502376b | |||
| 16ba8496ba | |||
| 65c673713a | |||
| 6cd5faf6d1 | |||
| 74b287bdb1 | |||
| bb7336d7ec | |||
| e2cb1af4d5 | |||
| bdd60f01fc | |||
| 30db439e8d | |||
| 111f589692 | |||
| fac191f467 | |||
| f21caee497 | |||
| 042500810d | |||
| 681f9cf2fe | |||
| 4e279e524e | |||
| 42c49e8d2f | |||
| 07cb61c569 | |||
| 27d7c9a73c | |||
| fa55ed672d | |||
| 60b044912b | |||
| a76cfb9b99 | |||
| 46ca929327 | |||
| 9a56d3c82f | |||
| a5ae764b53 | |||
| ae47a6d3c4 | |||
| 46a5266581 | |||
| 8626e24562 | |||
| 8f08dd1aff | |||
| 94f62fca97 | |||
| d172a37645 | |||
| 6483e4012e | |||
| 261663926d | |||
| 81e5fd768a | |||
| 3e1afc2ec4 | |||
| 1dfebb766e | |||
| 7dcb2489c6 | |||
| 581d7e1d6c | |||
| 633e6bf4c4 | |||
| e195747136 | |||
| c4cea2f224 | |||
| 4a608410c4 | |||
| d86184bd07 | |||
| 028bea7d3a | |||
| f6662ae689 | |||
| 3daffe5711 | |||
| 70ed18e0d1 | |||
| e2c55d140e | |||
| 18eec300e3 | |||
| c2d6a6fd9d | |||
| e4d3bcb6c3 | |||
| d523655a4a | |||
| 74ae1c10a3 | |||
| 0e1e506cf3 | |||
| 70336e8850 | |||
| 5fba68ddcf | |||
| 28d4b1b62f | |||
| ddefcf7ae4 | |||
| 8977a3e97b | |||
| b62dd734d1 | |||
| b16d4a08ab | |||
| 6b40333579 | |||
| 8700b11b41 | |||
| 617f48a846 | |||
| 2ac03e3ac8 | |||
| 030f12728e | |||
| 80fb5f5c05 | |||
| 11ae3e99e0 | |||
| bce650a6ba | |||
| 16d375473d | |||
| d619c8d483 | |||
| 854c30ef78 | |||
| 66482a6711 | |||
| 4c3091be17 | |||
| 2cca55d5b4 | |||
| a27cceb1fd | |||
| b66da711eb | |||
| 97df11b657 | |||
| 3af55bf53c | |||
| 28d14bd733 | |||
| 8aff010285 | |||
| 31924ec53e | |||
| dfe87582e7 | |||
| 6cb249d46a | |||
| d741d96d06 | |||
| 6c1e801e1a | |||
| b1e5d63ba0 | |||
| 42d462ff1c | |||
| ef640fde21 | |||
| 153911c2d9 | |||
| f6dfb6bec5 | |||
| d8b3064bd9 | |||
| a35a217e3f | |||
| 2d5cbb57fd | |||
| 557a959aeb | |||
| b5d2151a5c | |||
| ab4f4b4816 | |||
| 5e711f4d1b | |||
| 2708089646 | |||
| 41563dfce8 | |||
| a34ca4a97a | |||
| 4ccf68bf4f | |||
| 73781427b7 | |||
| 226409e6d6 | |||
| a0fed12051 | |||
| 58aa2d8d74 | |||
| de3530ea7d | |||
| 1ef72d1f92 | |||
| e9f57f3305 | |||
| f023977efd | |||
| 60fd4ff022 | |||
| 79bf198a8c | |||
| 3f40b96313 | |||
| 031a07b1ad | |||
| 99d8d74638 | |||
| 59c54cb158 | |||
| 3b2aefbc11 | |||
| cbd705ec6c | |||
| b8454725b5 | |||
| a3b3f9982e | |||
| b0f4fb66f5 | |||
| 0b7350eae1 | |||
| 1cda19d44b | |||
| 5d5bc21550 | |||
| a64723c571 | |||
| 0b2053c826 | |||
| ee5ceb35ec | |||
| ff5c3e0762 | |||
| 75c78c10f5 | |||
| 68110f0a91 | |||
| 543804d06c | |||
| cd92150687 | |||
| 07ca4a9fd1 | |||
| 17f9a7c293 | |||
| 5c19329f7d | |||
| 3cfa8b0072 | |||
| 7948f82bfc | |||
| 53243e0eb9 | |||
| 113afcf5e0 | |||
| 4a33decc42 | |||
| c3d642160d | |||
| 4a1a943745 | |||
| a7f2ede325 | |||
| 5fa3e5e0c8 | |||
| 0c3cbd88f8 | |||
| 4cf84b331d | |||
| 9a6da9c4c8 | |||
| 26aae68a04 | |||
| d0a56afe5e | |||
| bf18086fb9 | |||
| 9ea818a21a | |||
| 55a31c796c | |||
| a5da34d855 | |||
| 6b4cc2fc9c | |||
| 49042661bf | |||
| 866ceb8ffd | |||
| a3fc00820b | |||
| 647f44f396 | |||
| 9bc8c3cc53 | |||
| b1e26acdbf | |||
| 743e3d22c4 | |||
| e0ae8115bd | |||
| 829b652568 | |||
| 97e9fb944c | |||
| b9d6183ac6 | |||
| 97286e3649 | |||
| 0188ce465d | |||
| 236942ec48 | |||
| 4c2867af14 | |||
| 3bc8a5cdbf | |||
| 2cfdff5dfa | |||
| 197ea63ea4 | |||
| f7110c6b55 | |||
| d5bafc05d3 | |||
| fbc9cea140 | |||
| 77e1c9c1f3 | |||
| 21695bb5c9 | |||
| 5f1a3740f4 | |||
| 35053a8fd0 | |||
| d9252ebb39 | |||
| 016b9fec41 | |||
| 8f076f728e | |||
| 24b0226a98 | |||
| 02e5c7a553 | |||
| f72c318e2b | |||
| da70b20303 | |||
| e6aeb78aae | |||
| 0fd0e25a46 | |||
| 0ef6e1d80f | |||
| 63c0e838da | |||
| 0df2eb781d | |||
| 97d94760f0 | |||
| 5558e90539 | |||
| b5add518ed | |||
| 3b869ada2d | |||
| 8fe64c9758 | |||
| da2ce6c82e | |||
| cc63ab849f | |||
| 7e5a46dd0f | |||
| e9e1e609fb | |||
| 4e8c6d5738 | |||
| dabdc82b35 | |||
| e3ad439fee | |||
| 7295455d12 | |||
| b88996277b | |||
| 73b23c68b4 | |||
| 666d3faec8 | |||
| 01004e2c5d | |||
| 8b1dfbaa7e | |||
| cbb9be45e7 | |||
| 48292d7f36 | |||
| e83bebee19 | |||
| e207d784f3 | |||
| 9c31b733cb | |||
| 818b411ef8 | |||
| a60359d058 | |||
| 7a08609e34 | |||
| 3d9b2946b7 | |||
| bc4c3ec9b3 | |||
| feea5a8e2c | |||
| 7b5bb43edb | |||
| d40f546387 | |||
| 2ca9c10104 | |||
| fb9b929bfb | |||
| 0118920f7f | |||
| e739b0b578 | |||
| 37923793c0 | |||
| b37cc5606f | |||
| 78b19b66e6 | |||
| 72d6e25344 | |||
| 454b7a91db | |||
| b25614ff48 | |||
| 5686ccb127 | |||
| df38093fba | |||
| c5c481762b | |||
| 25e314c8b1 | |||
| 8a23fe1047 | |||
| e7eae1698c | |||
| 8f5b7ad9f7 | |||
| 15b542acf0 | |||
| e0614b1a6e | |||
| 58514c8ed7 | |||
| 882bb1980a | |||
| f6f7bd3131 | |||
| 1c8b689955 | |||
| fac4867f6e | |||
| b184883456 | |||
| 3364eafa2a | |||
| 37287c2788 | |||
| 1cc043f1f2 | |||
| 69928fd8f0 | |||
| 4193be1160 | |||
| 2a50b29905 | |||
| cbb801cda2 | |||
| 09d0ce81c0 | |||
| 409f7cde30 | |||
| 4e6c9a32f2 | |||
| f3d6d05c4f | |||
| 972f6b4f60 | |||
| 7374a345a0 | |||
| 8a5374f5fd | |||
| 0d06d290ae | |||
| 28d794fc30 | |||
| c5e76f6eaa | |||
| b35bcfe8f5 | |||
| d826ca4eab | |||
| 3d7fc4897d | |||
| d549a9f4be | |||
| 82eb6174c6 | |||
| 1d59e78e85 | |||
| d99a87c3e3 | |||
| f9d7b0f350 | |||
| a4b36adc44 | |||
| 3420e26373 | |||
| c52364a7fd | |||
| 9996ba9c59 | |||
| 5f50853857 | |||
| feed9ce75f | |||
| 7493d012a8 | |||
| 981ede6ab7 | |||
| 9882309129 | |||
| 81ea106e8a | |||
| 050c631b3e | |||
| 5707a498a5 | |||
| 57ded42e49 | |||
| 230db2502f | |||
| de06643dc7 | |||
| 4d5ad3dee7 | |||
| b130beb27f | |||
| dec4f80ab6 | |||
| 8cc9288886 | |||
| 2d2368480c | |||
| 2bc961dcce | |||
| d0a4741b30 | |||
| 48b227629f | |||
| 911b7ddc00 | |||
| f916c117b8 | |||
| a582201d7d | |||
| 99163255c6 | |||
| 7d7153735d | |||
| 4e0a8dfd94 | |||
| 99b2832997 | |||
| 48e82fc9f1 | |||
| 4a93439245 | |||
| e4886ec4a1 | |||
| 9b4063b2fb | |||
| ac3d7c6b94 | |||
| e74faed6d8 | |||
| bdb23d9017 | |||
| 20dcca66b2 | |||
| 3ebcaee02a | |||
| 6039e8184c | |||
| 3a1cdf6dc3 | |||
| 4dc3010cbe | |||
| 2566a3d12b | |||
| a7afeaf200 | |||
| eb134cf52d | |||
| 61980e1c0c | |||
| 5dff708a44 | |||
| aadfd94c0e | |||
| 3c65d74ed7 | |||
| 1f4bd6e329 | |||
| b1fb7b2d56 | |||
| e4c6c57176 | |||
| 0eac52e3c9 | |||
| 5fc598cbc8 | |||
| 954fefbf0e | |||
| 993e65428f | |||
| 494de72723 | |||
| 227ada4c1d | |||
| b95544dcdf | |||
| 4ee4dceb91 | |||
| b96fddb5fd | |||
| 6f6280b161 | |||
| 5d5620bcda | |||
| 7630f87121 | |||
| 2f4205563c | |||
| 81dea5c498 | |||
| 9628bd1be9 | |||
| f027acbd0b | |||
| 01d61c7f52 | |||
| 61e000e674 | |||
| 109425dcb6 | |||
| b552dc811d | |||
| defade3459 | |||
| d8742b0a61 | |||
| 60b8713236 | |||
| b9403536ae | |||
| b9f3a4d596 | |||
| 49c1adba50 | |||
| 1f87e24d68 | |||
| 347e1d2b86 | |||
| 4c68486a12 | |||
| 12fe5e283b | |||
| 0adeb5121f | |||
| 16c42ca108 | |||
| 8e6cb5c79f | |||
| 1559f5f32e | |||
| f91c709d72 | |||
| 028986a187 | |||
| b8b7269d03 | |||
| a6cce90c51 | |||
| 64807ccb3b | |||
| 2b2ab5aba9 | |||
| 5c2bc1990d | |||
| 2d9a225064 | |||
| f39fd8a69b | |||
| 5d48acb7a7 | |||
| c6c9eed067 | |||
| bf1438dbbe | |||
| 20ec3e30fc | |||
| 42d636bad1 | |||
| a7639fa9b1 | |||
| 0b6ad55b5a | |||
| 2f59915a7b | |||
| 2da8870ba1 | |||
| 088fac7aa3 | |||
| fe0ff7ffdc | |||
| c44c06e609 | |||
| f1b9fc661d | |||
| efef173617 | |||
| 4f6892aca0 | |||
| 2601669b86 | |||
| 904e75ce96 | |||
| b9d5ffbeb0 | |||
| d685f1e9d7 | |||
| 8573d236a8 | |||
| d9535be0b8 | |||
| 68e1a528e8 | |||
| dc0c36731e | |||
| db99ec2244 | |||
| ef565877e5 | |||
| fda9a14966 | |||
| f367d62981 | |||
| 2a5255e408 | |||
| 8c738cc78a | |||
| 8ea1b4f067 | |||
| 09d6df006d | |||
| 6565d1a1ac | |||
| 0c374916f3 | |||
| 96cf7339fb | |||
| 9980c30fe4 | |||
| 17b6aa6a38 | |||
| afb1fc69f2 | |||
| e1e4fcc1c3 | |||
| 6991c67fb3 | |||
| 83044cf288 | |||
| 54aa1f331e | |||
| 59ccacf681 | |||
| 2621d0d953 | |||
| c686a86b31 | |||
| 62ba4772ef | |||
| 80e77c043b | |||
| ee910ea863 | |||
| 3fd04450a0 | |||
| f214a137f7 | |||
| f6f8a33304 | |||
| 8a422641d3 | |||
| 7c32f9942c | |||
| a27fc66929 | |||
| 5056c8747e | |||
| 3d676b41fb | |||
| ee21265297 | |||
| 31e35e7c1a | |||
| a23ec8026a | |||
| 66066b7ff0 | |||
| 24cd65fe60 | |||
| 37c197081a | |||
| ce325b96a5 | |||
| 1d78ccf15f | |||
| 3246f07da9 | |||
| d3d7350e49 | |||
| 848b295d74 | |||
| 39edb9bb81 | |||
| b9611aaa35 | |||
| 0fbaff9504 | |||
| c821a5c4ca | |||
| 0f36b015cc | |||
| be495a9bf2 | |||
| 7c382ce3b9 | |||
| 1e78f8e0aa | |||
| 6b6c286671 | |||
| e901703998 | |||
| dd565a1054 | |||
| 282ad2121d | |||
| b1f5069185 | |||
| 9be763c5bb | |||
| 2daff2a131 | |||
| 51d12bd021 | |||
| 01084b3d4c | |||
| 755a830ef6 | |||
| 1e31488f3c | |||
| 9cb2c5cb08 | |||
| 51bccf16f3 | |||
| 8649a27647 | |||
| 3602aafb22 | |||
| 6b5d413be8 | |||
| 4ace188cd7 | |||
| 0acc163cb1 | |||
| 03a2ec0f75 | |||
| 3e8095713f | |||
| ebb7281c03 | |||
| 72d2ef6f9b | |||
| 6a7e30e317 | |||
| 7da1f64931 | |||
| 4b8d85a0c2 | |||
| 5a20ae2edd | |||
| 4214bb94be | |||
| 83d9204067 | |||
| 91b0c0cf23 | |||
| bf1ed9deeb | |||
| ec023fab64 | |||
| a902a3f93c | |||
| 04de587509 | |||
| 890fea8cea | |||
| a7dd162cd0 | |||
| 65989e6eac | |||
| 2a94bfa295 | |||
| 023ea24f6c | |||
| 832a648dfb | |||
| a307908c00 | |||
| 62751b3862 | |||
| b7b78afbc0 | |||
| 7e4f8db5cb | |||
| 4f012b9168 | |||
| 26c6ee312c | |||
| 92516d2e19 | |||
| d803e69f62 | |||
| 924f6ff904 | |||
| cfed95cd47 | |||
| 6f186ab42c | |||
| cb262ccff7 | |||
| fbee6ad8f6 | |||
| c1357c523b | |||
| a92d82d6dd | |||
| c5738202c9 | |||
| 392e42c933 | |||
| efa39482f6 | |||
| df10377698 | |||
| e16cc60655 | |||
| 1a505a9885 | |||
| b118455d9b | |||
| 5b551543b8 | |||
| aae4c19e78 | |||
| 46e9437062 | |||
| 6323f8e228 | |||
| a195f89289 | |||
| bb5b4cb355 | |||
| fc9eaa18a9 | |||
| bed4d52894 | |||
| 5e05b41570 | |||
| 382c89ff9f | |||
| af65c098c6 | |||
| 47af2bd905 | |||
| 8a8dfaa473 | |||
| 5c66a3c126 | |||
| b460e1dad2 | |||
| e9dbc59953 | |||
| 6a83a405b3 | |||
| 141c0d599d | |||
| 71f716e3f6 | |||
| 65c7613182 | |||
| 3ebc098f08 | |||
| f864849356 | |||
| eae913f8fd | |||
| 74d387ae52 | |||
| 3ed5f8819b | |||
| 9990542f56 | |||
| 4f85546416 | |||
| b6fc885801 | |||
| 242d57667e | |||
| b6555df69d | |||
| 18fa222f57 | |||
| e4e4971ef9 | |||
| e2dc289128 | |||
| 6cc4099548 | |||
| c0e14245f9 | |||
| 1ae20d53e0 | |||
| 3b5ffb83f6 | |||
| 93791bdd3e | |||
| 7e6af7b359 | |||
| 28b026a92d | |||
| c9417cee63 | |||
| fd7345591e | |||
| 468c79ac2c | |||
| c75460f502 | |||
| 69ecdcb117 | |||
| 6b4ab8d02b | |||
| c9265b5aee | |||
| 8412e06c7d | |||
| 8fc6a3e5c1 | |||
| aa5a856d31 | |||
| f66e5d1f07 | |||
| 2db3299f7c | |||
| a76cf70c62 | |||
| 08991aa2c4 | |||
| fcf961bd12 | |||
| 6e8273e7df | |||
| 9e72e60882 | |||
| 7ed57f6981 | |||
| ec81067939 | |||
| cab2328ce7 | |||
| 9805356753 | |||
| 36d7ba99bf | |||
| 8b171bcafb | |||
| d040dd36e0 | |||
| 3d1cc001dc | |||
| 5f93201bd6 | |||
| bca5381e52 | |||
| 33b68a7ad4 | |||
| 4232f55769 | |||
| e67c2f63ed | |||
| 18ea0371e2 | |||
| 63c2837ee2 | |||
| c949b67016 | |||
| ec2064e7e2 | |||
| 4424ecc42a | |||
| 12dc9139ed | |||
| 0f628d0ab6 | |||
| 8965a591e2 | |||
| abcf633910 | |||
| c67aab8d87 | |||
| 68472282a5 | |||
| e0db63b262 | |||
| 697e02000d | |||
| 68ca53457b | |||
| ae2f975c22 | |||
| bdb21e2826 | |||
| 8d0f417ec1 | |||
| 5d0e8fe345 | |||
| fc7f28a264 | |||
| 5b7cbca3d6 | |||
| 71451a6ab9 | |||
| 45dabc7fb9 | |||
| dad642af96 | |||
| c92ceb5c0a | |||
| 288ce02859 | |||
| 13b50c0244 | |||
| d25b338710 | |||
| 44a004607a | |||
| 0c9fab051a | |||
| cd97745b42 | |||
| ed9b18afa7 | |||
| f6702a89d1 | |||
| f9e392d6a3 | |||
| b2cf2ecdfd | |||
| a0897d232c | |||
| cab402fd4a | |||
| 7ea06c9497 | |||
| 0ba1e1bde8 | |||
| 536a0e7ace | |||
| 23d88016cc | |||
| a12722b150 | |||
| ffe1df5a80 | |||
| 01ce6cb27c | |||
| 94a4c964b9 | |||
| b6c05fecdc | |||
| 3e785784b0 | |||
| c39b767c5b | |||
| 1762259a6e | |||
| c6c059a9db | |||
| 33f7acc518 | |||
| 6d9fda0000 | |||
| aed6c7f9ac | |||
| 97b68b155d | |||
| ac320aa999 | |||
| 13547b994e | |||
| 6175142d64 | |||
| 2ac496725a | |||
| 10b63f5654 | |||
| 82b5e2096a | |||
| 2c93ae9408 | |||
| 5a124936a4 | |||
| cacb31bb55 | |||
| 88a0bfaaf2 | |||
| 33654bcad7 | |||
| 8430d65866 | |||
| 3f8acc93bc | |||
| 38c702e324 | |||
| 3361298c1b | |||
| 6be1efe380 | |||
| c7d3f8139b | |||
| 83a6bbd4cc | |||
| bbdf0118b6 | |||
| 646c79e67c | |||
| f545b794e8 |
2
his-repo
2
his-repo
Submodule his-repo updated: ea1271db8a...515ed84118
@@ -199,7 +199,7 @@ public class TicketAppServiceImpl implements ITicketAppService {
|
||||
if (OrderStatus.PATIENT_CANCELLED.getValue().equals(raw.getOrderStatus())) {
|
||||
dto.setStatus("已退号");
|
||||
} else {
|
||||
dto.setStatus("已锁定");
|
||||
dto.setStatus("已预约");
|
||||
}
|
||||
} else if (status == SlotStatus.BOOKED) {
|
||||
if (OrderStatus.PATIENT_CANCELLED.getValue().equals(raw.getOrderStatus())) {
|
||||
@@ -380,7 +380,7 @@ public class TicketAppServiceImpl implements ITicketAppService {
|
||||
if (OrderStatus.PATIENT_CANCELLED.getValue().equals(raw.getOrderStatus())) {
|
||||
dto.setStatus("已退号");
|
||||
} else {
|
||||
dto.setStatus("已锁定");
|
||||
dto.setStatus("已预约");
|
||||
}
|
||||
} else if (status == SlotStatus.BOOKED) {
|
||||
if (OrderStatus.PATIENT_CANCELLED.getValue().equals(raw.getOrderStatus())) {
|
||||
|
||||
@@ -36,4 +36,7 @@ public class PerformInfoDto {
|
||||
/** 分组id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long groupId;
|
||||
|
||||
/** 退回原因 */
|
||||
private String backReason;
|
||||
}
|
||||
|
||||
@@ -220,18 +220,12 @@ public class DoctorStationEmrAppServiceImpl implements IDoctorStationEmrAppServi
|
||||
*/
|
||||
@Override
|
||||
public R<?> getPendingEmrList(Long doctorId, Integer pageNo, Integer pageSize, String patientName) {
|
||||
List<Map<String, Object>> allRows = doctorStationEmrAppMapper.getPendingEmrList(doctorId, patientName);
|
||||
int total = allRows.size();
|
||||
// 先查询总数
|
||||
Long total = doctorStationEmrAppMapper.getPendingEmrCount(doctorId, patientName);
|
||||
|
||||
// 分页截取
|
||||
int fromIndex = (pageNo - 1) * pageSize;
|
||||
int toIndex = Math.min(fromIndex + pageSize, total);
|
||||
List<Map<String, Object>> pageRows;
|
||||
if (fromIndex >= total) {
|
||||
pageRows = new ArrayList<>();
|
||||
} else {
|
||||
pageRows = allRows.subList(fromIndex, toIndex);
|
||||
}
|
||||
// 计算分页偏移量,再查询分页数据
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
List<Map<String, Object>> pageRows = doctorStationEmrAppMapper.getPendingEmrList(doctorId, patientName, pageSize, offset);
|
||||
|
||||
// 计算年龄列
|
||||
for (Map<String, Object> row : pageRows) {
|
||||
@@ -246,7 +240,7 @@ public class DoctorStationEmrAppServiceImpl implements IDoctorStationEmrAppServi
|
||||
|
||||
Map<String, Object> result = new java.util.HashMap<>();
|
||||
result.put("rows", pageRows);
|
||||
result.put("total", total);
|
||||
result.put("total", total != null ? total : 0L);
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@ import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonSetter;
|
||||
import com.fasterxml.jackson.annotation.Nulls;
|
||||
|
||||
@@ -26,6 +30,14 @@ public class AdviceSaveDto {
|
||||
/** 医嘱类型 */
|
||||
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||
|
||||
/**
|
||||
* 医嘱开始时间
|
||||
*/
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
|
||||
|
||||
/**
|
||||
* 请求id
|
||||
*/
|
||||
|
||||
@@ -63,6 +63,18 @@ public class PatientDetailsDto {
|
||||
*/
|
||||
private String address;
|
||||
|
||||
/** 地址省 */
|
||||
private String addressProvince;
|
||||
|
||||
/** 地址市 */
|
||||
private String addressCity;
|
||||
|
||||
/** 地址区 */
|
||||
private String addressDistrict;
|
||||
|
||||
/** 地址街道 */
|
||||
private String addressStreet;
|
||||
|
||||
/**
|
||||
* 工作单位
|
||||
*/
|
||||
|
||||
@@ -22,6 +22,12 @@ public class RequestBaseDto {
|
||||
*/
|
||||
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||
|
||||
/**
|
||||
* 医嘱开始时间
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 唯一标识
|
||||
*/
|
||||
@@ -121,6 +127,11 @@ public class RequestBaseDto {
|
||||
* 请求状态
|
||||
*/
|
||||
private Integer statusEnum;
|
||||
/**
|
||||
* 退回原因
|
||||
*/
|
||||
private String reasonText;
|
||||
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/**
|
||||
@@ -238,4 +249,15 @@ public class RequestBaseDto {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long patientId;
|
||||
|
||||
/**
|
||||
* 停嘱医生
|
||||
*/
|
||||
private String stopUserName;
|
||||
|
||||
/**
|
||||
* 停嘱时间
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date stopTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ import java.util.Map;
|
||||
public interface DoctorStationEmrAppMapper {
|
||||
|
||||
List<Map<String, Object>> getPendingEmrList(@Param("doctorId") Long doctorId,
|
||||
@Param("patientName") String patientName);
|
||||
@Param("patientName") String patientName,
|
||||
@Param("pageSize") Integer pageSize,
|
||||
@Param("offset") Integer offset);
|
||||
|
||||
Long getPendingEmrCount(@Param("doctorId") Long doctorId,
|
||||
@Param("patientName") String patientName);
|
||||
|
||||
@@ -415,13 +415,14 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
Date checkDate = new Date();
|
||||
if (!serviceRequestList.isEmpty()) {
|
||||
// 更新服务请求状态待发送
|
||||
String backReason = performInfoList.get(0).getBackReason();
|
||||
serviceRequestService.updateDraftStatus(
|
||||
serviceRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate);
|
||||
serviceRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, backReason);
|
||||
}
|
||||
if (!medRequestList.isEmpty()) {
|
||||
// 更新药品请求状态待发送
|
||||
medicationRequestService.updateDraftStatusBatch(
|
||||
medRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate);
|
||||
medRequestList.stream().map(PerformInfoDto::getRequestId).toList(), practitionerId, checkDate, backReason);
|
||||
}
|
||||
return R.ok(null, "退回成功");
|
||||
}
|
||||
|
||||
@@ -86,8 +86,13 @@ public class OutpatientRecordServiceImpl implements IOutpatientRecordService {
|
||||
|
||||
// 处理就诊对象状态筛选
|
||||
if (outpatientRecordSearchParam.getSubjectStatusEnum() != null) {
|
||||
if (outpatientRecordSearchParam.getSubjectStatusEnum() == 0) {
|
||||
// 前端选择"无状态"(0)时,过滤 status_enum IS NULL 的记录
|
||||
queryWrapper.isNull("enc.status_enum");
|
||||
} else {
|
||||
queryWrapper.eq("enc.status_enum", outpatientRecordSearchParam.getSubjectStatusEnum());
|
||||
}
|
||||
}
|
||||
|
||||
// 处理医生姓名查询(支持模糊查询)
|
||||
if (outpatientRecordSearchParam.getDoctorName() != null && !outpatientRecordSearchParam.getDoctorName().isEmpty()) {
|
||||
|
||||
@@ -69,4 +69,12 @@ public interface IAdviceManageAppService {
|
||||
*/
|
||||
R<?> stopRegAdvice(List<AdviceBatchOpParam> paramList);
|
||||
|
||||
/**
|
||||
* 住院医嘱取消停嘱(恢复)
|
||||
*
|
||||
* @param paramList 恢复参数
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> cancelStopRegAdvice(List<AdviceBatchOpParam> paramList);
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.medication.domain.MedicationDispense;
|
||||
import com.openhis.medication.domain.MedicationRequest;
|
||||
import com.openhis.medication.service.IMedicationDispenseService;
|
||||
import com.openhis.medication.service.IMedicationRequestService;
|
||||
@@ -415,7 +416,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
}
|
||||
// 保存时处理的字段属性
|
||||
if (is_save) {
|
||||
longMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
||||
longMedicationRequest.setEffectiveDoseStart(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
longMedicationRequest
|
||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
||||
longMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||
@@ -503,7 +504,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
}
|
||||
// 保存时处理的字段属性
|
||||
if (is_save) {
|
||||
tempMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
||||
tempMedicationRequest.setEffectiveDoseStart(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
tempMedicationRequest
|
||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
||||
tempMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||
@@ -615,7 +616,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
}
|
||||
// 保存时处理的字段属性
|
||||
if (is_save) {
|
||||
longServiceRequest.setOccurrenceStartTime(startTime); // 医嘱开始时间
|
||||
longServiceRequest.setOccurrenceStartTime(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
longServiceRequest.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 4));
|
||||
longServiceRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||
longServiceRequest.setQuantity(new BigDecimal("1")); // 请求数量 | 诊疗的长期医嘱数量都是1
|
||||
@@ -666,7 +667,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
}
|
||||
// 保存时处理的字段属性
|
||||
if (is_save) {
|
||||
tempServiceRequest.setOccurrenceStartTime(startTime); // 医嘱开始时间
|
||||
tempServiceRequest.setOccurrenceStartTime(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
tempServiceRequest.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 4));
|
||||
tempServiceRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||
tempServiceRequest.setQuantity(regAdviceSaveDto.getQuantity()); // 请求数量
|
||||
@@ -812,7 +813,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
deviceRequest.setPatientId(regAdviceSaveDto.getPatientId()); // 患者
|
||||
deviceRequest.setRequesterId(regAdviceSaveDto.getPractitionerId()); // 开方医生
|
||||
deviceRequest.setOrgId(regAdviceSaveDto.getFounderOrgId()); // 开方人科室
|
||||
deviceRequest.setReqAuthoredTime(startTime); // 医嘱开始时间
|
||||
deviceRequest.setReqAuthoredTime(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
deviceRequest.setPerformLocation(regAdviceSaveDto.getLocationId()); // 发放科室
|
||||
deviceRequest.setEncounterId(regAdviceSaveDto.getEncounterId()); // 就诊id
|
||||
deviceRequest.setPackageId(regAdviceSaveDto.getPackageId()); // 组套id
|
||||
@@ -851,7 +852,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
deviceRequest.setPatientId(regAdviceSaveDto.getPatientId()); // 患者
|
||||
deviceRequest.setRequesterId(regAdviceSaveDto.getPractitionerId()); // 开方医生
|
||||
deviceRequest.setOrgId(regAdviceSaveDto.getFounderOrgId()); // 开方人科室
|
||||
deviceRequest.setReqAuthoredTime(startTime); // 医嘱开始时间
|
||||
deviceRequest.setReqAuthoredTime(regAdviceSaveDto.getStartTime() != null ? regAdviceSaveDto.getStartTime() : startTime); // 医嘱开始时间
|
||||
deviceRequest.setPerformLocation(regAdviceSaveDto.getLocationId()); // 发放科室
|
||||
deviceRequest.setEncounterId(regAdviceSaveDto.getEncounterId()); // 就诊id
|
||||
deviceRequest.setPackageId(regAdviceSaveDto.getPackageId()); // 组套id
|
||||
@@ -1043,8 +1044,14 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
*/
|
||||
@Override
|
||||
public R<?> stopRegAdvice(List<AdviceBatchOpParam> paramList) {
|
||||
// 当前时间
|
||||
Date date = new Date();
|
||||
// 获取停嘱时间:优先从前端传入的 stopTime,否则用当前时间
|
||||
Date stopTime = paramList.stream()
|
||||
.map(AdviceBatchOpParam::getStopTime)
|
||||
.filter(Objects::nonNull)
|
||||
.findFirst()
|
||||
.orElse(new Date());
|
||||
// 获取当前操作用户昵称作为停嘱医生
|
||||
String stopUserName = SecurityUtils.getNickName();
|
||||
// 药品
|
||||
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||
@@ -1059,15 +1066,112 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
||||
= activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||
if (!medicineRequestIds.isEmpty()) {
|
||||
iMedicationRequestService.update(new LambdaUpdateWrapper<MedicationRequest>()
|
||||
.in(MedicationRequest::getId, medicineRequestIds).set(MedicationRequest::getEffectiveDoseEnd, date)
|
||||
.set(MedicationRequest::getStatusEnum, RequestStatus.STOPPED.getValue()));
|
||||
.in(MedicationRequest::getId, medicineRequestIds)
|
||||
.set(MedicationRequest::getEffectiveDoseEnd, stopTime)
|
||||
.set(MedicationRequest::getStatusEnum, RequestStatus.STOPPED.getValue())
|
||||
.set(MedicationRequest::getUpdateBy, stopUserName));
|
||||
}
|
||||
if (!activityRequestIds.isEmpty()) {
|
||||
iServiceRequestService.update(new LambdaUpdateWrapper<ServiceRequest>()
|
||||
.in(ServiceRequest::getId, activityRequestIds).set(ServiceRequest::getOccurrenceEndTime, date)
|
||||
.set(ServiceRequest::getStatusEnum, RequestStatus.STOPPED.getValue()));
|
||||
.in(ServiceRequest::getId, activityRequestIds)
|
||||
.set(ServiceRequest::getOccurrenceEndTime, stopTime)
|
||||
.set(ServiceRequest::getStatusEnum, RequestStatus.STOPPED.getValue())
|
||||
.set(ServiceRequest::getUpdateBy, stopUserName));
|
||||
}
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"医嘱停止"}));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院医嘱取消停嘱(恢复)
|
||||
*
|
||||
* 核心业务逻辑:
|
||||
* 1. 护士站校验:护士站尚未对该医嘱的停止进行"停止核对/确认"(即 dispense 状态未进入已发药/完成状态)
|
||||
* 2. 药房端校验:药房尚未对该停嘱单进行退药接收/退费入库确认
|
||||
* 3. 若校验通过,将医嘱状态复原为"已签发";清空停嘱时间与停嘱医生字段;
|
||||
* 同时自动作废已生成的待发药退回/退药申请
|
||||
*
|
||||
* @param paramList 恢复参数
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> cancelStopRegAdvice(List<AdviceBatchOpParam> paramList) {
|
||||
// 药品
|
||||
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||
List<Long> medicineRequestIds
|
||||
= medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||
// 诊疗(包含护理adviceType=26)
|
||||
List<AdviceBatchOpParam> activityList = paramList.stream()
|
||||
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())
|
||||
|| (e.getAdviceType() != null && e.getAdviceType() == 26))
|
||||
.collect(Collectors.toList());
|
||||
List<Long> activityRequestIds
|
||||
= activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||
|
||||
// ============ 前置校验 ============
|
||||
// 1. 护士站校验:查询药品发放记录,确认护士站是否已执行停止核对(发药)
|
||||
if (!medicineRequestIds.isEmpty()) {
|
||||
List<MedicationDispense> dispenseList = iMedicationDispenseService.selectByRequestIdList(medicineRequestIds);
|
||||
for (MedicationDispense dispense : dispenseList) {
|
||||
// 如果发放状态 >= COMPLETED(4),说明护士站已发药/已确认停止
|
||||
if (dispense.getStatusEnum() != null && dispense.getStatusEnum() >= DispenseStatus.COMPLETED.getValue()
|
||||
&& !DispenseStatus.ON_HOLD.getValue().equals(dispense.getStatusEnum())
|
||||
&& !DispenseStatus.STOPPED.getValue().equals(dispense.getStatusEnum())
|
||||
&& !DispenseStatus.CANCELLED.getValue().equals(dispense.getStatusEnum())) {
|
||||
throw new ServiceException("护士站已确认停止该医嘱,无法取消停嘱!");
|
||||
}
|
||||
// 2. 药房端校验:如果已有退药/退费记录,说明药房已处理
|
||||
if (DispenseStatus.RETURNED.getValue().equals(dispense.getStatusEnum())
|
||||
|| DispenseStatus.REFUNDED.getValue().equals(dispense.getStatusEnum())
|
||||
|| DispenseStatus.PART_REFUND.getValue().equals(dispense.getStatusEnum())) {
|
||||
throw new ServiceException("药房已完成退药处理,无法取消停嘱!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============ 执行恢复 ============
|
||||
if (!medicineRequestIds.isEmpty()) {
|
||||
// 恢复药品请求状态为"已发送"(ACTIVE=2),清空停嘱时间和更新人
|
||||
iMedicationRequestService.update(new LambdaUpdateWrapper<MedicationRequest>()
|
||||
.in(MedicationRequest::getId, medicineRequestIds)
|
||||
.set(MedicationRequest::getStatusEnum, RequestStatus.ACTIVE.getValue())
|
||||
.set(MedicationRequest::getEffectiveDoseEnd, null)
|
||||
.set(MedicationRequest::getUpdateBy, null));
|
||||
|
||||
// 作废/删除与这些药品请求相关的待退药发放记录
|
||||
List<MedicationDispense> relatedDispenseList = iMedicationDispenseService.selectByRequestIdList(medicineRequestIds);
|
||||
for (MedicationDispense dispense : relatedDispenseList) {
|
||||
if (DispenseStatus.PENDING_REFUND.getValue().equals(dispense.getStatusEnum())
|
||||
|| DispenseStatus.CANCELLED.getValue().equals(dispense.getStatusEnum())
|
||||
|| DispenseStatus.ON_HOLD.getValue().equals(dispense.getStatusEnum())) {
|
||||
// 将待退药/暂停/撤回的记录标记为草稿,或删除
|
||||
iMedicationDispenseService.update(new LambdaUpdateWrapper<MedicationDispense>()
|
||||
.eq(MedicationDispense::getId, dispense.getId())
|
||||
.set(MedicationDispense::getStatusEnum, DispenseStatus.DRAFT.getValue())
|
||||
.set(MedicationDispense::getStatusChangedTime, new Date()));
|
||||
}
|
||||
// 如果 dispense 已处于 STOPPED(6) 状态,也恢复为草稿以重新触发配药流程
|
||||
if (DispenseStatus.STOPPED.getValue().equals(dispense.getStatusEnum())) {
|
||||
iMedicationDispenseService.update(new LambdaUpdateWrapper<MedicationDispense>()
|
||||
.eq(MedicationDispense::getId, dispense.getId())
|
||||
.set(MedicationDispense::getStatusEnum, DispenseStatus.PREPARATION.getValue())
|
||||
.set(MedicationDispense::getStatusChangedTime, new Date()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!activityRequestIds.isEmpty()) {
|
||||
// 恢复诊疗请求状态为"已发送"(ACTIVE=2),清空停嘱时间和更新人
|
||||
iServiceRequestService.update(new LambdaUpdateWrapper<ServiceRequest>()
|
||||
.in(ServiceRequest::getId, activityRequestIds)
|
||||
.set(ServiceRequest::getStatusEnum, RequestStatus.ACTIVE.getValue())
|
||||
.set(ServiceRequest::getOccurrenceEndTime, null)
|
||||
.set(ServiceRequest::getUpdateBy, null));
|
||||
}
|
||||
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"医嘱恢复"}));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -155,10 +155,13 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer
|
||||
return R.fail("无待签发的医嘱,该申请单不可编辑");
|
||||
}
|
||||
} else {
|
||||
// 检查申请单号:JC(检查)+ Z(住院标识)+ yyMMdd(日期)+ 5位顺序号
|
||||
// 根据申请单类型生成不同前缀的单号
|
||||
String dateStr = new java.text.SimpleDateFormat("yyMMdd").format(new Date());
|
||||
int seq = assignSeqUtil.getSeqNoByDay(AssignSeqEnum.CHECK_APPLY_NO.getPrefix());
|
||||
prescriptionNo = "JCZ" + dateStr + String.format("%05d", seq);
|
||||
AssignSeqEnum seqEnum = ActivityDefCategory.PROCEDURE.getCode().equals(typeCode)
|
||||
? AssignSeqEnum.SURGERY_APPLY_NO
|
||||
: AssignSeqEnum.CHECK_APPLY_NO;
|
||||
int seq = assignSeqUtil.getSeqNoByDay(seqEnum.getPrefix());
|
||||
prescriptionNo = seqEnum.getPrefix() + dateStr + String.format("%05d", seq);
|
||||
}
|
||||
|
||||
// 当前时间
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -161,7 +162,7 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
||||
adviceBaseDto.setAdviceDefinitionId(definitionId); // 医嘱定义id
|
||||
// 对应的诊疗医嘱信息
|
||||
activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, null, null,
|
||||
null, null, 1, 1, Whether.NO.getValue(), List.of(3), null, null).getRecords().get(0);
|
||||
null, null, 1, 1, null, List.of(3), null, null).getRecords().get(0);
|
||||
// 逻辑1---------------------直接新增
|
||||
longServiceRequest.setStatusEnum(RequestStatus.DRAFT.getValue());// 请求状态
|
||||
longServiceRequest.setOccurrenceStartTime(startTime); // 医嘱开始时间
|
||||
@@ -208,7 +209,7 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
||||
adviceBaseDto.setAdviceDefinitionId(definitionId); // 医嘱定义id
|
||||
// 对应的诊疗医嘱信息
|
||||
activityAdviceBaseDto = iDoctorStationAdviceAppService
|
||||
.getAdviceBaseInfo(adviceBaseDto, null, null, null, null, 1, 1, Whether.NO.getValue(), List.of(3), null, null)
|
||||
.getAdviceBaseInfo(adviceBaseDto, null, null, null, null, 1, 1, null, List.of(3), null, null)
|
||||
.getRecords().get(0);
|
||||
|
||||
longServiceRequest.setStatusEnum(RequestStatus.DRAFT.getValue());// 请求状态
|
||||
@@ -348,7 +349,7 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
||||
adviceBaseDto.setAdviceDefinitionId(transferOrganizationDefinitionId); // 医嘱定义id
|
||||
// 转科的医嘱信息
|
||||
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService
|
||||
.getAdviceBaseInfo(adviceBaseDto, null, null, null, null, 1, 1, Whether.NO.getValue(), List.of(3), null, null)
|
||||
.getAdviceBaseInfo(adviceBaseDto, null, null, null, null, 1, 1, null, List.of(3), null, null)
|
||||
.getRecords().get(0);
|
||||
// 保存转科医嘱请求
|
||||
ServiceRequest serviceRequest = new ServiceRequest();
|
||||
@@ -400,7 +401,7 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
||||
// 计划出院时间
|
||||
Date endTime = leaveHospitalParam.getEndTime();
|
||||
if (endTime == null) {
|
||||
endTime = endTime;
|
||||
endTime = new Date();
|
||||
}
|
||||
// 就诊id
|
||||
Long encounterId = leaveHospitalParam.getEncounterId();
|
||||
@@ -429,9 +430,12 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
||||
}
|
||||
|
||||
// 出院的医嘱信息
|
||||
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||
List.of(transferOrganizationDefinitionId), null, 1, 1, Whether.NO.getValue(), List.of(3), null, null).getRecords()
|
||||
.get(0);
|
||||
List<AdviceBaseDto> adviceList = iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||
List.of(transferOrganizationDefinitionId), null, 1, 1, null, List.of(3), null, null).getRecords();
|
||||
if (CollectionUtils.isEmpty(adviceList)) {
|
||||
return R.fail("未找到出院医嘱定义数据,请确认诊疗目录中已配置出院医嘱");
|
||||
}
|
||||
AdviceBaseDto activityAdviceBaseDto = adviceList.get(0);
|
||||
// 保存出院医嘱请求
|
||||
ServiceRequest serviceRequest = new ServiceRequest();
|
||||
serviceRequest.setStatusEnum(RequestStatus.DRAFT.getValue());// 请求状态
|
||||
|
||||
@@ -143,4 +143,15 @@ public class AdviceManageController {
|
||||
return iAdviceManageAppService.stopRegAdvice(paramList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 住院医嘱取消停嘱(恢复)
|
||||
*
|
||||
* @param paramList 恢复参数
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping(value = "/cancel-stop-reg-advice")
|
||||
public R<?> cancelStopRegAdvice(@RequestBody List<AdviceBatchOpParam> paramList) {
|
||||
return iAdviceManageAppService.cancelStopRegAdvice(paramList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -143,14 +143,23 @@ public class RequestFormManageController {
|
||||
* 查询手术申请单
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param startDate 开始日期(可选,格式:yyyy-MM-dd)
|
||||
* @param endDate 结束日期(可选,格式:yyyy-MM-dd)
|
||||
* @param status 单据状态(可选)
|
||||
* @param keyword 关键字(可选,申请单号/手术项目名称模糊匹配)
|
||||
* @return 手术申请单
|
||||
*/
|
||||
@GetMapping(value = "/get-surgery")
|
||||
public R<?> getSurgeryRequestForm(@RequestParam(required = false) Long encounterId) {
|
||||
public R<?> getSurgeryRequestForm(
|
||||
@RequestParam(required = false) Long encounterId,
|
||||
@RequestParam(required = false) String startDate,
|
||||
@RequestParam(required = false) String endDate,
|
||||
@RequestParam(required = false) String status,
|
||||
@RequestParam(required = false) String keyword) {
|
||||
if (encounterId == null) {
|
||||
return R.fail("就诊ID不能为空");
|
||||
}
|
||||
return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.PROCEDURE.getCode()));
|
||||
return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.PROCEDURE.getCode(), startDate, endDate, status, keyword));
|
||||
}
|
||||
/**
|
||||
* 分页查询手术申请单(全局,不需要encounterId,用于门诊手术安排查找弹窗)
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.openhis.web.regdoctorstation.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 医嘱批量操作参数类
|
||||
*/
|
||||
@@ -21,4 +24,10 @@ public class AdviceBatchOpParam {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long requestId;
|
||||
|
||||
/**
|
||||
* 停嘱时间
|
||||
*/
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date stopTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -516,6 +516,7 @@
|
||||
T1.patient_id AS patient_id,
|
||||
'med_medication_definition' AS advice_table_name,
|
||||
T1.medication_id AS advice_definition_id
|
||||
, T1.back_reason AS reason_text
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
@@ -577,6 +578,7 @@
|
||||
T1.patient_id AS patient_id,
|
||||
'med_medication_definition' AS advice_table_name,
|
||||
T3.ID AS advice_definition_id
|
||||
, T2.back_reason AS reason_text
|
||||
FROM adm_charge_item AS T1
|
||||
INNER JOIN med_medication_request AS T2 ON T2.ID = T1.service_id AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3 ON T3.ID = T2.medication_id AND T3.delete_flag = '0'
|
||||
@@ -584,6 +586,9 @@
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.service_table = #{MED_MEDICATION_REQUEST}
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
<if test="generateSourceEnum != null">
|
||||
AND (T2.generate_source_enum IS NULL OR T2.generate_source_enum = #{generateSourceEnum})
|
||||
</if>
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
<if test="historyFlag == '1'.toString()">
|
||||
@@ -637,6 +642,7 @@
|
||||
CI.patient_id AS patient_id,
|
||||
'adm_device_definition' AS advice_table_name,
|
||||
CI.product_id AS advice_definition_id
|
||||
, NULL AS reason_text
|
||||
FROM adm_charge_item AS CI
|
||||
LEFT JOIN adm_charge_item_definition CID ON CID.id = CI.definition_id AND CID.delete_flag = '0'
|
||||
LEFT JOIN wor_device_request DR ON DR.id = CI.service_id AND DR.delete_flag = '0'
|
||||
@@ -691,6 +697,7 @@
|
||||
T1.patient_id AS patient_id,
|
||||
'adm_device_definition' AS advice_table_name,
|
||||
T1.device_def_id AS advice_definition_id
|
||||
, NULL AS reason_text
|
||||
FROM wor_device_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
@@ -747,6 +754,7 @@
|
||||
T1.patient_id AS patient_id,
|
||||
'wor_activity_definition' AS advice_table_name,
|
||||
T1.activity_id AS advice_definition_id
|
||||
, T1.reason_text AS reason_text
|
||||
FROM wor_service_request AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T2.ID = T1.activity_id
|
||||
|
||||
@@ -22,19 +22,19 @@
|
||||
AND p.name LIKE CONCAT('%', #{patientName}, '%')
|
||||
</if>
|
||||
ORDER BY e.create_time DESC
|
||||
LIMIT #{pageSize} OFFSET #{offset}
|
||||
</select>
|
||||
|
||||
<select id="getPendingEmrCount" resultType="java.lang.Long">
|
||||
SELECT COUNT(*)
|
||||
FROM adm_encounter e
|
||||
INNER JOIN adm_encounter_participant ep ON e.id = ep.encounter_id AND ep.practitioner_id = #{doctorId}
|
||||
LEFT JOIN adm_patient p ON e.patient_id = p.id
|
||||
LEFT JOIN doc_emr emr ON e.id = emr.encounter_id
|
||||
WHERE e.status_enum = 2
|
||||
AND emr.id IS NULL
|
||||
<if test="patientName != null and patientName != ''">
|
||||
AND e.patient_id IN (
|
||||
SELECT id FROM adm_patient WHERE name LIKE CONCAT('%', #{patientName}, '%')
|
||||
)
|
||||
AND p.name LIKE CONCAT('%', #{patientName}, '%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
p.birth_date,
|
||||
p.phone,
|
||||
p.address,
|
||||
p.address_province,
|
||||
p.address_city,
|
||||
p.address_district,
|
||||
p.address_street,
|
||||
p.work_company,
|
||||
p.nationality_code,
|
||||
p.marital_status_enum,
|
||||
|
||||
@@ -214,10 +214,13 @@
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name,
|
||||
T1.effective_dose_start AS start_time,
|
||||
T1.therapy_enum AS therapyEnum,
|
||||
T1.sort_number AS sort_number,
|
||||
T1.based_on_id AS based_on_id,
|
||||
T1.medication_id AS advice_definition_id
|
||||
T1.effective_dose_end AS stop_time,
|
||||
T1.update_by AS stop_user_name
|
||||
FROM med_medication_request AS T1
|
||||
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
|
||||
AND T2.delete_flag = '0'
|
||||
@@ -269,8 +272,11 @@
|
||||
'' AS condition_definition_name,
|
||||
2 AS therapyEnum,
|
||||
99 AS sort_number,
|
||||
T1.req_authored_time AS start_time,
|
||||
T1.based_on_id AS based_on_id,
|
||||
T1.device_def_id AS advice_definition_id
|
||||
NULL AS stop_time,
|
||||
'' AS stop_user_name
|
||||
FROM wor_device_request AS T1
|
||||
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
|
||||
AND T2.delete_flag = '0'
|
||||
@@ -319,8 +325,11 @@
|
||||
'' AS condition_definition_name,
|
||||
COALESCE(T1.therapy_enum, 2) AS therapyEnum,
|
||||
99 AS sort_number,
|
||||
T1.occurrence_start_time AS start_time,
|
||||
T1.based_on_id AS based_on_id,
|
||||
T1.activity_id AS advice_definition_id
|
||||
T1.occurrence_end_time AS stop_time,
|
||||
T1.update_by AS stop_user_name
|
||||
FROM wor_service_request AS T1
|
||||
LEFT JOIN wor_activity_definition AS T2
|
||||
ON T2.ID = T1.activity_id
|
||||
|
||||
@@ -274,6 +274,10 @@ public enum AssignSeqEnum {
|
||||
* 检查申请单号(住院)
|
||||
*/
|
||||
CHECK_APPLY_NO("72", "检查申请单号", "JCZ"),
|
||||
/**
|
||||
* 手术申请单号(住院)
|
||||
*/
|
||||
SURGERY_APPLY_NO("73", "手术申请单号", "SSZ"),
|
||||
/**
|
||||
* b 病历文书
|
||||
*/
|
||||
|
||||
@@ -111,6 +111,9 @@ public class MedicationRequest extends HisBaseEntity {
|
||||
/** 支持用药信息 */
|
||||
private String supportInfo;
|
||||
|
||||
/** 退回原因 */
|
||||
private String backReason;
|
||||
|
||||
/** 请求开始时间 */
|
||||
private Date reqAuthoredTime;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public interface IMedicationRequestService extends IService<MedicationRequest> {
|
||||
* @param practitionerId 校对人
|
||||
* @param checkDate 校对时间
|
||||
*/
|
||||
void updateDraftStatusBatch(List<Long> requestIdList, Long practitionerId, Date checkDate);
|
||||
void updateDraftStatusBatch(List<Long> requestIdList, Long practitionerId, Date checkDate, String backReason);
|
||||
|
||||
/**
|
||||
* 更新请求状态:取消
|
||||
|
||||
@@ -44,7 +44,7 @@ public class MedicationRequestServiceImpl extends ServiceImpl<MedicationRequestM
|
||||
* @param checkDate 校对时间
|
||||
*/
|
||||
@Override
|
||||
public void updateDraftStatusBatch(List<Long> requestIdList, Long practitionerId, Date checkDate) {
|
||||
public void updateDraftStatusBatch(List<Long> requestIdList, Long practitionerId, Date checkDate, String backReason) {
|
||||
LambdaUpdateWrapper<MedicationRequest> updateWrapper =
|
||||
new LambdaUpdateWrapper<MedicationRequest>().in(MedicationRequest::getId, requestIdList)
|
||||
.set(MedicationRequest::getStatusEnum, RequestStatus.DRAFT.getValue());
|
||||
@@ -54,6 +54,9 @@ public class MedicationRequestServiceImpl extends ServiceImpl<MedicationRequestM
|
||||
if (checkDate != null) {
|
||||
updateWrapper.set(MedicationRequest::getCheckTime, checkDate);
|
||||
}
|
||||
if (backReason != null) {
|
||||
updateWrapper.set(MedicationRequest::getBackReason, backReason);
|
||||
}
|
||||
baseMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@@ -75,6 +78,9 @@ public class MedicationRequestServiceImpl extends ServiceImpl<MedicationRequestM
|
||||
if (checkDate != null) {
|
||||
updateWrapper.set(MedicationRequest::getCheckTime, checkDate);
|
||||
}
|
||||
if (backReason != null) {
|
||||
updateWrapper.set(MedicationRequest::getBackReason, backReason);
|
||||
}
|
||||
baseMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ public interface IServiceRequestService extends IService<ServiceRequest> {
|
||||
* @param practitionerId 校对人
|
||||
* @param checkDate 校对时间
|
||||
*/
|
||||
void updateDraftStatus(List<Long> serviceRequestIdList, Long practitionerId, Date checkDate);
|
||||
void updateDraftStatus(List<Long> serviceRequestIdList, Long practitionerId, Date checkDate, String backReason);
|
||||
|
||||
/**
|
||||
* 更新服务状态:待发送
|
||||
|
||||
@@ -197,9 +197,15 @@ public class ServiceRequestServiceImpl extends ServiceImpl<ServiceRequestMapper,
|
||||
* @param checkDate 校对时间
|
||||
*/
|
||||
@Override
|
||||
public void updateDraftStatus(List<Long> serviceRequestIdList, Long practitionerId, Date checkDate) {
|
||||
baseMapper.update(new ServiceRequest().setStatusEnum(RequestStatus.DRAFT.getValue())
|
||||
.setPerformerCheckId(SecurityUtils.getLoginUser().getPractitionerId()).setCheckTime(DateUtils.getNowDate()),
|
||||
public void updateDraftStatus(List<Long> serviceRequestIdList, Long practitionerId, Date checkDate, String backReason) {
|
||||
ServiceRequest updateEntity = new ServiceRequest()
|
||||
.setStatusEnum(RequestStatus.DRAFT.getValue())
|
||||
.setPerformerCheckId(SecurityUtils.getLoginUser().getPractitionerId())
|
||||
.setCheckTime(DateUtils.getNowDate());
|
||||
if (backReason != null && !backReason.isEmpty()) {
|
||||
updateEntity.setReasonText(backReason);
|
||||
}
|
||||
baseMapper.update(updateEntity,
|
||||
new LambdaUpdateWrapper<ServiceRequest>().in(ServiceRequest::getId, serviceRequestIdList)
|
||||
.eq(ServiceRequest::getDeleteFlag, DelFlag.NO.getCode()));
|
||||
}
|
||||
|
||||
@@ -162,6 +162,24 @@ export function getG(svg, viewConfig) {
|
||||
// 设置数据
|
||||
export function getData(allData) {
|
||||
const rowsData = allData.rows; // allData, '【全部数据】'
|
||||
// 兼容旧数据:将旧 typeCode 映射到新 typeCode(心率 004→014,脉搏 005→002,呼吸 006→001)
|
||||
const OLD_CODE_MAP = { '004': '014', '005': '002', '006': '001' };
|
||||
rowsData.forEach(row => {
|
||||
if (row.rowBOS) {
|
||||
const prependItems = [];
|
||||
row.rowBOS.forEach(item => {
|
||||
const newCode = OLD_CODE_MAP[item.typeCode];
|
||||
// 始终添加映射条目,用 unshift 插入数组头部
|
||||
// 这样 getType 的 find() 优先匹配映射后的编码(如脉冲、呼吸)
|
||||
// 即使存在同编码的旧条目(如血压舒张压用 002、收缩压用 001),
|
||||
// 映射后的脉搏(002)和呼吸(001)条目排在前面,确保图表正确渲染
|
||||
if (newCode) {
|
||||
prependItems.push({ ...item, typeCode: newCode });
|
||||
}
|
||||
});
|
||||
row.rowBOS.unshift(...prependItems);
|
||||
}
|
||||
});
|
||||
const infoData = allData.grParamBOS;
|
||||
const typesData = getTypeDatas(allData.types, allData.grParamBOS.beginDate);
|
||||
const selectOp = allData.selectOp;
|
||||
|
||||
@@ -10,15 +10,27 @@
|
||||
@click="clickAct"
|
||||
>
|
||||
<div v-if="data.bedOperationalStatus==='U'">
|
||||
<img :src="emptyBed" class="pf_card_emptyBed_img">
|
||||
<div class="pf_card_emptyBed_text">{{ data.bedName }}</div>
|
||||
<img
|
||||
:src="emptyBed"
|
||||
class="pf_card_emptyBed_img"
|
||||
>
|
||||
<div class="pf_card_emptyBed_text">
|
||||
{{ data.bedName }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-if="data.isDischarge" class="pf_card_discharge">
|
||||
<div
|
||||
v-if="data.isDischarge"
|
||||
class="pf_card_discharge"
|
||||
>
|
||||
<span style="margin-left: 6px">离</span>
|
||||
</div>
|
||||
<div class="pf_card_card">
|
||||
<CardSign :color="getBedBackColor(data.triageLevel)" :title="data.bedName" :tail="getDisplay(data.triageLevel)" />
|
||||
<CardSign
|
||||
:color="getBedBackColor(data.triageLevel)"
|
||||
:title="data.bedName"
|
||||
:tail="getDisplay(data.triageLevel)"
|
||||
/>
|
||||
</div>
|
||||
<div class="pf_card_nameSexAndAge">
|
||||
<span class="pf_card_name">{{ data.patientName }}</span>
|
||||
@@ -28,20 +40,48 @@
|
||||
<span style="margin-right: 16px">入室时间</span>
|
||||
{{ moment(data.checkInWardTime).format('YYYY-MM-DD HH:mm') }}
|
||||
</div>
|
||||
<div class="pf_card_noCode">{{ data.hisId }}</div>
|
||||
<div class="pf_card_rescueTimeText">{{ rescueTimeText() }}</div>
|
||||
<div v-if="data.diag!==''" class="pf_card_diagnosis">
|
||||
<div class="card-rectangle-text">{{ data.diag }}</div>
|
||||
<div class="pf_card_noCode">
|
||||
{{ data.hisId }}
|
||||
</div>
|
||||
<div class="pf_card_rescueTimeText">
|
||||
{{ rescueTimeText() }}
|
||||
</div>
|
||||
<div
|
||||
v-if="data.diag!==''"
|
||||
class="pf_card_diagnosis"
|
||||
>
|
||||
<div class="card-rectangle-text">
|
||||
{{ data.diag }}
|
||||
</div>
|
||||
<span style="margin-left: 4px">(诊断)</span>
|
||||
</div>
|
||||
<div v-if="isNewSign()" class="card-rectangle">新</div>
|
||||
<div v-if="is72HourSign()" class="card-rectangle2">超72H</div>
|
||||
<hr class="pf_card_line">
|
||||
<div class="pf_card_nursingMeasuresString">{{ getStringByCode(data.nursingMeasures, nursingMeasures) }}</div>
|
||||
<div class="pf_card_specialArrangementString">{{ getStringByCode(data.specialArrangement, specialArrangementList) }}</div>
|
||||
<div v-if="false" class="pf_card_btn" @click="moreClick">更多</div>
|
||||
<div
|
||||
v-if="isNewSign()"
|
||||
class="card-rectangle"
|
||||
>
|
||||
新
|
||||
</div>
|
||||
<div
|
||||
v-if="is72HourSign()"
|
||||
class="card-rectangle2"
|
||||
>
|
||||
超72H
|
||||
</div>
|
||||
<hr class="pf_card_line">
|
||||
<div class="pf_card_nursingMeasuresString">
|
||||
{{ getStringByCode(data.nursingMeasures, nursingMeasures) }}
|
||||
</div>
|
||||
<div class="pf_card_specialArrangementString">
|
||||
{{ getStringByCode(data.specialArrangement, specialArrangementList) }}
|
||||
</div>
|
||||
<div
|
||||
v-if="false"
|
||||
class="pf_card_btn"
|
||||
@click="moreClick"
|
||||
>
|
||||
更多
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
:data="item"
|
||||
:bed-config="bedConfig"
|
||||
@click="clickAct"
|
||||
@moreClick="moreClickAct"
|
||||
@more-click="moreClickAct"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
<template>
|
||||
<div class="printCard">
|
||||
<div ref="refQr" style="float: left; margin: 30px 15px">
|
||||
<img :src="emptyBed" style="height: 120px" class="pf_card_emptyBed_img">
|
||||
<div
|
||||
ref="refQr"
|
||||
style="float: left; margin: 30px 15px"
|
||||
>
|
||||
<img
|
||||
:src="emptyBed"
|
||||
style="height: 120px"
|
||||
class="pf_card_emptyBed_img"
|
||||
>
|
||||
</div>
|
||||
<div class="printView_content" style=" margin: 30px 0">
|
||||
<div
|
||||
class="printView_content"
|
||||
style=" margin: 30px 0"
|
||||
>
|
||||
<div>
|
||||
<span>床号:</span>
|
||||
<span>{{ printData.bedName }}</span>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="recordBill">
|
||||
<div id="div1" class="printView_header">
|
||||
<div
|
||||
id="div1"
|
||||
class="printView_header"
|
||||
>
|
||||
<div style="text-align: center; height: 40px">
|
||||
护理交接班
|
||||
</div>
|
||||
@@ -18,35 +21,83 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div id="div2" class="printView_content">
|
||||
<table border="1" cellSpacing="0" width="98%" cellPadding="1" style=" border-collapse:collapse; font-size: 14px" bordercolor="#333333">
|
||||
<div
|
||||
id="div2"
|
||||
class="printView_content"
|
||||
>
|
||||
<table
|
||||
border="1"
|
||||
cellSpacing="0"
|
||||
width="98%"
|
||||
cellPadding="1"
|
||||
style=" border-collapse:collapse; font-size: 14px"
|
||||
bordercolor="#333333"
|
||||
>
|
||||
<thead>
|
||||
<TR>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 40px" align="center">类别</DIV>
|
||||
<DIV
|
||||
style="width: 40px"
|
||||
align="center"
|
||||
>
|
||||
类别
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 50px" align="center">床号</DIV>
|
||||
<DIV
|
||||
style="width: 50px"
|
||||
align="center"
|
||||
>
|
||||
床号
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 60px" align="center">姓名</DIV>
|
||||
<DIV
|
||||
style="width: 60px"
|
||||
align="center"
|
||||
>
|
||||
姓名
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 90px" align="center">主诉</DIV>
|
||||
<DIV
|
||||
style="width: 90px"
|
||||
align="center"
|
||||
>
|
||||
主诉
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 90px" align="center">既往史</DIV>
|
||||
<DIV
|
||||
style="width: 90px"
|
||||
align="center"
|
||||
>
|
||||
既往史
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 90px" align="center">诊断</DIV>
|
||||
<DIV
|
||||
style="width: 90px"
|
||||
align="center"
|
||||
>
|
||||
诊断
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 155px" align="center">交接信息</DIV>
|
||||
<DIV
|
||||
style="width: 155px"
|
||||
align="center"
|
||||
>
|
||||
交接信息
|
||||
</DIV>
|
||||
</TD>
|
||||
</TR>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in printData.shiftRecordItems" :key="item.id">
|
||||
<tr
|
||||
v-for="item in printData.shiftRecordItems"
|
||||
:key="item.id"
|
||||
>
|
||||
<td v-html="item.typeDisplay" />
|
||||
<td v-html="item.bedName" />
|
||||
<td v-html="item.patientName" />
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="recordBill">
|
||||
<div :id="'exeSheetTitle' + printData.id" class="printView_header">
|
||||
<div
|
||||
:id="'exeSheetTitle' + printData.id"
|
||||
class="printView_header"
|
||||
>
|
||||
<div style="text-align: center; height: 60px">
|
||||
{{ userStore.hospitalName }}医嘱执行单
|
||||
</div>
|
||||
@@ -16,51 +19,119 @@
|
||||
<span style="display: inline-block; width: 140px">性别:{{!printData.patientInfo.gender? '':printData.patientInfo.gender.display}}</span>
|
||||
</div>-->
|
||||
</div>
|
||||
<div :id="'exeSheet' + printData.id" class="printView_content">
|
||||
<table border="1" cellSpacing="0" width="97%" cellPadding="1" style=" border-collapse:collapse; font-size: 13px" bordercolor="#333333">
|
||||
<div
|
||||
:id="'exeSheet' + printData.id"
|
||||
class="printView_content"
|
||||
>
|
||||
<table
|
||||
border="1"
|
||||
cellSpacing="0"
|
||||
width="97%"
|
||||
cellPadding="1"
|
||||
style=" border-collapse:collapse; font-size: 13px"
|
||||
bordercolor="#333333"
|
||||
>
|
||||
<thead>
|
||||
<TR>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 65px;text-align: center">医嘱日期</DIV>
|
||||
<DIV style="width: 65px;text-align: center">
|
||||
医嘱日期
|
||||
</DIV>
|
||||
</TD>
|
||||
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 120px" align="center">医嘱</DIV>
|
||||
<DIV
|
||||
style="width: 120px"
|
||||
align="center"
|
||||
>
|
||||
医嘱
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 10px" align="center" />
|
||||
<DIV
|
||||
style="width: 10px"
|
||||
align="center"
|
||||
/>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 70px" align="center">嘱托</DIV>
|
||||
<DIV
|
||||
style="width: 70px"
|
||||
align="center"
|
||||
>
|
||||
嘱托
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 60px" align="center">用量</DIV>
|
||||
<DIV
|
||||
style="width: 60px"
|
||||
align="center"
|
||||
>
|
||||
用量
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 40px" align="center">用法</DIV>
|
||||
<DIV
|
||||
style="width: 40px"
|
||||
align="center"
|
||||
>
|
||||
用法
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 40px" align="center">频次</DIV>
|
||||
<DIV
|
||||
style="width: 40px"
|
||||
align="center"
|
||||
>
|
||||
频次
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 65px" align="center">开立医生</DIV>
|
||||
<DIV
|
||||
style="width: 65px"
|
||||
align="center"
|
||||
>
|
||||
开立医生
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 65px" align="center">执行时间</DIV>
|
||||
<DIV
|
||||
style="width: 65px"
|
||||
align="center"
|
||||
>
|
||||
执行时间
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 65px" align="center">执行护士</DIV>
|
||||
<DIV
|
||||
style="width: 65px"
|
||||
align="center"
|
||||
>
|
||||
执行护士
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 55px" align="center">终止时间</DIV>
|
||||
<DIV
|
||||
style="width: 55px"
|
||||
align="center"
|
||||
>
|
||||
终止时间
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 55px" align="center">终止人</DIV>
|
||||
<DIV
|
||||
style="width: 55px"
|
||||
align="center"
|
||||
>
|
||||
终止人
|
||||
</DIV>
|
||||
</TD>
|
||||
</TR>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in printData.recordData" :key="item.id">
|
||||
<tr
|
||||
v-for="item in printData.recordData"
|
||||
:key="item.id"
|
||||
>
|
||||
<td v-html="item.moTime" />
|
||||
<td v-html="item.orderName" />
|
||||
<td v-html="item.flag" />
|
||||
@@ -70,12 +141,20 @@
|
||||
<td v-html="item.frequency" />
|
||||
<td :id="item.id">
|
||||
<span v-if="(item.docSignImage === ''||item.docSignImage === null)">{{ item.moDocName }}</span>
|
||||
<img v-if="(item.docSignImage !== ''&&item.docSignImage !== null)" :src="'data:image/png;base64,'+ item.docSignImage" style="height: 100%; width: 100%;object-fit: cover;">
|
||||
<img
|
||||
v-if="(item.docSignImage !== ''&&item.docSignImage !== null)"
|
||||
:src="'data:image/png;base64,'+ item.docSignImage"
|
||||
style="height: 100%; width: 100%;object-fit: cover;"
|
||||
>
|
||||
</td>
|
||||
<td v-html="item.occurrence" />
|
||||
<td :id="item.id">
|
||||
<span v-if="(item.perNurserSignImage === ''||item.perNurserSignImage === null)">{{ item.performName }}</span>
|
||||
<img v-if="(item.perNurserSignImage !== ''&&item.perNurserSignImage !== null)" :src="'data:image/png;base64,'+ item.perNurserSignImage" style="height: 100%; width: 100%;object-fit: cover;">
|
||||
<img
|
||||
v-if="(item.perNurserSignImage !== ''&&item.perNurserSignImage !== null)"
|
||||
:src="'data:image/png;base64,'+ item.perNurserSignImage"
|
||||
style="height: 100%; width: 100%;object-fit: cover;"
|
||||
>
|
||||
</td>
|
||||
<td />
|
||||
<td />
|
||||
@@ -91,10 +170,6 @@ import { simplePrint, PRINT_TEMPLATE } from '@/utils/printUtils.js'
|
||||
import useUserStore from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
props: {
|
||||
printData: {
|
||||
type: Object,
|
||||
@@ -103,6 +178,10 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
|
||||
@@ -12,23 +12,51 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: block; width: 120px; height: 60px; float:left; ">
|
||||
<div :id="getId(printData.id)" style="float: left; margin: 5px;" />
|
||||
<div
|
||||
:id="getId(printData.id)"
|
||||
style="float: left; margin: 5px;"
|
||||
/>
|
||||
<span style="float: left; margin: 5px">{{ printData.priority }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div :id="printData.id + 'div2'">
|
||||
<table border="1" cellSpacing="0" width="390px" cellPadding="1" style="margin-left: 8px; border-collapse:collapse; table-layout: fixed; font-size: 14px" bordercolor="#333333">
|
||||
<table
|
||||
border="1"
|
||||
cellSpacing="0"
|
||||
width="390px"
|
||||
cellPadding="1"
|
||||
style="margin-left: 8px; border-collapse:collapse; table-layout: fixed; font-size: 14px"
|
||||
bordercolor="#333333"
|
||||
>
|
||||
<thead>
|
||||
<TR>
|
||||
<Th style="width: 160px" v-html="'药品名称'" />
|
||||
<Th style="width: 75px" v-html="'用量'" />
|
||||
<Th style="width: 10px" v-html="''" />
|
||||
<Th style="width: 50px" v-html="'频次'" />
|
||||
<Th style="width: 75px" v-html="'用法'" />
|
||||
<Th
|
||||
style="width: 160px"
|
||||
v-html="'药品名称'"
|
||||
/>
|
||||
<Th
|
||||
style="width: 75px"
|
||||
v-html="'用量'"
|
||||
/>
|
||||
<Th
|
||||
style="width: 10px"
|
||||
v-html="''"
|
||||
/>
|
||||
<Th
|
||||
style="width: 50px"
|
||||
v-html="'频次'"
|
||||
/>
|
||||
<Th
|
||||
style="width: 75px"
|
||||
v-html="'用法'"
|
||||
/>
|
||||
</TR>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in printData.orderDetail" :key="item.id">
|
||||
<tr
|
||||
v-for="item in printData.orderDetail"
|
||||
:key="item.id"
|
||||
>
|
||||
<td v-html="item.orderName" />
|
||||
<td v-html="item.doseOnce + item.doseUnit" />
|
||||
<td v-html="item.flag" />
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="recordBill">
|
||||
<div id="div1" class="printView_header">
|
||||
<div
|
||||
id="div1"
|
||||
class="printView_header"
|
||||
>
|
||||
<div style="text-align: center; font-size: 20px; height: 40px">
|
||||
{{ userStore.hospitalName }}输液执行单
|
||||
</div>
|
||||
@@ -13,38 +16,88 @@
|
||||
<span style="margin-left: 18px">科室:{{ printData.patientInfo.deptName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="div2" class="printView_content">
|
||||
<table border="1" cellSpacing="0" cellPadding="1" style=" border-collapse:collapse; font-size: 14px" bordercolor="#333333">
|
||||
<div
|
||||
id="div2"
|
||||
class="printView_content"
|
||||
>
|
||||
<table
|
||||
border="1"
|
||||
cellSpacing="0"
|
||||
cellPadding="1"
|
||||
style=" border-collapse:collapse; font-size: 14px"
|
||||
bordercolor="#333333"
|
||||
>
|
||||
<thead>
|
||||
<TR style="height: 30px">
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 35px" align="center">时间</DIV>
|
||||
<DIV
|
||||
style="width: 35px"
|
||||
align="center"
|
||||
>
|
||||
时间
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 280px" align="center">药品名称</DIV>
|
||||
<DIV
|
||||
style="width: 280px"
|
||||
align="center"
|
||||
>
|
||||
药品名称
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 10px" align="center" />
|
||||
<DIV
|
||||
style="width: 10px"
|
||||
align="center"
|
||||
/>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 55px" align="center">剂量</DIV>
|
||||
<DIV
|
||||
style="width: 55px"
|
||||
align="center"
|
||||
>
|
||||
剂量
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 30px" align="center">频次</DIV>
|
||||
<DIV
|
||||
style="width: 30px"
|
||||
align="center"
|
||||
>
|
||||
频次
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD colspan="1">
|
||||
<DIV style="width: 55px" align="center">用法</DIV>
|
||||
<DIV
|
||||
style="width: 55px"
|
||||
align="center"
|
||||
>
|
||||
用法
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 70px" align="center">执行时间</DIV>
|
||||
<DIV
|
||||
style="width: 70px"
|
||||
align="center"
|
||||
>
|
||||
执行时间
|
||||
</DIV>
|
||||
</TD>
|
||||
<TD rowspan="1">
|
||||
<DIV style="width: 55px" align="center">执行人</DIV>
|
||||
<DIV
|
||||
style="width: 55px"
|
||||
align="center"
|
||||
>
|
||||
执行人
|
||||
</DIV>
|
||||
</TD>
|
||||
</TR>
|
||||
</thead>
|
||||
<tbody style=" border-collapse:collapse;">
|
||||
<tr v-for="item in printData.recordData" :key="item.id">
|
||||
<tr
|
||||
v-for="item in printData.recordData"
|
||||
:key="item.id"
|
||||
>
|
||||
<td v-html="item.moTime.substring(0,16)" />
|
||||
<td v-html="item.orderName" />
|
||||
<td v-html="item.flag" />
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<div ref="print">
|
||||
<div v-for="item in printData" :key="item.id">
|
||||
<div
|
||||
v-for="item in printData"
|
||||
:key="item.id"
|
||||
>
|
||||
<div class="myccs2">
|
||||
<injectLabel :ref="item.id" :print-data="item" />
|
||||
<injectLabel
|
||||
:ref="item.id"
|
||||
:print-data="item"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
<template>
|
||||
<div>
|
||||
<div ref="print">
|
||||
<div v-for="item in printData" :key="item.id">
|
||||
<div
|
||||
v-for="item in printData"
|
||||
:key="item.id"
|
||||
>
|
||||
<div class="myccs2">
|
||||
<orderSheet v-if="!item.type" :ref="item.id" :print-data="item" />
|
||||
<exeOrderSheet v-if="item.type" :ref="item.id" :print-data="item" />
|
||||
<orderSheet
|
||||
v-if="!item.type"
|
||||
:ref="item.id"
|
||||
:print-data="item"
|
||||
/>
|
||||
<exeOrderSheet
|
||||
v-if="item.type"
|
||||
:ref="item.id"
|
||||
:print-data="item"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<template>
|
||||
<Graphics v-if="graphicsDataDone" :value="resInfo" print @done="printPage" />
|
||||
<Graphics
|
||||
v-if="graphicsDataDone"
|
||||
:value="resInfo"
|
||||
print
|
||||
@done="printPage"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -21,7 +21,10 @@
|
||||
<span>分诊时间:</span>
|
||||
<span>{{ printData.triageTime }}</span>
|
||||
</div>
|
||||
<img ref="refQr" style="position: absolute; top: 10px; left: 100px" />
|
||||
<img
|
||||
ref="refQr"
|
||||
style="position: absolute; top: 10px; left: 100px"
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -30,10 +33,6 @@ import useUserStore from '@/store/modules/user';
|
||||
|
||||
export default {
|
||||
name: 'TriageTicket',
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
props: {
|
||||
printData: {
|
||||
type: Object,
|
||||
@@ -48,6 +47,10 @@ export default {
|
||||
},
|
||||
},
|
||||
},
|
||||
setup() {
|
||||
const userStore = useUserStore();
|
||||
return { userStore };
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
<div>
|
||||
<div ref="print">
|
||||
<div class="myccs2">
|
||||
<triageTicketNew ref="printTriage" :print-data="printData" />
|
||||
<triageTicketNew
|
||||
ref="printTriage"
|
||||
:print-data="printData"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div v-for="item in printData" :key="item.id">-->
|
||||
<!-- <div class="myccs2">-->
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
<span style="font-weight: bolder; font-size: 18px; line-height: 36px">{{ printData.greenText }}</span>
|
||||
<span style="font-weight: bolder; font-size: 18px; line-height: 36px">分诊单</span>
|
||||
</div>
|
||||
<div style="position: absolute; top: 135px; text-align: center; width: 300px">{{ printData.hisId }}</div>
|
||||
<div style="position: absolute; top: 135px; text-align: center; width: 300px">
|
||||
{{ printData.hisId }}
|
||||
</div>
|
||||
<div style="position: absolute; top: 155px; text-align: center; width: 300px">
|
||||
{{ printData.triageLevel }}({{ printData.dept }})
|
||||
</div>
|
||||
@@ -107,10 +109,18 @@
|
||||
"
|
||||
/>
|
||||
<div style="margin-left: 15px">
|
||||
<div style="font-size: 14px; margin-top: 15px; font-weight: bolder">请仔细核对个人信息后进行挂号</div>
|
||||
<div style="margin-top: 5px; font-size: 14px">为了您家人和其他患者的健康</div>
|
||||
<div style="font-size: 14px">请您保持就诊秩序保持诊区安静</div>
|
||||
<div style="font-size: 14px">祝您早日康复</div>
|
||||
<div style="font-size: 14px; margin-top: 15px; font-weight: bolder">
|
||||
请仔细核对个人信息后进行挂号
|
||||
</div>
|
||||
<div style="margin-top: 5px; font-size: 14px">
|
||||
为了您家人和其他患者的健康
|
||||
</div>
|
||||
<div style="font-size: 14px">
|
||||
请您保持就诊秩序保持诊区安静
|
||||
</div>
|
||||
<div style="font-size: 14px">
|
||||
祝您早日康复
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div class="printWrist">
|
||||
<div id="div1" class="printView_content">
|
||||
<div
|
||||
id="div1"
|
||||
class="printView_content"
|
||||
>
|
||||
<div style="margin: 1px;font-size: 12px">
|
||||
<span>姓名: </span>
|
||||
<span>{{ printData.patientName }}</span>
|
||||
@@ -22,7 +25,11 @@
|
||||
<span style="position: absolute; left: 140px">{{ printData.triageLevel }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="qrcode" ref="refQr" style="padding-top: 1px" />
|
||||
<div
|
||||
id="qrcode"
|
||||
ref="refQr"
|
||||
style="padding-top: 1px"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
@@ -1,9 +1,21 @@
|
||||
<template>
|
||||
<el-breadcrumb class="app-breadcrumb" separator="/">
|
||||
<el-breadcrumb
|
||||
class="app-breadcrumb"
|
||||
separator="/"
|
||||
>
|
||||
<transition-group name="breadcrumb">
|
||||
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
|
||||
<span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span>
|
||||
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
|
||||
<el-breadcrumb-item
|
||||
v-for="(item,index) in levelList"
|
||||
:key="item.path"
|
||||
>
|
||||
<span
|
||||
v-if="item.redirect === 'noRedirect' || index == levelList.length - 1"
|
||||
class="no-redirect"
|
||||
>{{ item.meta.title }}</span>
|
||||
<a
|
||||
v-else
|
||||
@click.prevent="handleLink(item)"
|
||||
>{{ item.meta.title }}</a>
|
||||
</el-breadcrumb-item>
|
||||
</transition-group>
|
||||
</el-breadcrumb>
|
||||
|
||||
@@ -1,51 +1,103 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
日,允许的通配符[, - * ? / L W]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
不指定
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min="1" :max="30" /> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 + 1" :max="31" /> 日
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="1"
|
||||
:max="30"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 + 1"
|
||||
:max="31"
|
||||
/> 日
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min="1" :max="30" /> 号开始,每
|
||||
<el-input-number v-model='average02' :min="1" :max="31 - average01" /> 日执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="1"
|
||||
:max="30"
|
||||
/> 号开始,每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="31 - average01"
|
||||
/> 日执行一次
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="5">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="5"
|
||||
>
|
||||
每月
|
||||
<el-input-number v-model='workday' :min="1" :max="31" /> 号最近的那个工作日
|
||||
<el-input-number
|
||||
v-model="workday"
|
||||
:min="1"
|
||||
:max="31"
|
||||
/> 号最近的那个工作日
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="6">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="6"
|
||||
>
|
||||
本月最后一天
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="7">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="7"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
|
||||
<el-option v-for="item in 31" :key="item" :label="item" :value="item" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="10"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in 31"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -1,32 +1,71 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
小时,允许的通配符[, - * /]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min="0" :max="22" /> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 + 1" :max="23" /> 时
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="0"
|
||||
:max="22"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 + 1"
|
||||
:max="23"
|
||||
/> 时
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min="0" :max="22" /> 时开始,每
|
||||
<el-input-number v-model='average02' :min="1" :max="23 - average01" /> 小时执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="0"
|
||||
:max="22"
|
||||
/> 时开始,每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="23 - average01"
|
||||
/> 小时执行一次
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
|
||||
<el-option v-for="item in 24" :key="item" :label="item - 1" :value="item - 1" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="10"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in 24"
|
||||
:key="item"
|
||||
:label="item - 1"
|
||||
:value="item - 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -1,120 +1,208 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="秒" v-if="shouldHide('second')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('second')"
|
||||
label="秒"
|
||||
>
|
||||
<CrontabSecond
|
||||
@update="updateCrontabValue"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronsecond"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="分钟" v-if="shouldHide('min')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('min')"
|
||||
label="分钟"
|
||||
>
|
||||
<CrontabMin
|
||||
@update="updateCrontabValue"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronmin"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="小时" v-if="shouldHide('hour')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('hour')"
|
||||
label="小时"
|
||||
>
|
||||
<CrontabHour
|
||||
@update="updateCrontabValue"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronhour"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="日" v-if="shouldHide('day')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('day')"
|
||||
label="日"
|
||||
>
|
||||
<CrontabDay
|
||||
@update="updateCrontabValue"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronday"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="月" v-if="shouldHide('month')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('month')"
|
||||
label="月"
|
||||
>
|
||||
<CrontabMonth
|
||||
@update="updateCrontabValue"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronmonth"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="周" v-if="shouldHide('week')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('week')"
|
||||
label="周"
|
||||
>
|
||||
<CrontabWeek
|
||||
@update="updateCrontabValue"
|
||||
ref="cronweek"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronweek"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="年" v-if="shouldHide('year')">
|
||||
<el-tab-pane
|
||||
v-if="shouldHide('year')"
|
||||
label="年"
|
||||
>
|
||||
<CrontabYear
|
||||
@update="updateCrontabValue"
|
||||
ref="cronyear"
|
||||
:check="checkNumber"
|
||||
:cron="crontabValueObj"
|
||||
ref="cronyear"
|
||||
@update="updateCrontabValue"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div class="popup-main">
|
||||
<div class="popup-result">
|
||||
<p class="title">时间表达式</p>
|
||||
<p class="title">
|
||||
时间表达式
|
||||
</p>
|
||||
<table>
|
||||
<thead>
|
||||
<th v-for="item of tabTitles" :key="item">{{item}}</th>
|
||||
<th
|
||||
v-for="item of tabTitles"
|
||||
:key="item"
|
||||
>
|
||||
{{ item }}
|
||||
</th>
|
||||
<th>Cron 表达式</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.second.length < 10">{{ crontabValueObj.second }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.second" placement="top"><span>{{crontabValueObj.second}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.second"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.second }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.min.length < 10">{{ crontabValueObj.min }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.min" placement="top"><span>{{crontabValueObj.min}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.min"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.min }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.hour.length < 10">{{ crontabValueObj.hour }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.hour" placement="top"><span>{{crontabValueObj.hour}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.hour"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.hour }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.day.length < 10">{{ crontabValueObj.day }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.day" placement="top"><span>{{crontabValueObj.day}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.day"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.day }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.month.length < 10">{{ crontabValueObj.month }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.month" placement="top"><span>{{crontabValueObj.month}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.month"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.month }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.week.length < 10">{{ crontabValueObj.week }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.week" placement="top"><span>{{crontabValueObj.week}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.week"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.week }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="crontabValueObj.year.length < 10">{{ crontabValueObj.year }}</span>
|
||||
<el-tooltip v-else :content="crontabValueObj.year" placement="top"><span>{{crontabValueObj.year}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueObj.year"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueObj.year }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
<td class="result">
|
||||
<span v-if="crontabValueString.length < 90">{{ crontabValueString }}</span>
|
||||
<el-tooltip v-else :content="crontabValueString" placement="top"><span>{{crontabValueString}}</span></el-tooltip>
|
||||
<el-tooltip
|
||||
v-else
|
||||
:content="crontabValueString"
|
||||
placement="top"
|
||||
>
|
||||
<span>{{ crontabValueString }}</span>
|
||||
</el-tooltip>
|
||||
</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<CrontabResult :ex="crontabValueString"></CrontabResult>
|
||||
<CrontabResult :ex="crontabValueString" />
|
||||
|
||||
<div class="pop_btn">
|
||||
<el-button type="primary" @click="submitFill">确定</el-button>
|
||||
<el-button type="warning" @click="clearCron">重置</el-button>
|
||||
<el-button @click="hidePopup">取消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="submitFill"
|
||||
>
|
||||
确定
|
||||
</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="clearCron"
|
||||
>
|
||||
重置
|
||||
</el-button>
|
||||
<el-button @click="hidePopup">
|
||||
取消
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,32 +1,71 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
分钟,允许的通配符[, - * /]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min="0" :max="58" /> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 + 1" :max="59" /> 分钟
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="0"
|
||||
:max="58"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 + 1"
|
||||
:max="59"
|
||||
/> 分钟
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min="0" :max="58" /> 分钟开始, 每
|
||||
<el-input-number v-model='average02' :min="1" :max="59 - average01" /> 分钟执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="0"
|
||||
:max="58"
|
||||
/> 分钟开始, 每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="59 - average01"
|
||||
/> 分钟执行一次
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
|
||||
<el-option v-for="item in 60" :key="item" :label="item - 1" :value="item - 1" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="10"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in 60"
|
||||
:key="item"
|
||||
:label="item - 1"
|
||||
:value="item - 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -1,32 +1,71 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
月,允许的通配符[, - * /]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min="1" :max="11" /> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 + 1" :max="12" /> 月
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="1"
|
||||
:max="11"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 + 1"
|
||||
:max="12"
|
||||
/> 月
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min="1" :max="11" /> 月开始,每
|
||||
<el-input-number v-model='average02' :min="1" :max="12 - average01" /> 月月执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="1"
|
||||
:max="11"
|
||||
/> 月开始,每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="12 - average01"
|
||||
/> 月月执行一次
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="8">
|
||||
<el-option v-for="item in monthList" :key="item.key" :label="item.value" :value="item.key" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="8"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in monthList"
|
||||
:key="item.key"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -1,11 +1,20 @@
|
||||
<template>
|
||||
<div class="popup-result">
|
||||
<p class="title">最近5次运行时间</p>
|
||||
<p class="title">
|
||||
最近5次运行时间
|
||||
</p>
|
||||
<ul class="popup-result-scroll">
|
||||
<template v-if='isShow'>
|
||||
<li v-for='item in resultList' :key="item">{{item}}</li>
|
||||
<template v-if="isShow">
|
||||
<li
|
||||
v-for="item in resultList"
|
||||
:key="item"
|
||||
>
|
||||
{{ item }}
|
||||
</li>
|
||||
</template>
|
||||
<li v-else>计算结果中...</li>
|
||||
<li v-else>
|
||||
计算结果中...
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,32 +1,71 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
秒,允许的通配符[, - * /]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min="0" :max="58" /> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 + 1" :max="59" /> 秒
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="0"
|
||||
:max="58"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 + 1"
|
||||
:max="59"
|
||||
/> 秒
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min="0" :max="58" /> 秒开始,每
|
||||
<el-input-number v-model='average02' :min="1" :max="59 - average01" /> 秒执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="0"
|
||||
:max="58"
|
||||
/> 秒开始,每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="59 - average01"
|
||||
/> 秒执行一次
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
|
||||
<el-option v-for="item in 60" :key="item" :label="item - 1" :value="item - 1" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="10"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in 60"
|
||||
:key="item"
|
||||
:label="item - 1"
|
||||
:value="item - 1"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -1,70 +1,129 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="1">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
周,允许的通配符[, - * ? / L #]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="2">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
不指定
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="3">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
周期从
|
||||
<el-select clearable v-model="cycle01">
|
||||
<el-select
|
||||
v-model="cycle01"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="(item,index) of weekList"
|
||||
:key="index"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
:disabled="item.key === 7"
|
||||
>{{item.value}}</el-option>
|
||||
>
|
||||
{{ item.value }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
-
|
||||
<el-select clearable v-model="cycle02">
|
||||
<el-select
|
||||
v-model="cycle02"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="(item,index) of weekList"
|
||||
:key="index"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
:disabled="item.key <= cycle01"
|
||||
>{{item.value}}</el-option>
|
||||
>
|
||||
{{ item.value }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="4">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
第
|
||||
<el-input-number v-model='average01' :min="1" :max="4" /> 周的
|
||||
<el-select clearable v-model="average02">
|
||||
<el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="1"
|
||||
:max="4"
|
||||
/> 周的
|
||||
<el-select
|
||||
v-model="average02"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in weekList"
|
||||
:key="item.key"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="5">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="5"
|
||||
>
|
||||
本月最后一个
|
||||
<el-select clearable v-model="weekday">
|
||||
<el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
|
||||
<el-select
|
||||
v-model="weekday"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in weekList"
|
||||
:key="item.key"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio v-model='radioValue' :label="6">
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="6"
|
||||
>
|
||||
指定
|
||||
<el-select class="multiselect" clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="6">
|
||||
<el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
class="multiselect"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="6"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in weekList"
|
||||
:key="item.key"
|
||||
:label="item.value"
|
||||
:value="item.key"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,39 +1,80 @@
|
||||
<template>
|
||||
<el-form>
|
||||
<el-form-item>
|
||||
<el-radio :label="1" v-model='radioValue'>
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="1"
|
||||
>
|
||||
不填,允许的通配符[, - * /]
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio :label="2" v-model='radioValue'>
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="2"
|
||||
>
|
||||
每年
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio :label="3" v-model='radioValue'>
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="3"
|
||||
>
|
||||
周期从
|
||||
<el-input-number v-model='cycle01' :min='fullYear' :max="2098"/> -
|
||||
<el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : fullYear + 1" :max="2099"/>
|
||||
<el-input-number
|
||||
v-model="cycle01"
|
||||
:min="fullYear"
|
||||
:max="2098"
|
||||
/> -
|
||||
<el-input-number
|
||||
v-model="cycle02"
|
||||
:min="cycle01 ? cycle01 + 1 : fullYear + 1"
|
||||
:max="2099"
|
||||
/>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio :label="4" v-model='radioValue'>
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="4"
|
||||
>
|
||||
从
|
||||
<el-input-number v-model='average01' :min='fullYear' :max="2098"/> 年开始,每
|
||||
<el-input-number v-model='average02' :min="1" :max="2099 - average01 || fullYear"/> 年执行一次
|
||||
<el-input-number
|
||||
v-model="average01"
|
||||
:min="fullYear"
|
||||
:max="2098"
|
||||
/> 年开始,每
|
||||
<el-input-number
|
||||
v-model="average02"
|
||||
:min="1"
|
||||
:max="2099 - average01 || fullYear"
|
||||
/> 年执行一次
|
||||
</el-radio>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-radio :label="5" v-model='radioValue'>
|
||||
<el-radio
|
||||
v-model="radioValue"
|
||||
:label="5"
|
||||
>
|
||||
指定
|
||||
<el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="8">
|
||||
<el-option v-for="item in 9" :key="item" :value="item - 1 + fullYear" :label="item -1 + fullYear" />
|
||||
<el-select
|
||||
v-model="checkboxList"
|
||||
clearable
|
||||
placeholder="可多选"
|
||||
multiple
|
||||
:multiple-limit="8"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in 9"
|
||||
:key="item"
|
||||
:value="item - 1 + fullYear"
|
||||
:label="item -1 + fullYear"
|
||||
/>
|
||||
</el-select>
|
||||
</el-radio>
|
||||
</el-form-item>
|
||||
|
||||
@@ -10,12 +10,14 @@
|
||||
>{{ item.label + " " }}</span>
|
||||
<el-tag
|
||||
v-else
|
||||
:disable-transitions="true"
|
||||
:key="item.value + ''"
|
||||
:disable-transitions="true"
|
||||
:index="index"
|
||||
:type="getValidTagType(item.elTagType)"
|
||||
:class="item.elTagClass"
|
||||
>{{ item.label + " " }}</el-tag>
|
||||
>
|
||||
{{ item.label + " " }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</template>
|
||||
<template v-if="unmatch && showValue">
|
||||
|
||||
@@ -1,15 +1,33 @@
|
||||
<template>
|
||||
<div class="editor-container">
|
||||
<div>
|
||||
<el-upload :action="uploadUrl" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess"
|
||||
:on-error="handleUploadError" name="file" :show-file-list="false" :headers="headers" class="editor-img-uploader"
|
||||
v-if="type == 'url'">
|
||||
<i ref="uploadRef" class="editor-img-uploader"></i>
|
||||
<el-upload
|
||||
v-if="type == 'url'"
|
||||
:action="uploadUrl"
|
||||
:before-upload="handleBeforeUpload"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleUploadError"
|
||||
name="file"
|
||||
:show-file-list="false"
|
||||
:headers="headers"
|
||||
class="editor-img-uploader"
|
||||
>
|
||||
<i
|
||||
ref="uploadRef"
|
||||
class="editor-img-uploader"
|
||||
/>
|
||||
</el-upload>
|
||||
</div>
|
||||
<div class="editor">
|
||||
<quill-editor ref="quillEditorRef" :content="content" @update:content="content = $event" contentType="html"
|
||||
@textChange="(e) => $emit('update:modelValue', content)" :options="options" :style="styles" />
|
||||
<quill-editor
|
||||
ref="quillEditorRef"
|
||||
:content="content"
|
||||
content-type="html"
|
||||
:options="options"
|
||||
:style="styles"
|
||||
@update:content="content = $event"
|
||||
@text-change="(e) => $emit('update:modelValue', content)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<div class="upload-file">
|
||||
<el-upload
|
||||
multiple
|
||||
ref="fileUpload"
|
||||
:action="uploadFileUrl"
|
||||
:before-upload="handleBeforeUpload"
|
||||
:file-list="fileList"
|
||||
@@ -12,26 +13,52 @@
|
||||
:show-file-list="false"
|
||||
:headers="headers"
|
||||
class="upload-file-uploader"
|
||||
ref="fileUpload"
|
||||
>
|
||||
<!-- 上传按钮 -->
|
||||
<el-button type="primary">选取文件</el-button>
|
||||
<el-button type="primary">
|
||||
选取文件
|
||||
</el-button>
|
||||
</el-upload>
|
||||
<!-- 上传提示 -->
|
||||
<div class="el-upload__tip" v-if="showTip">
|
||||
<div
|
||||
v-if="showTip"
|
||||
class="el-upload__tip"
|
||||
>
|
||||
请上传
|
||||
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
|
||||
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
|
||||
<template v-if="fileSize">
|
||||
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
|
||||
</template>
|
||||
<template v-if="fileType">
|
||||
格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b>
|
||||
</template>
|
||||
的文件
|
||||
</div>
|
||||
<!-- 文件列表 -->
|
||||
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
|
||||
<li :key="file.uid" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
|
||||
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
|
||||
<transition-group
|
||||
class="upload-file-list el-upload-list el-upload-list--text"
|
||||
name="el-fade-in-linear"
|
||||
tag="ul"
|
||||
>
|
||||
<li
|
||||
v-for="(file, index) in fileList"
|
||||
:key="file.uid"
|
||||
class="el-upload-list__item ele-upload-list__item-content"
|
||||
>
|
||||
<el-link
|
||||
:href="`${baseUrl}${file.url}`"
|
||||
:underline="false"
|
||||
target="_blank"
|
||||
>
|
||||
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
|
||||
</el-link>
|
||||
<div class="ele-upload-list__item-content-action">
|
||||
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
|
||||
<el-link
|
||||
:underline="false"
|
||||
type="danger"
|
||||
@click="handleDelete(index)"
|
||||
>
|
||||
删除
|
||||
</el-link>
|
||||
</div>
|
||||
</li>
|
||||
</transition-group>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<div style="padding: 0 15px;" @click="toggleClick">
|
||||
<div
|
||||
style="padding: 0 15px;"
|
||||
@click="toggleClick"
|
||||
>
|
||||
<svg
|
||||
:class="{'is-active':isActive}"
|
||||
class="hamburger"
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
<template>
|
||||
<div :class="{ show: show }" class="header-search">
|
||||
<svg-icon class-name="search-icon" icon-class="search" @click.stop="click" v-if="!show" />
|
||||
<div
|
||||
:class="{ show: show }"
|
||||
class="header-search"
|
||||
>
|
||||
<svg-icon
|
||||
v-if="!show"
|
||||
class-name="search-icon"
|
||||
icon-class="search"
|
||||
@click.stop="click"
|
||||
/>
|
||||
<el-select
|
||||
v-else
|
||||
ref="headerSearchSelectRef"
|
||||
|
||||
@@ -8,13 +8,24 @@
|
||||
@clear="filterIcons"
|
||||
@input="filterIcons"
|
||||
>
|
||||
<template #suffix><i class="el-icon-search el-input__icon" /></template>
|
||||
<template #suffix>
|
||||
<i class="el-icon-search el-input__icon" />
|
||||
</template>
|
||||
</el-input>
|
||||
<div class="icon-list">
|
||||
<div class="list-container">
|
||||
<div v-for="(item, index) in iconList" class="icon-item-wrapper" :key="index" @click="selectedIcon(item)">
|
||||
<div
|
||||
v-for="(item, index) in iconList"
|
||||
:key="index"
|
||||
class="icon-item-wrapper"
|
||||
@click="selectedIcon(item)"
|
||||
>
|
||||
<div :class="['icon-item', { active: activeIcon === item }]">
|
||||
<svg-icon :icon-class="item" class-name="icon" style="height: 25px;width: 16px;"/>
|
||||
<svg-icon
|
||||
:icon-class="item"
|
||||
class-name="icon"
|
||||
style="height: 25px;width: 16px;"
|
||||
/>
|
||||
<span>{{ item }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<div class="component-upload-image">
|
||||
<el-upload
|
||||
ref="imageUpload"
|
||||
multiple
|
||||
:action="uploadImgUrl"
|
||||
list-type="picture-card"
|
||||
@@ -9,7 +10,6 @@
|
||||
:limit="limit"
|
||||
:on-error="handleUploadError"
|
||||
:on-exceed="handleExceed"
|
||||
ref="imageUpload"
|
||||
:before-remove="handleDelete"
|
||||
:show-file-list="true"
|
||||
:headers="headers"
|
||||
@@ -17,10 +17,15 @@
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:class="{ hide: fileList.length >= limit }"
|
||||
>
|
||||
<el-icon class="avatar-uploader-icon"><plus /></el-icon>
|
||||
<el-icon class="avatar-uploader-icon">
|
||||
<plus />
|
||||
</el-icon>
|
||||
</el-upload>
|
||||
<!-- 上传提示 -->
|
||||
<div class="el-upload__tip" v-if="showTip">
|
||||
<div
|
||||
v-if="showTip"
|
||||
class="el-upload__tip"
|
||||
>
|
||||
请上传
|
||||
<template v-if="fileSize">
|
||||
大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
|
||||
@@ -40,7 +45,7 @@
|
||||
<img
|
||||
:src="dialogImageUrl"
|
||||
style="display: block; max-width: 100%; margin: 0 auto"
|
||||
/>
|
||||
>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
<template>
|
||||
<div class="page-container">
|
||||
<div v-if="$slots.header" class="page-header">
|
||||
<div
|
||||
v-if="$slots.header"
|
||||
class="page-header"
|
||||
>
|
||||
<slot name="header" />
|
||||
</div>
|
||||
<div class="page-content">
|
||||
<slot />
|
||||
</div>
|
||||
<div v-if="$slots.footer" class="page-footer">
|
||||
<div
|
||||
v-if="$slots.footer"
|
||||
class="page-footer"
|
||||
>
|
||||
<slot name="footer" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,20 +1,51 @@
|
||||
<template>
|
||||
<el-drawer v-model="noticeVisible" title="公告/通知" direction="rtl" size="400px" destroy-on-close>
|
||||
<el-empty v-if="noticeList.length === 0" description="暂无公告/通知" />
|
||||
<div v-else class="notice-list">
|
||||
<div v-for="item in noticeList" :key="item.noticeId" class="notice-item" :class="{ 'is-read': isRead(item.noticeId), 'unread': !isRead(item.noticeId) }" @click="viewDetail(item)">
|
||||
<el-drawer
|
||||
v-model="noticeVisible"
|
||||
title="公告/通知"
|
||||
direction="rtl"
|
||||
size="400px"
|
||||
destroy-on-close
|
||||
>
|
||||
<el-empty
|
||||
v-if="noticeList.length === 0"
|
||||
description="暂无公告/通知"
|
||||
/>
|
||||
<div
|
||||
v-else
|
||||
class="notice-list"
|
||||
>
|
||||
<div
|
||||
v-for="item in noticeList"
|
||||
:key="item.noticeId"
|
||||
class="notice-item"
|
||||
:class="{ 'is-read': isRead(item.noticeId), 'unread': !isRead(item.noticeId) }"
|
||||
@click="viewDetail(item)"
|
||||
>
|
||||
<div class="notice-title">
|
||||
<span v-if="!isRead(item.noticeId)" class="unread-dot"></span>
|
||||
<span
|
||||
v-if="!isRead(item.noticeId)"
|
||||
class="unread-dot"
|
||||
/>
|
||||
{{ item.noticeTitle }}
|
||||
</div>
|
||||
<div class="notice-info">
|
||||
<span class="notice-type">
|
||||
<el-tag :type="getNoticeTypeTagType(item.noticeType)" size="small">
|
||||
<el-tag
|
||||
:type="getNoticeTypeTagType(item.noticeType)"
|
||||
size="small"
|
||||
>
|
||||
{{ getNoticeTypeText(item.noticeType) }}
|
||||
</el-tag>
|
||||
</span>
|
||||
<span class="notice-priority" v-if="item.priority">
|
||||
<el-tag :type="getPriorityTagType(item.priority)" size="small" effect="plain">
|
||||
<span
|
||||
v-if="item.priority"
|
||||
class="notice-priority"
|
||||
>
|
||||
<el-tag
|
||||
:type="getPriorityTagType(item.priority)"
|
||||
size="small"
|
||||
effect="plain"
|
||||
>
|
||||
{{ getPriorityText(item.priority) }}
|
||||
</el-tag>
|
||||
</span>
|
||||
@@ -24,23 +55,41 @@
|
||||
</div>
|
||||
|
||||
<!-- 公告/通知详情对话框 -->
|
||||
<el-dialog v-model="detailVisible" :title="currentNotice.noticeTitle" width="800px" append-to-body>
|
||||
<el-dialog
|
||||
v-model="detailVisible"
|
||||
:title="currentNotice.noticeTitle"
|
||||
width="800px"
|
||||
append-to-body
|
||||
>
|
||||
<div class="notice-detail">
|
||||
<div class="detail-header">
|
||||
<div class="detail-type">
|
||||
<el-tag :type="getNoticeTypeTagType(currentNotice.noticeType)" size="small">
|
||||
<el-tag
|
||||
:type="getNoticeTypeTagType(currentNotice.noticeType)"
|
||||
size="small"
|
||||
>
|
||||
{{ getNoticeTypeText(currentNotice.noticeType) }}
|
||||
</el-tag>
|
||||
<el-tag :type="getPriorityTagType(currentNotice.priority)" size="small" effect="plain" style="margin-left: 8px;">
|
||||
<el-tag
|
||||
:type="getPriorityTagType(currentNotice.priority)"
|
||||
size="small"
|
||||
effect="plain"
|
||||
style="margin-left: 8px;"
|
||||
>
|
||||
{{ getPriorityText(currentNotice.priority) }}
|
||||
</el-tag>
|
||||
</div>
|
||||
<span class="detail-time">{{ parseTime(currentNotice.createTime, '{y}-{m}-{d} {h}:{i}') }}</span>
|
||||
</div>
|
||||
<div class="detail-content" v-html="currentNotice.noticeContent"></div>
|
||||
<div
|
||||
class="detail-content"
|
||||
v-html="currentNotice.noticeContent"
|
||||
/>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="detailVisible = false">关闭</el-button>
|
||||
<el-button @click="detailVisible = false">
|
||||
关闭
|
||||
</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-drawer>
|
||||
|
||||
@@ -13,7 +13,12 @@
|
||||
<div class="notice-list">
|
||||
<div class="notice-list-header">
|
||||
<span class="notice-list-title">公告列表</span>
|
||||
<el-button text type="primary" @click="markAllAsRead" v-if="unreadCount > 0">
|
||||
<el-button
|
||||
v-if="unreadCount > 0"
|
||||
text
|
||||
type="primary"
|
||||
@click="markAllAsRead"
|
||||
>
|
||||
全部标记为已读
|
||||
</el-button>
|
||||
</div>
|
||||
@@ -26,7 +31,10 @@
|
||||
@click="handleSelectNotice(notice)"
|
||||
>
|
||||
<div class="notice-item-left">
|
||||
<el-icon class="notice-type-icon" :class="getNoticeTypeClass(notice.noticeType)">
|
||||
<el-icon
|
||||
class="notice-type-icon"
|
||||
:class="getNoticeTypeClass(notice.noticeType)"
|
||||
>
|
||||
<component :is="getNoticeTypeIcon(notice.noticeType)" />
|
||||
</el-icon>
|
||||
<div class="notice-item-content">
|
||||
@@ -39,7 +47,14 @@
|
||||
{{ getPriorityText(notice.priority) }}
|
||||
</el-tag>
|
||||
<span class="notice-title-text">{{ notice.noticeTitle }}</span>
|
||||
<el-tag v-if="!notice.isRead" type="danger" size="small" effect="dark">未读</el-tag>
|
||||
<el-tag
|
||||
v-if="!notice.isRead"
|
||||
type="danger"
|
||||
size="small"
|
||||
effect="dark"
|
||||
>
|
||||
未读
|
||||
</el-tag>
|
||||
</div>
|
||||
<div class="notice-meta">
|
||||
<span class="notice-date">{{ formatDate(notice.createTime) }}</span>
|
||||
@@ -47,45 +62,77 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-icon class="arrow-icon" v-if="activeNoticeId === notice.noticeId">
|
||||
<el-icon
|
||||
v-if="activeNoticeId === notice.noticeId"
|
||||
class="arrow-icon"
|
||||
>
|
||||
<ArrowRight />
|
||||
</el-icon>
|
||||
</div>
|
||||
|
||||
<!-- 空状态 -->
|
||||
<div v-if="noticeList.length === 0" class="empty-state">
|
||||
<el-empty description="暂无公告" :image-size="100" />
|
||||
<div
|
||||
v-if="noticeList.length === 0"
|
||||
class="empty-state"
|
||||
>
|
||||
<el-empty
|
||||
description="暂无公告"
|
||||
:image-size="100"
|
||||
/>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
|
||||
<!-- 公告详情 -->
|
||||
<div class="notice-detail" v-if="activeNotice">
|
||||
<div
|
||||
v-if="activeNotice"
|
||||
class="notice-detail"
|
||||
>
|
||||
<div class="notice-detail-header">
|
||||
<h3 class="notice-detail-title">{{ activeNotice.noticeTitle }}</h3>
|
||||
<h3 class="notice-detail-title">
|
||||
{{ activeNotice.noticeTitle }}
|
||||
</h3>
|
||||
<div class="notice-detail-meta">
|
||||
<el-tag :type="getPriorityTagType(activeNotice.priority)" size="small" effect="dark">
|
||||
<el-tag
|
||||
:type="getPriorityTagType(activeNotice.priority)"
|
||||
size="small"
|
||||
effect="dark"
|
||||
>
|
||||
{{ getPriorityText(activeNotice.priority) }}
|
||||
</el-tag>
|
||||
<el-tag :type="getNoticeTypeTagType(activeNotice.noticeType)" size="small">
|
||||
<el-tag
|
||||
:type="getNoticeTypeTagType(activeNotice.noticeType)"
|
||||
size="small"
|
||||
>
|
||||
{{ getNoticeTypeText(activeNotice.noticeType) }}
|
||||
</el-tag>
|
||||
<span class="notice-detail-date">{{ formatFullDate(activeNotice.createTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider />
|
||||
<div class="notice-detail-body" v-html="activeNotice.noticeContent"></div>
|
||||
<div
|
||||
class="notice-detail-body"
|
||||
v-html="activeNotice.noticeContent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 未选择状态 -->
|
||||
<div v-else class="no-selection">
|
||||
<el-empty description="请选择公告查看详情" :image-size="120" />
|
||||
<div
|
||||
v-else
|
||||
class="no-selection"
|
||||
>
|
||||
<el-empty
|
||||
description="请选择公告查看详情"
|
||||
:image-size="120"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="handleClose">关闭</el-button>
|
||||
<el-button @click="handleClose">
|
||||
关闭
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
@@ -21,7 +21,10 @@
|
||||
@click="handleSelectNotice(notice)"
|
||||
>
|
||||
<div class="notice-item-left">
|
||||
<el-icon class="notice-type-icon" :class="getNoticeTypeClass(notice.noticeType)">
|
||||
<el-icon
|
||||
class="notice-type-icon"
|
||||
:class="getNoticeTypeClass(notice.noticeType)"
|
||||
>
|
||||
<component :is="getNoticeTypeIcon(notice.noticeType)" />
|
||||
</el-icon>
|
||||
<div class="notice-item-content">
|
||||
@@ -34,7 +37,14 @@
|
||||
{{ getPriorityText(notice.priority) }}
|
||||
</el-tag>
|
||||
<span class="notice-title-text">{{ notice.noticeTitle }}</span>
|
||||
<el-tag v-if="!notice.isRead" type="danger" size="small" effect="dark">未读</el-tag>
|
||||
<el-tag
|
||||
v-if="!notice.isRead"
|
||||
type="danger"
|
||||
size="small"
|
||||
effect="dark"
|
||||
>
|
||||
未读
|
||||
</el-tag>
|
||||
</div>
|
||||
<div class="notice-meta">
|
||||
<span class="notice-date">{{ formatDate(notice.createTime) }}</span>
|
||||
@@ -42,7 +52,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-icon class="arrow-icon" v-if="activeNoticeId === notice.noticeId">
|
||||
<el-icon
|
||||
v-if="activeNoticeId === notice.noticeId"
|
||||
class="arrow-icon"
|
||||
>
|
||||
<ArrowRight />
|
||||
</el-icon>
|
||||
</div>
|
||||
@@ -50,35 +63,63 @@
|
||||
</div>
|
||||
|
||||
<!-- 公告详情 -->
|
||||
<div class="notice-detail" v-if="activeNotice">
|
||||
<div
|
||||
v-if="activeNotice"
|
||||
class="notice-detail"
|
||||
>
|
||||
<div class="notice-detail-header">
|
||||
<h3 class="notice-detail-title">{{ activeNotice.noticeTitle }}</h3>
|
||||
<h3 class="notice-detail-title">
|
||||
{{ activeNotice.noticeTitle }}
|
||||
</h3>
|
||||
<div class="notice-detail-meta">
|
||||
<el-tag :type="getPriorityTagType(activeNotice.priority)" size="small" effect="dark">
|
||||
<el-tag
|
||||
:type="getPriorityTagType(activeNotice.priority)"
|
||||
size="small"
|
||||
effect="dark"
|
||||
>
|
||||
{{ getPriorityText(activeNotice.priority) }}
|
||||
</el-tag>
|
||||
<el-tag :type="getNoticeTypeTagType(activeNotice.noticeType)" size="small">
|
||||
<el-tag
|
||||
:type="getNoticeTypeTagType(activeNotice.noticeType)"
|
||||
size="small"
|
||||
>
|
||||
{{ getNoticeTypeText(activeNotice.noticeType) }}
|
||||
</el-tag>
|
||||
<span class="notice-detail-date">{{ formatDate(activeNotice.createTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider />
|
||||
<div class="notice-detail-body" v-html="activeNotice.noticeContent"></div>
|
||||
<div
|
||||
class="notice-detail-body"
|
||||
v-html="activeNotice.noticeContent"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 空状态 -->
|
||||
<div v-else class="empty-state">
|
||||
<el-empty description="暂无公告" :image-size="120" />
|
||||
<div
|
||||
v-else
|
||||
class="empty-state"
|
||||
>
|
||||
<el-empty
|
||||
description="暂无公告"
|
||||
:image-size="120"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="markAllAsRead" v-if="unreadCount > 0" type="info">
|
||||
<el-button
|
||||
v-if="unreadCount > 0"
|
||||
type="info"
|
||||
@click="markAllAsRead"
|
||||
>
|
||||
全部标记为已读
|
||||
</el-button>
|
||||
<el-button type="primary" @click="handleClose">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="handleClose"
|
||||
>
|
||||
{{ hasUnread ? '稍后再看' : '知道了' }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<svg-icon icon-class="question" @click="goto" />
|
||||
<svg-icon
|
||||
icon-class="question"
|
||||
@click="goto"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="药品追溯码"
|
||||
v-model="props.openDialog"
|
||||
title="药品追溯码"
|
||||
width="842"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
@@ -15,13 +15,15 @@
|
||||
>
|
||||
<div>
|
||||
<div style="font-size: 16px">
|
||||
<div style="margin-bottom: 15px">药品名称: {{ props.ypName }}</div>
|
||||
<div style="margin-bottom: 15px">
|
||||
药品名称: {{ props.ypName }}
|
||||
</div>
|
||||
扫描追溯码
|
||||
<el-input
|
||||
ref="traceNoTempRef"
|
||||
v-model="traceNoTemp"
|
||||
type="textarea"
|
||||
:rows="1"
|
||||
v-model="traceNoTemp"
|
||||
style="width: 180px; margin-right: 20px"
|
||||
@input="throttledGetList(traceNoTemp)"
|
||||
/>
|
||||
@@ -31,8 +33,22 @@
|
||||
style="width: 180px; margin-right: 20px"
|
||||
@keyup.enter="handelTraceNo(traceNoInput)"
|
||||
/>
|
||||
<el-button type="primary" plain icon="CircleClose" @click="handleReturn"> 撤回 </el-button>
|
||||
<el-button type="danger" plain icon="CircleClose" @click="handleClear"> 清除 </el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="CircleClose"
|
||||
@click="handleReturn"
|
||||
>
|
||||
撤回
|
||||
</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="CircleClose"
|
||||
@click="handleClear"
|
||||
>
|
||||
清除
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- <el-input
|
||||
ref="inputRef"
|
||||
@@ -69,11 +85,10 @@
|
||||
<span style="margin-right: 6px">
|
||||
[{{ index + 1 }}]
|
||||
<template v-if="index < 9"> </template>
|
||||
<template v-else></template>
|
||||
<template v-else />
|
||||
{{ item }}
|
||||
</span>
|
||||
<div
|
||||
@click="removeTraceNo(index)"
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -84,8 +99,12 @@
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
"
|
||||
@click="removeTraceNo(index)"
|
||||
>
|
||||
<el-icon
|
||||
size="10"
|
||||
color="white"
|
||||
>
|
||||
<el-icon size="10" color="white">
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
@@ -98,8 +117,15 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submit">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="submit"
|
||||
>
|
||||
确 定
|
||||
</el-button>
|
||||
<el-button @click="cancel">
|
||||
取 消
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
@@ -6,7 +6,11 @@
|
||||
trigger="manual"
|
||||
:width="width"
|
||||
>
|
||||
<slot name="popover-content" :row="row" :index="index">
|
||||
<slot
|
||||
name="popover-content"
|
||||
:row="row"
|
||||
:index="index"
|
||||
>
|
||||
<div>列表内容</div>
|
||||
</slot>
|
||||
<template #reference>
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
<template>
|
||||
<div :class="{ 'hidden': hidden }" class="pagination-container">
|
||||
<div
|
||||
:class="{ 'hidden': hidden }"
|
||||
class="pagination-container"
|
||||
>
|
||||
<el-pagination
|
||||
:background="background"
|
||||
v-model:current-page="currentPage"
|
||||
v-model:page-size="pageSize"
|
||||
:background="background"
|
||||
:layout="layout"
|
||||
:page-sizes="pageSizes"
|
||||
:pager-count="pagerCount"
|
||||
|
||||
@@ -1,21 +1,69 @@
|
||||
<template>
|
||||
<div class="top-right-btn" :style="style">
|
||||
<div
|
||||
class="top-right-btn"
|
||||
:style="style"
|
||||
>
|
||||
<el-row>
|
||||
<el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
|
||||
<el-button circle icon="Search" @click="toggleSearch()" />
|
||||
<el-tooltip
|
||||
v-if="search"
|
||||
class="item"
|
||||
effect="dark"
|
||||
:content="showSearch ? '隐藏搜索' : '显示搜索'"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
circle
|
||||
icon="Search"
|
||||
@click="toggleSearch()"
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="刷新" placement="top">
|
||||
<el-button circle icon="Refresh" @click="refresh()" />
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="刷新"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
circle
|
||||
icon="Refresh"
|
||||
@click="refresh()"
|
||||
/>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
|
||||
<el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
|
||||
<el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
|
||||
<el-button circle icon="Menu" />
|
||||
<el-tooltip
|
||||
v-if="columns"
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="显隐列"
|
||||
placement="top"
|
||||
>
|
||||
<el-button
|
||||
v-if="showColumnsType == 'transfer'"
|
||||
circle
|
||||
icon="Menu"
|
||||
@click="showColumn()"
|
||||
/>
|
||||
<el-dropdown
|
||||
v-if="showColumnsType == 'checkbox'"
|
||||
trigger="click"
|
||||
:hide-on-click="false"
|
||||
style="padding-left: 12px"
|
||||
>
|
||||
<el-button
|
||||
circle
|
||||
icon="Menu"
|
||||
/>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<template v-for="item in columns" :key="item.key">
|
||||
<template
|
||||
v-for="item in columns"
|
||||
:key="item.key"
|
||||
>
|
||||
<el-dropdown-item>
|
||||
<el-checkbox :checked="item.visible" @change="checkboxChange($event, item.label)" :label="item.label" />
|
||||
<el-checkbox
|
||||
:checked="item.visible"
|
||||
:label="item.label"
|
||||
@change="checkboxChange($event, item.label)"
|
||||
/>
|
||||
</el-dropdown-item>
|
||||
</template>
|
||||
</el-dropdown-menu>
|
||||
@@ -23,13 +71,17 @@
|
||||
</el-dropdown>
|
||||
</el-tooltip>
|
||||
</el-row>
|
||||
<el-dialog :title="title" v-model="open" append-to-body>
|
||||
<el-dialog
|
||||
v-model="open"
|
||||
:title="title"
|
||||
append-to-body
|
||||
>
|
||||
<el-transfer
|
||||
:titles="['显示', '隐藏']"
|
||||
v-model="value"
|
||||
:titles="['显示', '隐藏']"
|
||||
:data="columns"
|
||||
@change="dataChange"
|
||||
></el-transfer>
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<svg-icon :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'" @click="toggle" />
|
||||
<svg-icon
|
||||
:icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
|
||||
@click="toggle"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dropdown trigger="click" @command="handleSetSize">
|
||||
<el-dropdown
|
||||
trigger="click"
|
||||
@command="handleSetSize"
|
||||
>
|
||||
<div class="size-icon--style">
|
||||
<svg-icon class-name="size-icon" icon-class="size" />
|
||||
<svg-icon
|
||||
class-name="size-icon"
|
||||
icon-class="size"
|
||||
/>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size === item.value" :command="item.value">
|
||||
<el-dropdown-item
|
||||
v-for="item of sizeOptions"
|
||||
:key="item.value"
|
||||
:disabled="size === item.value"
|
||||
:command="item.value"
|
||||
>
|
||||
{{ item.label }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
<template>
|
||||
<svg :class="svgClass" aria-hidden="true">
|
||||
<use :xlink:href="iconName" :fill="color" />
|
||||
<svg
|
||||
:class="svgClass"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<use
|
||||
:xlink:href="iconName"
|
||||
:fill="color"
|
||||
/>
|
||||
</svg>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,8 +1,22 @@
|
||||
<template>
|
||||
<div class="table-section" v-loading="loading">
|
||||
<EditableTable ref="editableTableRef" v-bind="$attrs" class="editable-table">
|
||||
<template v-for="(_, slotName) in $slots" :key="slotName" #[slotName]="slotProps">
|
||||
<slot :name="slotName" v-bind="slotProps" />
|
||||
<div
|
||||
v-loading="loading"
|
||||
class="table-section"
|
||||
>
|
||||
<EditableTable
|
||||
ref="editableTableRef"
|
||||
v-bind="$attrs"
|
||||
class="editable-table"
|
||||
>
|
||||
<template
|
||||
v-for="(_, slotName) in $slots"
|
||||
:key="slotName"
|
||||
#[slotName]="slotProps"
|
||||
>
|
||||
<slot
|
||||
:name="slotName"
|
||||
v-bind="slotProps"
|
||||
/>
|
||||
</template>
|
||||
</EditableTable>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
<template>
|
||||
<div class="form-section">
|
||||
<FormLayout ref="formLayoutRef" v-bind="$attrs">
|
||||
<template v-for="(_, slotName) in $slots" :key="slotName" #[slotName]="slotProps">
|
||||
<slot :name="slotName" v-bind="slotProps" />
|
||||
<FormLayout
|
||||
ref="formLayoutRef"
|
||||
v-bind="$attrs"
|
||||
>
|
||||
<template
|
||||
v-for="(_, slotName) in $slots"
|
||||
:key="slotName"
|
||||
#[slotName]="slotProps"
|
||||
>
|
||||
<slot
|
||||
:name="slotName"
|
||||
v-bind="slotProps"
|
||||
/>
|
||||
</template>
|
||||
</FormLayout>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,12 @@
|
||||
@blur="handleBlur"
|
||||
@change="handleChange"
|
||||
>
|
||||
<template v-if="suffix" #suffix>{{ suffix }}</template>
|
||||
<template
|
||||
v-if="suffix"
|
||||
#suffix
|
||||
>
|
||||
{{ suffix }}
|
||||
</template>
|
||||
</el-input>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
<slot />
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="$slots.footer" #footer>
|
||||
<template
|
||||
v-if="$slots.footer"
|
||||
#footer
|
||||
>
|
||||
<slot name="footer" />
|
||||
</template>
|
||||
</Layout>
|
||||
|
||||
@@ -2,20 +2,28 @@
|
||||
<el-menu
|
||||
:default-active="activeMenu"
|
||||
mode="horizontal"
|
||||
@select="handleSelect"
|
||||
:ellipsis="false"
|
||||
@select="handleSelect"
|
||||
>
|
||||
<template v-for="(item, index) in topMenus">
|
||||
<!-- 处理有子菜单的情况 -->
|
||||
<template v-if="item.children && item.children.length > 0 && index < visibleNumber">
|
||||
<el-sub-menu :style="{'--theme': theme}" :index="item.path" :key="index">
|
||||
<el-sub-menu
|
||||
:key="index"
|
||||
:style="{'--theme': theme}"
|
||||
:index="item.path"
|
||||
>
|
||||
<template #title>
|
||||
<svg-icon
|
||||
v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
|
||||
:icon-class="item.meta.icon"/>
|
||||
:icon-class="item.meta.icon"
|
||||
/>
|
||||
{{ item.meta.title }}
|
||||
</template>
|
||||
<template v-for="(child, childIndex) in item.children" :key="childIndex">
|
||||
<template
|
||||
v-for="(child, childIndex) in item.children"
|
||||
:key="childIndex"
|
||||
>
|
||||
<el-menu-item :index="item.path + '/' + (child.path || '')">
|
||||
{{ child.meta.title }}
|
||||
</el-menu-item>
|
||||
@@ -24,29 +32,47 @@
|
||||
</template>
|
||||
<!-- 处理无子菜单的情况 -->
|
||||
<template v-else-if="index < visibleNumber">
|
||||
<el-menu-item :style="{'--theme': theme}" :index="item.path" :key="index">
|
||||
<el-menu-item
|
||||
:key="index"
|
||||
:style="{'--theme': theme}"
|
||||
:index="item.path"
|
||||
>
|
||||
<svg-icon
|
||||
v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
|
||||
:icon-class="item.meta.icon"/>
|
||||
:icon-class="item.meta.icon"
|
||||
/>
|
||||
{{ item.meta.title }}
|
||||
</el-menu-item>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<!-- 顶部菜单超出数量折叠 -->
|
||||
<el-sub-menu :style="{'--theme': theme}" index="more" v-if="topMenus.length > visibleNumber">
|
||||
<template #title>更多菜单</template>
|
||||
<template v-for="(item, index) in topMenus" :key="index">
|
||||
<el-sub-menu
|
||||
v-if="topMenus.length > visibleNumber"
|
||||
:style="{'--theme': theme}"
|
||||
index="more"
|
||||
>
|
||||
<template #title>
|
||||
更多菜单
|
||||
</template>
|
||||
<template
|
||||
v-for="(item, index) in topMenus"
|
||||
:key="index"
|
||||
>
|
||||
<!-- 处理有子菜单的情况 -->
|
||||
<template v-if="item.children && item.children.length > 0 && index >= visibleNumber">
|
||||
<el-sub-menu :index="item.path">
|
||||
<template #title>
|
||||
<svg-icon
|
||||
v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
|
||||
:icon-class="item.meta.icon"/>
|
||||
:icon-class="item.meta.icon"
|
||||
/>
|
||||
{{ item.meta.title }}
|
||||
</template>
|
||||
<template v-for="(child, childIndex) in item.children" :key="childIndex">
|
||||
<template
|
||||
v-for="(child, childIndex) in item.children"
|
||||
:key="childIndex"
|
||||
>
|
||||
<el-menu-item :index="item.path + '/' + (child.path || '')">
|
||||
{{ child.meta.title }}
|
||||
</el-menu-item>
|
||||
@@ -58,7 +84,8 @@
|
||||
<el-menu-item :index="item.path">
|
||||
<svg-icon
|
||||
v-if="item.meta && item.meta.icon && item.meta.icon !== '#'"
|
||||
:icon-class="item.meta.icon"/>
|
||||
:icon-class="item.meta.icon"
|
||||
/>
|
||||
{{ item.meta.title }}
|
||||
</el-menu-item>
|
||||
</template>
|
||||
|
||||
@@ -1,16 +1,19 @@
|
||||
<template>
|
||||
<div class="el-tree-select">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="valueId"
|
||||
ref="treeSelect"
|
||||
v-model="valueId"
|
||||
style="width: 100%"
|
||||
:filterable="true"
|
||||
:clearable="true"
|
||||
@clear="clearHandle"
|
||||
:filter-method="selectFilterData"
|
||||
:placeholder="placeholder"
|
||||
@clear="clearHandle"
|
||||
>
|
||||
<el-option
|
||||
:value="valueId"
|
||||
:label="valueTitle"
|
||||
>
|
||||
<el-option :value="valueId" :label="valueTitle">
|
||||
<el-tree
|
||||
id="tree-option"
|
||||
ref="selectTree"
|
||||
@@ -22,7 +25,7 @@
|
||||
:default-expanded-keys="defaultExpandedKey"
|
||||
:filter-node-method="filterNode"
|
||||
@node-click="handleNodeClick"
|
||||
></el-tree>
|
||||
/>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
<template>
|
||||
<div v-loading="loading" :style="'height:' + height">
|
||||
<div
|
||||
v-loading="loading"
|
||||
:style="'height:' + height"
|
||||
>
|
||||
<iframe
|
||||
:src="url"
|
||||
frameborder="no"
|
||||
style="width: 100%; height: 100%"
|
||||
scrolling="auto" />
|
||||
scrolling="auto"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div class="ball-tag" v-show="tagId" :style="{ backgroundColor: _tag?.color }">
|
||||
<div
|
||||
v-show="tagId"
|
||||
class="ball-tag"
|
||||
:style="{ backgroundColor: _tag?.color }"
|
||||
>
|
||||
{{ _tag?.name }}
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
<template>
|
||||
<section class="app-main">
|
||||
<router-view v-slot="{ Component, route }">
|
||||
<transition name="fade-transform" mode="out-in">
|
||||
<transition
|
||||
name="fade-transform"
|
||||
mode="out-in"
|
||||
>
|
||||
<keep-alive :include="tagsViewStore.cachedViews">
|
||||
<component v-if="!route.meta.link" :is="Component" :key="route.path"/>
|
||||
<component
|
||||
:is="Component"
|
||||
v-if="!route.meta.link"
|
||||
:key="route.path"
|
||||
/>
|
||||
</keep-alive>
|
||||
</transition>
|
||||
</router-view>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<inner-link
|
||||
v-for="(item, index) in tagsViewStore.iframeViews"
|
||||
:key="item.path"
|
||||
:iframeId="'iframe' + index"
|
||||
v-show="route.path === item.path"
|
||||
:key="item.path"
|
||||
:iframe-id="'iframe' + index"
|
||||
:src="iframeUrl(item.meta.link, item.query)"
|
||||
></inner-link>
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
style="width: 100%; height: 100%"
|
||||
:src="src"
|
||||
frameborder="no"
|
||||
></iframe>
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
<div class="navbar">
|
||||
<div class="left-menu">
|
||||
<div class="hamburger-container">
|
||||
<div class="hamburger" @click="toggleSideBar">
|
||||
<div
|
||||
class="hamburger"
|
||||
@click="toggleSideBar"
|
||||
>
|
||||
<el-icon :size="20">
|
||||
<component :is="sidebar.opened ? 'Fold' : 'Expand'" />
|
||||
</el-icon>
|
||||
@@ -11,19 +14,38 @@
|
||||
<!-- 搜索和公告通知 -->
|
||||
<div class="left-actions">
|
||||
<template v-if="appStore.device !== 'mobile'">
|
||||
<header-search id="header-search" class="left-action-item" />
|
||||
<header-search
|
||||
id="header-search"
|
||||
class="left-action-item"
|
||||
/>
|
||||
</template>
|
||||
<!-- 公告和通知按钮 -->
|
||||
<el-tooltip content="公告/通知" placement="bottom">
|
||||
<div class="left-action-item notice-btn" @click="openNoticePanel">
|
||||
<el-badge :value="unreadCount" :hidden="unreadCount === 0" class="notice-badge">
|
||||
<el-tooltip
|
||||
content="公告/通知"
|
||||
placement="bottom"
|
||||
>
|
||||
<div
|
||||
class="left-action-item notice-btn"
|
||||
@click="openNoticePanel"
|
||||
>
|
||||
<el-badge
|
||||
:value="unreadCount"
|
||||
:hidden="unreadCount === 0"
|
||||
class="notice-badge"
|
||||
>
|
||||
<el-icon><Bell /></el-icon>
|
||||
</el-badge>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
<!-- 帮助中心按钮 -->
|
||||
<el-tooltip content="帮助中心" placement="bottom">
|
||||
<div class="left-action-item" @click="goToHelpCenter">
|
||||
<el-tooltip
|
||||
content="帮助中心"
|
||||
placement="bottom"
|
||||
>
|
||||
<div
|
||||
class="left-action-item"
|
||||
@click="goToHelpCenter"
|
||||
>
|
||||
<el-icon><Help /></el-icon>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
@@ -33,7 +55,6 @@
|
||||
<div class="avatar-container">
|
||||
<div class="avatar-wrapper">
|
||||
<el-dropdown
|
||||
@command="handleCommand"
|
||||
class="user-info-dropdown hover-effect"
|
||||
trigger="click"
|
||||
teleported
|
||||
@@ -48,9 +69,13 @@
|
||||
},
|
||||
],
|
||||
}"
|
||||
@command="handleCommand"
|
||||
>
|
||||
<div class="user-info">
|
||||
<img :src="userStore.avatar" class="user-avatar" />
|
||||
<img
|
||||
:src="userStore.avatar"
|
||||
class="user-avatar"
|
||||
>
|
||||
<span class="nick-name">{{ userStore.nickName }}</span>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
@@ -58,7 +83,10 @@
|
||||
<router-link to="/user/profile">
|
||||
<el-dropdown-item>个人中心</el-dropdown-item>
|
||||
</router-link>
|
||||
<el-dropdown-item divided command="logout">
|
||||
<el-dropdown-item
|
||||
divided
|
||||
command="logout"
|
||||
>
|
||||
<span>退出登录</span>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
@@ -66,11 +94,11 @@
|
||||
</el-dropdown>
|
||||
<span class="divider">|</span>
|
||||
<el-dropdown
|
||||
@command="handleOrgSwitch"
|
||||
trigger="click"
|
||||
teleported
|
||||
popper-class="navbar-dropdown"
|
||||
:placement="'bottom-start'"
|
||||
@command="handleOrgSwitch"
|
||||
>
|
||||
<span class="org-name">{{ userStore.orgName }}</span>
|
||||
<template #dropdown>
|
||||
@@ -90,8 +118,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="切换科室" v-model="showDialog" width="400px" append-to-body destroy-on-close>
|
||||
<el-select v-model="orgId" filterable clearable>
|
||||
<el-dialog
|
||||
v-model="showDialog"
|
||||
title="切换科室"
|
||||
width="400px"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
>
|
||||
<el-select
|
||||
v-model="orgId"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in orgOptions"
|
||||
:key="item.orgId"
|
||||
@@ -101,14 +139,24 @@
|
||||
</el-select>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submit">确定</el-button>
|
||||
<el-button @click="showDialog = false">取消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="submit"
|
||||
>
|
||||
确定
|
||||
</el-button>
|
||||
<el-button @click="showDialog = false">
|
||||
取消
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 公告/通知面板 -->
|
||||
<NoticePanel ref="noticePanelRef" @updateUnreadCount="updateUnreadCount" />
|
||||
<NoticePanel
|
||||
ref="noticePanelRef"
|
||||
@update-unread-count="updateUnreadCount"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,24 +1,75 @@
|
||||
<template>
|
||||
<el-drawer v-model="showSettings" :withHeader="false" direction="rtl" size="300px">
|
||||
<el-drawer
|
||||
v-model="showSettings"
|
||||
:with-header="false"
|
||||
direction="rtl"
|
||||
size="300px"
|
||||
>
|
||||
<div class="setting-drawer-title">
|
||||
<h3 class="drawer-title">主题风格设置</h3>
|
||||
<h3 class="drawer-title">
|
||||
主题风格设置
|
||||
</h3>
|
||||
</div>
|
||||
<div class="setting-drawer-block-checbox">
|
||||
<div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-dark')">
|
||||
<img src="@/assets/images/dark.svg" alt="dark" />
|
||||
<div v-if="sideTheme === 'theme-dark'" class="setting-drawer-block-checbox-selectIcon" style="display: block;">
|
||||
<i aria-label="图标: check" class="anticon anticon-check">
|
||||
<svg viewBox="64 64 896 896" data-icon="check" width="1em" height="1em" :fill="theme" aria-hidden="true" focusable="false" class>
|
||||
<div
|
||||
class="setting-drawer-block-checbox-item"
|
||||
@click="handleTheme('theme-dark')"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/dark.svg"
|
||||
alt="dark"
|
||||
>
|
||||
<div
|
||||
v-if="sideTheme === 'theme-dark'"
|
||||
class="setting-drawer-block-checbox-selectIcon"
|
||||
style="display: block;"
|
||||
>
|
||||
<i
|
||||
aria-label="图标: check"
|
||||
class="anticon anticon-check"
|
||||
>
|
||||
<svg
|
||||
viewBox="64 64 896 896"
|
||||
data-icon="check"
|
||||
width="1em"
|
||||
height="1em"
|
||||
:fill="theme"
|
||||
aria-hidden="true"
|
||||
focusable="false"
|
||||
class
|
||||
>
|
||||
<path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" />
|
||||
</svg>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-light')">
|
||||
<img src="@/assets/images/light.svg" alt="light" />
|
||||
<div v-if="sideTheme === 'theme-light'" class="setting-drawer-block-checbox-selectIcon" style="display: block;">
|
||||
<i aria-label="图标: check" class="anticon anticon-check">
|
||||
<svg viewBox="64 64 896 896" data-icon="check" width="1em" height="1em" :fill="theme" aria-hidden="true" focusable="false" class>
|
||||
<div
|
||||
class="setting-drawer-block-checbox-item"
|
||||
@click="handleTheme('theme-light')"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/light.svg"
|
||||
alt="light"
|
||||
>
|
||||
<div
|
||||
v-if="sideTheme === 'theme-light'"
|
||||
class="setting-drawer-block-checbox-selectIcon"
|
||||
style="display: block;"
|
||||
>
|
||||
<i
|
||||
aria-label="图标: check"
|
||||
class="anticon anticon-check"
|
||||
>
|
||||
<svg
|
||||
viewBox="64 64 896 896"
|
||||
data-icon="check"
|
||||
width="1em"
|
||||
height="1em"
|
||||
:fill="theme"
|
||||
aria-hidden="true"
|
||||
focusable="false"
|
||||
class
|
||||
>
|
||||
<path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" />
|
||||
</svg>
|
||||
</i>
|
||||
@@ -28,54 +79,88 @@
|
||||
<div class="drawer-item">
|
||||
<span>主题颜色</span>
|
||||
<span class="comp-style">
|
||||
<el-color-picker v-model="theme" :predefine="predefineColors" @change="themeChange"/>
|
||||
<el-color-picker
|
||||
v-model="theme"
|
||||
:predefine="predefineColors"
|
||||
@change="themeChange"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<el-divider />
|
||||
|
||||
<h3 class="drawer-title">系统布局配置</h3>
|
||||
<h3 class="drawer-title">
|
||||
系统布局配置
|
||||
</h3>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>开启 TopNav</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="settingsStore.topNav" @change="topNavChange" class="drawer-switch" />
|
||||
<el-switch
|
||||
v-model="settingsStore.topNav"
|
||||
class="drawer-switch"
|
||||
@change="topNavChange"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>开启 Tags-Views</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="settingsStore.tagsView" class="drawer-switch" />
|
||||
<el-switch
|
||||
v-model="settingsStore.tagsView"
|
||||
class="drawer-switch"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>固定 Header</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="settingsStore.fixedHeader" class="drawer-switch" />
|
||||
<el-switch
|
||||
v-model="settingsStore.fixedHeader"
|
||||
class="drawer-switch"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>显示 Logo</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="settingsStore.sidebarLogo" class="drawer-switch" />
|
||||
<el-switch
|
||||
v-model="settingsStore.sidebarLogo"
|
||||
class="drawer-switch"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="drawer-item">
|
||||
<span>动态标题</span>
|
||||
<span class="comp-style">
|
||||
<el-switch v-model="settingsStore.dynamicTitle" class="drawer-switch" />
|
||||
<el-switch
|
||||
v-model="settingsStore.dynamicTitle"
|
||||
class="drawer-switch"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<el-divider />
|
||||
|
||||
<el-button type="primary" plain icon="DocumentAdd" @click="saveSetting">保存配置</el-button>
|
||||
<el-button plain icon="Refresh" @click="resetSetting">重置配置</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="DocumentAdd"
|
||||
@click="saveSetting"
|
||||
>
|
||||
保存配置
|
||||
</el-button>
|
||||
<el-button
|
||||
plain
|
||||
icon="Refresh"
|
||||
@click="resetSetting"
|
||||
>
|
||||
重置配置
|
||||
</el-button>
|
||||
</el-drawer>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<component :is="type" v-bind="linkProps()">
|
||||
<component
|
||||
:is="type"
|
||||
v-bind="linkProps()"
|
||||
>
|
||||
<slot />
|
||||
</component>
|
||||
</template>
|
||||
|
||||
@@ -7,15 +7,29 @@
|
||||
sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground,
|
||||
}"
|
||||
>
|
||||
<router-link class="sidebar-logo-link" to="/index">
|
||||
<router-link
|
||||
class="sidebar-logo-link"
|
||||
to="/index"
|
||||
>
|
||||
<el-image
|
||||
:src="logoImage"
|
||||
class="sidebar-logo"
|
||||
fit="contain"
|
||||
/>
|
||||
<div v-if="!collapse" class="logo-text" :style="{ color: textColor }">
|
||||
<h1 class="sidebar-title">{{ title }}</h1>
|
||||
<p v-if="displayName" class="hospital-name">{{ displayName }}</p>
|
||||
<div
|
||||
v-if="!collapse"
|
||||
class="logo-text"
|
||||
:style="{ color: textColor }"
|
||||
>
|
||||
<h1 class="sidebar-title">
|
||||
{{ title }}
|
||||
</h1>
|
||||
<p
|
||||
v-if="displayName"
|
||||
class="hospital-name"
|
||||
>
|
||||
{{ displayName }}
|
||||
</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</div>
|
||||
|
||||
@@ -1,18 +1,45 @@
|
||||
<template>
|
||||
<div v-if="!item.hidden && !(item.meta && item.meta.visible === '1')">
|
||||
<template v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow">
|
||||
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
|
||||
<el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }">
|
||||
<svg-icon v-if="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" :icon-class="onlyOneChild.meta.icon || (item.meta && item.meta.icon)"/>
|
||||
<template #title><span class="menu-title" :title="hasTitle(onlyOneChild.meta.title)">{{ onlyOneChild.meta.title }}</span></template>
|
||||
<app-link
|
||||
v-if="onlyOneChild.meta"
|
||||
:to="resolvePath(onlyOneChild.path, onlyOneChild.query)"
|
||||
>
|
||||
<el-menu-item
|
||||
:index="resolvePath(onlyOneChild.path)"
|
||||
:class="{ 'submenu-title-noDropdown': !isNest }"
|
||||
>
|
||||
<svg-icon
|
||||
v-if="onlyOneChild.meta.icon || (item.meta && item.meta.icon)"
|
||||
:icon-class="onlyOneChild.meta.icon || (item.meta && item.meta.icon)"
|
||||
/>
|
||||
<template #title>
|
||||
<span
|
||||
class="menu-title"
|
||||
:title="hasTitle(onlyOneChild.meta.title)"
|
||||
>{{ onlyOneChild.meta.title }}</span>
|
||||
</template>
|
||||
</el-menu-item>
|
||||
</app-link>
|
||||
</template>
|
||||
|
||||
<el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)">
|
||||
<template v-if="item.meta" #title>
|
||||
<svg-icon v-if="item.meta.icon" :icon-class="item.meta.icon" />
|
||||
<span class="menu-title" :title="hasTitle(item.meta.title)">{{ item.meta.title }}</span>
|
||||
<el-sub-menu
|
||||
v-else
|
||||
ref="subMenu"
|
||||
:index="resolvePath(item.path)"
|
||||
>
|
||||
<template
|
||||
v-if="item.meta"
|
||||
#title
|
||||
>
|
||||
<svg-icon
|
||||
v-if="item.meta.icon"
|
||||
:icon-class="item.meta.icon"
|
||||
/>
|
||||
<span
|
||||
class="menu-title"
|
||||
:title="hasTitle(item.meta.title)"
|
||||
>{{ item.meta.title }}</span>
|
||||
</template>
|
||||
|
||||
<sidebar-item
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground,
|
||||
}"
|
||||
>
|
||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||
<logo
|
||||
v-if="showLogo"
|
||||
:collapse="isCollapse"
|
||||
/>
|
||||
<el-scrollbar class="sidebar-scrollbar">
|
||||
<el-menu
|
||||
:default-active="activeMenu"
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<template>
|
||||
<div id="tags-view-container" class="tags-view-container">
|
||||
<scroll-pane ref="scrollPaneRef" class="tags-view-wrapper" @scroll="handleScroll">
|
||||
<div
|
||||
id="tags-view-container"
|
||||
class="tags-view-container"
|
||||
>
|
||||
<scroll-pane
|
||||
ref="scrollPaneRef"
|
||||
class="tags-view-wrapper"
|
||||
@scroll="handleScroll"
|
||||
>
|
||||
<router-link
|
||||
v-for="tag in visitedViews"
|
||||
:key="tag.path"
|
||||
@@ -13,23 +20,44 @@
|
||||
@contextmenu.prevent="openMenu(tag, $event)"
|
||||
>
|
||||
{{ tag.title }}
|
||||
<span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
|
||||
<close class="el-icon-close" style="width: 1em; height: 1em; vertical-align: middle" />
|
||||
<span
|
||||
v-if="!isAffix(tag)"
|
||||
@click.prevent.stop="closeSelectedTag(tag)"
|
||||
>
|
||||
<close
|
||||
class="el-icon-close"
|
||||
style="width: 1em; height: 1em; vertical-align: middle"
|
||||
/>
|
||||
</span>
|
||||
</router-link>
|
||||
</scroll-pane>
|
||||
<ul v-show="visible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
|
||||
<ul
|
||||
v-show="visible"
|
||||
:style="{ left: left + 'px', top: top + 'px' }"
|
||||
class="contextmenu"
|
||||
>
|
||||
<li @click="refreshSelectedTag(selectedTag)">
|
||||
<refresh-right style="width: 1em; height: 1em" /> 刷新页面
|
||||
</li>
|
||||
<li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">
|
||||
<li
|
||||
v-if="!isAffix(selectedTag)"
|
||||
@click="closeSelectedTag(selectedTag)"
|
||||
>
|
||||
<close style="width: 1em; height: 1em" /> 关闭当前
|
||||
</li>
|
||||
<li @click="closeOthersTags"><circle-close style="width: 1em; height: 1em" /> 关闭其他</li>
|
||||
<li v-if="!isFirstView()" @click="closeLeftTags">
|
||||
<li @click="closeOthersTags">
|
||||
<circle-close style="width: 1em; height: 1em" /> 关闭其他
|
||||
</li>
|
||||
<li
|
||||
v-if="!isFirstView()"
|
||||
@click="closeLeftTags"
|
||||
>
|
||||
<back style="width: 1em; height: 1em" /> 关闭左侧
|
||||
</li>
|
||||
<li v-if="!isLastView()" @click="closeRightTags">
|
||||
<li
|
||||
v-if="!isLastView()"
|
||||
@click="closeRightTags"
|
||||
>
|
||||
<right style="width: 1em; height: 1em" /> 关闭右侧
|
||||
</li>
|
||||
<li @click="closeAllTags(selectedTag)">
|
||||
|
||||
@@ -11,11 +11,17 @@
|
||||
<!-- 右侧主容器 -->
|
||||
<div class="main-wrapper">
|
||||
<!-- 顶部导航栏 -->
|
||||
<navbar @setLayout="setLayout" />
|
||||
<navbar @set-layout="setLayout" />
|
||||
<!-- 内容区 -->
|
||||
<div :class="{ 'hasTagsView': needTagsView }" class="content-wrapper">
|
||||
<div
|
||||
:class="{ 'hasTagsView': needTagsView }"
|
||||
class="content-wrapper"
|
||||
>
|
||||
<!-- 标签栏 -->
|
||||
<div v-if="needTagsView" :class="{ 'fixed-header': fixedHeader }">
|
||||
<div
|
||||
v-if="needTagsView"
|
||||
:class="{ 'fixed-header': fixedHeader }"
|
||||
>
|
||||
<tags-view />
|
||||
</div>
|
||||
<!-- 主内容 -->
|
||||
|
||||
@@ -117,7 +117,7 @@ app.use(router);
|
||||
app.use(store);
|
||||
app.use(plugins);
|
||||
app.use(elementIcons);
|
||||
app.component('svg-icon', SvgIcon);
|
||||
app.component('SvgIcon', SvgIcon);
|
||||
directive(app);
|
||||
// 全局禁止点击遮罩层关闭弹窗
|
||||
ElDialog.props.closeOnClickModal.default = false;
|
||||
|
||||
@@ -5,8 +5,12 @@
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
<h2 style="text-align: center">出院诊断病历</h2>
|
||||
<h2 style="text-align: center">
|
||||
{{ userStore.hospitalName }}
|
||||
</h2>
|
||||
<h2 style="text-align: center">
|
||||
出院诊断病历
|
||||
</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
@@ -18,42 +22,86 @@
|
||||
label-align="left"
|
||||
class="medical-full-form"
|
||||
>
|
||||
<h4 class="section-title">一、基础信息</h4>
|
||||
<h4 class="section-title">
|
||||
一、基础信息
|
||||
</h4>
|
||||
<!-- 1. 基础信息:单行自适应排列 -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<el-form-item label="姓名" prop="patientName" class="row-item">
|
||||
<el-form-item
|
||||
label="姓名"
|
||||
prop="patientName"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
disabled
|
||||
v-model="formData.patientName"
|
||||
disabled
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="年龄" prop="age" class="row-item">
|
||||
<el-form-item
|
||||
label="年龄"
|
||||
prop="age"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input disabled v-model="formData.age" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.age"
|
||||
disabled
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="row-item">
|
||||
<el-form-item
|
||||
label="性别"
|
||||
prop="gender"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.gender" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.gender"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="住院号" prop="busNo" class="row-item">
|
||||
<el-form-item
|
||||
label="住院号"
|
||||
prop="busNo"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input disabled v-model="formData.busNo" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.busNo"
|
||||
disabled
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="temperature" class="row-item">
|
||||
<el-form-item
|
||||
label="职业"
|
||||
prop="temperature"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.temperature" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.temperature"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="入院日期" prop="admissionDate" class="row-item">
|
||||
<el-form-item
|
||||
label="入院日期"
|
||||
prop="admissionDate"
|
||||
class="row-item"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.admissionDate"
|
||||
type="date"
|
||||
@@ -62,7 +110,11 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出院日期" prop="dischargeDate" class="row-item">
|
||||
<el-form-item
|
||||
label="出院日期"
|
||||
prop="dischargeDate"
|
||||
class="row-item"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.dischargeDate"
|
||||
type="date"
|
||||
@@ -71,17 +123,31 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="住院天数" prop="hospitalDays" class="row-item">
|
||||
<el-form-item
|
||||
label="住院天数"
|
||||
prop="hospitalDays"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input disabled v-model="formData.hospitalDays" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.hospitalDays"
|
||||
disabled
|
||||
placeholder="请输入"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<h4 class="section-title">二、诊断</h4>
|
||||
<h4 class="section-title">
|
||||
二、诊断
|
||||
</h4>
|
||||
<!-- 3. 出院诊断(必填) -->
|
||||
<el-form-item label="出院诊断" prop="DischargeDiagnosis" class="required form-item-single">
|
||||
<el-form-item
|
||||
label="出院诊断"
|
||||
prop="DischargeDiagnosis"
|
||||
class="required form-item-single"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.DischargeDiagnosis"
|
||||
type="textarea"
|
||||
@@ -135,7 +201,10 @@
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<DisDiagnMedicalRecord v-if="isShowprintDom" ref="recordPrintRef"></DisDiagnMedicalRecord>
|
||||
<DisDiagnMedicalRecord
|
||||
v-if="isShowprintDom"
|
||||
ref="recordPrintRef"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -36,9 +36,17 @@
|
||||
</el-table-column>
|
||||
</el-table> -->
|
||||
|
||||
<div name="跌倒/坠床评估护理记录单" class="changeMajor" style="width: 99.9%">
|
||||
<div
|
||||
name="跌倒/坠床评估护理记录单"
|
||||
class="changeMajor"
|
||||
style="width: 99.9%"
|
||||
>
|
||||
<div>
|
||||
<el-form ref="formRef" :model="form" style="width: 99.9%">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="form"
|
||||
style="width: 99.9%"
|
||||
>
|
||||
<el-form-item style="text-align: center">
|
||||
<div
|
||||
style="
|
||||
@@ -54,9 +62,16 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="日期:" class="changeMajorFromItem" style="width: 100%">
|
||||
<el-form-item
|
||||
label="日期:"
|
||||
class="changeMajorFromItem"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-row :span="20">
|
||||
<el-col :span="8" style="padding-left: 0px !important">
|
||||
<el-col
|
||||
:span="8"
|
||||
style="padding-left: 0px !important"
|
||||
>
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
v-model="form.ZKDATE"
|
||||
@@ -115,9 +130,17 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="选择"
|
||||
width="80"
|
||||
align="center"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleDangerChange(row)" />
|
||||
<el-checkbox
|
||||
v-model="row.checked"
|
||||
@change="handleDangerChange(row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -150,9 +173,17 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<el-table-column
|
||||
prop="id"
|
||||
label="选择"
|
||||
width="80"
|
||||
align="center"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleNursingChange(row)" />
|
||||
<el-checkbox
|
||||
v-model="row.checked"
|
||||
@change="handleNursingChange(row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -185,7 +216,12 @@
|
||||
</el-row>
|
||||
<el-form-item label-width="15px">
|
||||
<ul class="instructions-list">
|
||||
<li v-for="(item, index) in instructions" :key="index">{{ item }}</li>
|
||||
<li
|
||||
v-for="(item, index) in instructions"
|
||||
:key="index"
|
||||
>
|
||||
{{ item }}
|
||||
</li>
|
||||
</ul>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
@@ -610,11 +646,11 @@ const handleUpdate = (row) => {
|
||||
totalScore.value = row.content.totalScore;
|
||||
|
||||
// 评估项目
|
||||
dangerData.forEach((item) => {
|
||||
dangerData.value.forEach((item) => {
|
||||
item.checked = form.bedFallRiskAssessmentList.includes(item.id);
|
||||
});
|
||||
|
||||
nursingData.forEach((item) => {
|
||||
nursingData.value.forEach((item) => {
|
||||
item.checked = form.patientCareSessionsCheckedList.includes(item.id);
|
||||
});
|
||||
|
||||
@@ -634,12 +670,12 @@ const reset = () => {
|
||||
});
|
||||
|
||||
// 初始化评估项目
|
||||
dangerData.forEach((session) => {
|
||||
dangerData.value.forEach((session) => {
|
||||
session.checked = false;
|
||||
});
|
||||
|
||||
// 初始化护理措施
|
||||
nursingData.forEach((session) => {
|
||||
nursingData.value.forEach((session) => {
|
||||
session.checked = false;
|
||||
});
|
||||
|
||||
|
||||
@@ -1,32 +1,52 @@
|
||||
<template>
|
||||
<div class="hospital-record-form">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="病案首页(一)" name="first">
|
||||
<el-tabs
|
||||
v-model="activeName"
|
||||
@tab-click="handleClick"
|
||||
>
|
||||
<el-tab-pane
|
||||
label="病案首页(一)"
|
||||
name="first"
|
||||
>
|
||||
<medicalRecordFirst
|
||||
ref="firstRef"
|
||||
:formData="formData"
|
||||
@onCaseFirst="updateCaseFirstDatas"
|
||||
></medicalRecordFirst>
|
||||
:form-data="formData"
|
||||
@on-case-first="updateCaseFirstDatas"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案首页(二)" name="second">
|
||||
<el-tab-pane
|
||||
label="病案首页(二)"
|
||||
name="second"
|
||||
>
|
||||
<medicalRecordSecond
|
||||
:formData="formData"
|
||||
@onCaseSecond="updateCaseFirstDatas"
|
||||
></medicalRecordSecond>
|
||||
:form-data="formData"
|
||||
@on-case-second="updateCaseFirstDatas"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案附页(三)" name="third">
|
||||
<el-tab-pane
|
||||
label="病案附页(三)"
|
||||
name="third"
|
||||
>
|
||||
<medicalRecordThird
|
||||
:formData="formData"
|
||||
@onCaseThird="updateCaseFirstDatas"
|
||||
></medicalRecordThird>
|
||||
:form-data="formData"
|
||||
@on-case-third="updateCaseFirstDatas"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div class="form-footer">
|
||||
<!-- <button @click="printForm" class="print-btn">打印表单</button> -->
|
||||
<button @click="resetForm" class="reset-btn">重置表单</button>
|
||||
<button
|
||||
class="reset-btn"
|
||||
@click="resetForm"
|
||||
>
|
||||
重置表单
|
||||
</button>
|
||||
</div>
|
||||
<medicalRecordPrint v-if="isShowprintDom" ref="recordPrintRef"></medicalRecordPrint>
|
||||
<medicalRecordPrint
|
||||
v-if="isShowprintDom"
|
||||
ref="recordPrintRef"
|
||||
/>
|
||||
<!-- <el-drawer v-model="drawer" size="100%">
|
||||
<medicalRecordPrint ref="recordPrintRef"></medicalRecordPrint>
|
||||
</el-drawer> -->
|
||||
|
||||
@@ -8,81 +8,147 @@
|
||||
</h1>
|
||||
</div>
|
||||
<!-- 页面标题 -->
|
||||
<h2 class="form-title">住院病人风险评估表</h2>
|
||||
<h2 class="form-title">
|
||||
住院病人风险评估表
|
||||
</h2>
|
||||
|
||||
<!-- 表单卡片 -->
|
||||
<el-form :model="formData" label-width="100px">
|
||||
<el-form
|
||||
:model="formData"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="科室" label-position="top">
|
||||
<el-input v-model="formData.department" readonly="true"></el-input>
|
||||
<el-form-item
|
||||
label="科室"
|
||||
label-position="top"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.department"
|
||||
readonly="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床号" label-position="top" class="comment-padding">
|
||||
<el-input v-model="formData.bedNo" readonly="true"></el-input>
|
||||
<el-form-item
|
||||
label="床号"
|
||||
label-position="top"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.bedNo"
|
||||
readonly="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="住院号" label-position="top" class="comment-padding">
|
||||
<el-input v-model="formData.busNo" readonly="true"></el-input>
|
||||
<el-form-item
|
||||
label="住院号"
|
||||
label-position="top"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.busNo"
|
||||
readonly="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名" label-position="top">
|
||||
<el-form-item
|
||||
label="姓名"
|
||||
label-position="top"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
readonly="true"
|
||||
class="auto-resize-input"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别" label-position="top" class="comment-padding">
|
||||
<el-form-item
|
||||
label="性别"
|
||||
label-position="top"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.gender"
|
||||
readonly="true"
|
||||
class="auto-resize-input"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="年龄" label-position="top" class="comment-padding">
|
||||
<el-input v-model="formData.age" readonly="true" class="auto-resize-input"></el-input>
|
||||
<el-form-item
|
||||
label="年龄"
|
||||
label-position="top"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.age"
|
||||
readonly="true"
|
||||
class="auto-resize-input"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="病情简介" label-position="top">
|
||||
<el-form-item
|
||||
label="病情简介"
|
||||
label-position="top"
|
||||
>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="formData.adm_cond"
|
||||
:autosize="{ minRows: 1, maxRows: 100 }"
|
||||
class="full-width-textarea"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="可能发生的不良后果及预后" label-position="top">
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="formData.effectless"
|
||||
:autosize="{ minRows: 1, maxRows: 100 }"
|
||||
class="full-width-textarea"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="评估等级" label-position="top">
|
||||
<el-form-item
|
||||
label="可能发生的不良后果及预后"
|
||||
label-position="top"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.effectless"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 1, maxRows: 100 }"
|
||||
class="full-width-textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="评估等级"
|
||||
label-position="top"
|
||||
>
|
||||
<el-radio-group v-model="formData.evalLevel">
|
||||
<el-radio label="一般">一般</el-radio>
|
||||
<el-radio label="病重">病重</el-radio>
|
||||
<el-radio label="病危">病危</el-radio>
|
||||
<el-radio label="一般">
|
||||
一般
|
||||
</el-radio>
|
||||
<el-radio label="病重">
|
||||
病重
|
||||
</el-radio>
|
||||
<el-radio label="病危">
|
||||
病危
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="护理等级" label-position="top">
|
||||
<el-form-item
|
||||
label="护理等级"
|
||||
label-position="top"
|
||||
>
|
||||
<el-radio-group v-model="formData.nurseLevel">
|
||||
<el-radio label="特级护理">特级护理</el-radio>
|
||||
<el-radio label="一级护理">一级护理</el-radio>
|
||||
<el-radio label="二级护理">二级护理</el-radio>
|
||||
<el-radio label="三级护理">三级护理</el-radio>
|
||||
<el-radio label="特级护理">
|
||||
特级护理
|
||||
</el-radio>
|
||||
<el-radio label="一级护理">
|
||||
一级护理
|
||||
</el-radio>
|
||||
<el-radio label="二级护理">
|
||||
二级护理
|
||||
</el-radio>
|
||||
<el-radio label="三级护理">
|
||||
三级护理
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="收集资料时间:">
|
||||
@@ -92,36 +158,45 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="评估医师签名:">
|
||||
<el-input
|
||||
disabled
|
||||
v-model="formData.sign_doc"
|
||||
disabled
|
||||
:autosize="{ minRows: 1 }"
|
||||
class="auto-resize-input"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="主治医师签名:" class="comment-padding">
|
||||
<el-form-item
|
||||
label="主治医师签名:"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.sign_maindoc"
|
||||
:autosize="{ minRows: 1 }"
|
||||
class="auto-resize-input"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="科主任签名:" class="comment-padding">
|
||||
<el-form-item
|
||||
label="科主任签名:"
|
||||
class="comment-padding"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.sign_leader"
|
||||
:autosize="{ minRows: 1 }"
|
||||
class="auto-resize-input"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<inAssessmentForm v-if="isShowprintDom" ref="recordPrintRef"></inAssessmentForm>
|
||||
<inAssessmentForm
|
||||
v-if="isShowprintDom"
|
||||
ref="recordPrintRef"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -15,48 +15,129 @@
|
||||
class="medical-full-form"
|
||||
>
|
||||
<!-- 1. 基础信息区域(自适应两列布局) -->
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<h4 class="section-title">
|
||||
基础信息
|
||||
</h4>
|
||||
<div class="adaptive-grid form-section">
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入姓名" clearable />
|
||||
<el-form-item
|
||||
label="姓名"
|
||||
prop="patientName"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="住院号" prop="hospitalNo" class="grid-item required">
|
||||
<el-input v-model="formData.hospitalNo" placeholder="请输入住院号" clearable />
|
||||
<el-form-item
|
||||
label="住院号"
|
||||
prop="hospitalNo"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.hospitalNo"
|
||||
placeholder="请输入住院号"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择" style="width: 100%">
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
<el-form-item
|
||||
label="性别"
|
||||
prop="gender"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.gender"
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
label="男"
|
||||
value="男"
|
||||
/>
|
||||
<el-option
|
||||
label="女"
|
||||
value="女"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<el-form-item
|
||||
label="年龄"
|
||||
prop="age"
|
||||
class="grid-item required"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" placeholder="请输入年龄" clearable />
|
||||
<el-input
|
||||
v-model.number="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="nation" class="grid-item">
|
||||
<el-input v-model="formData.nation" placeholder="请输入民族" clearable />
|
||||
<el-form-item
|
||||
label="民族"
|
||||
prop="nation"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.nation"
|
||||
placeholder="请输入民族"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="occupation" class="grid-item">
|
||||
<el-input v-model="formData.occupation" placeholder="请输入职业" clearable />
|
||||
<el-form-item
|
||||
label="职业"
|
||||
prop="occupation"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.occupation"
|
||||
placeholder="请输入职业"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="婚姻状况" prop="marriage" class="grid-item">
|
||||
<el-form-item
|
||||
label="婚姻状况"
|
||||
prop="marriage"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.marriage"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="已婚" value="已婚"></el-option>
|
||||
<el-option label="未婚" value="未婚"></el-option>
|
||||
<el-option label="离异" value="离异"></el-option>
|
||||
<el-option
|
||||
label="已婚"
|
||||
value="已婚"
|
||||
/>
|
||||
<el-option
|
||||
label="未婚"
|
||||
value="未婚"
|
||||
/>
|
||||
<el-option
|
||||
label="离异"
|
||||
value="离异"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出生地" prop="birthplace" class="grid-item">
|
||||
<el-input v-model="formData.birthplace" placeholder="请输入出生地" clearable />
|
||||
<el-form-item
|
||||
label="出生地"
|
||||
prop="birthplace"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.birthplace"
|
||||
placeholder="请输入出生地"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="入院时间" prop="admissionTime" class="grid-item required">
|
||||
<el-form-item
|
||||
label="入院时间"
|
||||
prop="admissionTime"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.admissionTime"
|
||||
type="datetime"
|
||||
@@ -65,7 +146,11 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录时间" prop="recordTime" class="grid-item required">
|
||||
<el-form-item
|
||||
label="记录时间"
|
||||
prop="recordTime"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.recordTime"
|
||||
type="datetime"
|
||||
@@ -74,22 +159,53 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="病史陈述者" prop="historyReporter" class="grid-item">
|
||||
<el-input v-model="formData.historyReporter" placeholder="请输入陈述者" clearable />
|
||||
<el-form-item
|
||||
label="病史陈述者"
|
||||
prop="historyReporter"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.historyReporter"
|
||||
placeholder="请输入陈述者"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="可靠程度" prop="reliability" class="grid-item">
|
||||
<el-select v-model="formData.reliability" placeholder="请选择" style="width: 100%">
|
||||
<el-option label="可靠" value="可靠"></el-option>
|
||||
<el-option label="基本可靠" value="基本可靠"></el-option>
|
||||
<el-option label="不可靠" value="不可靠"></el-option>
|
||||
<el-form-item
|
||||
label="可靠程度"
|
||||
prop="reliability"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.reliability"
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
label="可靠"
|
||||
value="可靠"
|
||||
/>
|
||||
<el-option
|
||||
label="基本可靠"
|
||||
value="基本可靠"
|
||||
/>
|
||||
<el-option
|
||||
label="不可靠"
|
||||
value="不可靠"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- 2. 病史信息 -->
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<h4 class="section-title">
|
||||
病史信息
|
||||
</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="主诉" prop="complaint" class="history-item required">
|
||||
<el-form-item
|
||||
label="主诉"
|
||||
prop="complaint"
|
||||
class="history-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
@@ -100,7 +216,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="现病史" prop="presentIllness" class="history-item">
|
||||
<el-form-item
|
||||
label="现病史"
|
||||
prop="presentIllness"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
@@ -111,7 +231,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="既往史" prop="pastHistory" class="history-item">
|
||||
<el-form-item
|
||||
label="既往史"
|
||||
prop="pastHistory"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.pastHistory"
|
||||
type="textarea"
|
||||
@@ -122,7 +246,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="个人史" prop="personalHistory" class="history-item">
|
||||
<el-form-item
|
||||
label="个人史"
|
||||
prop="personalHistory"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
@@ -133,7 +261,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="婚育史" prop="maritalHistory" class="history-item">
|
||||
<el-form-item
|
||||
label="婚育史"
|
||||
prop="maritalHistory"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.maritalHistory"
|
||||
type="textarea"
|
||||
@@ -144,7 +276,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="月经史" prop="menstrualHistory" class="history-item">
|
||||
<el-form-item
|
||||
label="月经史"
|
||||
prop="menstrualHistory"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.menstrualHistory"
|
||||
type="textarea"
|
||||
@@ -155,7 +291,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="家族史" prop="familyHistory" class="history-item">
|
||||
<el-form-item
|
||||
label="家族史"
|
||||
prop="familyHistory"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
@@ -168,9 +308,15 @@
|
||||
</div>
|
||||
|
||||
<!-- 3. 中医望闻问切 -->
|
||||
<h4 class="section-title">中医望闻问切</h4>
|
||||
<h4 class="section-title">
|
||||
中医望闻问切
|
||||
</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="望闻问切" prop="tcmInfo" class="history-item">
|
||||
<el-form-item
|
||||
label="望闻问切"
|
||||
prop="tcmInfo"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.tcmInfo"
|
||||
type="textarea"
|
||||
@@ -183,10 +329,16 @@
|
||||
</div>
|
||||
|
||||
<!-- 4. 体格检查 -->
|
||||
<h4 class="section-title">体格检查</h4>
|
||||
<h4 class="section-title">
|
||||
体格检查
|
||||
</h4>
|
||||
<div class="form-section">
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="体温" prop="temp" class="grid-item">
|
||||
<el-form-item
|
||||
label="体温"
|
||||
prop="temp"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.temp"
|
||||
@@ -199,7 +351,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="脉搏" prop="pulse" class="grid-item">
|
||||
<el-form-item
|
||||
label="脉搏"
|
||||
prop="pulse"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.pulse"
|
||||
@@ -211,7 +367,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="呼吸" prop="respiration" class="grid-item">
|
||||
<el-form-item
|
||||
label="呼吸"
|
||||
prop="respiration"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.respiration"
|
||||
@@ -223,7 +383,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="血压" prop="bp" class="grid-item">
|
||||
<el-form-item
|
||||
label="血压"
|
||||
prop="bp"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bp"
|
||||
@@ -235,7 +399,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="身高" prop="height" class="grid-item">
|
||||
<el-form-item
|
||||
label="身高"
|
||||
prop="height"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.height"
|
||||
@@ -247,7 +415,11 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="体重" prop="weight" class="grid-item">
|
||||
<el-form-item
|
||||
label="体重"
|
||||
prop="weight"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.weight"
|
||||
@@ -259,15 +431,27 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="BMI" prop="bmi" class="grid-item">
|
||||
<el-form-item
|
||||
label="BMI"
|
||||
prop="bmi"
|
||||
class="grid-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.bmi" placeholder="如29.02" readonly />
|
||||
<el-input
|
||||
v-model="formData.bmi"
|
||||
placeholder="如29.02"
|
||||
readonly
|
||||
/>
|
||||
<span class="unit">kg/m²</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item label="一般情况" prop="general" class="history-item">
|
||||
<el-form-item
|
||||
label="一般情况"
|
||||
prop="general"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.general"
|
||||
type="textarea"
|
||||
@@ -278,7 +462,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="皮肤粘膜" prop="skin" class="history-item">
|
||||
<el-form-item
|
||||
label="皮肤粘膜"
|
||||
prop="skin"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.skin"
|
||||
type="textarea"
|
||||
@@ -289,7 +477,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="胸部(心、肺)" prop="chest" class="history-item">
|
||||
<el-form-item
|
||||
label="胸部(心、肺)"
|
||||
prop="chest"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.chest"
|
||||
type="textarea"
|
||||
@@ -300,7 +492,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="腹部" prop="abdomen" class="history-item">
|
||||
<el-form-item
|
||||
label="腹部"
|
||||
prop="abdomen"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.abdomen"
|
||||
type="textarea"
|
||||
@@ -311,7 +507,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="四肢/神经系统" prop="limbsNervous" class="history-item">
|
||||
<el-form-item
|
||||
label="四肢/神经系统"
|
||||
prop="limbsNervous"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.limbsNervous"
|
||||
type="textarea"
|
||||
@@ -324,9 +524,15 @@
|
||||
</div>
|
||||
|
||||
<!-- 5. 辅助检查 -->
|
||||
<h4 class="section-title">辅助检查</h4>
|
||||
<h4 class="section-title">
|
||||
辅助检查
|
||||
</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="检查结果" prop="auxExam" class="history-item">
|
||||
<el-form-item
|
||||
label="检查结果"
|
||||
prop="auxExam"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.auxExam"
|
||||
type="textarea"
|
||||
@@ -339,9 +545,15 @@
|
||||
</div>
|
||||
|
||||
<!-- 6. 初步诊断 -->
|
||||
<h4 class="section-title">初步诊断</h4>
|
||||
<h4 class="section-title">
|
||||
初步诊断
|
||||
</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="history-item">
|
||||
<el-form-item
|
||||
label="中医诊断"
|
||||
prop="tcmDiagnosis"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
@@ -352,7 +564,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="history-item">
|
||||
<el-form-item
|
||||
label="西医诊断"
|
||||
prop="westernDiagnosis"
|
||||
class="history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
@@ -365,17 +581,42 @@
|
||||
</div>
|
||||
|
||||
<!-- 7. 签名信息(三列布局) -->
|
||||
<h4 class="section-title">签名信息</h4>
|
||||
<div class="adaptive-grid form-section" style="grid-template-columns: repeat(3, 1fr)">
|
||||
<el-form-item label="医师签名" prop="doctorSign" class="grid-item">
|
||||
<el-input v-model="formData.doctorSign" placeholder="请签名" clearable />
|
||||
<h4 class="section-title">
|
||||
签名信息
|
||||
</h4>
|
||||
<div
|
||||
class="adaptive-grid form-section"
|
||||
style="grid-template-columns: repeat(3, 1fr)"
|
||||
>
|
||||
<el-form-item
|
||||
label="医师签名"
|
||||
prop="doctorSign"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.doctorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="上级医师签名" prop="superiorSign" class="grid-item">
|
||||
<el-input v-model="formData.superiorSign" placeholder="请签名" clearable />
|
||||
<el-form-item
|
||||
label="上级医师签名"
|
||||
prop="superiorSign"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.superiorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="记录日期" prop="signDate" class="grid-item">
|
||||
<el-form-item
|
||||
label="记录日期"
|
||||
prop="signDate"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.signDate"
|
||||
type="datetime"
|
||||
@@ -388,12 +629,20 @@
|
||||
|
||||
<!-- 新增:表单操作按钮组(重置按钮) -->
|
||||
<div class="form-btn-group">
|
||||
<el-button type="warning" @click="handleReset">重置表单</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="handleReset"
|
||||
>
|
||||
重置表单
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<admissionRecord v-if="isShowprintDom" ref="recordPrintRef"></admissionRecord>
|
||||
<admissionRecord
|
||||
v-if="isShowprintDom"
|
||||
ref="recordPrintRef"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
<div class="medical-document">
|
||||
<!-- 标题区域 -->
|
||||
<div class="doc-header">
|
||||
<h1 class="doc-title">{{ hospitalName }} 住院手术记录单</h1>
|
||||
<div class="doc-subtitle">住院号: {{ formData.busNo || '待填写' }}</div>
|
||||
<h1 class="doc-title">
|
||||
{{ hospitalName }} 住院手术记录单
|
||||
</h1>
|
||||
<div class="doc-subtitle">
|
||||
住院号: {{ formData.busNo || '待填写' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 内容区域 -->
|
||||
@@ -18,34 +22,84 @@
|
||||
>
|
||||
<!-- 患者与手术基础信息 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">一、患者与手术基本信息</h2>
|
||||
<h2 class="section-title">
|
||||
一、患者与手术基本信息
|
||||
</h2>
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="患者姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
<el-form-item
|
||||
label="患者姓名"
|
||||
prop="patientName"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
placeholder="请输入患者姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
<el-form-item
|
||||
label="性别"
|
||||
prop="gender"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.gender"
|
||||
placeholder="请选择性别"
|
||||
>
|
||||
<el-option
|
||||
label="男"
|
||||
value="男"
|
||||
/>
|
||||
<el-option
|
||||
label="女"
|
||||
value="女"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<el-form-item
|
||||
label="年龄"
|
||||
prop="age"
|
||||
class="grid-item required"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" placeholder="请输入年龄" />
|
||||
<el-input
|
||||
v-model.number="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
/>
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:普外科" clearable />
|
||||
<el-form-item
|
||||
label="科室"
|
||||
prop="department"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.department"
|
||||
placeholder="如:普外科"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:502-03" clearable />
|
||||
<el-form-item
|
||||
label="病房/床号"
|
||||
prop="bedNo"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.bedNo"
|
||||
placeholder="如:502-03"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="手术日期/时间" prop="operationDateTime" class="grid-item required">
|
||||
<el-form-item
|
||||
label="手术日期/时间"
|
||||
prop="operationDateTime"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.operationDateTime"
|
||||
type="datetime"
|
||||
@@ -58,39 +112,95 @@
|
||||
|
||||
<!-- 手术团队信息 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">二、手术团队信息</h2>
|
||||
<h2 class="section-title">
|
||||
二、手术团队信息
|
||||
</h2>
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="手术者" prop="surgeon" class="grid-item required">
|
||||
<el-input v-model="formData.surgeon" placeholder="主刀医师姓名" clearable />
|
||||
<el-form-item
|
||||
label="手术者"
|
||||
prop="surgeon"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.surgeon"
|
||||
placeholder="主刀医师姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="第一助手" prop="firstAssistant" class="grid-item required">
|
||||
<el-input v-model="formData.firstAssistant" placeholder="第一助手姓名" clearable />
|
||||
<el-form-item
|
||||
label="第一助手"
|
||||
prop="firstAssistant"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.firstAssistant"
|
||||
placeholder="第一助手姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="第二助手" prop="secondAssistant" class="grid-item">
|
||||
<el-input v-model="formData.secondAssistant" placeholder="第二助手姓名" clearable />
|
||||
<el-form-item
|
||||
label="第二助手"
|
||||
prop="secondAssistant"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.secondAssistant"
|
||||
placeholder="第二助手姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="麻醉医师" prop="anesthesiologist" class="grid-item required">
|
||||
<el-input v-model="formData.anesthesiologist" placeholder="麻醉医师姓名" clearable />
|
||||
<el-form-item
|
||||
label="麻醉医师"
|
||||
prop="anesthesiologist"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.anesthesiologist"
|
||||
placeholder="麻醉医师姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="巡回护士" prop="circulatingNurse" class="grid-item required">
|
||||
<el-input v-model="formData.circulatingNurse" placeholder="巡回护士姓名" clearable />
|
||||
<el-form-item
|
||||
label="巡回护士"
|
||||
prop="circulatingNurse"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.circulatingNurse"
|
||||
placeholder="巡回护士姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="器械护士" prop="scrubNurse" class="grid-item required">
|
||||
<el-input v-model="formData.scrubNurse" placeholder="器械护士姓名" clearable />
|
||||
<el-form-item
|
||||
label="器械护士"
|
||||
prop="scrubNurse"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.scrubNurse"
|
||||
placeholder="器械护士姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 手术详情 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、手术详情</h2>
|
||||
<h2 class="section-title">
|
||||
三、手术详情
|
||||
</h2>
|
||||
|
||||
<el-form-item label="手术名称" prop="operationName" class="full-width-item required">
|
||||
<el-form-item
|
||||
label="手术名称"
|
||||
prop="operationName"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.operationName"
|
||||
placeholder="规范手术名称(如:腹腔镜下胆囊切除术)"
|
||||
@@ -98,15 +208,35 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="手术方式" prop="operationMethod" class="full-width-item required">
|
||||
<el-select v-model="formData.operationMethod" placeholder="选择手术方式">
|
||||
<el-option label="开放手术" value="开放手术" />
|
||||
<el-option label="微创手术" value="微创手术" />
|
||||
<el-option label="介入手术" value="介入手术" />
|
||||
<el-form-item
|
||||
label="手术方式"
|
||||
prop="operationMethod"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.operationMethod"
|
||||
placeholder="选择手术方式"
|
||||
>
|
||||
<el-option
|
||||
label="开放手术"
|
||||
value="开放手术"
|
||||
/>
|
||||
<el-option
|
||||
label="微创手术"
|
||||
value="微创手术"
|
||||
/>
|
||||
<el-option
|
||||
label="介入手术"
|
||||
value="介入手术"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="手术入路" prop="surgicalApproach" class="full-width-item required">
|
||||
<el-form-item
|
||||
label="手术入路"
|
||||
prop="surgicalApproach"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.surgicalApproach"
|
||||
placeholder="如:右上腹经腹直肌切口"
|
||||
@@ -128,7 +258,11 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="手术过程" prop="operationProcess" class="full-width-item required">
|
||||
<el-form-item
|
||||
label="手术过程"
|
||||
prop="operationProcess"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.operationProcess"
|
||||
type="textarea"
|
||||
@@ -142,9 +276,15 @@
|
||||
|
||||
<!-- 术后情况 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">四、术后情况</h2>
|
||||
<h2 class="section-title">
|
||||
四、术后情况
|
||||
</h2>
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="术中出血量" prop="bloodLoss" class="grid-item required">
|
||||
<el-form-item
|
||||
label="术中出血量"
|
||||
prop="bloodLoss"
|
||||
class="grid-item required"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.bloodLoss"
|
||||
@@ -155,18 +295,43 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="输血情况" prop="bloodTransfusion" class="grid-item">
|
||||
<el-select v-model="formData.bloodTransfusion" placeholder="是否输血">
|
||||
<el-option label="是" value="是" />
|
||||
<el-option label="否" value="否" />
|
||||
<el-form-item
|
||||
label="输血情况"
|
||||
prop="bloodTransfusion"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.bloodTransfusion"
|
||||
placeholder="是否输血"
|
||||
>
|
||||
<el-option
|
||||
label="是"
|
||||
value="是"
|
||||
/>
|
||||
<el-option
|
||||
label="否"
|
||||
value="否"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="引流管放置" prop="drainageTube" class="grid-item">
|
||||
<el-input v-model="formData.drainageTube" placeholder="如:腹腔引流管1根" clearable />
|
||||
<el-form-item
|
||||
label="引流管放置"
|
||||
prop="drainageTube"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.drainageTube"
|
||||
placeholder="如:腹腔引流管1根"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="标本处理" prop="specimenDisposal" class="grid-item required">
|
||||
<el-form-item
|
||||
label="标本处理"
|
||||
prop="specimenDisposal"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.specimenDisposal"
|
||||
placeholder="如:胆囊标本送病理检查"
|
||||
@@ -174,7 +339,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="手术结束时间" prop="operationEndTime" class="grid-item required">
|
||||
<el-form-item
|
||||
label="手术结束时间"
|
||||
prop="operationEndTime"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.operationEndTime"
|
||||
type="datetime"
|
||||
@@ -182,10 +351,23 @@
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="患者去向" prop="patientDestination" class="grid-item required">
|
||||
<el-select v-model="formData.patientDestination" placeholder="选择去向">
|
||||
<el-option label="ICU" value="ICU" />
|
||||
<el-option label="普通病房" value="普通病房" />
|
||||
<el-form-item
|
||||
label="患者去向"
|
||||
prop="patientDestination"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.patientDestination"
|
||||
placeholder="选择去向"
|
||||
>
|
||||
<el-option
|
||||
label="ICU"
|
||||
value="ICU"
|
||||
/>
|
||||
<el-option
|
||||
label="普通病房"
|
||||
value="普通病房"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -193,20 +375,46 @@
|
||||
|
||||
<!-- 签署区域 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">五、签署确认</h2>
|
||||
<h2 class="section-title">
|
||||
五、签署确认
|
||||
</h2>
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
<el-form-item label="手术者签名" prop="surgeonSignature" class="grid-item required">
|
||||
<el-input v-model="formData.surgeonSignature" placeholder="主刀医师签字" clearable />
|
||||
<div class="signature-tip">请手术者亲笔签名</div>
|
||||
<el-form-item
|
||||
label="手术者签名"
|
||||
prop="surgeonSignature"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.surgeonSignature"
|
||||
placeholder="主刀医师签字"
|
||||
clearable
|
||||
/>
|
||||
<div class="signature-tip">
|
||||
请手术者亲笔签名
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录者签名" prop="recorderSignature" class="grid-item required">
|
||||
<el-input v-model="formData.recorderSignature" placeholder="记录者签字" clearable />
|
||||
<div class="signature-tip">请记录者(如第一助手)签字</div>
|
||||
<el-form-item
|
||||
label="记录者签名"
|
||||
prop="recorderSignature"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.recorderSignature"
|
||||
placeholder="记录者签字"
|
||||
clearable
|
||||
/>
|
||||
<div class="signature-tip">
|
||||
请记录者(如第一助手)签字
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录日期" prop="recordDate" class="grid-item required">
|
||||
<el-form-item
|
||||
label="记录日期"
|
||||
prop="recordDate"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.recordDate"
|
||||
type="date"
|
||||
@@ -221,12 +429,30 @@
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="btn-group">
|
||||
<el-button type="primary" @click="submit">保存记录</el-button>
|
||||
<el-button type="success" @click="handlePrint">打印记录</el-button>
|
||||
<el-button type="warning" @click="handleReset">重置表单</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="submit"
|
||||
>
|
||||
保存记录
|
||||
</el-button>
|
||||
<el-button
|
||||
type="success"
|
||||
@click="handlePrint"
|
||||
>
|
||||
打印记录
|
||||
</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="handleReset"
|
||||
>
|
||||
重置表单
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<intOperRecordSheet v-if="isShowprintDom" ref="recordPrintRef"></intOperRecordSheet>
|
||||
<intOperRecordSheet
|
||||
v-if="isShowprintDom"
|
||||
ref="recordPrintRef"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@@ -242,7 +468,7 @@ const recordPrintRef = ref();
|
||||
// 医院名称
|
||||
const hospitalName = userStore.hospitalName;
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord',
|
||||
name: 'IInHospitalSurgicalRecord',
|
||||
});
|
||||
// 表单引用
|
||||
const formRef = ref(null);
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
<div class="medical-document">
|
||||
<!-- 标题区域 -->
|
||||
<div class="doc-header">
|
||||
<h1 class="doc-title">{{ hospitalName }} 住院患者入院沟通记录单</h1>
|
||||
<div class="doc-subtitle">住院号: {{ formData.hospitalNo || '待填写' }}</div>
|
||||
<h1 class="doc-title">
|
||||
{{ hospitalName }} 住院患者入院沟通记录单
|
||||
</h1>
|
||||
<div class="doc-subtitle">
|
||||
住院号: {{ formData.hospitalNo || '待填写' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 内容区域 -->
|
||||
@@ -17,34 +21,85 @@
|
||||
>
|
||||
<!-- 患者基础信息 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">一、患者基础信息</h2>
|
||||
<h2 class="section-title">
|
||||
一、患者基础信息
|
||||
</h2>
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
<el-form-item
|
||||
label="姓名"
|
||||
prop="patientName"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
placeholder="请输入患者姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
<el-form-item
|
||||
label="性别"
|
||||
prop="gender"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-select
|
||||
v-model="formData.gender"
|
||||
placeholder="请选择性别"
|
||||
>
|
||||
<el-option
|
||||
label="男"
|
||||
value="男"
|
||||
/>
|
||||
<el-option
|
||||
label="女"
|
||||
value="女"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<el-form-item
|
||||
label="年龄"
|
||||
prop="age"
|
||||
class="grid-item required"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" placeholder="请输入年龄" clearable />
|
||||
<el-input
|
||||
v-model.number="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室/病区" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:内科疗区" clearable />
|
||||
<el-form-item
|
||||
label="科室/病区"
|
||||
prop="department"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.department"
|
||||
placeholder="如:内科疗区"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:307-12" clearable />
|
||||
<el-form-item
|
||||
label="病房/床号"
|
||||
prop="bedNo"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.bedNo"
|
||||
placeholder="如:307-12"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="入院日期" prop="admissionDate" class="grid-item required">
|
||||
<el-form-item
|
||||
label="入院日期"
|
||||
prop="admissionDate"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.admissionDate"
|
||||
type="date"
|
||||
@@ -57,26 +112,58 @@
|
||||
|
||||
<!-- 医疗团队信息 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">二、医疗团队信息</h2>
|
||||
<h2 class="section-title">
|
||||
二、医疗团队信息
|
||||
</h2>
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="经治医师" prop="treatingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.treatingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
<el-form-item
|
||||
label="经治医师"
|
||||
prop="treatingDoctor"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.treatingDoctor"
|
||||
placeholder="请输入医师姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="主治医师" prop="attendingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.attendingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
<el-form-item
|
||||
label="主治医师"
|
||||
prop="attendingDoctor"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.attendingDoctor"
|
||||
placeholder="请输入医师姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科主任" prop="departmentHead" class="grid-item required">
|
||||
<el-input v-model="formData.departmentHead" placeholder="请输入主任姓名" clearable />
|
||||
<el-form-item
|
||||
label="科主任"
|
||||
prop="departmentHead"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.departmentHead"
|
||||
placeholder="请输入主任姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 病情与诊断 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、病情与诊断</h2>
|
||||
<el-form-item label="病情状况" prop="condition" class="full-width-item required">
|
||||
<h2 class="section-title">
|
||||
三、病情与诊断
|
||||
</h2>
|
||||
<el-form-item
|
||||
label="病情状况"
|
||||
prop="condition"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.condition"
|
||||
type="textarea"
|
||||
@@ -87,7 +174,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<div class="diagnosis-container">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="diagnosis-item">
|
||||
<el-form-item
|
||||
label="中医诊断"
|
||||
prop="tcmDiagnosis"
|
||||
class="diagnosis-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
@@ -97,7 +188,11 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="diagnosis-item">
|
||||
<el-form-item
|
||||
label="西医诊断"
|
||||
prop="westernDiagnosis"
|
||||
class="diagnosis-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
@@ -112,8 +207,14 @@
|
||||
|
||||
<!-- 治疗与检查计划 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">四、治疗与检查计划</h2>
|
||||
<el-form-item label="治疗方案" prop="treatmentPlan" class="full-width-item required">
|
||||
<h2 class="section-title">
|
||||
四、治疗与检查计划
|
||||
</h2>
|
||||
<el-form-item
|
||||
label="治疗方案"
|
||||
prop="treatmentPlan"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.treatmentPlan"
|
||||
type="textarea"
|
||||
@@ -142,8 +243,14 @@
|
||||
|
||||
<!-- 风险告知 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">五、风险告知</h2>
|
||||
<el-form-item label="告知内容" prop="riskNotification" class="full-width-item required">
|
||||
<h2 class="section-title">
|
||||
五、风险告知
|
||||
</h2>
|
||||
<el-form-item
|
||||
label="告知内容"
|
||||
prop="riskNotification"
|
||||
class="full-width-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.riskNotification"
|
||||
type="textarea"
|
||||
@@ -157,17 +264,33 @@
|
||||
|
||||
<!-- 签署区域(优化后:三列自适应+细节样式) -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">六、签署确认</h2>
|
||||
<h2 class="section-title">
|
||||
六、签署确认
|
||||
</h2>
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
<el-form-item label="患者或家属签字" prop="patientSignature" class="grid-item required">
|
||||
<el-input v-model="formData.patientSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写患者或家属签字</div>
|
||||
<el-form-item
|
||||
label="患者或家属签字"
|
||||
prop="patientSignature"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.patientSignature"
|
||||
placeholder="请签字"
|
||||
clearable
|
||||
/>
|
||||
<div class="signature-tip">
|
||||
请填写患者或家属签字
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="与患者关系" prop="relationship" class="grid-item">
|
||||
<el-form-item
|
||||
label="与患者关系"
|
||||
prop="relationship"
|
||||
class="grid-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.relationship"
|
||||
placeholder="如:本人、配偶、子女"
|
||||
@@ -175,7 +298,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="签字日期" prop="signatureDate" class="grid-item required">
|
||||
<el-form-item
|
||||
label="签字日期"
|
||||
prop="signatureDate"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.signatureDate"
|
||||
type="date"
|
||||
@@ -185,11 +312,25 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="沟通医师签字" prop="doctorSignature" class="grid-item required">
|
||||
<el-input v-model="formData.doctorSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写沟通医师签字</div>
|
||||
<el-form-item
|
||||
label="沟通医师签字"
|
||||
prop="doctorSignature"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.doctorSignature"
|
||||
placeholder="请签字"
|
||||
clearable
|
||||
/>
|
||||
<div class="signature-tip">
|
||||
请填写沟通医师签字
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="沟通日期" prop="communicationDate" class="grid-item required">
|
||||
<el-form-item
|
||||
label="沟通日期"
|
||||
prop="communicationDate"
|
||||
class="grid-item required"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.communicationDate"
|
||||
type="datetime"
|
||||
@@ -204,9 +345,24 @@
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="btn-group">
|
||||
<el-button type="primary" @click="submit">保存记录</el-button>
|
||||
<el-button type="success" @click="handlePrint">打印记录</el-button>
|
||||
<el-button type="warning" @click="handleReset">重置表单</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="submit"
|
||||
>
|
||||
保存记录
|
||||
</el-button>
|
||||
<el-button
|
||||
type="success"
|
||||
@click="handlePrint"
|
||||
>
|
||||
打印记录
|
||||
</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="handleReset"
|
||||
>
|
||||
重置表单
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -6,40 +6,69 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<h2 class="title">{{ userStore.hospitalName }}</h2>
|
||||
<h3 class="subtitle">患者护理记录单</h3>
|
||||
<h2 class="title">
|
||||
{{ userStore.hospitalName }}
|
||||
</h2>
|
||||
<h3 class="subtitle">
|
||||
患者护理记录单
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<el-form :model="state.formData" label-position="top" class="nursing-form">
|
||||
<el-form
|
||||
:model="state.formData"
|
||||
label-position="top"
|
||||
class="nursing-form"
|
||||
>
|
||||
<!-- 患者基本信息 -->
|
||||
<div class="patient-info">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="2">
|
||||
<el-form-item label="姓名">
|
||||
<el-input v-model="state.formData.name" placeholder="请输入姓名"></el-input>
|
||||
<el-input
|
||||
v-model="state.formData.name"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<el-form-item label="年龄">
|
||||
<el-input v-model="state.formData.age" placeholder="请输入年龄"></el-input>
|
||||
<el-input
|
||||
v-model="state.formData.age"
|
||||
placeholder="请输入年龄"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="性别">
|
||||
<el-select v-model="state.formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="male"></el-option>
|
||||
<el-option label="女" value="female"></el-option>
|
||||
<el-select
|
||||
v-model="state.formData.gender"
|
||||
placeholder="请选择性别"
|
||||
>
|
||||
<el-option
|
||||
label="男"
|
||||
value="male"
|
||||
/>
|
||||
<el-option
|
||||
label="女"
|
||||
value="female"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="病区">
|
||||
<el-input v-model="state.formData.ward" placeholder="请输入病区"></el-input>
|
||||
<el-input
|
||||
v-model="state.formData.ward"
|
||||
placeholder="请输入病区"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="床号">
|
||||
<el-input v-model="state.formData.bedNumber" placeholder="请输入床号"></el-input>
|
||||
<el-input
|
||||
v-model="state.formData.bedNumber"
|
||||
placeholder="请输入床号"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
@@ -47,12 +76,15 @@
|
||||
<el-input
|
||||
v-model="state.formData.hospitalNumber"
|
||||
placeholder="请输入住院号"
|
||||
></el-input>
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="入院诊断">
|
||||
<el-input v-model="state.formData.diagnosis" placeholder="请输入入院诊断"></el-input>
|
||||
<el-input
|
||||
v-model="state.formData.diagnosis"
|
||||
placeholder="请输入入院诊断"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -60,8 +92,15 @@
|
||||
|
||||
<!-- 基本信息记录表格 -->
|
||||
<div class="vital-signs-table">
|
||||
<el-table :data="state.formData.vitalSigns" border style="width: 100%">
|
||||
<el-table-column label="日期" width="100">
|
||||
<el-table
|
||||
:data="state.formData.vitalSigns"
|
||||
border
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column
|
||||
label="日期"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-date-picker
|
||||
v-model="scope.row.date"
|
||||
@@ -70,10 +109,13 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 100%"
|
||||
></el-date-picker>
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="时间" width="100">
|
||||
<el-table-column
|
||||
label="时间"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-time-picker
|
||||
v-model="scope.row.time"
|
||||
@@ -81,133 +123,290 @@
|
||||
format="HH:mm"
|
||||
value-format="HH:mm"
|
||||
style="width: 100%"
|
||||
></el-time-picker>
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="基本信息">
|
||||
<el-table-column label="意识" width="80">
|
||||
<el-table-column
|
||||
label="意识"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-select v-model="scope.row.consciousness" placeholder="选择">
|
||||
<el-option label="清醒" value="清醒"></el-option>
|
||||
<el-option label="嗜睡" value="嗜睡"></el-option>
|
||||
<el-option label="昏迷" value="昏迷"></el-option>
|
||||
<el-select
|
||||
v-model="scope.row.consciousness"
|
||||
placeholder="选择"
|
||||
>
|
||||
<el-option
|
||||
label="清醒"
|
||||
value="清醒"
|
||||
/>
|
||||
<el-option
|
||||
label="嗜睡"
|
||||
value="嗜睡"
|
||||
/>
|
||||
<el-option
|
||||
label="昏迷"
|
||||
value="昏迷"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="体温℃" width="80">
|
||||
<el-table-column
|
||||
label="体温℃"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.temperature" placeholder="体温"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.temperature"
|
||||
placeholder="体温"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="心率次/分" width="100">
|
||||
<el-table-column
|
||||
label="心率次/分"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.heartRate" placeholder="心率"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.heartRate"
|
||||
placeholder="心率"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="脉搏次/分" width="100">
|
||||
<el-table-column
|
||||
label="脉搏次/分"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.heartRate" placeholder="心率"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.heartRate"
|
||||
placeholder="心率"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="呼吸次/分" width="100">
|
||||
<el-table-column
|
||||
label="呼吸次/分"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.respiratoryRate" placeholder="呼吸"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.respiratoryRate"
|
||||
placeholder="呼吸"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="血压mmHg" width="120">
|
||||
<el-table-column
|
||||
label="血压mmHg"
|
||||
width="120"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.bloodPressure" placeholder="血压"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.bloodPressure"
|
||||
placeholder="血压"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="血氧饱和度" width="120">
|
||||
<el-table-column
|
||||
label="血氧饱和度"
|
||||
width="120"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.bloodPressure" placeholder="血压"></el-input>
|
||||
<el-input
|
||||
v-model="scope.row.bloodPressure"
|
||||
placeholder="血压"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="氧疗L/min" width="200">
|
||||
<el-table-column
|
||||
label="氧疗L/min"
|
||||
width="200"
|
||||
>
|
||||
<el-table-column label="方式">
|
||||
<template #default="scope">
|
||||
<el-select v-model="scope.row.intake" placeholder="选择">
|
||||
<el-option label="鼻导管" value="鼻导管"></el-option>
|
||||
<el-option label="面罩" value="面罩"></el-option>
|
||||
<el-option label="无" value="无"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="流量" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="入量" width="200">
|
||||
<el-table-column label="名称" >
|
||||
<template #default="scope">
|
||||
<el-select v-model="scope.row.intake" placeholder="选择">
|
||||
<el-option label="鼻导管" value="鼻导管"></el-option>
|
||||
<el-option label="面罩" value="面罩"></el-option>
|
||||
<el-option label="无" value="无"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="ml" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="途径" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="出量" width="200">
|
||||
<el-table-column label="名称" >
|
||||
<template #default="scope">
|
||||
<el-select v-model="scope.row.intake" placeholder="选择">
|
||||
<el-option label="鼻导管" value="鼻导管"></el-option>
|
||||
<el-option label="面罩" value="面罩"></el-option>
|
||||
<el-option label="无" value="无"></el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="ml" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="皮肤情况" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="管路护理" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="病情与措施" width="80">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.flowRate" placeholder="流量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="护士签名" width="100">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.nurseSignature" placeholder="签名"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button type="danger" size="small" @click="removeVitalSign(scope.$index)"
|
||||
>删除</el-button
|
||||
<el-select
|
||||
v-model="scope.row.intake"
|
||||
placeholder="选择"
|
||||
>
|
||||
<el-option
|
||||
label="鼻导管"
|
||||
value="鼻导管"
|
||||
/>
|
||||
<el-option
|
||||
label="面罩"
|
||||
value="面罩"
|
||||
/>
|
||||
<el-option
|
||||
label="无"
|
||||
value="无"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="流量"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="入量"
|
||||
width="200"
|
||||
>
|
||||
<el-table-column label="名称">
|
||||
<template #default="scope">
|
||||
<el-select
|
||||
v-model="scope.row.intake"
|
||||
placeholder="选择"
|
||||
>
|
||||
<el-option
|
||||
label="鼻导管"
|
||||
value="鼻导管"
|
||||
/>
|
||||
<el-option
|
||||
label="面罩"
|
||||
value="面罩"
|
||||
/>
|
||||
<el-option
|
||||
label="无"
|
||||
value="无"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="ml"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="途径"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="出量"
|
||||
width="200"
|
||||
>
|
||||
<el-table-column label="名称">
|
||||
<template #default="scope">
|
||||
<el-select
|
||||
v-model="scope.row.intake"
|
||||
placeholder="选择"
|
||||
>
|
||||
<el-option
|
||||
label="鼻导管"
|
||||
value="鼻导管"
|
||||
/>
|
||||
<el-option
|
||||
label="面罩"
|
||||
value="面罩"
|
||||
/>
|
||||
<el-option
|
||||
label="无"
|
||||
value="无"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="ml"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="皮肤情况"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="管路护理"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="病情与措施"
|
||||
width="80"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.flowRate"
|
||||
placeholder="流量"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="护士签名"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-input
|
||||
v-model="scope.row.nurseSignature"
|
||||
placeholder="签名"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
width="120"
|
||||
fixed="right"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="removeVitalSign(scope.$index)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="add-row">
|
||||
<el-button type="primary" @click="addVitalSign">添加记录</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="addVitalSign"
|
||||
>
|
||||
添加记录
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -330,7 +529,7 @@ onMounted(() => {
|
||||
});
|
||||
const submit = () => {
|
||||
// ElMessage.success('提交成功');
|
||||
emits('submitOk', state.formData);
|
||||
emits('submitOk', state.value.formData);
|
||||
};
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
|
||||
@@ -5,8 +5,12 @@
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
<h2 style="text-align: center">门诊病历</h2>
|
||||
<h2 style="text-align: center">
|
||||
{{ userStore.hospitalName }}
|
||||
</h2>
|
||||
<h2 style="text-align: center">
|
||||
门诊病历
|
||||
</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
@@ -18,35 +22,73 @@
|
||||
label-align="left"
|
||||
class="medical-full-form"
|
||||
>
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<h4 class="section-title">
|
||||
基础信息
|
||||
</h4>
|
||||
<!-- 1. 基础信息:单行自适应排列 -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<el-form-item label="身高" prop="height" class="row-item">
|
||||
<el-form-item
|
||||
label="身高"
|
||||
prop="height"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.height" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.height"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
<span class="unit">cm</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="体重" prop="weight" class="row-item">
|
||||
<el-form-item
|
||||
label="体重"
|
||||
prop="weight"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.weight" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.weight"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
<span class="unit">kg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="体温" prop="temperature" class="row-item">
|
||||
<el-form-item
|
||||
label="体温"
|
||||
prop="temperature"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.temperature" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.temperature"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
<span class="unit">℃</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="脉搏" prop="pulse" class="row-item">
|
||||
<el-form-item
|
||||
label="脉搏"
|
||||
prop="pulse"
|
||||
class="row-item"
|
||||
>
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.pulse" type="text" placeholder="请输入" />
|
||||
<el-input
|
||||
v-model="formData.pulse"
|
||||
type="text"
|
||||
placeholder="请输入"
|
||||
/>
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="发病日期" prop="onsetDate" class="row-item">
|
||||
<el-form-item
|
||||
label="发病日期"
|
||||
prop="onsetDate"
|
||||
class="row-item"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="formData.onsetDate"
|
||||
type="date"
|
||||
@@ -58,11 +100,17 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<h4 class="section-title">
|
||||
病史信息
|
||||
</h4>
|
||||
<!-- 2. 病史信息:单行自适应排列(新增调整) -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<el-form-item label="现病史" prop="presentIllness" class="row-item history-item">
|
||||
<el-form-item
|
||||
label="现病史"
|
||||
prop="presentIllness"
|
||||
class="row-item history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
@@ -70,10 +118,23 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="既往史" prop="pastIllness" class="row-item history-item">
|
||||
<el-input v-model="formData.pastIllness" type="textarea" placeholder="无" autosize />
|
||||
<el-form-item
|
||||
label="既往史"
|
||||
prop="pastIllness"
|
||||
class="row-item history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.pastIllness"
|
||||
type="textarea"
|
||||
placeholder="无"
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="个人史" prop="personalHistory" class="row-item history-item">
|
||||
<el-form-item
|
||||
label="个人史"
|
||||
prop="personalHistory"
|
||||
class="row-item history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
@@ -81,7 +142,11 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="过敏史" prop="allergyHistory" class="row-item history-item">
|
||||
<el-form-item
|
||||
label="过敏史"
|
||||
prop="allergyHistory"
|
||||
class="row-item history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.allergyHistory"
|
||||
type="textarea"
|
||||
@@ -89,7 +154,11 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="家族史" prop="familyHistory" class="row-item history-item">
|
||||
<el-form-item
|
||||
label="家族史"
|
||||
prop="familyHistory"
|
||||
class="row-item history-item"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
@@ -99,9 +168,15 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<h4 class="section-title">主诉、查体(治疗)、处置、辅助检查</h4>
|
||||
<h4 class="section-title">
|
||||
主诉、查体(治疗)、处置、辅助检查
|
||||
</h4>
|
||||
<!-- 3. 主诉(必填) -->
|
||||
<el-form-item label="主诉" prop="complaint" class="required form-item-single">
|
||||
<el-form-item
|
||||
label="主诉"
|
||||
prop="complaint"
|
||||
class="required form-item-single"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
@@ -111,7 +186,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 4. 查体、处理、辅助检查 -->
|
||||
<el-form-item label="查体(治疗)" prop="physicalExam" class="form-item-single">
|
||||
<el-form-item
|
||||
label="查体(治疗)"
|
||||
prop="physicalExam"
|
||||
class="form-item-single"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.physicalExam"
|
||||
type="textarea"
|
||||
@@ -121,7 +200,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="处置" prop="treatment" class="form-item-single">
|
||||
<el-form-item
|
||||
label="处置"
|
||||
prop="treatment"
|
||||
class="form-item-single"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.treatment"
|
||||
type="textarea"
|
||||
@@ -131,7 +214,11 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="辅助检查" prop="auxiliaryExam" class="form-item-single">
|
||||
<el-form-item
|
||||
label="辅助检查"
|
||||
prop="auxiliaryExam"
|
||||
class="form-item-single"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.auxiliaryExam"
|
||||
type="textarea"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user