Compare commits
632 Commits
feature/pa
...
login-page
| Author | SHA1 | Date | |
|---|---|---|---|
| e13b7669f2 | |||
| b8fd0cd28f | |||
| 6ed11186d4 | |||
| f8c82f6f13 | |||
| 889023bbb1 | |||
| be97d820bd | |||
| 9e306ab949 | |||
| aed0d157f1 | |||
| b7ab261549 | |||
| 3a822d7d33 | |||
| f8cb159203 | |||
| e33c956306 | |||
| 9ae46c9957 | |||
| 7d740ae559 | |||
| 571de29199 | |||
| a57933b42c | |||
| 1067ad68ec | |||
| 257fd6e92c | |||
| de4e0c4de6 | |||
| ecea562ed8 | |||
| 47d6deb1f6 | |||
| 5875c8416f | |||
| f5f64038c2 | |||
| f85da30008 | |||
| ba81d9be29 | |||
| ff99a1dfb7 | |||
| 3ad13aba00 | |||
| 106e32189a | |||
| 10733e0240 | |||
| 2822ee9920 | |||
| 7e2b37ef85 | |||
| 8c4761f078 | |||
| ae3a8de5a2 | |||
| 2a065d7c6d | |||
| 8d31f21547 | |||
| d2c350f6d1 | |||
| 0cce1559f3 | |||
| d2a6ca1c8a | |||
| ba63f3250d | |||
| 5d9b136898 | |||
| cd84e321e2 | |||
| 549fb8a5c4 | |||
| c9e8779418 | |||
| ae5ca4497e | |||
| eea408944c | |||
| 2b2b2f3ca7 | |||
| 131a8caceb | |||
| 40d46bfc6c | |||
| c5e7182978 | |||
| 678d15519a | |||
| 0ca940305b | |||
| c338af78bc | |||
| 39c6420921 | |||
| 33200a38c3 | |||
| 6b08457f6c | |||
| ab86f198e9 | |||
| 1e3e5ea830 | |||
| b6b0529fc0 | |||
| 9cbd590ec0 | |||
| 2c996dae05 | |||
| b468bf197f | |||
| a85946fad0 | |||
| eb41537083 | |||
| 761e712c51 | |||
| 2bb8081af4 | |||
| 6dffa159ef | |||
| c5298f2eec | |||
| 41b5ba41b0 | |||
| 6ba71ef342 | |||
| 73eb480138 | |||
| a78db667e6 | |||
| 9c97943076 | |||
| cd48729a4b | |||
| 4ba7269e6f | |||
| bc6b0ef9ba | |||
| bc48403573 | |||
| f242420f3a | |||
| 6cecb167ea | |||
| 2ae16dce5c | |||
| 28d48ec390 | |||
| 825b591c67 | |||
| 0778aabadd | |||
| 7a3b01c4e6 | |||
| 18a4740380 | |||
| 303f74c176 | |||
| 5bf1767e6e | |||
| ead9ebb012 | |||
| ace758617f | |||
| e259f53bc2 | |||
| 4ac1eeab24 | |||
| f298ead5bb | |||
| 68ab611223 | |||
| 4f220563a1 | |||
| 567cf4b15a | |||
| 911f4971f3 | |||
| 7cdb840b5a | |||
| 4b89007ea6 | |||
| 8396fa724c | |||
| 8f4646501d | |||
| cadf4acd85 | |||
| 759c829c4d | |||
| d9d9ea2733 | |||
| bdd3b9cc3b | |||
| b49480ef7b | |||
| 46bfecfdc2 | |||
| a59df85c64 | |||
| 17420e5351 | |||
| c0336eb26a | |||
| b394d976a0 | |||
| 48d7a9ba78 | |||
| 01ac9f4e99 | |||
| 376005df54 | |||
| 5777290bf2 | |||
| 59dbb5443c | |||
| 70d1ad980e | |||
| cfe1b803ec | |||
| 5fcdba486e | |||
| 4aadbec7cc | |||
| 9e473d2116 | |||
| 23226b2df0 | |||
| afe542a6a0 | |||
| 8a80a1de3c | |||
| d2bad04985 | |||
| 8311b7c783 | |||
| 182e547ffe | |||
| 98281b6b3a | |||
| 4883a55ce8 | |||
| e330724811 | |||
| dd8f5afaa1 | |||
| 8940aec409 | |||
| b1d769e215 | |||
| 6d703cf325 | |||
| e4e76db5d8 | |||
| 5ebf478c35 | |||
| 120e12c246 | |||
| 8805564acc | |||
| 35b4fafd24 | |||
| 2422bd47b2 | |||
| 06deeb01ce | |||
| cf4d181c02 | |||
| 14cf740b8c | |||
| 9eab67502f | |||
| 2eb9ef930a | |||
| 59c911b639 | |||
| 737dd8d9b1 | |||
| 4f3c5640b5 | |||
| d8de5bfe8b | |||
| 2f67f0ae0b | |||
| d1e01fb203 | |||
| a719dfd6dc | |||
| b0de026701 | |||
| 2d98e91e02 | |||
| 64ac472716 | |||
| bacba43fd2 | |||
| d0f418adc4 | |||
| 688fd03a92 | |||
| ae22b93ac7 | |||
| d499b524f7 | |||
| 6bdcd4e0e6 | |||
| e5b0436a27 | |||
| 56c74c37f2 | |||
| 547918ddaa | |||
| bdfbca6fc0 | |||
| 6ef3718fbc | |||
| 268919bda5 | |||
| d81ae173e2 | |||
| 001455303e | |||
| 36f07fc430 | |||
| 7b5ad7970c | |||
| bc20f1e970 | |||
| 0d49a8e9d0 | |||
| 006a59122b | |||
| 2d17152c43 | |||
| 87dc390eaf | |||
| caf0f98a0e | |||
| c3afc62cb1 | |||
| a6c357e77a | |||
| 85530ad527 | |||
| a125eec1d3 | |||
| 7e4dc24ca9 | |||
| 01290836dc | |||
| 20a4a91444 | |||
| fa6fd67157 | |||
| 5988856e23 | |||
| fcdc765e69 | |||
| 18fc33ad00 | |||
| 500126f019 | |||
| a2abb79379 | |||
| fecb9692b3 | |||
| e7cd51ae30 | |||
| 14d38960b8 | |||
| 7bc18f6469 | |||
| 4dd7acb53a | |||
| 89c03c417d | |||
| 2320ab0960 | |||
| 61b73497a6 | |||
| 95604e68df | |||
| cb3bf2389c | |||
| 44ae7f40c1 | |||
| 206ffaa9b9 | |||
| da7912ea1a | |||
| ebdad86950 | |||
| ae80432b23 | |||
| ed84583bac | |||
| 21009db39b | |||
| 236a69cdd0 | |||
| 4a8fe7df04 | |||
| 7d48edd72b | |||
| 2769384b9f | |||
| 2d0b000242 | |||
| abeed6f4c6 | |||
| 3c39e4395e | |||
| 70213fc40d | |||
| f5b51e9d2c | |||
| c8fef47035 | |||
| bd75592478 | |||
| 98e10f6767 | |||
| e1f4be6b8b | |||
| c97712027d | |||
| 6c47267388 | |||
| 26ae59d300 | |||
| fed2710f5c | |||
| 7b93976dbf | |||
| 2191dbc899 | |||
| 498ff78ae2 | |||
| d97800841d | |||
| ecc9dfe5cf | |||
| cf2e3c6351 | |||
| a11bb90f20 | |||
| 9c9b45f96a | |||
| 75e4c51846 | |||
| ce4f1e1ed1 | |||
| 334a8bf58c | |||
| 0a649e65c2 | |||
| bbd531326a | |||
| 14cba100e4 | |||
| 83deb7c465 | |||
| cc2dc19a3d | |||
| 5d07a64d3b | |||
| 8781bcf586 | |||
| 5fd558627f | |||
| 3db73b9509 | |||
| e6efbd0d20 | |||
| cfba5ed3ad | |||
| 29a18967c9 | |||
| 96a23ebbcf | |||
| 07589c8452 | |||
| 9b7b07397b | |||
| 9894aafcc1 | |||
| cf4498db3e | |||
| f09404d89b | |||
| b5ef3908e8 | |||
| 1e7171cb23 | |||
| 658f1666be | |||
| 83d43d2f15 | |||
| be1e86601a | |||
| 476d3f6587 | |||
| 12cc256741 | |||
| 258fe9f356 | |||
| add1a9bae3 | |||
| 7cfa2cc415 | |||
| 0d12b0bfa1 | |||
| 4d61c136ff | |||
| 31959f9cbf | |||
| 4593e3240e | |||
| e61ba7f25e | |||
| ef1f8e98e7 | |||
| 28837d56a6 | |||
| 1481a0ffd4 | |||
| e231debd6a | |||
| e01ed4dc55 | |||
| d97347e720 | |||
| e066cb7850 | |||
| 2c1ae2ba1f | |||
| 092f0d41e8 | |||
| 1457c37fb5 | |||
| 74e43e1157 | |||
| 77252eb351 | |||
| 916e0f9c0f | |||
| 0230134320 | |||
| 0d36482e6d | |||
| 7b9de7fffc | |||
| 431eb70c66 | |||
| 119408bcf7 | |||
| 07c5ba0884 | |||
| 70d7746f83 | |||
| c3ebf69caa | |||
| 02014f4b21 | |||
| c11d9f3fa0 | |||
| 9f0b3da44c | |||
| 60b101f2bb | |||
| 101eca6093 | |||
| 2bb30f16b3 | |||
| 740d7317d4 | |||
| 198d9bf776 | |||
| abfaba97b0 | |||
| dc8f5eb36c | |||
| 17341ddbee | |||
| ff020f5a35 | |||
| bcb4f3cf56 | |||
| 3f80d30e34 | |||
| c402fedde3 | |||
| c4b7953692 | |||
| 9b22d97696 | |||
| ac5bb6ab7e | |||
| 855615d1ff | |||
| 99d00bafa8 | |||
| d4dd453308 | |||
| dabe8ba00e | |||
| 0307a0852a | |||
| 17ce3dd481 | |||
| ea95821644 | |||
| 3341787481 | |||
| 2c46fd77bd | |||
| 5db0abb42e | |||
| 07553918d0 | |||
| 05b878ddcd | |||
| c32f0ea95b | |||
| 021ce61aca | |||
| 3387c37e6a | |||
| 7463eb6425 | |||
| 9bc65559a1 | |||
| 0270e41c4a | |||
| 52f0f576ac | |||
| b721df986a | |||
| bd6fa847fa | |||
| a98a0592ea | |||
| a1a73bebfa | |||
| 2a3a59737c | |||
| 3b884de222 | |||
| 3ae4aa04e2 | |||
| 779c29fe6c | |||
| 51e7ebf4d3 | |||
| ff9a59a759 | |||
| 82dc8255c1 | |||
| a44a441203 | |||
| 3274d6b5b0 | |||
| 1f806432d1 | |||
| 43a9d48930 | |||
| 2d7f75d90c | |||
| 46227ebd48 | |||
| ad9ee653df | |||
| 2296944130 | |||
| df1bcf4654 | |||
| 263a8323de | |||
| 691567904b | |||
| fc83ed140f | |||
| a6153323dd | |||
| 73c3ce6c4f | |||
| c69e21bd62 | |||
| d57d146689 | |||
| 23b0512e9c | |||
| 9afb89b82b | |||
| d1fa642b83 | |||
| 21cef66d34 | |||
| 805ac57f02 | |||
| d840353041 | |||
| f2926288fa | |||
| 581303f794 | |||
| c66e1ae3a9 | |||
| c37bbdaf56 | |||
| 2e5164fe3c | |||
| 8e8dac953c | |||
| 69ba80fd81 | |||
| 5bb4c67981 | |||
| c1347bd394 | |||
| 60dff3a432 | |||
| dc42b429cf | |||
| 399db8c601 | |||
| b746d33dd2 | |||
| b60bdb4b9d | |||
| 5387c5d882 | |||
| 946bd59ffb | |||
| 90a626c601 | |||
| 60d00f960c | |||
| a8ed4b0000 | |||
| f5c85c6cfc | |||
| a017104170 | |||
| 67e54f2a13 | |||
| bf14ddd7eb | |||
| 6d43d3af33 | |||
| 5a7e7df5c5 | |||
| c7e25414bf | |||
| ec47e67b21 | |||
| 899c708482 | |||
| f3ede6c5f0 | |||
| ce57fe029e | |||
| 3b016972b0 | |||
| 6bcc71ab8e | |||
| 35c459895e | |||
| 01a406dcef | |||
| 46f30b73d1 | |||
| 1155b23859 | |||
| 6b890e638c | |||
| 8994bf293b | |||
| 6908a84e25 | |||
| 1db6ff1c4e | |||
| 4b5e42e7c9 | |||
| a9e132a581 | |||
| ea2b5eec18 | |||
| 82c3801cc6 | |||
| f3e01dcfc1 | |||
| 0ea96ff327 | |||
| 3e08b87143 | |||
| 7b557900b5 | |||
| e2f5538da9 | |||
| 38e3b08b5b | |||
| ce3cb31a3c | |||
| 4b601bda42 | |||
| d04868e8b7 | |||
| 1541b399ba | |||
| 1fb6d0e872 | |||
| ad612a0c82 | |||
| 84a7cd4ddc | |||
| 0d73bbde38 | |||
| ab6f1c6865 | |||
| e66779ecb3 | |||
| 0ae6f030be | |||
| c16b7e82c8 | |||
| 6eeb714434 | |||
| 62e15f69ea | |||
| 38310cb8b6 | |||
| 5731b47703 | |||
| ad13d4b11f | |||
| e2aeba236f | |||
| 8ad305a271 | |||
| ebf2443425 | |||
| b060c0e53c | |||
| 79e79e56e1 | |||
| 90b4337d48 | |||
| 8344c23453 | |||
| 803e3f3f77 | |||
| 59fe0d3b2f | |||
| f2ac497c48 | |||
| dcfb0e08cb | |||
| b61340b451 | |||
| dfda671a33 | |||
| b98ab6cebe | |||
| 024a251cf8 | |||
| e983ba5457 | |||
| ba3cede3d8 | |||
| 9239beba33 | |||
| 1c15aa0813 | |||
| 4553ead247 | |||
| 61960380e8 | |||
| 31b1cf15c4 | |||
| 9aaa481380 | |||
| 36c38de600 | |||
| a6d213b07c | |||
| 4a2a9fa1c0 | |||
| 3608442c40 | |||
| 886a81a19b | |||
| b729266c6a | |||
| 3845400bfa | |||
| 5f8594c3ac | |||
| 73b1521523 | |||
| 36937f229f | |||
| 1866410a23 | |||
| 8aaf8b8ab4 | |||
| 615b70a494 | |||
| 201b0eaa1a | |||
| adbe2a402f | |||
| b9f582e383 | |||
| c56013d9ea | |||
| c20220da1d | |||
| 7c9217dbaa | |||
| 650fe2cbdb | |||
| 46ee90bc8d | |||
| 9be4b2a5f1 | |||
| dfff01a8ee | |||
| 192ed6dfbf | |||
| d974a06c10 | |||
| bbd4daa4f6 | |||
| b405f2403e | |||
| f31b8a0d12 | |||
| ee21385d16 | |||
| b03ed166ed | |||
| 317efcdb2a | |||
| 3088476b67 | |||
| 1253266e23 | |||
| 84d7cf5658 | |||
| bc5e72bc77 | |||
| 4af2374189 | |||
| 88f4d1f195 | |||
| 8b03d58fa2 | |||
| d7742c86df | |||
| 2c42d31ea5 | |||
| 28f4c8077c | |||
| 57d567a8f5 | |||
| b22ef98056 | |||
| 438484699d | |||
| 389c5cd7cf | |||
| 7a6a2454a0 | |||
| 9e439827a5 | |||
| f181229238 | |||
| 857320d5d3 | |||
| 524610ed8a | |||
| c4ea948c73 | |||
| f08a45af4f | |||
| 172ecc6263 | |||
| 804f25d245 | |||
| 5418e008d6 | |||
| 635ead98ce | |||
| cad95183d5 | |||
| a0827b825a | |||
| 8555bb7f39 | |||
| 8e0ea9bf23 | |||
| f3a1e96d86 | |||
| 545b867fc1 | |||
| 756bed1e72 | |||
| 394aba4ba1 | |||
| 6e15440832 | |||
| 03b1d6da82 | |||
| 74e223270e | |||
| abe096d5b5 | |||
| aee194c49a | |||
| a084105110 | |||
| d9e8618848 | |||
| 121ce5c789 | |||
| d88c7f8a70 | |||
| 5b30dc34bb | |||
| eaaa448e3f | |||
| 56ca4e7305 | |||
| a8a160c1cd | |||
| 484a67fbd7 | |||
| f3062a3cad | |||
| d55ff3f838 | |||
| 33b695729a | |||
| be1053eb70 | |||
| cba70f810e | |||
| 23df1cc8fc | |||
| e9c75fdba6 | |||
| dbb52f85bf | |||
| 2b013e0e48 | |||
| 17357934fb | |||
| bd9cf612ff | |||
| 5452dc7f1f | |||
| d5b6e01748 | |||
| 66eb9ad99d | |||
| 579b158b04 | |||
| 5b2d025ee1 | |||
| 064fbc0113 | |||
| c3250853c5 | |||
| 73758b266f | |||
| 8d4c408e95 | |||
| db73552c90 | |||
| 9955d29d76 | |||
| 19a0e94828 | |||
| 5a0ee17710 | |||
| 4685f7ed60 | |||
| a93c4fa051 | |||
| e9e4941bf9 | |||
| 52440f9f66 | |||
| f3a30b5e0e | |||
| 2ac8c31341 | |||
| 9b4c13f596 | |||
| 8da9e7a56f | |||
| deb9848fb7 | |||
| da6bf03ad8 | |||
| d734ec5f72 | |||
| d79ff8fc01 | |||
| 385bbaa82b | |||
| 4520daabe9 | |||
| c7b73031c8 | |||
| 9629a9ee72 | |||
| 5830166b7b | |||
| 30b24c2e7a | |||
| a6c2aa38c4 | |||
| 9d62915ead | |||
| 3c44e98401 | |||
| 0b2c96e212 | |||
| ca31caa229 | |||
| d6238b7fc0 | |||
| 673df55bfe | |||
| 1aa240b296 | |||
| be1ffd4cee | |||
| c1ee31e729 | |||
| 61458da6eb | |||
| 552966a087 | |||
| 891d346ad1 | |||
| 762cdc41e5 | |||
| f666675c47 | |||
| c75f26fcf7 | |||
| 4cd04a0671 | |||
| e7e0d68dcd | |||
| f7cfe15de3 | |||
| 2c2715acf0 | |||
| 7f7ee30ff3 | |||
| 5687f333aa | |||
| c1c36543e7 | |||
| f69d4595a9 | |||
| c1749e383c | |||
| 2107de50d7 | |||
| 36166726ed | |||
| 6dcbdfaf94 | |||
| 90461ee459 | |||
| 97fde5d6b9 | |||
| f7efbe28c0 | |||
| c1f01ad245 | |||
| 51c750a712 | |||
| a37e60ad9f | |||
| 4bf8e47206 | |||
| 24596c388d | |||
| 68806a8d60 | |||
| f39b829d5d | |||
| b0a301564b | |||
| 0e4a6c792b | |||
| af019cb962 | |||
| d06b7ca974 | |||
| d1b933fc2d | |||
| 5fc5dd07a7 | |||
| cbecaeaa15 | |||
| 329bca0f9a | |||
| ad8134c120 | |||
| a4a2b45911 | |||
| 6881329df6 | |||
| 0147e0034d | |||
| f1fde49ea8 | |||
| 18de3e1fbe | |||
| ded7f094e5 | |||
| 3597eff6c8 | |||
| 55f751a22e | |||
| 6f8929037e | |||
| 6fffab32a4 | |||
| f40c5a53a4 | |||
| 01d4c7bc0b | |||
| a1b8ca48cc | |||
| 91a547c570 | |||
| 53a8809f64 | |||
| f763db279d | |||
| 0c7b051d75 | |||
| b9981b5fb1 |
13
angular.json
13
angular.json
@ -35,8 +35,19 @@
|
||||
"styles": [
|
||||
"node_modules/perfect-scrollbar/css/perfect-scrollbar.css",
|
||||
"node_modules/quill/dist/quill.snow.css",
|
||||
"src/styles.less"
|
||||
"src/styles.less",
|
||||
{
|
||||
"input": "src/styles/default.less",
|
||||
"bundleName": "default",
|
||||
"inject": false
|
||||
},
|
||||
{
|
||||
"input": "src/styles/compact.less",
|
||||
"bundleName": "compact",
|
||||
"inject": false
|
||||
}
|
||||
],
|
||||
|
||||
"scripts": [
|
||||
"node_modules/quill/dist/quill.min.js",
|
||||
"node_modules/perfect-scrollbar/dist/perfect-scrollbar.js",
|
||||
|
||||
40
package-lock.json
generated
40
package-lock.json
generated
@ -5172,6 +5172,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"css-line-break": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz",
|
||||
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
|
||||
"requires": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-6.2.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-6.2.0.tgz",
|
||||
@ -8113,6 +8121,15 @@
|
||||
"integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=",
|
||||
"dev": true
|
||||
},
|
||||
"html2canvas": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
||||
"requires": {
|
||||
"css-line-break": "^2.1.0",
|
||||
"text-segmentation": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"htmlparser2": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1636640940074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz",
|
||||
@ -22662,6 +22679,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"text-segmentation": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz",
|
||||
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
|
||||
"requires": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"text-table": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
|
||||
@ -23211,6 +23236,21 @@
|
||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
|
||||
"dev": true
|
||||
},
|
||||
"utrie": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz",
|
||||
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
|
||||
"requires": {
|
||||
"base64-arraybuffer": "^1.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"base64-arraybuffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
|
||||
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz",
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "tms-obc-web",
|
||||
"version": "0.0.0",
|
||||
"description": "运营后台-WEB",
|
||||
"description": "运营后台-WEB",
|
||||
"author": "cipchk <cipchk@qq.com>",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -12,6 +12,7 @@
|
||||
"ng-high-memory": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng",
|
||||
"ng": "ng",
|
||||
"start": "ng s -o --port 4202 --host 0.0.0.0",
|
||||
"startIp": "ng serve -o --port 4202 --host 172.29.9.71 --open",
|
||||
"hmr": "ng s -o --hmr",
|
||||
"build": "npm run ng-high-memory build --",
|
||||
"build:dev": "npm run build -- -c dev",
|
||||
@ -56,6 +57,7 @@
|
||||
"@swimlane/ngx-charts": "^18.0.1",
|
||||
"ajv": "^8.6.2",
|
||||
"file-saver": "^2.0.5",
|
||||
"html2canvas": "^1.4.1",
|
||||
"js-base64": "^3.6.1",
|
||||
"masonry-layout": "^4.2.2",
|
||||
"ng-gallery": "^5.0.0",
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-18 09:51:21
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-17 15:57:11
|
||||
* @LastEditTime : 2022-03-23 15:21:39
|
||||
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -20,7 +20,7 @@ module.exports = {
|
||||
// }
|
||||
'//api': {
|
||||
target: {
|
||||
host: 'tms-api-dev.eascs.com',
|
||||
host: 'tms-api-test.eascs.com',
|
||||
protocol: 'https:',
|
||||
port: 443
|
||||
},
|
||||
|
||||
@ -5,6 +5,7 @@ import { environment } from '@env/environment';
|
||||
import { NzIconService } from 'ng-zorro-antd/icon';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { VERSION as VERSION_ZORRO } from 'ng-zorro-antd/version';
|
||||
import { ThemeService } from './theme.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
@ -17,7 +18,8 @@ export class AppComponent implements OnInit {
|
||||
private router: Router,
|
||||
private titleSrv: TitleService,
|
||||
private modalSrv: NzModalService,
|
||||
private iconService: NzIconService
|
||||
private iconService: NzIconService,
|
||||
private themeService: ThemeService
|
||||
) {
|
||||
renderer.setAttribute(el.nativeElement, 'ng-alain-version', VERSION_ALAIN.full);
|
||||
renderer.setAttribute(el.nativeElement, 'ng-zorro-version', VERSION_ZORRO.full);
|
||||
@ -47,5 +49,15 @@ export class AppComponent implements OnInit {
|
||||
this.modalSrv.closeAll();
|
||||
}
|
||||
});
|
||||
// 适配放大150%的屏幕
|
||||
const screen: any = window.screen
|
||||
var zoom = window.devicePixelRatio || screen.deviceXDPI / screen?.logicalXDPI;
|
||||
// console.log(zoom)
|
||||
if (document.body.clientWidth >= 1280) {
|
||||
if (zoom != 1 && zoom != 2 && zoom != 3) {
|
||||
this.themeService.toggleTheme().then();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,6 +34,7 @@ export class StartupService {
|
||||
private coreSrv: CoreService
|
||||
) {
|
||||
iconSrv.addIcon(...ICONS_AUTO, ...ICONS);
|
||||
this.settingService.setLayout('fixSiderbar', true);
|
||||
}
|
||||
|
||||
// TODO: 退出登录时需要清理用户信息
|
||||
@ -95,7 +96,9 @@ export class StartupService {
|
||||
// ACL:设置权限为全量
|
||||
this.aclService.setFull(false);
|
||||
// 初始化菜单
|
||||
this.menuService.add(menuData);
|
||||
if (menuData) {
|
||||
this.menuService.add(menuData);
|
||||
}
|
||||
// 设置页面标题的后缀
|
||||
this.titleService.default = '';
|
||||
this.titleService.suffix = appData.name;
|
||||
@ -134,12 +137,12 @@ export class StartupService {
|
||||
const userData = this.httpClient.post(this.userSrv.$api_get_user_by_token, {}).pipe(map((res: any) => res.data));
|
||||
|
||||
// 菜单数据
|
||||
// const menuData = this.httpClient
|
||||
// .post(this.coreSrv.$api_get_current_user_menus, {
|
||||
// appId: this.coreSrv.envSrv.getEnvironment().appId
|
||||
// })
|
||||
// .pipe(map((res: any) => res.data));
|
||||
const menuData = this.httpClient.get('assets/mocks/menu-data.json').pipe(map((res: any) => res.data.menu));
|
||||
const menuData = this.httpClient
|
||||
.post(this.coreSrv.$api_get_current_user_menus, {
|
||||
appId: this.coreSrv.envSrv.getEnvironment().appId
|
||||
})
|
||||
.pipe(map((res: any) => res.data));
|
||||
// const menuData = this.httpClient.get('assets/mocks/menu-data.json').pipe(map((res: any) => res.data.menu));
|
||||
|
||||
return zip(appData, userData, menuData);
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ const alainConfig: AlainConfig = {
|
||||
st: {
|
||||
req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } },
|
||||
res: { reName: { list: 'data.records', total: 'data.total' } },
|
||||
page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] },
|
||||
page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false },
|
||||
modal: { size: 'lg' }
|
||||
},
|
||||
sf: { button: { search: '查询' }, ui: { placeholder: '请输入' } },
|
||||
|
||||
126
src/app/layout/passport/a.scss
Normal file
126
src/app/layout/passport/a.scss
Normal file
@ -0,0 +1,126 @@
|
||||
body {
|
||||
background : radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
|
||||
height : 100vh;
|
||||
overflow : hidden;
|
||||
display : flex;
|
||||
font-family : 'Anton', sans-serif;
|
||||
justify-content: center;
|
||||
align-items : center;
|
||||
}
|
||||
|
||||
$shooting-time: 3000ms;
|
||||
|
||||
.night {
|
||||
position : relative;
|
||||
width : 100%;
|
||||
height : 100%;
|
||||
transform : rotateZ(45deg);
|
||||
// animation: sky 200000ms linear infinite;
|
||||
}
|
||||
|
||||
.shooting_star {
|
||||
position : absolute;
|
||||
left : 50%;
|
||||
top : 50%;
|
||||
// width: 100px;
|
||||
height : 2px;
|
||||
background : linear-gradient(-45deg, rgba(95, 145, 255, 1), rgba(0, 0, 255, 0));
|
||||
border-radius: 999px;
|
||||
filter : drop-shadow(0 0 6px rgba(105, 155, 255, 1));
|
||||
animation :
|
||||
tail $shooting-time ease-in-out infinite,
|
||||
shooting $shooting-time ease-in-out infinite;
|
||||
|
||||
&::before {
|
||||
content : '';
|
||||
position : absolute;
|
||||
top : calc(50% - 1px);
|
||||
right : 0;
|
||||
// width: 30px;
|
||||
height : 2px;
|
||||
background : linear-gradient(-45deg, rgba(0, 0, 255, 0), rgba(95, 145, 255, 1), rgba(0, 0, 255, 0));
|
||||
transform : translateX(50%) rotateZ(45deg);
|
||||
border-radius: 100%;
|
||||
animation : shining $shooting-time ease-in-out infinite;
|
||||
}
|
||||
|
||||
&::after {
|
||||
// CodePen Error
|
||||
// @extend .shooting_star::before;
|
||||
|
||||
content : '';
|
||||
position : absolute;
|
||||
top : calc(50% - 1px);
|
||||
right : 0;
|
||||
// width: 30px;
|
||||
height : 2px;
|
||||
background : linear-gradient(-45deg, rgba(0, 0, 255, 0), rgba(95, 145, 255, 1), rgba(0, 0, 255, 0));
|
||||
transform : translateX(50%) rotateZ(45deg);
|
||||
border-radius: 100%;
|
||||
animation : shining $shooting-time ease-in-out infinite;
|
||||
transform : translateX(50%) rotateZ(-45deg);
|
||||
}
|
||||
|
||||
@for $i from 1 through 20 {
|
||||
&:nth-child(#{$i}) {
|
||||
$delay : random(9999) + 0ms;
|
||||
top : calc(50% - #{random(400) - 200px});
|
||||
left : calc(50% - #{random(300) + 0px});
|
||||
// animation-delay: $delay;
|
||||
// opacity: random(50) / 100 + 0.5;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
// animation-delay: $delay;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tail {
|
||||
0% {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
30% {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shining {
|
||||
0% {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
50% {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shooting {
|
||||
0% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateX(300px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes sky {
|
||||
0% {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(45 + 360deg);
|
||||
}
|
||||
}
|
||||
64
src/app/layout/passport/d.scss
Normal file
64
src/app/layout/passport/d.scss
Normal file
@ -0,0 +1,64 @@
|
||||
$n: 20; // 流星數量
|
||||
|
||||
|
||||
$shadow: ();
|
||||
|
||||
|
||||
@for $i from 1 through $n {
|
||||
$v: random(90) + 9; // left
|
||||
$h: random(150) + 10; // top
|
||||
$d: random(70)/10 + 12; // 秒數
|
||||
|
||||
.meteor-#{$i} {
|
||||
position : fixed;
|
||||
top : $h + px;
|
||||
left : $v*1%;
|
||||
width : 130px;
|
||||
height : 1px;
|
||||
transform : rotate(-45deg);
|
||||
background-image: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
|
||||
animation : meteor $d+s linear infinite;
|
||||
|
||||
&:before {
|
||||
content : "";
|
||||
position : fixed;
|
||||
width : 4px;
|
||||
height : 5px;
|
||||
border-radius: 50%;
|
||||
margin-top : -2px;
|
||||
background : rgba(#fff, .7);
|
||||
box-shadow : 0 0 15px 3px #fff;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes meteor {
|
||||
0% {
|
||||
opacity : 1;
|
||||
margin-top : -300px;
|
||||
margin-right: -300px;
|
||||
}
|
||||
|
||||
12% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
13% {
|
||||
margin-top : 600px;
|
||||
margin-left : -900px;
|
||||
opacity : 0.6;
|
||||
animation-delay: 2000ms;
|
||||
}
|
||||
|
||||
15% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
|
||||
100% {
|
||||
margin-top : 700px;
|
||||
margin-left: -900px;
|
||||
opacity : 0;
|
||||
}
|
||||
}
|
||||
325
src/app/layout/passport/particle.ts
Normal file
325
src/app/layout/passport/particle.ts
Normal file
@ -0,0 +1,325 @@
|
||||
export default class Particle {
|
||||
getLimitedRandom = function (min: number, max: number, roundToInteger?: any) {
|
||||
var number = Math.random() * (max - min) + min;
|
||||
if (roundToInteger) {
|
||||
number = Math.round(number);
|
||||
}
|
||||
return number;
|
||||
};
|
||||
|
||||
returnRandomArrayitem = function (array: string | any[]) {
|
||||
return array[Math.floor(Math.random() * array.length)];
|
||||
};
|
||||
|
||||
constructor() {}
|
||||
|
||||
init() {
|
||||
var ParticleNetworkAnimation: any, PNA: any;
|
||||
ParticleNetworkAnimation = PNA = function () {};
|
||||
|
||||
PNA.prototype.init = function (element: any) {
|
||||
console.log(this);
|
||||
this.$el = document.getElementsByClassName(element);
|
||||
|
||||
this.container = element;
|
||||
this.canvas = document.createElement('canvas');
|
||||
this.sizeCanvas();
|
||||
this.container.appendChild(this.canvas);
|
||||
this.ctx = this.canvas.getContext('2d');
|
||||
this.particleNetwork = new ParticleNetwork(this);
|
||||
|
||||
this.bindUiActions();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
PNA.prototype.bindUiActions = function () {
|
||||
(window as any).on('resize', () => {
|
||||
// this.sizeContainer();
|
||||
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
||||
this.sizeCanvas();
|
||||
this.particleNetwork.createParticles();
|
||||
});
|
||||
};
|
||||
|
||||
PNA.prototype.sizeCanvas = function () {
|
||||
this.canvas.width = this.container.offsetWidth;
|
||||
this.canvas.height = this.container.offsetHeight;
|
||||
};
|
||||
|
||||
console.log(PNA);
|
||||
|
||||
const Particle: any = function (parent: any, x?: any, y?: any) {
|
||||
// this.network = parent;
|
||||
// this.canvas = parent.canvas;
|
||||
// this.ctx = parent.ctx;
|
||||
// this.particleColor = ;
|
||||
// this.radius = ;
|
||||
// this.opacity = 0;
|
||||
// this.x = x || Math.random() * this.canvas.width;
|
||||
// this.y = y || Math.random() * this.canvas.height;
|
||||
// this.velocity = {
|
||||
// x: (Math.random() - 0.5) * parent.options.velocity,
|
||||
// y: (Math.random() - 0.5) * parent.options.velocity
|
||||
// };
|
||||
return {
|
||||
network: parent,
|
||||
canvas: parent.canvas,
|
||||
ctx: parent.ctx,
|
||||
// particleColor: this.returnRandomArrayitem(parent.options.particleColors),
|
||||
// radius: this.getLimitedRandom(1.5, 2.5),
|
||||
opacity: 0,
|
||||
x: x || Math.random() * parent.canvas.width,
|
||||
y: y || Math.random() * parent.canvas.height,
|
||||
velocity: {
|
||||
x: (Math.random() - 0.5) * parent.options.velocity,
|
||||
y: (Math.random() - 0.5) * parent.options.velocity
|
||||
}
|
||||
};
|
||||
};
|
||||
console.log(new Particle(this));
|
||||
|
||||
Particle.prototype.update = function () {
|
||||
if (this.opacity < 1) {
|
||||
this.opacity += 0.01;
|
||||
} else {
|
||||
this.opacity = 1;
|
||||
}
|
||||
// Change dir if outside map
|
||||
if (this.x > this.canvas.width + 100 || this.x < -100) {
|
||||
this.velocity.x = -this.velocity.x;
|
||||
}
|
||||
if (this.y > this.canvas.height + 100 || this.y < -100) {
|
||||
this.velocity.y = -this.velocity.y;
|
||||
}
|
||||
|
||||
// Update position
|
||||
this.x += this.velocity.x;
|
||||
this.y += this.velocity.y;
|
||||
};
|
||||
|
||||
Particle.prototype.draw = function () {
|
||||
// Draw particle
|
||||
this.ctx.beginPath();
|
||||
this.ctx.fillStyle = this.particleColor;
|
||||
this.ctx.globalAlpha = this.opacity;
|
||||
this.ctx.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
|
||||
this.ctx.fill();
|
||||
};
|
||||
|
||||
var ParticleNetwork: any = function (this: any, parent: { canvas: any; ctx: any }) {
|
||||
this.options = {
|
||||
velocity: 1, // the higher the faster
|
||||
density: 15000, // the lower the denser
|
||||
netLineDistance: 200,
|
||||
netLineColor: '#929292',
|
||||
particleColors: ['#aaa'] // ['#6D4E5C', '#aaa', '#FFC458' ]
|
||||
};
|
||||
this.canvas = parent.canvas;
|
||||
this.ctx = parent.ctx;
|
||||
|
||||
this.init();
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.init = function () {
|
||||
// Create particle objects
|
||||
this.createParticles(true);
|
||||
|
||||
// Update canvas
|
||||
this.animationFrame = requestAnimationFrame(this.update.bind(this));
|
||||
|
||||
this.bindUiActions();
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.createParticles = function (isInitial: any) {
|
||||
// Initialise / reset particles
|
||||
var me = this;
|
||||
this.particles = [];
|
||||
var quantity = (this.canvas.width * this.canvas.height) / this.options.density;
|
||||
|
||||
if (isInitial) {
|
||||
var counter = 0;
|
||||
clearInterval(this.createIntervalId);
|
||||
this.createIntervalId = setInterval(() => {
|
||||
if (counter < quantity - 1) {
|
||||
// Create particle object
|
||||
this.particles.push(new Particle(this));
|
||||
} else {
|
||||
clearInterval(me.createIntervalId);
|
||||
}
|
||||
counter++;
|
||||
}, 50);
|
||||
} else {
|
||||
// Create particle objects
|
||||
for (var i = 0; i < quantity; i++) {
|
||||
this.particles.push(new Particle(this));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.createInteractionParticle = function () {
|
||||
// Add interaction particle
|
||||
this.interactionParticle = new Particle(this);
|
||||
this.interactionParticle.velocity = {
|
||||
x: 0,
|
||||
y: 0
|
||||
};
|
||||
this.particles.push(this.interactionParticle);
|
||||
return this.interactionParticle;
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.removeInteractionParticle = function () {
|
||||
// Find it
|
||||
var index = this.particles.indexOf(this.interactionParticle);
|
||||
if (index > -1) {
|
||||
// Remove it
|
||||
this.interactionParticle = undefined;
|
||||
this.particles.splice(index, 1);
|
||||
}
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.update = function () {
|
||||
if (this.canvas) {
|
||||
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
||||
this.ctx.globalAlpha = 1;
|
||||
|
||||
// Draw connections
|
||||
for (var i = 0; i < this.particles.length; i++) {
|
||||
for (var j = this.particles.length - 1; j > i; j--) {
|
||||
var distance,
|
||||
p1 = this.particles[i],
|
||||
p2 = this.particles[j];
|
||||
|
||||
// check very simply if the two points are even a candidate for further measurements
|
||||
distance = Math.min(Math.abs(p1.x - p2.x), Math.abs(p1.y - p2.y));
|
||||
if (distance > this.options.netLineDistance) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// the two points seem close enough, now let's measure precisely
|
||||
distance = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
|
||||
if (distance > this.options.netLineDistance) {
|
||||
continue;
|
||||
}
|
||||
|
||||
this.ctx.beginPath();
|
||||
this.ctx.strokeStyle = this.options.netLineColor;
|
||||
this.ctx.globalAlpha = ((this.options.netLineDistance - distance) / this.options.netLineDistance) * p1.opacity * p2.opacity;
|
||||
this.ctx.lineWidth = 0.7;
|
||||
this.ctx.moveTo(p1.x, p1.y);
|
||||
this.ctx.lineTo(p2.x, p2.y);
|
||||
this.ctx.stroke();
|
||||
}
|
||||
}
|
||||
|
||||
// Draw particles
|
||||
for (var i = 0; i < this.particles.length; i++) {
|
||||
this.particles[i].update();
|
||||
this.particles[i].draw();
|
||||
}
|
||||
|
||||
if (this.options.velocity !== 0) {
|
||||
this.animationFrame = requestAnimationFrame(this.update.bind(this));
|
||||
}
|
||||
} else {
|
||||
cancelAnimationFrame(this.animationFrame);
|
||||
}
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.bindUiActions = function () {
|
||||
// Mouse / touch event handling
|
||||
this.spawnQuantity = 3;
|
||||
this.mouseIsDown = false;
|
||||
this.touchIsMoving = false;
|
||||
|
||||
this.onMouseMove = (e: { offsetX: any; offsetY: any }) => {
|
||||
if (!this.interactionParticle) {
|
||||
this.createInteractionParticle();
|
||||
}
|
||||
this.interactionParticle.x = e.offsetX;
|
||||
this.interactionParticle.y = e.offsetY;
|
||||
};
|
||||
|
||||
this.onTouchMove = (e: { preventDefault: () => void; changedTouches: { clientX: any; clientY: any }[] }) => {
|
||||
e.preventDefault();
|
||||
this.touchIsMoving = true;
|
||||
if (!this.interactionParticle) {
|
||||
this.createInteractionParticle();
|
||||
}
|
||||
this.interactionParticle.x = e.changedTouches[0].clientX;
|
||||
this.interactionParticle.y = e.changedTouches[0].clientY;
|
||||
};
|
||||
|
||||
this.onMouseDown = () => {
|
||||
this.mouseIsDown = true;
|
||||
var counter = 0;
|
||||
var quantity = this.spawnQuantity;
|
||||
var intervalId = setInterval(() => {
|
||||
if (this.mouseIsDown) {
|
||||
if (counter === 1) {
|
||||
quantity = 1;
|
||||
}
|
||||
for (var i = 0; i < quantity; i++) {
|
||||
if (this.interactionParticle) {
|
||||
this.particles.push(new Particle(this, this.interactionParticle.x, this.interactionParticle.y));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
clearInterval(intervalId);
|
||||
}
|
||||
counter++;
|
||||
}, 50);
|
||||
};
|
||||
|
||||
this.onTouchStart = (e: { preventDefault: () => void; changedTouches: { clientX: any; clientY: any }[] }) => {
|
||||
e.preventDefault();
|
||||
setTimeout(() => {
|
||||
if (!this.touchIsMoving) {
|
||||
for (var i = 0; i < this.spawnQuantity; i++) {
|
||||
this.particles.push(new Particle(this, e.changedTouches[0].clientX, e.changedTouches[0].clientY));
|
||||
}
|
||||
}
|
||||
}, 200);
|
||||
};
|
||||
|
||||
this.onMouseUp = () => {
|
||||
this.mouseIsDown = false;
|
||||
};
|
||||
|
||||
this.onMouseOut = function () {
|
||||
this.removeInteractionParticle();
|
||||
};
|
||||
|
||||
this.onTouchEnd = function (e: { preventDefault: () => void }) {
|
||||
e.preventDefault();
|
||||
this.touchIsMoving = false;
|
||||
this.removeInteractionParticle();
|
||||
};
|
||||
|
||||
// this.canvas.addEventListener('mousemove', this.onMouseMove);
|
||||
// this.canvas.addEventListener('touchmove', this.onTouchMove);
|
||||
// this.canvas.addEventListener('mousedown', this.onMouseDown);
|
||||
// this.canvas.addEventListener('touchstart', this.onTouchStart);
|
||||
// this.canvas.addEventListener('mouseup', this.onMouseUp);
|
||||
// this.canvas.addEventListener('mouseout', this.onMouseOut);
|
||||
// this.canvas.addEventListener('touchend', this.onTouchEnd);
|
||||
};
|
||||
|
||||
ParticleNetwork.prototype.unbindUiActions = function () {
|
||||
if (this.canvas) {
|
||||
// this.canvas.removeEventListener('mousemove', this.onMouseMove);
|
||||
// this.canvas.removeEventListener('touchmove', this.onTouchMove);
|
||||
// this.canvas.removeEventListener('mousedown', this.onMouseDown);
|
||||
// this.canvas.removeEventListener('touchstart', this.onTouchStart);
|
||||
// this.canvas.removeEventListener('mouseup', this.onMouseUp);
|
||||
// this.canvas.removeEventListener('mouseout', this.onMouseOut);
|
||||
// this.canvas.removeEventListener('touchend', this.onTouchEnd);
|
||||
}
|
||||
};
|
||||
|
||||
const pna = new PNA();
|
||||
console.log(pna);
|
||||
|
||||
pna.init(document.getElementsByClassName('particle-network-animation')[0]);
|
||||
}
|
||||
}
|
||||
@ -1,15 +1,67 @@
|
||||
<nz-layout class="layout">
|
||||
<nz-header>
|
||||
<!-- <nz-header style="z-index: 999;">
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="24" style="display: flex;align-items: center;">
|
||||
<img width="32" height="32" src="./assets/images/user/logo.svg" [routerLink]="['/']" />
|
||||
<label class="title ml-sm">运多星网络货运管理平台</label>
|
||||
</div>
|
||||
</div>
|
||||
</nz-header>
|
||||
<nz-content class="content">
|
||||
<div class="inner-content">
|
||||
<router-outlet></router-outlet>
|
||||
</div>
|
||||
</nz-header> -->
|
||||
<nz-content class="content" id="content">
|
||||
<nz-row>
|
||||
<nz-col nzXs="0" nzSm="0" nzMd="0" nzLg="14" nzXl="14" nzXXl="14" style="z-index: 9999;">
|
||||
<div style="width: 100%;height: 100%;display: flex;align-items: center;padding: 60px;">
|
||||
<div class="earth-box">
|
||||
<div class="earth" style="width: 100%;height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</nz-col>
|
||||
<nz-col nzXs="24" nzSm="24" nzMd="24" nzLg="9" nzXl="8" nzXXl="7" style="z-index: 9999; ">
|
||||
<router-outlet></router-outlet>
|
||||
</nz-col>
|
||||
</nz-row>
|
||||
<div class="meteor-1"></div>
|
||||
<div class="meteor-2"></div>
|
||||
<div class="meteor-3"></div>
|
||||
<div class="meteor-4"></div>
|
||||
<div class="meteor-5"></div>
|
||||
<div class="meteor-6"></div>
|
||||
<div class="meteor-7"></div>
|
||||
<div class="meteor-8"></div>
|
||||
<div class="meteor-9"></div>
|
||||
<div class="meteor-10"></div>
|
||||
<div class="meteor-11"></div>
|
||||
<div class="meteor-12"></div>
|
||||
<div class="meteor-13"></div>
|
||||
<div class="meteor-14"></div>
|
||||
<div class="meteor-15"></div>
|
||||
<div class="meteor-16"></div>
|
||||
<div class="meteor-17"></div>
|
||||
<div class="meteor-18"></div>
|
||||
<div class="meteor-19"></div>
|
||||
<div class="meteor-20"></div>
|
||||
<div class=" particle-network-animation"></div>
|
||||
<!-- <div class="night">
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
<div class="shooting_star"></div>
|
||||
</div> -->
|
||||
</nz-content>
|
||||
</nz-layout>
|
||||
@ -7,11 +7,71 @@
|
||||
}
|
||||
|
||||
.ant-layout-header {
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 5px 5px #d1d1d1;
|
||||
background : #ffffff;
|
||||
// box-shadow: 0px 5px 5px #d1d1d1;
|
||||
}
|
||||
|
||||
nz-content {
|
||||
background : url('../../../assets/images/login/login-bg.jpg') 100% 100% no-repeat;
|
||||
background-size: cover;
|
||||
// overflow : auto;
|
||||
}
|
||||
|
||||
passport-login {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.earth-box {
|
||||
background : url('../../../assets/images/login/4-界面背景.png') 100% 100% no-repeat;
|
||||
background-size : cover;
|
||||
background-position: center;
|
||||
// overflow : hidden;
|
||||
width : 100%;
|
||||
height : 100%;
|
||||
}
|
||||
|
||||
.earth {
|
||||
// animation : eatthAnimation 60s linear infinite;
|
||||
// -webkit-animation: eatthAnimation 60s linear infinite;
|
||||
max-width : 100%;
|
||||
height : 100%;
|
||||
// margin-top : -50px;
|
||||
// max-height : calc(100% - 64px);
|
||||
// border-radius : 40%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
position: absolute;
|
||||
left : calc(50% - 82px);
|
||||
width : 164px;
|
||||
top : calc(50% - 82px);
|
||||
}
|
||||
|
||||
.earth:hover {
|
||||
animation-play-state : paused;
|
||||
-webkit-animation-play-state: paused;
|
||||
}
|
||||
|
||||
@keyframes eatthAnimation {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes eatthAnimation {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,15 +1,35 @@
|
||||
import { Component, Inject, OnInit } from '@angular/core';
|
||||
import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
|
||||
import Particle from './particle';
|
||||
|
||||
@Component({
|
||||
selector: 'layout-passport',
|
||||
templateUrl: './passport.component.html',
|
||||
styleUrls: ['./passport.component.less']
|
||||
styleUrls: ['./passport.component.less', './d.scss']
|
||||
})
|
||||
export class LayoutPassportComponent implements OnInit {
|
||||
constructor() {}
|
||||
|
||||
ngOnInit(): void {
|
||||
// this.tokenService.clear();
|
||||
// this.loadJS();
|
||||
|
||||
const particle = new Particle();
|
||||
particle.init();
|
||||
}
|
||||
|
||||
loadJS() {
|
||||
var script = document.createElement('script');
|
||||
script.type = 'text/javascript';
|
||||
script.src = './assets/login/js/script.js';
|
||||
script.id = 'particle';
|
||||
document.getElementsByTagName('head')[0].appendChild(script);
|
||||
|
||||
setTimeout(() => {
|
||||
var content = document.getElementById('content');
|
||||
if (content) {
|
||||
content.style.overflow = 'auto';
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,7 +51,6 @@ export class LayoutProMenuComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
});
|
||||
this.menus = res;
|
||||
|
||||
this.openStatus();
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
import { AfterViewInit, Component, OnInit } from '@angular/core';
|
||||
import { fromEvent } from 'rxjs';
|
||||
import { debounceTime } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
template: ''
|
||||
})
|
||||
export class BasicTableComponent implements AfterViewInit {
|
||||
scrollY = '400px';
|
||||
|
||||
constructor() {}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
setTimeout(() => {
|
||||
this.getScrollY();
|
||||
}, 100);
|
||||
fromEvent(window, 'resize')
|
||||
.pipe(debounceTime(100))
|
||||
.subscribe(event => {
|
||||
this.getScrollY();
|
||||
});
|
||||
}
|
||||
|
||||
getScrollY() {
|
||||
const windowHeight = window.innerHeight || Math.max(document.documentElement.clientHeight, document.body.clientHeight);
|
||||
const header = document.getElementsByTagName('layout-pro-header')?.[0];
|
||||
if (windowHeight && header) {
|
||||
let scrollY = windowHeight - header.clientHeight - 35 - 49;
|
||||
const headerWrapper = document.getElementsByTagName('page-header-wrapper')?.[0];
|
||||
if (headerWrapper) {
|
||||
scrollY -= headerWrapper.clientHeight;
|
||||
}
|
||||
const tabset = document.getElementsByTagName('nz-tabset')?.[0];
|
||||
if (tabset) {
|
||||
scrollY -= tabset.clientHeight;
|
||||
}
|
||||
this.scrollY = scrollY + 'px';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -31,4 +31,12 @@
|
||||
font-size : 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.total-footer {
|
||||
position : absolute;
|
||||
bottom : 25px;
|
||||
height : 32px;
|
||||
margin : 16px 0;
|
||||
line-height: 32px;
|
||||
}
|
||||
70
src/app/routes/commom/less/commom-table.less
Normal file
70
src/app/routes/commom/less/commom-table.less
Normal file
@ -0,0 +1,70 @@
|
||||
:host {
|
||||
::ng-deep {
|
||||
nz-card {
|
||||
margin: -24px -24px 0;
|
||||
|
||||
.ant-tabs-nav {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-tabs-tab {
|
||||
margin: 0 0 0 16px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.ant-table-body {
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.table-box {
|
||||
.ant-card-body {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-table-pagination.ant-pagination {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.ant-table-thead > tr > th,
|
||||
.ant-table-tbody > tr > td,
|
||||
.ant-table tfoot > tr > th,
|
||||
.ant-table tfoot > tr > td {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.ant-table.ant-table-bordered > .ant-table-container {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.ant-pagination-item {
|
||||
min-width: 24px;
|
||||
height: 24px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.ant-pagination-total-text {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-jump-prev,
|
||||
.ant-pagination-jump-next {
|
||||
min-width: 24px;
|
||||
height: 24px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ant-select-single .ant-select-selector .ant-select-selection-item,
|
||||
.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
|
||||
line-height: 21px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-07 13:29:57
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-23 16:04:18
|
||||
* @LastEditTime : 2022-02-24 10:08:53
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-frame\\contract-frame.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -18,7 +18,7 @@
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
@ -29,8 +29,9 @@
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
|
||||
<!-- <input placeholder="请输入1-30" type="number" [ngModel]="sf.value.description3" style="width: 200px;" nz-input />
|
||||
<span> 天内支付运费</span> -->
|
||||
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
</sf>
|
||||
@ -40,7 +41,7 @@
|
||||
nz-button
|
||||
nzType="primary"
|
||||
[disabled]="!sf.valid"
|
||||
[nzLoading]="service.http.loading"
|
||||
[nzLoading]="false"
|
||||
(click)="st?.load(1)"
|
||||
acl
|
||||
[acl-ability]="['CONTRACT-INDEX-listFrame']"
|
||||
@ -74,7 +75,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
(change)="stChange($event)"
|
||||
>
|
||||
|
||||
@ -1,14 +1,17 @@
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-contract-frame',
|
||||
templateUrl: './contract-frame.component.html',
|
||||
styleUrls: ['./contract-frame.component.less']
|
||||
styleUrls: ['./contract-frame.component.less'],
|
||||
providers: [DatePipe]
|
||||
})
|
||||
export class ContractManagementFrameComponent implements OnInit {
|
||||
url = `/rule?_allow_anonymous=true`;
|
||||
@ -22,19 +25,48 @@ export class ContractManagementFrameComponent implements OnInit {
|
||||
columns: STColumn[] = [];
|
||||
ui: SFUISchema = {};
|
||||
_$expand = false;
|
||||
|
||||
reqParams = {};
|
||||
selectedRows: any[] = [];
|
||||
constructor(public service: ContractManagementService, private nzModalService: NzModalService, private router: Router) {}
|
||||
constructor(
|
||||
public service: ContractManagementService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private datePipe: DatePipe,
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initST()
|
||||
this.initSF()
|
||||
this.initST();
|
||||
this.initSF();
|
||||
}
|
||||
/**
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
const params = {
|
||||
...this.sf?.value,
|
||||
}
|
||||
delete params.signTime;
|
||||
delete params._$expand;
|
||||
if(this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
|
||||
params.signTime = {
|
||||
start: this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
|
||||
end: this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
|
||||
}
|
||||
}
|
||||
if(this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
|
||||
params.effectiveEndTime = {
|
||||
start: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
|
||||
end: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
|
||||
}
|
||||
}
|
||||
return {
|
||||
...params
|
||||
};
|
||||
}
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '合同编号',
|
||||
@ -42,14 +74,26 @@ export class ContractManagementFrameComponent implements OnInit {
|
||||
className: 'text-center',
|
||||
render: 'contractCode'
|
||||
},
|
||||
{
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractTypeLabel'
|
||||
},
|
||||
{
|
||||
title: '合同名称',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index:'contractName'
|
||||
index: 'templateName'
|
||||
},
|
||||
{ title: '托运人', index: 'shipperName', width: '120px', className: 'text-center' },
|
||||
{ title: '承运人', index: 'carrierName', width: '120px', className: 'text-center' },
|
||||
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
|
||||
{ title: '合同对象', index: 'contractObjectName', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '有效期至',
|
||||
className: 'text-center',
|
||||
@ -75,47 +119,108 @@ export class ContractManagementFrameComponent implements OnInit {
|
||||
'3': { text: '已撤销', color: 'warning' },
|
||||
'4': { text: '已作废', color: 'warning' },
|
||||
'5': { text: '已过期', color: 'warning' },
|
||||
'7': { text: '已拒签', color: 'warning' },
|
||||
},
|
||||
},
|
||||
|
||||
'7': { text: '已拒签', color: 'warning' }
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
contractCode: {
|
||||
type: 'string',
|
||||
title: '合同编号',
|
||||
},
|
||||
shipperName: {
|
||||
type: 'string',
|
||||
title: '托运人'
|
||||
},
|
||||
carrierName: {
|
||||
type: 'string',
|
||||
title: '承运人',
|
||||
},
|
||||
signTime: {
|
||||
title: '签署日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
contractCode: {
|
||||
type: 'string',
|
||||
title: '合同编号'
|
||||
},
|
||||
type: 'object',
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
/**
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '签约对象',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '货主', value: 1 },
|
||||
{ label: '司机', value: 2 },
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'contract:type' },
|
||||
containAllLable:true,
|
||||
} as SFSelectWidgetSchema,
|
||||
},
|
||||
enterpriseInfoId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
}
|
||||
},
|
||||
contractObjectName: {
|
||||
type: 'string',
|
||||
title: '合同对象',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
signTime: {
|
||||
title: '签署日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
effectiveEndTime: {
|
||||
title: '有效期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
esignFlowStatus: {
|
||||
title: '状态',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'esign:flow:status' },
|
||||
containAllLable:true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFSelectWidgetSchema,
|
||||
},
|
||||
},
|
||||
type: 'object'
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
@ -193,7 +298,7 @@ export class ContractManagementFrameComponent implements OnInit {
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-07 15:57:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:16:12
|
||||
* @LastEditTime : 2022-02-23 20:11:50
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-list\\contract-list.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -13,7 +13,7 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading"
|
||||
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="false"
|
||||
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf>
|
||||
</div>
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
</sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="false"
|
||||
(click)="st?.load(1)" acl [acl-ability]="['CONTRACT-INDEX-searchDetail']">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -49,10 +49,14 @@
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$api_listDetailed_page" [columns]="columns" [req]="{ params: reqParams }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px', y: '370px' }" (change)="stChange($event)">
|
||||
[loading]="false" [scroll]="{ x: '1200px', y: '370px' }" (change)="stChange($event)">
|
||||
<ng-template st-row="contractCode" let-item let-index="index">
|
||||
<a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="signingObject" let-item let-index="index">
|
||||
<span *ngIf="item.signingObject == 0"></span>
|
||||
<span></span>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSc
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-contract-list',
|
||||
@ -47,6 +48,7 @@ export class ContractManagementContractListComponent implements OnInit {
|
||||
constructor(
|
||||
public service: ContractManagementService,
|
||||
private nzModalService: NzModalService,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private router: Router,
|
||||
private datePipe: DatePipe,
|
||||
) { }
|
||||
@ -67,19 +69,17 @@ export class ContractManagementContractListComponent implements OnInit {
|
||||
render: 'contractCode'
|
||||
},
|
||||
{
|
||||
title: '单据类型',
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'documentType'
|
||||
},
|
||||
{
|
||||
title: '合同名称',
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractName'
|
||||
},
|
||||
{ title: '托运人', index: 'shipperName', width: '120px', className: 'text-center' },
|
||||
{ title: '承运人', index: 'carrierName', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '业务单号',
|
||||
className: 'text-center',
|
||||
|
||||
@ -0,0 +1,101 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-07 13:29:57
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 10:08:28
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-partner\\contract-partner.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf
|
||||
#sf
|
||||
[schema]="schema"
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button
|
||||
nz-button
|
||||
nzType="primary"
|
||||
[disabled]="!sf.valid"
|
||||
[nzLoading]="false"
|
||||
(click)="st?.load(1)"
|
||||
acl
|
||||
[acl-ability]="['CONTRACT-INDEX-listFrame']"
|
||||
>查询</button
|
||||
>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<div style="position: relative">
|
||||
<nz-alert
|
||||
nzType="info"
|
||||
[nzMessage]="'当前共' + st?.total + '行记录,已选择' + selectedRows.length + '项'"
|
||||
nzShowIcon
|
||||
[ngStyle]="{ margin: '0 0 1rem 0' }"
|
||||
>
|
||||
</nz-alert>
|
||||
</div>
|
||||
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_listPartner_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
(change)="stChange($event)"
|
||||
>
|
||||
<ng-template st-row="contractCode" let-item let-index="index">
|
||||
<a [routerLink]="'/contract-management/index/detail/' + item.id">{{ item?.contractCode }}</a>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
<ng-template #auditModal>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="80">
|
||||
<se [col]="1" label="备注">
|
||||
<textarea
|
||||
nz-input
|
||||
rows="3"
|
||||
placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
|
||||
style="width: 325px; margin-left: 14px"
|
||||
></textarea>
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -0,0 +1,35 @@
|
||||
:host::ng-deep {
|
||||
.search-box {
|
||||
.ant-card-body {
|
||||
padding-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-box {
|
||||
.ant-card-body {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
nz-range-picker {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ant-tabs-tab-btn {
|
||||
padding-right: 16px;
|
||||
padding-left : 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.expend-options {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.expend-options {
|
||||
z-index : -99;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,305 @@
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-contract-partner',
|
||||
templateUrl: './contract-partner.component.html',
|
||||
styleUrls: ['./contract-partner.component.less'],
|
||||
providers: [DatePipe]
|
||||
})
|
||||
export class ContractManagementPartnerComponent implements OnInit {
|
||||
url = `/rule?_allow_anonymous=true`;
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
@ViewChild('auditModal', { static: false })
|
||||
auditModal!: any;
|
||||
schema: SFSchema = {};
|
||||
columns: STColumn[] = [];
|
||||
ui: SFUISchema = {};
|
||||
_$expand = false;
|
||||
selectedRows: any[] = [];
|
||||
constructor(
|
||||
public service: ContractManagementService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private datePipe: DatePipe,
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initST();
|
||||
this.initSF();
|
||||
}
|
||||
/**
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
const params = {
|
||||
...this.sf?.value,
|
||||
}
|
||||
delete params.signTime;
|
||||
delete params._$expand;
|
||||
if(this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
|
||||
params.signTime = {
|
||||
start: this.datePipe.transform(this.sf?.value?.signTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
|
||||
end: this.datePipe.transform(this.sf?.value?.signTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
|
||||
}
|
||||
}
|
||||
if(this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss') && this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss')) {
|
||||
params.effectiveEndTime = {
|
||||
start: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[0], 'yyyy-MM-dd HH:mm:ss'),
|
||||
end: this.datePipe.transform(this.sf?.value?.effectiveEndTime?.[1], 'yyyy-MM-dd HH:mm:ss'),
|
||||
}
|
||||
}
|
||||
return {
|
||||
...params
|
||||
};
|
||||
}
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '合同编号',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
render: 'contractCode'
|
||||
},
|
||||
{
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'signingObject'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractType'
|
||||
},
|
||||
{ title: '合同名称', index: 'contractName', width: '120px', className: 'text-center' },
|
||||
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '合同对象',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
index: 'contractObjectName'
|
||||
},
|
||||
{
|
||||
title: '有效期至',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
index: 'effectiveEndTime'
|
||||
},
|
||||
{
|
||||
title: '签署日期',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
index: 'signTime'
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
type: 'badge',
|
||||
index: 'esignFlowStatus',
|
||||
badge: {
|
||||
'0': { text: '未发起', color: 'default' },
|
||||
'1': { text: '待签章', color: 'default' },
|
||||
'2': { text: '已生效', color: 'success' },
|
||||
'3': { text: '已撤销', color: 'warning' },
|
||||
'4': { text: '已作废', color: 'warning' },
|
||||
'5': { text: '已过期', color: 'warning' },
|
||||
'7': { text: '已拒签', color: 'warning' }
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
contractCode: {
|
||||
type: 'string',
|
||||
title: '合同编号'
|
||||
},
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '签约对象',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '货主', value: 1 },
|
||||
{ label: '司机', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'contract:type' },
|
||||
containAllLable: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
enterpriseInfoId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
}
|
||||
},
|
||||
contractObjectName: {
|
||||
type: 'string',
|
||||
title: '合同对象',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
signTime: {
|
||||
title: '签署日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
effectiveEndTime: {
|
||||
title: '有效期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
esignFlowStatus: {
|
||||
title: '状态',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'esign:flow:status' },
|
||||
containAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
},
|
||||
type: 'object'
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
stChange(e: STChange): void {
|
||||
switch (e.type) {
|
||||
case 'checkbox':
|
||||
this.selectedRows = e.checkbox!;
|
||||
break;
|
||||
case 'filter':
|
||||
this.st.load();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
approval(): void {}
|
||||
|
||||
add(): void {}
|
||||
|
||||
routeTo(item: any) {
|
||||
this.router.navigate(['/ticket/invoice-requested-detail/1']);
|
||||
}
|
||||
|
||||
auditAction(item: any) {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '审核',
|
||||
nzContent: this.auditModal,
|
||||
nzFooter: [
|
||||
{
|
||||
label: '拒绝',
|
||||
type: 'default',
|
||||
onClick: () => {
|
||||
modal.destroy();
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '通过',
|
||||
type: 'primary',
|
||||
onClick: () => {
|
||||
modal.destroy();
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modal.afterClose.subscribe(res => {
|
||||
this.st.load();
|
||||
});
|
||||
}
|
||||
|
||||
showReason(item: any) {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '查看原因',
|
||||
nzContent: '运单数据异常,暂时无法开票,请联系客服400-xxxx-xxxx',
|
||||
nzFooter: [
|
||||
{
|
||||
label: '关闭',
|
||||
type: 'primary',
|
||||
onClick: () => {
|
||||
modal.destroy();
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,11 @@
|
||||
import { OnChanges } from '@angular/core';
|
||||
/*
|
||||
* @Description :
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-05 11:01:55
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-25 14:25:49
|
||||
* @LastEditTime : 2022-02-28 20:22:46
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-detail\\contract-template-detail.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -12,22 +13,24 @@ import { DatePipe } from '@angular/common';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-template-detail-complaint',
|
||||
selector: 'app-contract-management-template-text-complaint',
|
||||
templateUrl: './contract-template-detail.component.html',
|
||||
styleUrls: ['./contract-template-detail.component.less'],
|
||||
providers: [DatePipe]
|
||||
})
|
||||
export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
export class ContractManagementTemplateTextComponent implements OnInit {
|
||||
constructor(
|
||||
private nzModalService: NzModalService,
|
||||
public service: ContractManagementService,
|
||||
public route: ActivatedRoute,
|
||||
private datePipe: DatePipe,
|
||||
private router: Router
|
||||
private router: Router,
|
||||
public shipperservice: ShipperBaseService
|
||||
) {}
|
||||
textStatus = '新建模板';
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
@ -38,6 +41,7 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
sfdata: any;
|
||||
sfdata2: any;
|
||||
title: any;
|
||||
Types: any;
|
||||
templateHTML: any;
|
||||
detailList: any = {
|
||||
templateName: ''
|
||||
@ -74,28 +78,102 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
templateType: {
|
||||
title: '模板类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
enum: [
|
||||
{ label: '框架合同', value: 'KJ' },
|
||||
{ label: '明细合同', value: 'MX' },
|
||||
{ label: '合伙人合同', value: 'HHR' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'contract:template:type' },
|
||||
containAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
change: (tag: any, org: any) => {
|
||||
console.log(tag);
|
||||
switch (tag) {
|
||||
case 'MX':
|
||||
this.Types = [
|
||||
{ label: '订单合同', value: '1' },
|
||||
{ label: '订单补充协议', value: '2' },
|
||||
{ label: '运单合同', value: '3' },
|
||||
{ label: '运单补充协议', value: '4' },
|
||||
{ label: '委托代收合同', value: '5' }
|
||||
];
|
||||
this.sf.getProperty('/contractType')!.schema.enum = this.Types;
|
||||
this.sf.getProperty('/contractType')!.widget.reset(this.Types);
|
||||
this.sf.setValue('/contractType', this.Types);
|
||||
return;
|
||||
break;
|
||||
case 'KJ':
|
||||
this.Types = [
|
||||
{ label: '网络货物运输服务合同', value: '6' },
|
||||
{ label: '运输服务承揽合同', value: '7' }
|
||||
];
|
||||
this.sf.getProperty('/contractType')!.schema.enum = this.Types;
|
||||
this.sf.getProperty('/contractType')!.widget.reset(this.Types);
|
||||
this.sf.setValue('/contractType', this.Types);
|
||||
return;
|
||||
break;
|
||||
case 'HHR':
|
||||
this.Types = [
|
||||
{ label: '企业合伙人入驻合同', value: '8' },
|
||||
{ label: '个人合伙人入驻合同', value: '9' }
|
||||
];
|
||||
this.sf.getProperty('/contractType')!.schema.enum = this.Types;
|
||||
this.sf.getProperty('/contractType')!.widget.reset(this.Types);
|
||||
this.sf.setValue('/contractType', this.Types);
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
},
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '承包商对象',
|
||||
enum: [
|
||||
{ label: '货主', value: '1' },
|
||||
{ label: '司机', value: '2' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '单据类型',
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
enum: this.Types,
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
resourceType: {
|
||||
title: '货源类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'contract:document:type' },
|
||||
containAllLable: true,
|
||||
params: { dictKey: 'goodresource:type' },
|
||||
containsAllLable: true,
|
||||
visibleIf: {
|
||||
templateType: value => value === 'MX'
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
enterpriseInfoId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
templateType: value => value === 'KJ' || value === 'HHR'
|
||||
},
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['templateName', 'templateType']
|
||||
@ -126,10 +204,12 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
};
|
||||
}
|
||||
initData(url: string) {
|
||||
console.log('编辑');
|
||||
|
||||
this.service.request(url, { id: this.route.snapshot.params.id }).subscribe(res => {
|
||||
if (res) {
|
||||
this.detailList = res;
|
||||
this.title = this.detailList?.templateName
|
||||
this.title = this.detailList?.templateName;
|
||||
this.sfdata = res;
|
||||
this.sfdata2 = res;
|
||||
}
|
||||
@ -140,21 +220,22 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
}
|
||||
|
||||
save() {
|
||||
if (!this.sf.value.templateName || !this.sf.value.templateType || !this.sf2.value.templateContent || !this.title) {
|
||||
this.service.msgSrv.error('必填参数为空,请检查再重新保存!');
|
||||
return;
|
||||
}
|
||||
if (this.sf.value.templateType == 'MX') {
|
||||
if (this.sf.value.contractType == '') {
|
||||
this.service.msgSrv.error('必填参数为空,请检查再重新保存!');
|
||||
return;
|
||||
}
|
||||
}
|
||||
// if (!this.sf.value.templateName || !this.sf.value.templateType || !this.sf2.value.templateContent || !this.title) {
|
||||
// this.service.msgSrv.error('必填参数为空,请检查再重新保存!');
|
||||
// return;
|
||||
// }
|
||||
// if (this.sf.value.templateType == 'MX') {
|
||||
// if (this.sf.value.contractType == '') {
|
||||
// this.service.msgSrv.error('必填参数为空,请检查再重新保存!');
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
const params = {
|
||||
...this.sf.value,
|
||||
...this.sf2.value,
|
||||
templateTitle: this.title
|
||||
templateTitle: this.title || this.detailList.templateName
|
||||
};
|
||||
console.log(params);
|
||||
this.service.request(this.service.$api_save_contractTemplate, params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('保存成功!');
|
||||
|
||||
@ -0,0 +1,86 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 20:01:42
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-frame\\contract-template-frame.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
|
||||
<!-- 搜索表单 -->
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf
|
||||
#sf
|
||||
[schema]="schema"
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button
|
||||
nz-button
|
||||
nzType="primary"
|
||||
[disabled]="!sf.valid"
|
||||
[nzLoading]="false"
|
||||
(click)="st?.load(1)"
|
||||
acl
|
||||
[acl-ability]="['CONTRACT-INDEX-listFrame']"
|
||||
>查询</button
|
||||
>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
<div class="NewBtn">
|
||||
<button nz-button nzType="primary" (click)="creatTemplate()" acl [acl-ability]="['CONTRACT-TEMPLATE-new']"> 新建 </button>
|
||||
</div>
|
||||
<div style="margin-top: 15px">
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="service.$api_get_contractTemplate_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
<ng-template st-row="templateName" let-item let-index="index">
|
||||
<a (click)="view(item)">{{ item.templateName }}</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="signingObject" let-item let-index="index">
|
||||
<span *ngIf="item?.signingObject == 1">货主</span>
|
||||
<span *ngIf="item?.signingObject == 2">司机</span>
|
||||
</ng-template>
|
||||
</st>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -0,0 +1,4 @@
|
||||
.NewBtn{
|
||||
float: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-05 09:45:47
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 10:25:58
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.spec.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ContractManagementTemplateFrameComponent } from './contract-template-frame.component';
|
||||
|
||||
describe('ContractManagementTemplateFrameComponent', () => {
|
||||
let component: ContractManagementTemplateFrameComponent;
|
||||
let fixture: ComponentFixture<ContractManagementTemplateFrameComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ContractManagementTemplateFrameComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ContractManagementTemplateFrameComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,250 @@
|
||||
import { Router } from '@angular/router';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-template-frame-complaint',
|
||||
templateUrl: './contract-template-frame.component.html',
|
||||
styleUrls: ['./contract-template-frame.component.less']
|
||||
})
|
||||
export class ContractManagementTemplateFrameComponent implements OnInit {
|
||||
ui: SFUISchema = {};
|
||||
uiView: SFUISchema = {};
|
||||
schema: SFSchema = {};
|
||||
schemaView: SFSchema = {};
|
||||
auditMany = false;
|
||||
_$expand = false;
|
||||
channelId: any;
|
||||
@ViewChild('st') private readonly st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
columns: STColumn[] = [];
|
||||
datass: any = [
|
||||
{
|
||||
one: '1',
|
||||
two: '1',
|
||||
three: '1',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
one: '2',
|
||||
two: '2',
|
||||
three: '2',
|
||||
id: 2
|
||||
},
|
||||
];
|
||||
constructor(
|
||||
public service: ContractManagementService,
|
||||
private modal: NzModalService,
|
||||
private router: Router
|
||||
) { }
|
||||
|
||||
/**
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
return {
|
||||
templateType: 'kj',
|
||||
...this.sf?.value,
|
||||
};
|
||||
}
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter((item) => item.checked) || [];
|
||||
}
|
||||
ngOnInit(): void {
|
||||
this.initSF();
|
||||
this.initST();
|
||||
this.initSTAudit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
templateName: {
|
||||
type: 'string',
|
||||
title: '模板名称',
|
||||
},
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '签约对象',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '货主', value: 1 },
|
||||
{ label: '司机', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'contract:type' },
|
||||
containAllLable: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
resourceType: {
|
||||
title: '货源类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'goodresource:type' },
|
||||
containsAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
} as SFSelectWidgetSchema,
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '合同模板名称',
|
||||
className: 'text-center',
|
||||
render: 'templateName'
|
||||
},
|
||||
{
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
render: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractTypeLabel'
|
||||
},
|
||||
{
|
||||
title: '货源类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '创建时间',
|
||||
className: 'text-center',
|
||||
index: 'createTime'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
click: (_record) => this.edit(_record),
|
||||
acl: { ability: ['CONTRACT-TEMPLATE-edit'] },
|
||||
},
|
||||
{
|
||||
text: '删除',
|
||||
click: (_record) => this.delete(_record),
|
||||
acl: { ability: ['CONTRACT-TEMPLATE-delete'] },
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
initSTAudit() {
|
||||
this.schemaView = {
|
||||
properties: {
|
||||
handleResult: {
|
||||
title: '处理结果',
|
||||
type: 'string',
|
||||
maxLength: 50,
|
||||
ui: {
|
||||
placeholder: '最多不超过50字',
|
||||
widget: 'textarea',
|
||||
autosize: { minRows: 3, maxRows: 6 }
|
||||
},
|
||||
},
|
||||
},
|
||||
required: ['handleResult']
|
||||
};
|
||||
this.uiView = { '*': { spanLabelFixed: 110, grid: { span: 24 } } };
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
tabChange(item: any) {
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF(): void {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
}
|
||||
|
||||
edit(value: any) {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 2
|
||||
}
|
||||
})
|
||||
}
|
||||
creatTemplate() {
|
||||
this.router.navigate(['/contract-management/template/text/' + 0], {
|
||||
queryParams: {
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1)
|
||||
}
|
||||
view(value: any) {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 3
|
||||
}
|
||||
})
|
||||
}
|
||||
delete(value: any) {
|
||||
this.modal.confirm({
|
||||
nzTitle: '<i>删除确认</i>',
|
||||
nzOnOk: () =>
|
||||
this.service.request(this.service.$api_deletebatch_contractTemplate, [value.id]).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('删除成功!');
|
||||
this.st.reload(1)
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 10:31:05
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
|
||||
<!-- 搜索表单 -->
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf
|
||||
#sf
|
||||
[schema]="schema"
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button
|
||||
nz-button
|
||||
nzType="primary"
|
||||
[disabled]="!sf.valid"
|
||||
[nzLoading]="false"
|
||||
(click)="st?.load(1)"
|
||||
acl
|
||||
[acl-ability]="['CONTRACT-INDEX-listFrame']"
|
||||
>查询</button
|
||||
>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
<div class="NewBtn">
|
||||
<button nz-button nzType="primary" (click)="creatTemplate()" acl [acl-ability]="['CONTRACT-TEMPLATE-new']"> 新建 </button>
|
||||
</div>
|
||||
<div style="margin-top: 15px">
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="service.$api_get_contractTemplate_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
<ng-template st-row="templateName" let-item let-index="index">
|
||||
<a (click)="view(item)">{{ item.templateName }}</a>
|
||||
</ng-template>
|
||||
</st>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -0,0 +1,4 @@
|
||||
.NewBtn{
|
||||
float: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-05 09:45:47
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 14:09:28
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-partner\\contract-template-partner.component.spec.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ContractManagementTemplatePartnerComponent } from './contract-template-partner.component';
|
||||
|
||||
describe('ContractManagementTemplatePartnerComponent', () => {
|
||||
let component: ContractManagementTemplatePartnerComponent;
|
||||
let fixture: ComponentFixture<ContractManagementTemplatePartnerComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ContractManagementTemplatePartnerComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ContractManagementTemplatePartnerComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,250 @@
|
||||
import { Router } from '@angular/router';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-template-partner-complaint',
|
||||
templateUrl: './contract-template-partner.component.html',
|
||||
styleUrls: ['./contract-template-partner.component.less']
|
||||
})
|
||||
export class ContractManagementTemplatePartnerComponent implements OnInit {
|
||||
ui: SFUISchema = {};
|
||||
uiView: SFUISchema = {};
|
||||
schema: SFSchema = {};
|
||||
schemaView: SFSchema = {};
|
||||
auditMany = false;
|
||||
_$expand = false;
|
||||
channelId: any;
|
||||
@ViewChild('st') private readonly st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
columns: STColumn[] = [];
|
||||
datass: any = [
|
||||
{
|
||||
one: '1',
|
||||
two: '1',
|
||||
three: '1',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
one: '2',
|
||||
two: '2',
|
||||
three: '2',
|
||||
id: 2
|
||||
},
|
||||
];
|
||||
constructor(
|
||||
public service: ContractManagementService,
|
||||
private modal: NzModalService,
|
||||
private router: Router
|
||||
) { }
|
||||
|
||||
/**
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
return {
|
||||
templateType: 'HHR',
|
||||
...this.sf?.value,
|
||||
};
|
||||
}
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter((item) => item.checked) || [];
|
||||
}
|
||||
ngOnInit(): void {
|
||||
this.initSF();
|
||||
this.initST();
|
||||
this.initSTAudit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
templateName: {
|
||||
type: 'string',
|
||||
title: '模板名称',
|
||||
},
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '签约对象',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '货主', value: 1 },
|
||||
{ label: '司机', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'contract:type' },
|
||||
containAllLable: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
resourceType: {
|
||||
title: '货源类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'goodresource:type' },
|
||||
containsAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
} as SFSelectWidgetSchema,
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '合同模板名称',
|
||||
className: 'text-center',
|
||||
render: 'templateName'
|
||||
},
|
||||
{
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractTypeLabel'
|
||||
},
|
||||
{
|
||||
title: '货源类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '创建时间',
|
||||
className: 'text-center',
|
||||
index: 'createTime'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
click: (_record) => this.edit(_record),
|
||||
acl: { ability: ['CONTRACT-TEMPLATE-edit'] },
|
||||
},
|
||||
{
|
||||
text: '删除',
|
||||
click: (_record) => this.delete(_record),
|
||||
acl: { ability: ['CONTRACT-TEMPLATE-delete'] },
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
initSTAudit() {
|
||||
this.schemaView = {
|
||||
properties: {
|
||||
handleResult: {
|
||||
title: '处理结果',
|
||||
type: 'string',
|
||||
maxLength: 50,
|
||||
ui: {
|
||||
placeholder: '最多不超过50字',
|
||||
widget: 'textarea',
|
||||
autosize: { minRows: 3, maxRows: 6 }
|
||||
},
|
||||
},
|
||||
},
|
||||
required: ['handleResult']
|
||||
};
|
||||
this.uiView = { '*': { spanLabelFixed: 110, grid: { span: 24 } } };
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
tabChange(item: any) {
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF(): void {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
}
|
||||
|
||||
edit(value: any) {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 2
|
||||
}
|
||||
})
|
||||
}
|
||||
creatTemplate() {
|
||||
this.router.navigate(['/contract-management/template/text/' + 0], {
|
||||
queryParams: {
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1)
|
||||
}
|
||||
view(value: any) {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 3
|
||||
}
|
||||
})
|
||||
}
|
||||
delete(value: any) {
|
||||
this.modal.confirm({
|
||||
nzTitle: '<i>删除确认</i>',
|
||||
nzOnOk: () =>
|
||||
this.service.request(this.service.$api_deletebatch_contractTemplate, [value.id]).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('删除成功!');
|
||||
this.st.reload(1)
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -4,13 +4,12 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:16:18
|
||||
* @LastEditTime : 2022-02-24 10:31:05
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
|
||||
<!-- 搜索表单 -->
|
||||
<page-header-wrapper [title]="'合同模板'"> </page-header-wrapper>
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
@ -21,29 +20,35 @@
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container *ngIf="queryFieldCount > 4">
|
||||
<ng-container>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="signTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.signTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
<ng-template sf-template="effectiveEndTime" let-me let-ui="ui" let-schema="schema">
|
||||
<nz-range-picker [nzShowTime]="true" [(ngModel)]="sf.value.effectiveEndTime"></nz-range-picker>
|
||||
</ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button
|
||||
nz-button
|
||||
nzType="primary"
|
||||
[disabled]="!sf.valid"
|
||||
[nzLoading]="service.http.loading"
|
||||
[nzLoading]="false"
|
||||
(click)="st?.load(1)"
|
||||
acl
|
||||
[acl-ability]="['CONTRACT-TEMPLATE-search']"
|
||||
[acl-ability]="['CONTRACT-INDEX-listFrame']"
|
||||
>查询</button
|
||||
>
|
||||
<button nz-button nzType="primary" acl [acl-ability]="['CONTRACT-TEMPLATE-export']">导出</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
@ -67,7 +72,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
>
|
||||
<ng-template st-row="templateName" let-item let-index="index">
|
||||
<a (click)="view(item)">{{ item.templateName }}</a>
|
||||
|
||||
@ -4,27 +4,27 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-05 09:45:47
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:16:22
|
||||
* @LastEditTime : 2022-02-24 10:25:58
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template\\contract-template.component.spec.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ContractManagementTemplateComponent } from './contract-template.component';
|
||||
import { ContractManagementTemplateDetailComponent } from './contract-template.component';
|
||||
|
||||
describe('ContractManagementTemplateComponent', () => {
|
||||
let component: ContractManagementTemplateComponent;
|
||||
let fixture: ComponentFixture<ContractManagementTemplateComponent>;
|
||||
describe('ContractManagementTemplateDetailComponent', () => {
|
||||
let component: ContractManagementTemplateDetailComponent;
|
||||
let fixture: ComponentFixture<ContractManagementTemplateDetailComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ContractManagementTemplateComponent ]
|
||||
declarations: [ ContractManagementTemplateDetailComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ContractManagementTemplateComponent);
|
||||
fixture = TestBed.createComponent(ContractManagementTemplateDetailComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
@ -9,11 +9,11 @@ import { ContractManagementService } from '../../services/contract-management.se
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-template-complaint',
|
||||
selector: 'app-contract-management-template-detail-complaint',
|
||||
templateUrl: './contract-template.component.html',
|
||||
styleUrls: ['./contract-template.component.less']
|
||||
})
|
||||
export class ContractManagementTemplateComponent implements OnInit {
|
||||
export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
ui: SFUISchema = {};
|
||||
uiView: SFUISchema = {};
|
||||
schema: SFSchema = {};
|
||||
@ -49,6 +49,7 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
*/
|
||||
get reqParams() {
|
||||
return {
|
||||
templateType: 'MX',
|
||||
...this.sf?.value,
|
||||
};
|
||||
}
|
||||
@ -69,20 +70,45 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
templateName: {
|
||||
type: 'string',
|
||||
title: '模板名称',
|
||||
},
|
||||
templateType: {
|
||||
title: '模板类型',
|
||||
signingObject: {
|
||||
type: 'string',
|
||||
title: '签约对象',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '货主', value: 1 },
|
||||
{ label: '司机', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
contractType: {
|
||||
title: '合同类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'contract:template:type' },
|
||||
containsAllLabel: true,
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'contract:type' },
|
||||
containAllLable: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
resourceType: {
|
||||
title: '货源类型',
|
||||
type: 'string',
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'goodresource:type' },
|
||||
containsAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
} as SFSelectWidgetSchema,
|
||||
},
|
||||
@ -102,14 +128,22 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
render: 'templateName'
|
||||
},
|
||||
{
|
||||
title: '模板类型',
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'templateType'
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '单据类型',
|
||||
index: 'contractType',
|
||||
title: '合同类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'contractTypeLabel'
|
||||
},
|
||||
{
|
||||
title: '货源类型',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{
|
||||
@ -120,7 +154,7 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
className: 'text-left',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
@ -160,9 +194,9 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
@ -178,14 +212,14 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
}
|
||||
|
||||
edit(value: any) {
|
||||
this.router.navigate(['/contract-management/template/detail/' + value.id], {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 2
|
||||
}
|
||||
})
|
||||
}
|
||||
creatTemplate() {
|
||||
this.router.navigate(['/contract-management/template/detail/' + 0], {
|
||||
this.router.navigate(['/contract-management/template/text/' + 0], {
|
||||
queryParams: {
|
||||
status: 1
|
||||
}
|
||||
@ -195,7 +229,7 @@ export class ContractManagementTemplateComponent implements OnInit {
|
||||
window.history.go(-1)
|
||||
}
|
||||
view(value: any) {
|
||||
this.router.navigate(['/contract-management/template/detail/' + value.id], {
|
||||
this.router.navigate(['/contract-management/template/text/' + value.id],{
|
||||
queryParams: {
|
||||
status: 3
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-07 13:27:10
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:16:56
|
||||
* @LastEditTime : 2022-02-23 19:39:38
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\index\\index.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -19,5 +19,8 @@
|
||||
<nz-tab nzTitle="框架合同">
|
||||
<app-contract-management-contract-frame></app-contract-management-contract-frame>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="合伙人合同">
|
||||
<app-contract-management-contract-partner></app-contract-management-contract-partner>
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</ng-template>
|
||||
@ -4,14 +4,12 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-23 15:57:26
|
||||
* @LastEditTime : 2022-03-23 13:56:14
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\policy\\policy.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header [action]="phActionTpl">
|
||||
<ng-template #phActionTpl> </ng-template>
|
||||
</page-header>
|
||||
|
||||
<page-header-wrapper title="保单管理" >
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
@ -22,7 +20,7 @@
|
||||
[ui]="ui"
|
||||
[mode]="'search'"
|
||||
[disabled]="!sf?.valid"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
@ -34,7 +32,7 @@
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['CONTRACT-POLICY-search']">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="false" (click)="st?.load(1)" acl [acl-ability]="['CONTRACT-POLICY-search']">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
@ -53,7 +51,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading"
|
||||
[loading]="false"
|
||||
>
|
||||
|
||||
</st>
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-07 13:27:10
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 14:10:45
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\template\\template.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
|
||||
<page-header-wrapper title="合同模板" [tab]="tpTab">
|
||||
</page-header-wrapper>
|
||||
<ng-template #tpTab>
|
||||
<nz-tabset [(nzSelectedIndex)]="selectedIndex">
|
||||
<nz-tab nzTitle="明细合同">
|
||||
<app-contract-management-template-detail-complaint></app-contract-management-template-detail-complaint>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="框架合同">
|
||||
<app-contract-management-template-frame-complaint></app-contract-management-template-frame-complaint>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="合伙人合同">
|
||||
<app-contract-management-template-partner-complaint></app-contract-management-template-partner-complaint>
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</ng-template>
|
||||
@ -0,0 +1,24 @@
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ContractManagementTemplateComponent } from './template.component';
|
||||
|
||||
describe('ContractManagementTemplateComponent', () => {
|
||||
let component: ContractManagementTemplateComponent;
|
||||
let fixture: ComponentFixture<ContractManagementTemplateComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ContractManagementTemplateComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ContractManagementTemplateComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-07 13:27:10
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-24 10:20:23
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\template\\template.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
|
||||
@Component({
|
||||
selector: 'app-supply-management-template',
|
||||
templateUrl: './template.component.html',
|
||||
})
|
||||
export class ContractManagementTemplateComponent implements OnInit {
|
||||
selectedIndex = 0;
|
||||
|
||||
constructor(private http: _HttpClient, private modal: ModalHelper) { }
|
||||
|
||||
ngOnInit(): void { }
|
||||
|
||||
|
||||
}
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-04 21:05:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:15:03
|
||||
* @LastEditTime : 2022-02-24 10:24:16
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\contract-management-routing.module.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -13,16 +13,18 @@ import { NgModule } from '@angular/core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component';
|
||||
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
|
||||
import { ContractManagementTemplateDetailComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
import { ContractManagementTemplateComponent } from './components/contract-template/contract-template.component';
|
||||
import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component';
|
||||
import { ContractManagementTemplateTextComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
import { ContractManagementIndexComponent } from './components/index/index.component';
|
||||
import { ContractManagementPolicyComponent } from './components/policy/policy.component';
|
||||
import { ContractManagementTemplateComponent } from './components/template/template.component';
|
||||
const routes: Routes = [
|
||||
{ path: 'index', component: ContractManagementIndexComponent },
|
||||
{ path: 'index/detail/:id', component: ContractManagementDetailComponent },
|
||||
{ path: 'template', component: ContractManagementTemplateComponent },
|
||||
{ path: 'template/detail/:id', component: ContractManagementTemplateDetailComponent },
|
||||
{ path: 'policy', component: ContractManagementPolicyComponent }
|
||||
{ path: 'template/text/:id', component: ContractManagementTemplateTextComponent },
|
||||
{ path: 'policy', component: ContractManagementPolicyComponent },
|
||||
{ path: 'partner', component: ContractManagementPartnerComponent },
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-04 21:05:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:15:08
|
||||
* @LastEditTime : 2022-02-24 14:09:24
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\contract-management.module.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -15,20 +15,29 @@ import { SharedModule } from '@shared';
|
||||
import { ContractManagementManagementRoutingModule } from './contract-management-routing.module';
|
||||
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
|
||||
import { ContractManagementPolicyComponent } from './components/policy/policy.component';
|
||||
import { ContractManagementTemplateComponent } from './components/contract-template/contract-template.component';
|
||||
import { ContractManagementTemplateDetailComponent } from './components/contract-template/contract-template.component';
|
||||
import { ContractManagementIndexComponent } from './components/index/index.component';
|
||||
import { ContractManagementFrameComponent } from './components/contract-frame/contract-frame.component';
|
||||
import { ContractManagementTemplateDetailComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
import { ContractManagementDetailComponent } from './components/contract-detail/contract-detail.component';
|
||||
import { ContractManagementPartnerComponent } from './components/contract-partner/contract-partner.component';
|
||||
import { ContractManagementTemplateComponent } from './components/template/template.component';
|
||||
import { ContractManagementTemplateTextComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
import { ContractManagementTemplateFrameComponent } from './components/contract-template-frame/contract-template-frame.component';
|
||||
import { ContractManagementTemplatePartnerComponent } from './components/contract-template-partner/contract-template-partner.component';
|
||||
|
||||
const COMPONENTS: any = [
|
||||
ContractManagementContractListComponent,
|
||||
ContractManagementPolicyComponent,
|
||||
ContractManagementTemplateComponent,
|
||||
ContractManagementTemplateDetailComponent,
|
||||
ContractManagementTemplateDetailComponent,
|
||||
ContractManagementIndexComponent,
|
||||
ContractManagementFrameComponent,
|
||||
ContractManagementDetailComponent
|
||||
ContractManagementDetailComponent,
|
||||
ContractManagementPartnerComponent,
|
||||
ContractManagementTemplateComponent,
|
||||
ContractManagementTemplateTextComponent,
|
||||
ContractManagementTemplateFrameComponent,
|
||||
ContractManagementTemplatePartnerComponent
|
||||
];
|
||||
const NOTROUTECOMPONENTS: any = [];
|
||||
@NgModule({
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-04 21:05:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:17:10
|
||||
* @LastEditTime : 2022-02-24 10:00:59
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\contract-management\\services\\contract-management.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -31,6 +31,8 @@ export class ContractManagementService extends BaseService {
|
||||
$api_listDetailed_page = `/api/sdc/contract/listDetailed/page`;
|
||||
// 查询框架合同
|
||||
$api_listFrame_page = `/api/sdc/contract/listFrame/page`;
|
||||
// 查询合伙人合同
|
||||
$api_listPartner_page = `/api/sdc/contract/listPartner/page`;
|
||||
// 获取订单合同表
|
||||
$api_contract_get = `/api/sdc/contract/get`;
|
||||
constructor(public injector: Injector) {
|
||||
|
||||
@ -8,6 +8,6 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading">
|
||||
[loading]="false">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -11,7 +11,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -30,6 +30,6 @@
|
||||
<nz-tab nzTitle="全部"></nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
<st #st [data]="service.$api_get_abnormal_gold_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }"></st>
|
||||
<st #st [data]="service.$api_get_abnormal_gold_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }"></st>
|
||||
</nz-card>
|
||||
@ -9,7 +9,7 @@
|
||||
<nz-card class="search-box">
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="24">
|
||||
<se-container col="3" labelWidth="100">
|
||||
<se-container col="3" labelWidth="120">
|
||||
<se-title class="mb-md" style="font-size: 18px">基本信息</se-title>
|
||||
<se label="网络货运人" required>
|
||||
{{ costInfo?.ltdName }}
|
||||
@ -21,13 +21,13 @@
|
||||
{{ costInfo?.artoname }}
|
||||
</se>
|
||||
<se label="结算客户" required>
|
||||
{{ costInfo?.shipperId }}
|
||||
{{ costInfo?.cnoName }}
|
||||
</se>
|
||||
<se label="收款账户">
|
||||
{{ costInfo?.ltdaccountId }}
|
||||
</se>
|
||||
<se label="预收金额">
|
||||
{{ costInfo?.premoney |currency }}
|
||||
{{ costInfo?.brmmoney |currency }}
|
||||
</se>
|
||||
<se label="收款类型" required>
|
||||
{{ costInfo?.brmtypeLabel }}
|
||||
@ -47,38 +47,40 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="6" [nzSm]="24" [nzXs]="24">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading"
|
||||
<button nz-button nzType="primary" [nzLoading]="false"
|
||||
(click)="inputST?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetInputSF()">重置</button>
|
||||
</div>
|
||||
</div> -->
|
||||
<st #inputST [data]="service.$api_get_advance_collection_detail" [columns]="columns.input"
|
||||
[page]="{ show: false }" [req]="{ process: beforeReq }" [res]="{ reName: { list: 'data' } }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px', y: '370px' }" class="mt-md">
|
||||
[loading]="false" [scroll]="{ x: '1200px', y: '370px' }" class="mt-md">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-tab>
|
||||
<!-- <nz-tab nzTitle="核销信息">
|
||||
<div nz-row nzGutter="8">
|
||||
<nz-tab nzTitle="核销信息">
|
||||
<!-- <div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="16" [nzLg]="18" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="infoSearchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 12, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="6" [nzSm]="24" [nzXs]="24">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading"
|
||||
<button nz-button nzType="primary" [nzLoading]="false"
|
||||
(click)="infoST?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetInfoSF()">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
<st #infoST [scroll]="{ x: '2000px' }" [data]="[]" [columns]="columns.info" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px', y: '370px' }" class="mt-md">
|
||||
</div> -->
|
||||
<st #infoST [scroll]="{ x: '2000px' }" [data]="service.$api_get_advance_collection_hrxiao"
|
||||
[columns]="columns.info" [page]="{ show: false }" [req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data' } }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }"
|
||||
class="mt-md">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-tab> -->
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</nz-card>
|
||||
@ -133,17 +133,17 @@ export class AdvanceCollectionDetailComponent implements OnInit {
|
||||
],
|
||||
info: [
|
||||
{ title: '序号', render: 'no', width: 70, className: 'text-left' },
|
||||
{ title: '核销单号', index: 'cnoName', className: 'text-left', width: 200 },
|
||||
{ title: '核销日期', index: 'billHId', className: 'text-center', width: 150 },
|
||||
{ title: '核销单号', index: 'ahxcode', className: 'text-left', width: 200 },
|
||||
{ title: '核销日期', index: 'ahxdate', className: 'text-center', width: 150 },
|
||||
{
|
||||
title: '核销金额',
|
||||
index: 'yskmoney',
|
||||
index: 'ahxmoney',
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.yskmoney }) },
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ahxmoney }) },
|
||||
width: 200
|
||||
},
|
||||
{ title: '核销备注', index: 'vatapptype', className: 'text-left', width: 200 }
|
||||
{ title: '核销备注', index: 'remarks', className: 'text-left', width: 200 }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -22,7 +22,7 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box">
|
||||
<st #st [data]="service.$api_get_advance_collection_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }">
|
||||
<st #st [data]="service.$api_get_advance_collection_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -1,9 +1,9 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Component, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
|
||||
|
||||
import { FreightAccountService } from '../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
@ -11,7 +11,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
|
||||
templateUrl: './advance-collection.component.html',
|
||||
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
|
||||
})
|
||||
export class AdvanceCollectionComponent implements OnInit {
|
||||
export class AdvanceCollectionComponent {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
@ -23,8 +23,6 @@ export class AdvanceCollectionComponent implements OnInit {
|
||||
|
||||
constructor(public service: FreightAccountService, private router: Router, private modal: NzModalService) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, { ...this.sf.value });
|
||||
@ -49,7 +47,7 @@ export class AdvanceCollectionComponent implements OnInit {
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
@ -149,14 +147,14 @@ export class AdvanceCollectionComponent implements OnInit {
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
click: item => this.router.navigate(['/financial-management/advance-collection/detail/' + item.id])
|
||||
},
|
||||
{
|
||||
text: '核销'
|
||||
},
|
||||
{
|
||||
text: '退款'
|
||||
click: item => this.router.navigate([`/financial-management/advance-collection/detail/${item.id}`])
|
||||
}
|
||||
// {
|
||||
// text: '核销'
|
||||
// },
|
||||
// {
|
||||
// text: '退款'
|
||||
// }
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<nz-card class="search-box">
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="24">
|
||||
<se-container col="3" labelWidth="100" *ngIf="!textStatus">
|
||||
<se-container col="3" labelWidth="120" *ngIf="!textStatus">
|
||||
<se-title class="mb-md" style="font-size: 18px">基本信息(应收费用)</se-title>
|
||||
<se label="网络货运人" required>
|
||||
{{ costInfo?.ltdName }}
|
||||
@ -27,16 +27,16 @@
|
||||
{{ costInfo?.arvattypeLabel }}
|
||||
</se>
|
||||
<se label="应收金额" required>
|
||||
{{ costInfo?.armoeny }}
|
||||
{{ costInfo?.armoeny | currency }}
|
||||
</se>
|
||||
<se label="开票金额" required>
|
||||
{{ costInfo?.arkpmoney }}
|
||||
{{ costInfo?.armoeny | currency }}
|
||||
</se>
|
||||
<se label="收款金额" required>
|
||||
{{ costInfo?.armoeny }}
|
||||
{{ costInfo?.armoeny | currency }}
|
||||
</se>
|
||||
</se-container>
|
||||
<se-container col="3" labelWidth="100" *ngIf="textStatus" class="mt-md">
|
||||
<se-container col="3" labelWidth="120" *ngIf="textStatus" class="mt-md">
|
||||
<se-title class="mb-md" style="font-size: 18px">基本信息(应付费用)</se-title>
|
||||
<se label="网络货运人" required>
|
||||
{{ costInfo?.ltdName }}
|
||||
@ -44,7 +44,7 @@
|
||||
<se label="费用类型" required>
|
||||
{{ costInfo?.feetypeLabel }}
|
||||
</se>
|
||||
<se label="应付核销" required> </se>
|
||||
<se label="应付核销" required> {{ costInfo?.hrmoney | currency}}</se>
|
||||
<se label="费用备注">
|
||||
{{ costInfo?.hrremarks }}
|
||||
</se>
|
||||
@ -55,13 +55,13 @@
|
||||
{{ costInfo?.hrvattypeLabel }}
|
||||
</se>
|
||||
<se label="应付金额" required>
|
||||
{{ costInfo?.hrmoney }}
|
||||
{{ costInfo?.hrmoney | currency}}
|
||||
</se>
|
||||
<se label="收票金额" required>
|
||||
{{ costInfo?.hrvatmoney }}
|
||||
{{ (costInfo?.hrvatmoney || 0) | currency }}
|
||||
</se>
|
||||
<se label="付款金额" required>
|
||||
{{ costInfo?.hrpaymoney }}
|
||||
{{ costInfo?.hrmoney | currency}}
|
||||
</se>
|
||||
</se-container>
|
||||
</div>
|
||||
@ -71,31 +71,29 @@
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<nz-tabset>
|
||||
<nz-tab nzTitle="费用明细">
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="costInfo?.ficoFeeLList"
|
||||
[columns]="columns.cost"
|
||||
[page]="{ show: false }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
>
|
||||
<ng-template st-row="artocode" let-item let-index="index">
|
||||
{{ costInfo?.artocode}}/{{ costInfo?.artonames}}
|
||||
</ng-template>
|
||||
<ng-template st-row="hrvatmoney" let-item let-index="index">
|
||||
<span *ngIf="!textStatus">{{ item.armoney | currency}}</span>
|
||||
<span *ngIf="textStatus">{{ item.hrmoney | currency}}</span>
|
||||
</ng-template>
|
||||
<ng-template st-row="armoney" let-item let-index="index">
|
||||
{{ item.armoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="arkpmoney" let-item let-index="index">
|
||||
{{ item.arkpmoney | currency}}
|
||||
</ng-template>
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="costInfo?.ficoFeeLList" [columns]="columns.cost"
|
||||
[page]="{ show: false }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{ textStatus ? item.hrmoney : item.hrvatmoney }}
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
<ng-template st-row="artocode" let-item let-index="index">
|
||||
{{ costInfo?.artocode}}/{{ costInfo?.artonames}}
|
||||
</ng-template>
|
||||
<ng-template st-row="hrvatmoney" let-item let-index="index">
|
||||
<span *ngIf="!textStatus">{{ item.armoney | currency}}</span>
|
||||
<span *ngIf="textStatus">{{ item.hrmoney | currency}}</span>
|
||||
</ng-template>
|
||||
<ng-template st-row="armoney" let-item let-index="index">
|
||||
<!-- {{ item.armoney | currency}} -->
|
||||
<span *ngIf="!textStatus">{{ item.armoney | currency}}</span>
|
||||
<span *ngIf="textStatus">{{ item.hrmoney | currency}}</span>
|
||||
</ng-template>
|
||||
<ng-template st-row="arkpmoney" let-item let-index="index">
|
||||
{{ item.arkpmoney | currency}}
|
||||
</ng-template>
|
||||
<!-- <ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{ textStatus ? item.hrmoney : item.hrvatmoney }}
|
||||
</ng-template> -->
|
||||
<ng-template st-row="billTime" let-item let-index="index" let-column="column">
|
||||
{{costInfo.billTime}}
|
||||
</ng-template>
|
||||
@ -105,42 +103,28 @@
|
||||
</st>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="开票信息">
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="costInfo?.ficoVatappDatailList"
|
||||
[columns]="columns.requested"
|
||||
[page]="{ show: false }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
>
|
||||
<ng-template st-row="vatnotax" let-item let-index="index">
|
||||
{{ item.vatnotax | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="vatmoney" let-item let-index="index">
|
||||
{{ item.vatmoney | currency}}
|
||||
</ng-template>
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="costInfo?.ficoVatappDatailList" [columns]="columns.requested"
|
||||
[page]="{ show: false }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="armoney" let-item let-index="index">
|
||||
{{ item.armoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="vatmoney" let-item let-index="index">
|
||||
{{ item.vatmoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="收款信息">
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="costInfo?.ficoAhxLList"
|
||||
[columns]="columns.collection"
|
||||
[page]="{ show: false }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
>
|
||||
<ng-template st-row="ahxmoney" let-item let-index="index">
|
||||
{{ item.ahxmoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="ahxmoney" let-item let-index="index">
|
||||
{{ item.ahxmoney | currency}}
|
||||
</ng-template>
|
||||
<nz-tab nzTitle="收款信息" *ngIf="!textStatus">
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="costInfo?.ficoAhxLList" [columns]="columns.collection"
|
||||
[page]="{ show: false }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="ahxmoney" let-item let-index="index">
|
||||
{{ item.ahxmoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="ahxmoney" let-item let-index="index">
|
||||
{{ item.ahxmoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
@ -148,30 +132,19 @@
|
||||
</st>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="收票信息">
|
||||
<st
|
||||
#st
|
||||
[data]="data"
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[columns]="columns.ticket"
|
||||
[page]="{ show: false }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
></st>
|
||||
<st #st [data]="data" [scroll]="{ x: '2000px' }" [columns]="columns.ticket" [page]="{ show: false }"
|
||||
[loading]="false" [scroll]="{ x: '1200px', y: '370px' }"></st>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="付款信息">
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="costInfo?.ficoPhxLList"
|
||||
[columns]="columns.payment"
|
||||
[page]="{ show: false }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px', y: '370px' }"
|
||||
>
|
||||
<nz-tab nzTitle="付款信息" *ngIf="textStatus">
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="costInfo?.ficoPhxLList" [columns]="columns.payment"
|
||||
[page]="{ show: false }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
<ng-template st-row="phxmoney" let-item let-index="index" let-column="column">
|
||||
{{ item.phxmoney | currency}}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</nz-card>
|
||||
</nz-card>
|
||||
@ -52,7 +52,13 @@ export class CostManagementDetailComponent implements OnInit {
|
||||
{ title: '结算客户', render: 'cnoName', className: 'text-left', width: 200 },
|
||||
{ title: '订单费用类型', index: 'billLTypeLabel', className: 'text-left', width: 200 },
|
||||
{ title: '费用科目', index: 'feeSubName', className: 'text-left', width: 200 },
|
||||
{ title: '税率', index: 'hrvatrate', className: 'text-right', width: 200 },
|
||||
{
|
||||
title: '税率',
|
||||
index: 'arvatrate',
|
||||
className: 'text-right',
|
||||
width: 200,
|
||||
format: item => `${item.arvatrate ? ((item.arvatrate as number) * 100).toFixed(2) : 0}%`
|
||||
},
|
||||
{ title: '费用金额', render: 'hrvatmoney', className: 'text-right', width: 200 },
|
||||
{ title: '收/付款金额', render: 'armoney', className: 'text-right', width: 200 },
|
||||
{ title: '开/收票金额', render: 'arkpmoney', className: 'text-right', width: 200 }
|
||||
@ -61,9 +67,9 @@ export class CostManagementDetailComponent implements OnInit {
|
||||
{ title: '序号', render: 'no', width: 70, className: 'text-left' },
|
||||
{ title: '费用明细号', index: 'feeLId', className: 'text-left', width: 200 },
|
||||
{ title: '发票申请', index: 'vatinvcode', className: 'text-left', width: 200 },
|
||||
{ title: '发票类型', index: 'vatapptype', className: 'text-left', width: 200 },
|
||||
{ title: '发票号', index: 'vatappcode', className: 'text-left', width: 200 },
|
||||
{ title: '发票日期', index: 'vatappdate', className: 'text-left', width: 200 },
|
||||
{ title: '发票类型', index: 'invoicetypeLabel', className: 'text-left', width: 200 },
|
||||
{ title: '发票号', index: 'invoiceno', className: 'text-left', width: 200 },
|
||||
{ title: '发票日期', index: 'invoicedate', className: 'text-left', width: 200 },
|
||||
{ title: '发票状态', index: 'stsLabel', className: 'text-left', width: 200 },
|
||||
{ title: '应收金额', render: 'armoney', className: 'text-left', width: 200 },
|
||||
{ title: '开票金额', render: 'vatmoney', className: 'text-left', width: 200 }
|
||||
@ -94,9 +100,9 @@ export class CostManagementDetailComponent implements OnInit {
|
||||
{ title: '付款单号', index: 'phxHId' },
|
||||
{ title: '要求日期', index: 'billTime' },
|
||||
{ title: '确认日期', index: 'feedate' },
|
||||
{ title: '付款状态', index: 'callNo' },
|
||||
{ title: '应付金额', index: 'callNo' },
|
||||
{ title: '付款金额', index: 'phxmoney' }
|
||||
// { title: '付款状态', index: 'callNo' },
|
||||
{ title: '应付金额', render: 'phxmoney' },
|
||||
{ title: '付款金额', render: 'phxmoney' }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-30 19:36:30
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-20 17:14:57
|
||||
* @LastEditTime : 2022-02-23 16:35:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\cost-management\\cost-management.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -17,7 +17,8 @@
|
||||
[compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)" acl
|
||||
[acl-ability]="['FINANCIAL-COST-list']">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button (click)="exportList()"> 导出明细</button> -->
|
||||
@ -32,29 +33,27 @@
|
||||
<nz-card class="content-box">
|
||||
<div nz-row class="mb-sm">
|
||||
<div nz-col nzSpan="24">
|
||||
<!-- <button nz-button nzType="primary" [nzLoading]="service.http.loading"
|
||||
<!-- <button nz-button nzType="primary" [nzLoading]="false"
|
||||
(click)="routeTo('/financial-management/cost-management/expenses-receivable/1')">添加应收费用</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading"
|
||||
<button nz-button nzType="primary" [nzLoading]="false"
|
||||
(click)="routeTo('/financial-management/cost-management/expenses-payable/1')">添加应付费用</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading">导入费用</button> -->
|
||||
<button nz-button nzType="primary" [nzLoading]="false">导入费用</button> -->
|
||||
</div>
|
||||
</div>
|
||||
<st #st [data]="service.$api_get_cost_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '2000px' }">
|
||||
<st #st [data]="service.$api_get_cost_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '2000px' }">
|
||||
<ng-template st-row="armoeny" let-item let-index="index">
|
||||
{{ item.armoeny | currency}}
|
||||
{{ item.armoeny | currency }}
|
||||
</ng-template>
|
||||
<ng-template st-row="hrmoney" let-item let-index="index">
|
||||
{{ item.hrmoney | currency}}
|
||||
</ng-template>
|
||||
<ng-template st-row="artocode" let-item let-index="index">
|
||||
{{ item.cnoCode}}/{{ item.cnoName}}
|
||||
{{ item.hrmoney | currency }}
|
||||
</ng-template>
|
||||
<ng-template st-row="artocode" let-item let-index="index"> {{ item.cnoCode }}/{{ item.cnoName }} </ng-template>
|
||||
<ng-template st-row="hrpaymoney" let-item let-index="index">
|
||||
{{ item.hrpaymoney | currency}}
|
||||
{{ item.hrpaymoney | currency }}
|
||||
</ng-template>
|
||||
<ng-template st-row="hrvatmoney" let-item let-index="index">
|
||||
{{ item.hrvatmoney | currency}}
|
||||
{{ item.hrvatmoney | currency }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
@ -90,7 +90,7 @@ export class CostManagementComponent implements OnInit {
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
routeTo(url: string, params?: any, status?: any) {
|
||||
@ -188,9 +188,10 @@ export class CostManagementComponent implements OnInit {
|
||||
searchLoadingText: '搜索中...',
|
||||
allowClear: true,
|
||||
onSearch: (q: any) => {
|
||||
if (!!q) {
|
||||
let str = q.replace(/^\s+|\s+$/g, '');
|
||||
if (str) {
|
||||
return this.service
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: q })
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: str })
|
||||
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||
.toPromise();
|
||||
} else {
|
||||
@ -212,9 +213,10 @@ export class CostManagementComponent implements OnInit {
|
||||
searchLoadingText: '搜索中...',
|
||||
allowClear: true,
|
||||
onSearch: (q: any) => {
|
||||
if (!!q) {
|
||||
let str = q.replace(/^\s+|\s+$/g, '');
|
||||
if (str) {
|
||||
return this.service
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: q })
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: str })
|
||||
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||
.toPromise();
|
||||
} else {
|
||||
@ -285,12 +287,12 @@ export class CostManagementComponent implements OnInit {
|
||||
{ title: '结算客户', render: 'artocode', width: 200, className: 'text-left' },
|
||||
{ title: '应收对象', index: 'artoname', width: 200, className: 'text-left' },
|
||||
{ title: '应付对象', index: 'hrtoname', width: 200, className: 'text-left' },
|
||||
{ title: '应收金额', render: 'armoeny', width: 100, className: 'text-right' },
|
||||
{ title: '应付金额', render: 'hrmoney', width: 100, className: 'text-right' },
|
||||
{ title: '收/付款金额', render: 'hrpaymoney', width: 120, className: 'text-right' },
|
||||
{ title: '开/收票金额', render: 'hrvatmoney', width: 120, className: 'text-right' },
|
||||
{ title: '应收金额', render: 'armoeny', width: 150, className: 'text-right' },
|
||||
{ title: '应付金额', render: 'hrmoney', width: 150, className: 'text-right' },
|
||||
{ title: '收/付款金额', render: 'hrpaymoney', width: 150, className: 'text-right' },
|
||||
{ title: '开/收票金额', render: 'hrvatmoney', width: 150, className: 'text-right' },
|
||||
{ title: '创建时间', index: 'createTime', type: 'date', width: 200, className: 'text-center' },
|
||||
{ title: '状态', index: 'stsLabel', width: 90, className: 'text-center' },
|
||||
{ title: '状态', index: 'stsLabel', width: 120, className: 'text-center' },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -299,12 +301,14 @@ export class CostManagementComponent implements OnInit {
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
click: item => this.routeTo('/financial-management/cost-management/detail/' + item.id, { status: item?.feetypeLabel })
|
||||
click: item => this.routeTo('/financial-management/cost-management/detail/' + item.id, { status: item?.feetypeLabel }),
|
||||
acl: { ability: ['FINANCIAL-COST-view'] }
|
||||
},
|
||||
{
|
||||
text: '审核',
|
||||
click: item => this.auditAction(item),
|
||||
iif: item => item.sts === 2
|
||||
iif: item => item.sts === 2,
|
||||
acl: { ability: ['FINANCIAL-COST-audit'] }
|
||||
}
|
||||
// {
|
||||
// text: '修改',
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
<nz-card [nzExtra]="cardTemplate" nzTitle="基本信息">
|
||||
<ng-template #cardTemplate>
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading">保存</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false">保存</button>
|
||||
</ng-template>
|
||||
|
||||
<div nz-row nzGutter="8">
|
||||
@ -18,7 +18,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="data" [columns]="columns" [page]="{ show: false}" [loading]="service.http.loading" size="small"
|
||||
<st #st [data]="data" [columns]="columns" [page]="{ show: false}" [loading]="false" size="small"
|
||||
[scroll]="{ y: '370px' }" class="mt-sm">
|
||||
<ng-template st-row="description1" let-item let-index="index">
|
||||
<nz-select [ngModel]="item.description" (ngModelChange)="st.setRow(index, { description: $event })"
|
||||
|
||||
@ -10,7 +10,6 @@ import { FreightAccountService } from '../../../services/freight-account.service
|
||||
styleUrls: ['./expenses-payable.component.less']
|
||||
})
|
||||
export class ExpensesPayableComponent implements OnInit {
|
||||
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
@ -125,7 +124,12 @@ export class ExpensesPayableComponent implements OnInit {
|
||||
return [
|
||||
{ title: '结算客户', render: 'description1', width: 150 },
|
||||
{ title: '费用科目', render: 'description2', width: 120 },
|
||||
{ title: '税率', render: 'description3', width: 120 },
|
||||
{
|
||||
title: '税率',
|
||||
render: 'description3',
|
||||
width: 120,
|
||||
format: item => `${item.description3 ? ((item.description3 as number) * 100).toFixed(2) : 0}%`
|
||||
},
|
||||
{ title: '应付金额', render: 'num', width: 120 },
|
||||
{ title: '备注', render: 'description5', width: 150 },
|
||||
{
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
<nz-card [nzExtra]="cardTemplate" nzTitle="基本信息">
|
||||
<ng-template #cardTemplate>
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading">保存</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false">保存</button>
|
||||
</ng-template>
|
||||
|
||||
<div nz-row nzGutter="8">
|
||||
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="data" [columns]="columns" [page]="{ show: false}" [loading]="service.http.loading" size="small"
|
||||
<st #st [data]="data" [columns]="columns" [page]="{ show: false}" [loading]="false" size="small"
|
||||
[scroll]="{ y: '370px' }" class="mt-sm">
|
||||
<ng-template st-row="description1" let-item let-index="index">
|
||||
<nz-select [ngModel]="item.description" (ngModelChange)="st.setRow(index, { description: $event })"
|
||||
|
||||
@ -124,7 +124,12 @@ export class ExpensesReceivableComponent implements OnInit {
|
||||
return [
|
||||
{ title: '结算客户', render: 'description1', width: 150 },
|
||||
{ title: '费用科目', render: 'description2', width: 120 },
|
||||
{ title: '税率', render: 'description3', width: 120 },
|
||||
{
|
||||
title: '税率',
|
||||
render: 'description3',
|
||||
width: 120,
|
||||
format: item => `${item.description3 ? ((item.description3 as number) * 100).toFixed(2) : 0}%`
|
||||
},
|
||||
{ title: '应收金额', render: 'num', width: 120 },
|
||||
{ title: '备注', render: 'description5', width: 150 },
|
||||
{
|
||||
|
||||
@ -15,17 +15,17 @@
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="(params?.availableBalance || 0)+'元' " [nzTitle]="'账户余额'"
|
||||
<nz-statistic [nzValue]="((params?.availableBalance || 0) | currency)+'元' " [nzTitle]="'账户余额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="(info?.incomeAmount || 0) +'元'" [nzTitle]="'收入金额'"
|
||||
<nz-statistic [nzValue]="((info?.incomeAmount || 0) | currency) +'元'" [nzTitle]="'收入金额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="(info?.payAmount || 0) +'元'" [nzTitle]="'支出金额'"
|
||||
<nz-statistic [nzValue]="((info?.payAmount || 0)| currency) +'元'" [nzTitle]="'支出金额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -57,5 +57,5 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
</nz-card>
|
||||
@ -74,7 +74,7 @@ export class DriverAccountDetailComponent implements OnInit {
|
||||
stChange(e: STChange): void {}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
goBack() {
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -22,8 +22,8 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box">
|
||||
<st #st [data]="service.$api_get_driver_account_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }">
|
||||
<st #st [data]="service.$api_get_driver_account_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }">
|
||||
<ng-template st-row="availableBalance" let-item let-index="index">
|
||||
<a (click)="showAccountDetail(item)">{{ (parseFloat(item.availableBalance) +
|
||||
parseFloat(item.freezeBalance)).toFixed(2) | currency}}</a>
|
||||
|
||||
@ -74,7 +74,7 @@ export class DriverAccountComponent implements OnInit {
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
|
||||
@ -14,24 +14,24 @@
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="params?.availableBalance+'元' " [nzTitle]="'账户余额'"
|
||||
<nz-statistic [nzValue]="(params?.availableBalance | currency)+'元' " [nzTitle]="'账户余额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="(info?.incomeAmount || 0) +'元'" [nzTitle]="'收入金额'"
|
||||
<nz-statistic [nzValue]="((info?.incomeAmount | currency) || 0) +'元'" [nzTitle]="'收入金额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
<nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12">
|
||||
<nz-statistic [nzValue]="(info?.payAmount || 0) +'元'" [nzTitle]="'支出金额'"
|
||||
<nz-statistic [nzValue]="((info?.payAmount | currency) || 0) +'元'" [nzTitle]="'支出金额'"
|
||||
[nzValueStyle]="{'font-size':'16px',color:'red'}">
|
||||
</nz-statistic>
|
||||
</nz-col>
|
||||
</nz-row>
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzBordered>
|
||||
<nz-card nzBordered>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
@ -39,7 +39,7 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading"
|
||||
<button nz-button nzType="primary" [nzLoading]="false"
|
||||
(click)="st?.load(1);loadInfo();">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
@ -56,5 +56,10 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
合计 <label class="text-red-dark">{{ static?.total }}</label> 项,收入
|
||||
<label class="text-red-dark font-weight-bold">{{ static?.incomeAmount | currency }}</label>,支出
|
||||
<label class="text-red-dark font-weight-bold">{{static?.payAmount | currency }}</label>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -20,7 +20,7 @@ export class FreightAccountDetailComponent implements OnInit {
|
||||
|
||||
info: any = {};
|
||||
params: any = {};
|
||||
|
||||
static: any = {};
|
||||
_$expand = false;
|
||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private route: ActivatedRoute) {
|
||||
this.params = route.snapshot.queryParams;
|
||||
@ -46,6 +46,7 @@ export class FreightAccountDetailComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
this.loadStatistics(requestOptions.body);
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
@ -71,10 +72,18 @@ export class FreightAccountDetailComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
loadStatistics(params: any) {
|
||||
this.service.request(this.service.$api_get_shipper_account_balance_detail, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.static = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
stChange(e: STChange): void {}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
goBack() {
|
||||
@ -186,12 +195,15 @@ export class FreightAccountDetailComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '交易时间', index: 'createTime', type: 'date' },
|
||||
{ title: '流水号', index: 'transactionNumber' },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' },
|
||||
{ title: '关联单号', index: 'businessNumber' },
|
||||
{ title: '所属项目', index: 'projectId' },
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' },
|
||||
{ title: '交易时间', index: 'createTime', type: 'date', width: 170 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 170 },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', className: 'text-center', width: 140 },
|
||||
{ title: '交易单号', index: 'businessNumber', width: 170 },
|
||||
{ title: '订单号', index: 'orderSn', width: 170 },
|
||||
{ title: '运单号', index: 'transportSn', width: 170 },
|
||||
{ title: '货主', index: 'enterpriseName' , width: 170},
|
||||
{ title: '所属项目', index: 'projectName' , width: 170},
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', className: 'text-center', width: 140 },
|
||||
{
|
||||
title: '交易金额',
|
||||
index: 'amount',
|
||||
@ -207,7 +219,10 @@ export class FreightAccountDetailComponent implements OnInit {
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) }
|
||||
}
|
||||
},
|
||||
{ title: '付款方', index: 'payName' , width: 170},
|
||||
{ title: '收款方', index: 'payeeName', width: 170 },
|
||||
{ title: '备注', index: 'tradeContent', width: 170 }
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -22,8 +22,8 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box">
|
||||
<st #st [data]="service.$api_get_shipper_account_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }">
|
||||
<st #st [data]="service.$api_get_shipper_account_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }">
|
||||
<ng-template st-row="description" let-item let-index="index">
|
||||
<a (click)="showAccountDetail(item)">{{ (parseFloat(item.availableBalance) +
|
||||
parseFloat(item.freezeBalance)).toFixed(2) | currency}}</a>
|
||||
|
||||
@ -80,7 +80,7 @@ export class FreightAccountComponent implements OnInit {
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
@ -167,11 +167,11 @@ export class FreightAccountComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '企业名称', width: 140, index: 'tenantName' },
|
||||
{ title: '企业名称', width: 170, index: 'tenantName' },
|
||||
{ title: '联系人', width: 120, index: 'name' },
|
||||
{ title: '联系人电话', width: 140, index: 'phone' },
|
||||
{ title: '网络货运人', width: 140, index: 'ltdName' },
|
||||
{ title: '银行类型',width: 120, index: 'bankTypeLabel' },
|
||||
{ title: '网络货运人', width: 170, index: 'ltdName' },
|
||||
{ title: '银行类型', width: 120, index: 'bankTypeLabel' },
|
||||
{ title: '虚拟账户', width: 140, index: 'virtualAccount' },
|
||||
{
|
||||
title: '可用余额',
|
||||
@ -199,7 +199,7 @@ export class FreightAccountComponent implements OnInit {
|
||||
{
|
||||
title: '状态',
|
||||
index: 'stateDeletedLabel',
|
||||
width: 80,
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
{{headerInfo?.driver2IdName}}
|
||||
</se>
|
||||
<se label="收款账户" required>
|
||||
{{headerInfo?.ltdaccount}}
|
||||
{{headerInfo?.ltdaccountId}}
|
||||
</se>
|
||||
<se label="应付金额">
|
||||
{{headerInfo?.prmoney | currency}}
|
||||
@ -72,7 +72,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
@ -87,7 +87,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
|
||||
@ -41,7 +41,7 @@ export class PayableOrderDetailComponent implements OnInit {
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { billHId: this.billHId });
|
||||
Object.assign(requestOptions.body, { phxHId: this.billHId });
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
@ -159,14 +159,14 @@ export class PayableOrderDetailComponent implements OnInit {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '序号', render: 'no', width: 80 },
|
||||
{ title: '费用号', index: 'feeHCode', width: 100 },
|
||||
{ title: '费用号', index: 'feeHCode', width: 140 },
|
||||
{ title: '费用日期', index: 'feedate', type: 'date', width: 150 },
|
||||
{ title: '订单号', index: 'billHCode', width: 100 },
|
||||
{ title: '订单号', index: 'billHCode', width: 140 },
|
||||
{ title: '订单日期', index: 'billTime', width: 150 },
|
||||
{ title: '费用类型', index: 'feetype', width: 90 },
|
||||
{ title: '订单费用科目', index: 'billLTypeLabel', width: 100 },
|
||||
{ title: '费用科目', index: 'feeSubIdName', width: 140 },
|
||||
{ title: '结算客户', index: 'cnoName', width: 100 },
|
||||
{ title: '结算客户', index: 'cnoName', width: 140 },
|
||||
{
|
||||
title: '已收金额',
|
||||
index: 'phxmoney',
|
||||
|
||||
@ -20,10 +20,10 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
|
||||
[class.expend-options]="_$expand">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="service.http.loading"> 导出</button>
|
||||
<button nz-button [disabled]="service.http.loading"> 导出核销</button> -->
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="false"> 导出</button>
|
||||
<button nz-button [disabled]="false"> 导出核销</button> -->
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -33,7 +33,7 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<st #st [data]="service.$api_get_fico_ph_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_fico_ph_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -4,8 +4,6 @@ import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component';
|
||||
import { TicketService } from 'src/app/routes/ticket-management/services/ticket.service';
|
||||
import { FreightAccountService } from '../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
@ -229,10 +227,10 @@ export class PayableOrderComponent implements OnInit {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '核销单号', index: 'phxcode', type: 'link', width: 140 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '核销日期', index: 'phxdate', type: 'date', width: 160 },
|
||||
{ title: '付款账户', index: 'shipperaccount', width: 120 },
|
||||
{ title: '收款账户', index: 'ltdaccount', width: 120 },
|
||||
{ title: '付款账户', index: 'shipperaccount', width: 170 },
|
||||
{ title: '收款账户', index: 'ltdaccountId', width: 170 },
|
||||
{
|
||||
title: '核销金额',
|
||||
index: 'phxmoney',
|
||||
@ -253,7 +251,7 @@ export class PayableOrderComponent implements OnInit {
|
||||
{ title: '结算客户', index: 'cno', width: 120 },
|
||||
{ title: '银行水单', index: 'bankreceipt', width: 120 },
|
||||
{ title: '创建时间', index: 'createTime', width: 160 },
|
||||
{ title: '创建人', index: 'createUserIdLabel', width: 120 },
|
||||
// { title: '创建人', index: 'createUserIdLabel', width: 120 },
|
||||
{ title: '核销状态', index: 'sts', type: 'enum', enum: { 0: '待核销', 1: '已核销' }, width: 120 },
|
||||
{ title: '核销备注', index: 'remarks', width: 120 },
|
||||
{
|
||||
@ -265,7 +263,7 @@ export class PayableOrderComponent implements OnInit {
|
||||
{
|
||||
text: '浏览',
|
||||
click: item =>
|
||||
this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.billHId } })
|
||||
this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.id } })
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
{{headerInfo?.ltdAccountId}}
|
||||
</se>
|
||||
<se label="应付已核销" required>
|
||||
{{headerInfo?.payMoney}}
|
||||
{{headerInfo?.payMoney | currency}}
|
||||
</se>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="150" col="1">
|
||||
@ -37,7 +37,7 @@
|
||||
{{headerInfo?.payDate}}
|
||||
</se>
|
||||
<se label="收款账户" required>
|
||||
{{headerInfo?.payBankTypeLabel}}
|
||||
{{headerInfo?.hrBankName}} - {{headerInfo?.hrBankNo}}
|
||||
</se>
|
||||
<se label="确认日期" required>
|
||||
{{headerInfo?.payDate}}
|
||||
@ -51,7 +51,7 @@
|
||||
{{headerInfo?.payModeLabel}}
|
||||
</se>
|
||||
<se label="付款类型" required>
|
||||
{{headerInfo?.payType}}
|
||||
{{headerInfo?.payTypeLabel}}
|
||||
</se>
|
||||
<se label="付款金额" required>
|
||||
{{headerInfo?.payMoney |currency}}
|
||||
@ -69,7 +69,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
@ -84,7 +84,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
<ng-template st-row="billHCode" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
|
||||
@ -8,9 +8,8 @@
|
||||
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
|
||||
[class.expend-options]="_$expand">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button nzType="primary" > 导出</button>
|
||||
<button nz-button nzType="primary" > 导出明细</button> -->
|
||||
@ -34,7 +33,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$api_get_payment_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_payment_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -108,16 +108,16 @@ export class PaymentOrderComponent implements OnInit {
|
||||
},
|
||||
default: null
|
||||
},
|
||||
orderS2n: {
|
||||
type: 'string',
|
||||
title: '付款状态',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
containsAllLabel: true,
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
// orderS2n: {
|
||||
// type: 'string',
|
||||
// title: '付款状态',
|
||||
// ui: {
|
||||
// widget: 'dict-select',
|
||||
// containsAllLable: true,
|
||||
// params: { dictKey: 'refund:apply:status' },
|
||||
// placeholder: '请选择'
|
||||
// }
|
||||
// },
|
||||
paytype: {
|
||||
type: 'string',
|
||||
title: '付款类型',
|
||||
@ -126,9 +126,6 @@ export class PaymentOrderComponent implements OnInit {
|
||||
containsAllLabel: true,
|
||||
params: { dictKey: 'pay:type' },
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
paymode: {
|
||||
@ -237,7 +234,7 @@ export class PaymentOrderComponent implements OnInit {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox', fixed: 'left', className: 'text-center' },
|
||||
{ title: '付款单号', index: 'payCode', type: 'link', width: 180 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 180 },
|
||||
{ title: '要求付款日期', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
|
||||
{
|
||||
title: '付款金额',
|
||||
@ -252,7 +249,7 @@ export class PaymentOrderComponent implements OnInit {
|
||||
{ title: '结算客户', index: 'cnoName', width: 160 },
|
||||
{ title: '收款人', index: 'hrToLabel', width: 150 },
|
||||
{ title: '应付已核销', index: 'ishrhxLabel', width: 150 },
|
||||
{ title: '确认日期', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
|
||||
{ title: '确认日期', index: 'payDate2', type: 'date', className: 'text-center', width: 150 },
|
||||
{ title: '创建时间', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
|
||||
{ title: '创建人', index: 'createUserIdLabel', width: 160 },
|
||||
{ title: '付款备注', index: 'payRemarks', width: 200 },
|
||||
|
||||
@ -1,3 +1,13 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-21 14:19:21
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 15:03:40
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\payment-record\\payment-record.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="'支付记录'">
|
||||
</page-header-wrapper>
|
||||
|
||||
@ -10,7 +20,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -30,28 +40,27 @@
|
||||
<nz-tab nzTitle="支付失败" (nzClick)="changePaymentStatus('5')"></nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
<st #st [data]="service.$api_get_order_payment_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }">
|
||||
<st #st [data]="service.$api_get_order_payment_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }">
|
||||
<ng-template st-row="orderPaymentCode" let-item let-index="index" let-column="column">
|
||||
{{ item.orderPaymentCode }} <br> <a>{{ item.paymentStatusLabel }}</a>
|
||||
{{ item?.orderPaymentCode }} <br> <a>{{ item?.paymentStatusLabel }}</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="amountDetails" let-item let-index="index" let-column="column">
|
||||
预付:¥{{ item.price }}<br />
|
||||
<ng-container *ngIf="item.payType==='1'">
|
||||
附加费:¥ {{ item.surcharge }}
|
||||
<ng-container *ngFor="let detail of item?.amountDetails">
|
||||
{{detail.costName}}:{{ detail.price | currency }}<br />
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template st-row="billCode" let-item let-index="index" let-column="column">
|
||||
{{ item.billCode }} <br> {{item.billStatusLabel }}
|
||||
{{ item?.billCode }} <br> {{item?.billStatusLabel }}
|
||||
</ng-template>
|
||||
<ng-template st-row="wayBillCode" let-item let-index="index" let-column="column">
|
||||
{{ item.wayBillCode }} <br> {{item.wayBillStatusLabel }}
|
||||
{{ item?.wayBillCode }} <br> {{item?.wayBillStatusLabel }}
|
||||
</ng-template>
|
||||
<ng-template st-row="driverId" let-item let-index="index" let-column="column">
|
||||
{{ item.driverName }} <br> {{ item.driverTelephone }} <br> {{ item.driverLicensePlate }}
|
||||
{{ item?.driverName }} <br> {{ item?.driverTelephone }} {{ item?.driverLicencePlate }}
|
||||
</ng-template>
|
||||
<ng-template st-row="captainName" let-item let-index="index" let-column="column">
|
||||
{{ item.captainName }} <br> {{ item.captainTelephone }}
|
||||
{{ item?.captainName }} <br> {{ item?.captainTelephone }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -82,7 +82,7 @@ export class PaymentRecordComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
orderSn: {
|
||||
orderPaymentCode: {
|
||||
type: 'string',
|
||||
title: '支付编号',
|
||||
ui: {
|
||||
@ -166,9 +166,9 @@ export class PaymentRecordComponent implements OnInit {
|
||||
payType: {
|
||||
type: 'string',
|
||||
title: '支付类型',
|
||||
enum: [{ label: '全部', value: '' }],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'paybill:type' },
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
@ -238,11 +238,11 @@ export class PaymentRecordComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '支付编号', render: 'orderPaymentCode', width: 180 },
|
||||
{ title: '支付编号', render: 'orderPaymentCode', width: 200 },
|
||||
{
|
||||
title: '支付金额',
|
||||
render: 'payAmount',
|
||||
width: 120,
|
||||
width: 140,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payAmount }) }
|
||||
@ -250,40 +250,40 @@ export class PaymentRecordComponent implements OnInit {
|
||||
{
|
||||
title: '运费明细',
|
||||
render: 'amountDetails',
|
||||
width: 150,
|
||||
format: item => {
|
||||
let surcharge = 0;
|
||||
(item.amountDetails as Array<any>).forEach(detail => {
|
||||
surcharge += detail.surcharge || 0;
|
||||
});
|
||||
item.surcharge = surcharge;
|
||||
item.price = item.amountDetails?.[0]?.price || 0;
|
||||
return '';
|
||||
}
|
||||
width: 160
|
||||
// format: item => {
|
||||
// (item.amountDetails as Array<any>).forEach(detail => {
|
||||
// detail.surcharge = detail.price + (detail.surcharge || 0);
|
||||
// });
|
||||
// console.log(item.amountDetails);
|
||||
|
||||
// return '';
|
||||
// }
|
||||
},
|
||||
{
|
||||
title: '支付类型',
|
||||
index: 'payTypeLabel',
|
||||
width: 130
|
||||
width: 140
|
||||
},
|
||||
{ title: '货主', index: 'enterpriseInfoName', width: 160 },
|
||||
{ title: '订单号', render: 'billCode', width: 160 },
|
||||
{ title: '运单号', render: 'wayBillCode', width: 160 },
|
||||
{ title: '货主', index: 'enterpriseInfoName', width: 180 },
|
||||
{ title: '订单号', render: 'billCode', width: 170 },
|
||||
{ title: '运单号', render: 'wayBillCode', width: 170 },
|
||||
{ title: '货源编号', index: 'resourceCode', width: 160 },
|
||||
{
|
||||
title: '服务类型',
|
||||
index: 'serviceTypeLabel',
|
||||
width: 150
|
||||
},
|
||||
{ title: '承运司机', render: 'driverId', width: 120 },
|
||||
{ title: '收款人', render: 'captainName', width: 120 },
|
||||
{ title: '承运司机', render: 'driverId', width: 140 },
|
||||
{ title: '收款人', render: 'captainName', width: 140 },
|
||||
{ title: '银行类型', index: 'bankType', width: 150, type: 'enum', enum: { 1: '平安银行', 2: '浦发银行' } },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '申请时间', index: 'applyTime', width: 160 },
|
||||
{ title: '申请人', index: 'applyUserName', width: 90 },
|
||||
{ title: '处理时间', index: 'handlerTime', width: 180 },
|
||||
{ title: '处理人', index: 'handlerUserName', width: 90 },
|
||||
{ title: '失败原因', index: 'failCause', width: 250 },
|
||||
{ title: '退款状态', index: 'refundStatusLabel', width: 220 },
|
||||
{ title: '备注', index: 'failCause', width: 250 },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -64,5 +64,5 @@
|
||||
|
||||
<nz-card nzBordered>
|
||||
<st #st [data]="service.$api_get_platform_account_detail_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
|
||||
</nz-card>
|
||||
@ -2,6 +2,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
|
||||
import { FreightAccountService } from '../../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
@ -65,7 +66,7 @@ export class PlatformAccountDetailComponent implements OnInit {
|
||||
stChange(e: STChange): void {}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
goBack() {
|
||||
@ -134,6 +135,24 @@ export class PlatformAccountDetailComponent implements OnInit {
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
channelSource: {
|
||||
type: 'string',
|
||||
title: '账户类型',
|
||||
enum: [
|
||||
{ value: '', label: '全部' },
|
||||
{ value: '1', label: '货主账户' },
|
||||
{ value: '2', label: '司机账户' },
|
||||
{ value: '3', label: '运营商账户' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
incomeType: {
|
||||
type: 'string',
|
||||
title: '收支类型',
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
</div>
|
||||
@ -53,6 +53,12 @@
|
||||
|
||||
<nz-card class="content-box">
|
||||
<st #st [data]="service.$api_get_platform_account_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[scroll]="{ x: '1200px' }" [loading]="service.http.loading">
|
||||
[page]="{}" [scroll]="{ x: '1200px' }" [loading]="false">
|
||||
</st>
|
||||
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
合计 <label class="text-red-dark">{{ static?.total }}</label> 项,收入
|
||||
<label class="text-red-dark font-weight-bold">{{ static?.incomeAmount | currency }}</label>,支出
|
||||
<label class="text-red-dark font-weight-bold">{{static?.payAmount | currency }}</label>
|
||||
</div>
|
||||
|
||||
</nz-card>
|
||||
@ -19,6 +19,8 @@ export class PlatformAccountComponent implements OnInit {
|
||||
columns: STColumn[] = this.initST();
|
||||
|
||||
info: any = {};
|
||||
|
||||
static: any = {};
|
||||
constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
@ -29,6 +31,7 @@ export class PlatformAccountComponent implements OnInit {
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, { ...this.sf.value });
|
||||
}
|
||||
this.loadStatistics(requestOptions.body);
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
@ -44,6 +47,14 @@ export class PlatformAccountComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
loadStatistics(params: any) {
|
||||
this.service.request(this.service.$api_get_platform_account_statistics, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.static = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
|
||||
@ -62,7 +62,7 @@
|
||||
<nz-tabset>
|
||||
<!-- <nz-tab nzTitle="核销信息">
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="[]" [columns]="columns.cost" [page]="{ show: false }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
[loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="hrvatmoney" let-item let-index="index">
|
||||
{{ item.hrvatmoney | currency}}
|
||||
</ng-template>
|
||||
@ -79,7 +79,7 @@
|
||||
<nz-tab nzTitle="预收信息">
|
||||
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_get_receipt_detail" [columns]="columns.requested"
|
||||
[req]="{ method: 'POST', allInBody: true, process: beforeReq }" [res]="{ reName: { list: 'data' } }"
|
||||
[page]="{ show: false }" [loading]="service.http.loading" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
[page]="{ show: false }" [loading]="false" [scroll]="{ x: '1200px', y: '370px' }">
|
||||
<ng-template st-row="vatnotax" let-item let-index="index">
|
||||
{{ item.vatnotax | currency}}
|
||||
</ng-template>
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
[compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button nzType="primary"> 导出</button>
|
||||
<button nz-button nzType="primary"> 导出核销</button> -->
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$api_get_receipt_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_receipt_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -13,10 +13,10 @@
|
||||
{{headerInfo?.ltdName}}
|
||||
</se>
|
||||
<se label="结算客户">
|
||||
{{headerInfo?.cno}}
|
||||
{{headerInfo?.cnoName}}
|
||||
</se>
|
||||
<se label="收款账户" required>
|
||||
{{headerInfo?.ltdaccount}}
|
||||
{{headerInfo?.ltdaccountId}}
|
||||
</se>
|
||||
<se label="核销金额" required>
|
||||
{{headerInfo?.ahxmoney | currency}}
|
||||
@ -27,10 +27,10 @@
|
||||
{{headerInfo?.ahxdate}}
|
||||
</se>
|
||||
<se label="付款人" required>
|
||||
{{headerInfo?.arto}}
|
||||
{{headerInfo?.artoname}}
|
||||
</se>
|
||||
<se label="付款账户" required>
|
||||
{{headerInfo?.shipperaccount}}
|
||||
{{headerInfo?.artocode}}
|
||||
</se>
|
||||
<se label="应收金额">
|
||||
{{headerInfo?.armoney | currency}}
|
||||
@ -41,7 +41,7 @@
|
||||
{{headerInfo?.banktypeLabel}}
|
||||
</se>
|
||||
<se label="收款类型" required>
|
||||
{{headerInfo?.arvattype==='1'?'费用款项':''}}
|
||||
{{headerInfo?.brmtypeLabel}}
|
||||
</se>
|
||||
<se label="银行水单">
|
||||
{{headerInfo?.bankreceipt}}
|
||||
@ -62,7 +62,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
@ -77,7 +77,7 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
|
||||
@ -42,16 +42,16 @@ export class ReceivableOrderDetailComponent implements OnInit {
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { billHId: this.billHId });
|
||||
Object.assign(requestOptions.body, { ahxHId: this.id });
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
...this.sf.value
|
||||
});
|
||||
if (this.sf.value.feedate?.[0]) {
|
||||
Object.assign(requestOptions.body, {
|
||||
feedate: {
|
||||
start: this.sf.value.feedate?.[0] || '',
|
||||
end: this.sf.value.feedate?.[1] || ''
|
||||
start: this.sf.value.feedate?.[0] || '',
|
||||
end: this.sf.value.feedate?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -108,7 +108,7 @@ export class ReceivableOrderDetailComponent implements OnInit {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getCloseAccount(),
|
||||
asyncData: () => this.service.getCloseAccount()
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
@ -122,7 +122,7 @@ export class ReceivableOrderDetailComponent implements OnInit {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
}
|
||||
// billTime: {
|
||||
// title: '订单日期',
|
||||
// type: 'string',
|
||||
@ -146,8 +146,8 @@ export class ReceivableOrderDetailComponent implements OnInit {
|
||||
{ title: '订单号', index: 'billHCode', width: 100 },
|
||||
// { title: '订单日期', index: 'billTime', width: 150 },
|
||||
// { title: '费用类型', index: 'cnoName', width: 90 },
|
||||
// { title: '订单费用科目', index: 'feeSubId', width: 100 },
|
||||
{ title: '费用科目', index: 'feeSubId', width: 140 },
|
||||
{ title: '订单费用科目', index: 'billLTypeLabel', width: 100 },
|
||||
{ title: '费用科目', index: 'feeSubName', width: 140 },
|
||||
{ title: '结算客户', index: 'cnoName', width: 100 },
|
||||
{
|
||||
title: '已收金额',
|
||||
|
||||
@ -18,10 +18,10 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
|
||||
[class.expend-options]="_$expand">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="service.http.loading"> 导出</button>
|
||||
<button nz-button [disabled]="service.http.loading"> 导出核销</button> -->
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="false"> 导出</button>
|
||||
<button nz-button [disabled]="false"> 导出核销</button> -->
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -31,7 +31,7 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<st #st [data]="service.$api_get_fico_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_fico_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -242,10 +242,10 @@ export class ReceivableOrderComponent implements OnInit {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '核销单号', index: 'ahxcode', type: 'link', width: 140 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '核销日期', index: 'ahxdate', type: 'date', width: 160 },
|
||||
{ title: '付款账户', index: 'shipperaccount', width: 120 },
|
||||
{ title: '收款账户', index: 'ltdaccountId', width: 120 },
|
||||
{ title: '付款账户', index: 'shipperaccount', width: 170 },
|
||||
{ title: '收款账户', index: 'ltdaccountId', width: 160 },
|
||||
{ title: '核销类型', index: 'ahxType', type: 'enum', enum: { '1': '预收款' }, width: 120 },
|
||||
{
|
||||
title: '核销金额',
|
||||
@ -266,7 +266,7 @@ export class ReceivableOrderComponent implements OnInit {
|
||||
{ title: '付款人', index: 'artoname', width: 200 },
|
||||
{ title: '结算客户', index: 'cnoName', width: 120 },
|
||||
{ title: '银行水单', index: 'bankreceipt', width: 200 },
|
||||
{ title: '创建时间', index: 'createTime', width: 160 },
|
||||
{ title: '创建时间', index: 'createTime', width: 180 },
|
||||
// { title: '收款人', index: 'driver2IdName', width: 120 },
|
||||
// { title: '创建人', index: 'createUserIdLabel', width: 120 },
|
||||
{ title: '核销状态', index: 'sts', type: 'enum', enum: { 0: '待核销', 1: '已核销' }, width: 120 },
|
||||
@ -275,6 +275,7 @@ export class ReceivableOrderComponent implements OnInit {
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: 120,
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -36,8 +36,8 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<st #st [data]="service.$api_get_recharge_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }">
|
||||
<st #st [data]="service.$api_get_recharge_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }">
|
||||
<ng-template st-row="transferBankAccount" let-item let-index="index" let-column="column">
|
||||
{{ item.transferBankOpenName }} <br> {{ item.transferBankCardNumber }}
|
||||
</ng-template>
|
||||
|
||||
@ -49,7 +49,7 @@ export class RechargeRecordComponent implements OnInit {
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
|
||||
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageSize: -1 });
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
@ -92,7 +92,7 @@ export class RechargeRecordComponent implements OnInit {
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
rechargeName: {
|
||||
roleName: {
|
||||
type: 'string',
|
||||
title: '账户名称',
|
||||
ui: {
|
||||
@ -162,9 +162,16 @@ export class RechargeRecordComponent implements OnInit {
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'rechargeName', width: 140 },
|
||||
{ title: '账户名称', index: 'roleName', width: 160 },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
||||
{ title: '充值金额', index: 'rechargeAmount', width: 100 },
|
||||
{
|
||||
title: '充值金额',
|
||||
index: 'rechargeAmount',
|
||||
width: 160,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.rechargeAmount }) }
|
||||
},
|
||||
{ title: '充值银行账户', render: 'transferBankAccount', width: 200 },
|
||||
{ title: '充值方式', index: 'payChannelLabel', width: 100 },
|
||||
{ title: '充值状态', index: 'rechargeStatusLabel', width: 100 },
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -25,18 +25,20 @@
|
||||
<nz-tabset>
|
||||
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus()"></nz-tab>
|
||||
<nz-tab nzTitle="待审核" (nzClick)="changeRefundStatus('1')"></nz-tab>
|
||||
<nz-tab nzTitle="退款中" (nzClick)="changeRefundStatus('2')"></nz-tab>
|
||||
<nz-tab nzTitle="退款成功" (nzClick)="changeRefundStatus('3')"></nz-tab>
|
||||
<nz-tab nzTitle="退款中" (nzClick)="changeRefundStatus('4')"></nz-tab>
|
||||
<nz-tab nzTitle="退款成功" (nzClick)="changeRefundStatus('2')"></nz-tab>
|
||||
<nz-tab nzTitle="退款失败" (nzClick)="changeRefundStatus('5')"></nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
<st #st [data]="service.$api_get_refund_record_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }">
|
||||
<st #st [data]="service.$api_get_refund_record_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }">
|
||||
<ng-template st-row="orderRefundCode" let-item let-index="index" let-column="column">
|
||||
{{ item.orderRefundCode }} <br> {{ item.refundStatusLabel }}
|
||||
</ng-template>
|
||||
<ng-template st-row="refundAmount" let-item let-index="index" let-column="column">
|
||||
{{ item.refundAmount |currency }}
|
||||
<ng-container *ngFor="let cost of item.billRefundDetailVOS">
|
||||
{{cost.costName}}:{{ cost.refundAmount |currency }}<br>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template st-row="billRefundPaymentVOS" let-item let-index="index" let-column="column">
|
||||
<ng-container *ngFor="let bill of item.billRefundPaymentVOS">
|
||||
|
||||
@ -24,18 +24,20 @@ export class RefundRecordComponent implements OnInit {
|
||||
refundStatus: any = '';
|
||||
|
||||
msg = '';
|
||||
|
||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { refundStatus: this.refundStatus || null });
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
createTime: {
|
||||
start: this.sf.value.createTime?.[0] || '',
|
||||
end: this.sf.value.createTime?.[1] || ''
|
||||
refundExecuteTime: {
|
||||
start: this.sf.value.refundExecuteTime?.[0] || '',
|
||||
end: this.sf.value.refundExecuteTime?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -57,6 +59,10 @@ export class RefundRecordComponent implements OnInit {
|
||||
label: '拒绝',
|
||||
type: 'default',
|
||||
onClick: () => {
|
||||
if (!this.msg) {
|
||||
this.service.msgSrv.warning('请填写原因');
|
||||
return false;
|
||||
}
|
||||
this.service
|
||||
.request(this.service.$api_disagree_refund_record, {
|
||||
applicationId: item.id,
|
||||
@ -152,7 +158,7 @@ export class RefundRecordComponent implements OnInit {
|
||||
title: '退款类型',
|
||||
enum: [
|
||||
{ value: '1', label: '平台退款货主' },
|
||||
{ value: '2', label: '司机退款平' },
|
||||
{ value: '2', label: '司机退款平台' },
|
||||
{ value: '3', label: '车队长退款司机' },
|
||||
{ value: '4', label: '车队长退款平台' }
|
||||
],
|
||||
@ -161,7 +167,7 @@ export class RefundRecordComponent implements OnInit {
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
shipperId: {
|
||||
enterpriseInfoName: {
|
||||
type: 'string',
|
||||
title: '货主',
|
||||
ui: {
|
||||
@ -178,20 +184,17 @@ export class RefundRecordComponent implements OnInit {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
enterpriseProjectId: {
|
||||
enterpriseProjectName: {
|
||||
type: 'string',
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getEnterpriseProject(),
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
resourceId: {
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
title: '货源号',
|
||||
ui: {
|
||||
@ -214,7 +217,7 @@ export class RefundRecordComponent implements OnInit {
|
||||
nzShowTime: true
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
ltdid: {
|
||||
ltdId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
@ -245,11 +248,11 @@ export class RefundRecordComponent implements OnInit {
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '退款单号', render: 'orderRefundCode', width: 180 },
|
||||
{ title: '退款类型', index: 'refundType', width: 120 },
|
||||
{ title: '退款金额', render: 'refundAmount', width: 120 },
|
||||
{ title: '退款时间', index: 'applyTime', width: 160 },
|
||||
{ title: '货主', index: 'shipperId', width: 150 },
|
||||
{ title: '退款单号', render: 'orderRefundCode', width: 190 },
|
||||
{ title: '退款类型', index: 'refundTypeLabel', width: 140 },
|
||||
{ title: '退款金额', render: 'refundAmount', className: 'text-right', width: 180 },
|
||||
{ title: '退款时间', index: 'refundExecuteTime', width: 170 },
|
||||
{ title: '货主', index: 'enterpriseInfoName', width: 150 },
|
||||
{ title: '所属项目', index: 'enterpriseProjectName', width: 140 },
|
||||
{ title: '支付单', render: 'billRefundPaymentVOS', width: 150 },
|
||||
{ title: '订单号', index: 'billCode', width: 150 },
|
||||
@ -258,8 +261,8 @@ export class RefundRecordComponent implements OnInit {
|
||||
{ title: '收款人', render: 'captain', width: 150 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 180 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 120 },
|
||||
{ title: '退款原因', index: 'rejectionCause', width: 150 },
|
||||
{ title: '失败原因', index: 'failCause', width: 150 },
|
||||
{ title: '退款原因', index: 'reason', width: 170 },
|
||||
{ title: '失败原因', index: 'failCause', width: 170 },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -273,6 +276,7 @@ export class RefundRecordComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
text: '重新发起',
|
||||
iif: item => item.refundStatus === '5',
|
||||
click: item => this.reApply(item)
|
||||
}
|
||||
// {
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -21,8 +21,8 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box pt-xl" nzBordered>
|
||||
<st #st [data]="service.$api_get_account_blance" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x: '1200px' }">
|
||||
<st #st [data]="service.$api_get_account_blance" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x: '1200px' }">
|
||||
<ng-template st-row="amount">
|
||||
|
||||
</ng-template>
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { CurrencyPipe } from '@angular/common';
|
||||
import { Component, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
|
||||
import { FreightAccountService } from '../../services/freight-account.service';
|
||||
import { CurrencyPipe } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-transaction-flow',
|
||||
@ -12,7 +13,7 @@ import { CurrencyPipe } from '@angular/common';
|
||||
styleUrls: ['./transaction-flow.component.less'],
|
||||
providers: [CurrencyPipe]
|
||||
})
|
||||
export class TransactionFlowComponent implements OnInit {
|
||||
export class TransactionFlowComponent {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
@ -29,8 +30,6 @@ export class TransactionFlowComponent implements OnInit {
|
||||
private currencyPipe: CurrencyPipe
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
@ -152,7 +151,7 @@ export class TransactionFlowComponent implements OnInit {
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
orderS2n2221: {
|
||||
enterpriseName: {
|
||||
type: 'string',
|
||||
title: '账户名称',
|
||||
ui: {
|
||||
@ -162,7 +161,7 @@ export class TransactionFlowComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
orderSn221f: {
|
||||
projectId: {
|
||||
type: 'string',
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
@ -214,11 +213,11 @@ export class TransactionFlowComponent implements OnInit {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '交易时间', index: 'createTime', width: 180 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 150 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 180 },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', width: 120 },
|
||||
{ title: '关联单号', index: 'businessNumber', width: 150 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 130 },
|
||||
{ title: '账户名称', index: 'roleName', width: 100 },
|
||||
{ title: '账户名称', index: 'roleName', width: 180 },
|
||||
{ title: '所属项目', index: 'projectName', width: 140 },
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', width: 100, className: 'text-center' },
|
||||
{
|
||||
@ -236,9 +235,9 @@ export class TransactionFlowComponent implements OnInit {
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) }
|
||||
},
|
||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 180 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '银行流水号', index: 'channelPaySn', width: 120 },
|
||||
{ title: '银行流水号', index: 'channelPaySn', width: 170 },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -253,7 +252,7 @@ export class TransactionFlowComponent implements OnInit {
|
||||
bankType: item.bankType,
|
||||
rmYll: item.roleId,
|
||||
snglFlgCd: item.channelPaySn,
|
||||
bussType: '07',
|
||||
bussType: item.tradeType === '7' ? '05' : item.tradeType === '8' ? '06' : '07',
|
||||
ltdId: item.ltdId
|
||||
})
|
||||
}
|
||||
|
||||
@ -19,10 +19,10 @@
|
||||
<nz-card>
|
||||
<div se-container labelWidth="150" gutter="32" col="3">
|
||||
<se-title class="text-center font-weight-bold text-xl">记账凭证
|
||||
<!-- <button nz-button nzType="primary" [nzLoading]="service.http.loading" style="float: right;">打印</button> -->
|
||||
<!-- <button nz-button nzType="primary" [nzLoading]="false" style="float: right;">打印</button> -->
|
||||
</se-title>
|
||||
<se label="帐套" required>
|
||||
{{info?.ltdId}}
|
||||
{{info?.vcltdcode}} - {{info?.vcltdname}}
|
||||
</se>
|
||||
<se label="凭证类型" required>
|
||||
{{info?.vctype}}
|
||||
@ -33,7 +33,7 @@
|
||||
</div>
|
||||
|
||||
<st #st [data]="info?.faShowVOList" [columns]="columns" [footer]="footerTpl" bordered
|
||||
[scroll]="{ x:'1200px',y: '420px' }" [page]="{ show: false }" [loading]="service.http.loading">
|
||||
[scroll]="{ x:'1200px',y: '420px' }" [page]="{ show: false }" [loading]="false">
|
||||
<ng-template #footerTpl let-s>
|
||||
<ng-container *ngIf="st.count > 0">
|
||||
<div style="display: flex;justify-content: flex-end;">
|
||||
|
||||
@ -9,10 +9,10 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="service.http.loading"> 导出</button>
|
||||
<button nz-button [disabled]="service.http.loading"> 导出明细</button> -->
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)" acl [acl-ability]="['FINANCIAL-VOUCHER-list']">查询</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button [disabled]="false"> 导出</button>
|
||||
<button nz-button [disabled]="false"> 导出明细</button> -->
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -33,7 +33,7 @@
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-18 15:57:44
|
||||
@ -13,9 +13,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component';
|
||||
import { FreightAccountService } from '../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
@ -139,6 +137,22 @@ export class VoucherManagementComponent implements OnInit {
|
||||
sourceType: {
|
||||
type: 'string',
|
||||
title: '原始单类型',
|
||||
enum: [
|
||||
{ value: '', label: '全部' },
|
||||
{ value: 1, label: '收款' },
|
||||
{ value: 2, label: '收款(退款)' },
|
||||
{ value: 3, label: '应收费用' },
|
||||
{ value: 4, label: '应收费用(负数)' },
|
||||
{ value: 5, label: '应收核销' },
|
||||
{ value: 6, label: '应收核销(负数)' },
|
||||
{ value: 7, label: '应付费用' },
|
||||
{ value: 8, label: '应付费用(负数)' },
|
||||
{ value: 9, label: '应付核销' },
|
||||
{ value: 10, label: '应付核销(负数)' },
|
||||
{ value: 11, label: '分票开票' },
|
||||
{ value: 12, label: '删除分票' },
|
||||
{ value: 13, label: '付款' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
@ -294,10 +308,10 @@ export class VoucherManagementComponent implements OnInit {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox', width: 60, className: 'text-center', fixed: 'left' },
|
||||
{ title: '凭证号', index: 'vccode', type: 'link', width: 200 },
|
||||
{ title: '帐套', index: 'ltdId', width: 200 },
|
||||
{ title: '帐套', index: 'ltdId', width: 200, format: item => `${item.vcltdcode}-${item.vcltdname}` },
|
||||
{ title: '凭证时间', index: 'vctime', type: 'date', width: 200 },
|
||||
{ title: '凭证类型', index: 'vctype', width: 200 },
|
||||
{ title: '序号', index: 'invmoney', width: 200, format: _ => '1' },
|
||||
// { title: '序号', index: 'invmoney', width: 200, format: _ => '1' },
|
||||
{ title: '摘要', index: 'remarks', width: 300 },
|
||||
{ title: '币种', index: 'currency', width: 100 },
|
||||
{
|
||||
@ -325,11 +339,13 @@ export class VoucherManagementComponent implements OnInit {
|
||||
title: '操作',
|
||||
width: '130px',
|
||||
fixed: 'right',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
click: (item: any) => this.router.navigate(['/financial-management/voucher-management/detail/' + item.id])
|
||||
},
|
||||
click: (item: any) => this.router.navigate(['/financial-management/voucher-management/detail/' + item.id]),
|
||||
acl: { ability: ['FINANCIAL-VOUCHER-view'] }
|
||||
}
|
||||
// {
|
||||
// text: '修改'
|
||||
// },
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<nz-card>
|
||||
<div se-container labelWidth="150" gutter="32" col="3">
|
||||
<se-title class="text-center font-weight-bold text-xl">记账凭证
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" style="float: right;">打印</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" style="float: right;">打印</button>
|
||||
</se-title>
|
||||
<se label="帐套" required>
|
||||
{{info?.vcltdcode}}
|
||||
@ -23,7 +23,7 @@
|
||||
</div>
|
||||
|
||||
<st #st [data]="info?.faShowVOList" [columns]="columns" [footer]="footerTpl" bordered
|
||||
[scroll]="{ x:'1200px',y: '420px' }" [page]="{ show: false }" [loading]="service.http.loading">
|
||||
[scroll]="{ x:'1200px',y: '420px' }" [page]="{ show: false }" [loading]="false">
|
||||
<ng-template #footerTpl let-s>
|
||||
<ng-container *ngIf="st.count > 0">
|
||||
<div style="display: flex;justify-content: flex-end;">
|
||||
|
||||
@ -9,10 +9,10 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
<button nz-button [disabled]="service.http.loading"> 导出</button>
|
||||
<button nz-button [disabled]="service.http.loading"> 导出明细</button>
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<button nz-button [disabled]="false"> 导出</button>
|
||||
<button nz-button [disabled]="false"> 导出明细</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -26,6 +26,6 @@
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)" class="mt-md">
|
||||
[loading]="false" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)" class="mt-md">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -213,6 +213,7 @@ export class VoucherListComponent implements OnInit {
|
||||
title: '操作',
|
||||
width: '130px',
|
||||
fixed: 'right',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
|
||||
@ -19,11 +19,11 @@
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 8" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button nzType="primary" [disabled]="service.http.loading"> 导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="service.http.loading"> 导出明细</button>
|
||||
<button nz-button nzType="primary" [disabled]="service.http.loading"> 导出凭证</button> -->
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<!-- <button nz-button nzType="primary" [disabled]="false"> 导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="false"> 导出明细</button>
|
||||
<button nz-button nzType="primary" [disabled]="false"> 导出凭证</button> -->
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -33,7 +33,7 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzBordered>
|
||||
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns" [req]="{ process: beforeReq }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -16,9 +16,9 @@
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
|
||||
<nz-card>
|
||||
<nz-card [nzLoading]="false">
|
||||
<nz-alert nzType="info" nzMessage="提现信息" class="mb-md"></nz-alert>
|
||||
<div se-container [labelWidth]="100">
|
||||
<div se-container [labelWidth]="130">
|
||||
<se label="网络货运人">
|
||||
{{formData?.ltdName}}
|
||||
</se>
|
||||
@ -41,16 +41,16 @@
|
||||
{{formData?.refundStatusLabel}}
|
||||
</se>
|
||||
<se label="提现金额">
|
||||
{{formData?.amount}}
|
||||
{{formData?.amount | currency}}
|
||||
</se>
|
||||
<se label="银行流水号">
|
||||
{{formData?.bankSerialNumber}}
|
||||
</se>
|
||||
<se label="提现至银行卡">
|
||||
{{formData?.bankId}}
|
||||
{{formData?.bankCardNumber}}
|
||||
</se>
|
||||
<se label="银行回单" col="1">
|
||||
<img [src]="formData?.bankCardNumber" alt="" style="width: 200px;height: 160px;">
|
||||
<a (click)="downBack()">{{formData?.refundStatus==='3'?'下载回单':'暂无回单'}}</a>
|
||||
</se>
|
||||
</div>
|
||||
|
||||
|
||||
@ -67,6 +67,19 @@ export class WithdrawalsDetailComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
downBack() {
|
||||
if (this.formData?.refundStatus !== '3') {
|
||||
return;
|
||||
}
|
||||
this.service.getReceiptUrl(this.formData.receiptUrl, {
|
||||
bankType: this.formData.bankType,
|
||||
rmYll: this.formData.userId,
|
||||
snglFlgCd: this.formData.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: this.formData.ltdId
|
||||
});
|
||||
}
|
||||
|
||||
goBack() {
|
||||
history.go(-1);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user