Test #1
@@ -0,0 +1,13 @@
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1534ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1558ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8765/favicon.ico:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 87838ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
@@ -0,0 +1,6 @@
|
||||
[ 802ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 803ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 803ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 803ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 803ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 803ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
@@ -0,0 +1,12 @@
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 341ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 366493ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
@@ -0,0 +1,7 @@
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998551ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8765/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 998569ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8765/favicon.ico:0
|
||||
@@ -0,0 +1,25 @@
|
||||
[ 2971ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 2972ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 2972ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 2972ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 2972ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 2972ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 6062ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8767/favicon.ico:0
|
||||
[ 824212ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 824213ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 824213ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 824213ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 824213ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 824213ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1002809ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404899ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404899ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404899ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404900ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404900ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1404900ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
@@ -0,0 +1,19 @@
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 476ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 1250ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8767/favicon.ico:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 308964ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619506ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619507ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619507ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619507ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619507ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
[ 619507ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://www.chromium.org/developers/design-documents/create-amazing-password-forms) %o @ http://127.0.0.1:8767/%E8%B4%A7%E4%BB%A3SaaS%E5%B9%B3%E5%8F%B0%E5%8E%9F%E5%9E%8B.html:0
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,734 @@
|
||||
- generic [active] [ref=e1]:
|
||||
- navigation [ref=e2]:
|
||||
- generic [ref=e3] [cursor=pointer]: ☰
|
||||
- generic [ref=e4]:
|
||||
- img "虫虫出海" [ref=e5]
|
||||
- text: 虫虫出海
|
||||
- generic [ref=e6] [cursor=pointer]: 🏢 当前用户:浙江柏悦物流有限公司 ▾
|
||||
- generic [ref=e7]:
|
||||
- button "消息中心 3" [ref=e9] [cursor=pointer]:
|
||||
- generic [ref=e12]: 消息中心
|
||||
- generic [ref=e13]: "3"
|
||||
- generic [ref=e14]: 👤 张经理
|
||||
- generic [ref=e15]: 张
|
||||
- button "⛶ 数据看板全屏" [ref=e16] [cursor=pointer]
|
||||
- generic [ref=e17] [cursor=pointer]: 退出
|
||||
- complementary [ref=e18]:
|
||||
- generic [ref=e19]: 首页数据看板
|
||||
- generic [ref=e28] [cursor=pointer]:
|
||||
- text: 客户管理
|
||||
- generic [ref=e32]: ▶
|
||||
- generic [ref=e34] [cursor=pointer]:
|
||||
- text: 国内仓
|
||||
- generic [ref=e39]: ▶
|
||||
- generic [ref=e41] [cursor=pointer]:
|
||||
- text: 海外仓
|
||||
- generic [ref=e47]: ▶
|
||||
- generic [ref=e49] [cursor=pointer]:
|
||||
- text: 海外派送
|
||||
- generic [ref=e53]: ▶
|
||||
- generic [ref=e54]:
|
||||
- generic [ref=e55] [cursor=pointer]:
|
||||
- text: 服务中心
|
||||
- generic [ref=e60]: ▶
|
||||
- generic [ref=e832]:
|
||||
- generic [ref=e833] [cursor=pointer]: 订舱列表
|
||||
- generic [ref=e834] [cursor=pointer]: 拖车列表
|
||||
- generic [ref=e62] [cursor=pointer]:
|
||||
- text: 供应商中心
|
||||
- generic [ref=e67]: ▶
|
||||
- generic [ref=e69] [cursor=pointer]:
|
||||
- text: 货柜管理
|
||||
- generic [ref=e74]: ▶
|
||||
- generic [ref=e76] [cursor=pointer]:
|
||||
- text: 海外业务
|
||||
- generic [ref=e81]: ▶
|
||||
- generic [ref=e83] [cursor=pointer]:
|
||||
- text: 财务管理
|
||||
- generic [ref=e89]: ▶
|
||||
- generic [ref=e91] [cursor=pointer]:
|
||||
- text: 销售管理
|
||||
- generic [ref=e96]: ▶
|
||||
- generic [ref=e98] [cursor=pointer]:
|
||||
- text: 通用
|
||||
- generic [ref=e103]: ▶
|
||||
- generic [ref=e105] [cursor=pointer]:
|
||||
- text: 系统管理
|
||||
- generic [ref=e110]: ▶
|
||||
- main [ref=e111]:
|
||||
- generic [ref=e210]:
|
||||
- generic [ref=e211]:
|
||||
- generic [ref=e212] [cursor=pointer]: 全部
|
||||
- generic [ref=e213] [cursor=pointer]: 待接收审核
|
||||
- generic [ref=e214] [cursor=pointer]: 待发送数据
|
||||
- generic [ref=e215] [cursor=pointer]: 未输入测量数据
|
||||
- generic [ref=e216] [cursor=pointer]: 待客户确认
|
||||
- generic [ref=e217] [cursor=pointer]: 已确认数据
|
||||
- generic [ref=e218]:
|
||||
- generic [ref=e219]:
|
||||
- generic [ref=e220]:
|
||||
- generic [ref=e221]:
|
||||
- generic [ref=e222]: 定位仓库:
|
||||
- combobox [ref=e223]:
|
||||
- option "请选择仓库" [selected]
|
||||
- option "义乌仓"
|
||||
- option "青岛仓库"
|
||||
- generic [ref=e224]:
|
||||
- generic [ref=e225]: 交货仓:
|
||||
- combobox [ref=e226]:
|
||||
- option "请选择交货仓" [selected]
|
||||
- option "B001"
|
||||
- option "B002"
|
||||
- generic [ref=e227]:
|
||||
- generic [ref=e228]: 入仓码:
|
||||
- textbox "请输入入仓码" [ref=e229]
|
||||
- generic [ref=e230]:
|
||||
- generic [ref=e231]: 订单状态:
|
||||
- combobox [ref=e232]:
|
||||
- option "请选择订单状态" [selected]
|
||||
- option "待接收审核"
|
||||
- option "审核通过"
|
||||
- option "已入库"
|
||||
- generic [ref=e233]:
|
||||
- generic [ref=e234]:
|
||||
- generic [ref=e235]: 预计到达时间:
|
||||
- textbox [ref=e236]
|
||||
- generic [ref=e237]:
|
||||
- generic [ref=e238]: 费用审核状态:
|
||||
- combobox [ref=e239]:
|
||||
- option "请选择费用审核状态" [selected]
|
||||
- option "未录入费用"
|
||||
- option "待审核"
|
||||
- option "审核通过"
|
||||
- generic [ref=e240]:
|
||||
- generic [ref=e241]: 公司:
|
||||
- combobox [ref=e242]:
|
||||
- option "请选择公司" [selected]
|
||||
- option "义乌欧业进出口"
|
||||
- option "义乌飞腾"
|
||||
- generic [ref=e243]:
|
||||
- generic [ref=e244]: 集装箱号:
|
||||
- textbox "请输入集装箱号" [ref=e245]
|
||||
- generic [ref=e246]:
|
||||
- generic [ref=e247]: 柜号:
|
||||
- textbox "请输入柜号" [ref=e248]
|
||||
- generic [ref=e249]:
|
||||
- generic [ref=e250]:
|
||||
- generic [ref=e251]: 渠道:
|
||||
- combobox [ref=e252]:
|
||||
- option "请选择渠道" [selected]
|
||||
- option "海运"
|
||||
- option "空运"
|
||||
- generic [ref=e253]:
|
||||
- generic [ref=e254]: 船期:
|
||||
- textbox [ref=e255]
|
||||
- generic [ref=e256]:
|
||||
- generic [ref=e257]: 是否已配载:
|
||||
- combobox [ref=e258]:
|
||||
- option "请选择是否配载" [selected]
|
||||
- option "是"
|
||||
- option "否"
|
||||
- generic [ref=e259]:
|
||||
- generic [ref=e260]: 是否整柜:
|
||||
- combobox [ref=e261]:
|
||||
- option "请选择是否整柜" [selected]
|
||||
- option "是"
|
||||
- option "否"
|
||||
- generic [ref=e262]:
|
||||
- generic [ref=e263]:
|
||||
- generic [ref=e264]: 测量数据审核状态:
|
||||
- combobox [ref=e265]:
|
||||
- option "请选择测量数据审核状态" [selected]
|
||||
- option "未录入测量数据"
|
||||
- option "待审核"
|
||||
- option "审核通过"
|
||||
- generic [ref=e266]:
|
||||
- generic [ref=e267]: 商品FBA编码:
|
||||
- textbox "请输入商品FBA编码" [ref=e268]
|
||||
- generic [ref=e269]:
|
||||
- generic [ref=e270]: 创建日期:
|
||||
- generic [ref=e271]:
|
||||
- textbox [ref=e272]
|
||||
- generic [ref=e273]: "-"
|
||||
- textbox [ref=e274]
|
||||
- generic [ref=e275]:
|
||||
- button "查询" [ref=e276] [cursor=pointer]
|
||||
- button "重置" [ref=e277] [cursor=pointer]
|
||||
- button "收起 ▲" [ref=e278] [cursor=pointer]
|
||||
- button "🛃 合关报关" [ref=e279] [cursor=pointer]
|
||||
- button "📦 智能装柜" [ref=e280] [cursor=pointer]
|
||||
- generic [ref=e281]:
|
||||
- generic [ref=e282]:
|
||||
- text: 已选择 0 项
|
||||
- link "清空" [ref=e283] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- generic [ref=e284]:
|
||||
- text: 总箱数 | 总毛重 | 总公斤 | 总体积 | 立方米 |
|
||||
- link "📊 刷新" [ref=e285] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- link "⚙️ 设置" [ref=e286] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- table [ref=e288]:
|
||||
- rowgroup [ref=e289]:
|
||||
- row [ref=e290]:
|
||||
- columnheader [ref=e291]:
|
||||
- checkbox [ref=e292] [cursor=pointer]
|
||||
- columnheader "操作" [ref=e293]
|
||||
- columnheader "入仓码↑↓" [ref=e294]
|
||||
- columnheader "订单状态↑↓" [ref=e295]
|
||||
- columnheader "测量数据审核状态↑↓" [ref=e296]
|
||||
- columnheader "预计到达时间↑↓" [ref=e297]
|
||||
- columnheader "费用审核状态↑↓" [ref=e298]
|
||||
- columnheader "客户↑↓" [ref=e299]
|
||||
- columnheader "仓库↑↓" [ref=e300]
|
||||
- columnheader "交货仓↑↓" [ref=e301]
|
||||
- columnheader "配载状态↑↓" [ref=e302]
|
||||
- columnheader "是否扣货↑↓" [ref=e303]
|
||||
- columnheader "扣货理由↑↓" [ref=e304]
|
||||
- columnheader "集装箱号↑↓" [ref=e305]
|
||||
- columnheader "柜号↑↓" [ref=e306]
|
||||
- columnheader "公司↑↓" [ref=e307]
|
||||
- columnheader "业务类型↑↓" [ref=e308]
|
||||
- columnheader "提货方式↑↓" [ref=e309]
|
||||
- columnheader "提货时间↑↓" [ref=e310]
|
||||
- columnheader "提货联系人电话↑↓" [ref=e311]
|
||||
- columnheader "提货地址↑↓" [ref=e312]
|
||||
- columnheader "提货邮编↑↓" [ref=e313]
|
||||
- columnheader "提货联系人邮箱↑↓" [ref=e314]
|
||||
- columnheader "渠道↑↓" [ref=e315]
|
||||
- columnheader "买单/退税↑↓" [ref=e316]
|
||||
- columnheader "是否整柜↑↓" [ref=e317]
|
||||
- columnheader "商检验↑↓" [ref=e318]
|
||||
- columnheader "开船时间↑↓" [ref=e319]
|
||||
- columnheader "到港时间↑↓" [ref=e320]
|
||||
- columnheader "总箱数↑↓" [ref=e321]
|
||||
- columnheader "总毛重(T.K.GW)↑↓" [ref=e322]
|
||||
- columnheader "计费毛重↑↓" [ref=e323]
|
||||
- columnheader "总体积(m³)↑↓" [ref=e324]
|
||||
- columnheader "计费体积(m³)↑↓" [ref=e325]
|
||||
- columnheader "总托盘数↑↓" [ref=e326]
|
||||
- columnheader "库位位置↑↓" [ref=e327]
|
||||
- columnheader "总材积重↑↓" [ref=e328]
|
||||
- columnheader "总净重(T.K.NW)↑↓" [ref=e329]
|
||||
- columnheader "目的仓类型↑↓" [ref=e330]
|
||||
- columnheader "目的仓↑↓" [ref=e331]
|
||||
- columnheader "地址↑↓" [ref=e332]
|
||||
- columnheader "邮编↑↓" [ref=e333]
|
||||
- columnheader "联系人↑↓" [ref=e334]
|
||||
- columnheader "联系人电话↑↓" [ref=e335]
|
||||
- columnheader "测量完成时间↑↓" [ref=e336]
|
||||
- columnheader "入库完成时间↑↓" [ref=e337]
|
||||
- columnheader "关联文件↑↓" [ref=e338]
|
||||
- columnheader "唛头文件↑↓" [ref=e339]
|
||||
- columnheader "PC端下单文件↑↓" [ref=e340]
|
||||
- columnheader "快递公司↑↓" [ref=e341]
|
||||
- columnheader "快递单号↑↓" [ref=e342]
|
||||
- columnheader "备注↑↓" [ref=e343]
|
||||
- columnheader "客服内部备注↑↓" [ref=e344]
|
||||
- columnheader "创建人↑↓" [ref=e345]
|
||||
- columnheader "创建日期↑↓" [ref=e346]
|
||||
- rowgroup [ref=e347]:
|
||||
- row [ref=e348]:
|
||||
- cell [ref=e349]:
|
||||
- checkbox [ref=e350] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e351]:
|
||||
- link "详情" [ref=e352] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e353]: 更多 ∨
|
||||
- cell "PCKHK2606151047" [ref=e354]
|
||||
- cell "待接收审核" [ref=e355]
|
||||
- cell "未录入测量数据" [ref=e356]
|
||||
- cell [ref=e357]:
|
||||
- textbox [ref=e358]
|
||||
- cell "未录入费用" [ref=e359]
|
||||
- cell "杭州积乐" [ref=e360]
|
||||
- cell "义乌仓" [ref=e361]
|
||||
- cell "义乌仓" [ref=e362]
|
||||
- cell "未配载" [ref=e363]
|
||||
- cell "否" [ref=e364]
|
||||
- cell "-" [ref=e365]
|
||||
- cell "CSLU1234567" [ref=e366]
|
||||
- cell "ABC123" [ref=e367]
|
||||
- cell "杭州积乐贸易" [ref=e368]
|
||||
- cell "海运拼箱" [ref=e369]
|
||||
- cell "自提" [ref=e370]
|
||||
- cell "2024-01-15" [ref=e371]
|
||||
- cell "13800138000" [ref=e372]
|
||||
- cell "杭州市江干区XX路XX号" [ref=e373]
|
||||
- cell "310000" [ref=e374]
|
||||
- cell "contact@example.com" [ref=e375]
|
||||
- cell "海运" [ref=e376]
|
||||
- cell "买单" [ref=e377]
|
||||
- cell "否" [ref=e378]
|
||||
- cell "已完成" [ref=e379]
|
||||
- cell "2024-01-20" [ref=e380]
|
||||
- cell "2024-02-10" [ref=e381]
|
||||
- cell "5" [ref=e382]
|
||||
- cell "500" [ref=e383]
|
||||
- cell "480" [ref=e384]
|
||||
- cell "2.5" [ref=e385]
|
||||
- cell "2.4" [ref=e386]
|
||||
- cell "2" [ref=e387]
|
||||
- cell "A1" [ref=e388]
|
||||
- cell "520" [ref=e389]
|
||||
- cell "450" [ref=e390]
|
||||
- cell "FBA仓" [ref=e391]
|
||||
- cell "美国仓" [ref=e392]
|
||||
- cell "USA Address" [ref=e393]
|
||||
- cell "90210" [ref=e394]
|
||||
- cell "John" [ref=e395]
|
||||
- cell "123456789" [ref=e396]
|
||||
- cell "-" [ref=e397]
|
||||
- cell "-" [ref=e398]
|
||||
- cell "file.pdf" [ref=e399]
|
||||
- cell "mark.pdf" [ref=e400]
|
||||
- cell "order.pdf" [ref=e401]
|
||||
- cell "顺丰" [ref=e402]
|
||||
- cell "SF123456789" [ref=e403]
|
||||
- cell "无" [ref=e404]
|
||||
- cell "内部备注" [ref=e405]
|
||||
- cell "admin" [ref=e406]
|
||||
- cell "2024-01-10" [ref=e407]
|
||||
- row [ref=e408]:
|
||||
- cell [ref=e409]:
|
||||
- checkbox [ref=e410] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e411]:
|
||||
- link "详情" [ref=e412] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e413]: 更多 ∨
|
||||
- cell "PCKHK2606151046" [ref=e414]
|
||||
- cell "待接收审核" [ref=e415]
|
||||
- cell "未录入测量数据" [ref=e416]
|
||||
- cell [ref=e417]:
|
||||
- textbox [ref=e418]
|
||||
- cell "未录入费用" [ref=e419]
|
||||
- cell "杭州积乐" [ref=e420]
|
||||
- cell "义乌仓" [ref=e421]
|
||||
- cell "义乌仓" [ref=e422]
|
||||
- cell "未配载" [ref=e423]
|
||||
- cell "否" [ref=e424]
|
||||
- cell "-" [ref=e425]
|
||||
- cell "CSLU1234568" [ref=e426]
|
||||
- cell "ABC124" [ref=e427]
|
||||
- cell "杭州积乐贸易" [ref=e428]
|
||||
- cell "海运拼箱" [ref=e429]
|
||||
- cell "送货上门" [ref=e430]
|
||||
- cell "2024-01-16" [ref=e431]
|
||||
- cell "13900139000" [ref=e432]
|
||||
- cell "杭州市西湖区XX路XX号" [ref=e433]
|
||||
- cell "310001" [ref=e434]
|
||||
- cell "contact2@example.com" [ref=e435]
|
||||
- cell "海运" [ref=e436]
|
||||
- cell "退税" [ref=e437]
|
||||
- cell "否" [ref=e438]
|
||||
- cell "已完成" [ref=e439]
|
||||
- cell "2024-01-21" [ref=e440]
|
||||
- cell "2024-02-11" [ref=e441]
|
||||
- cell "8" [ref=e442]
|
||||
- cell "800" [ref=e443]
|
||||
- cell "780" [ref=e444]
|
||||
- cell "4.0" [ref=e445]
|
||||
- cell "3.8" [ref=e446]
|
||||
- cell "3" [ref=e447]
|
||||
- cell "A2" [ref=e448]
|
||||
- cell "850" [ref=e449]
|
||||
- cell "720" [ref=e450]
|
||||
- cell "FBA仓" [ref=e451]
|
||||
- cell "美国仓" [ref=e452]
|
||||
- cell "USA Address 2" [ref=e453]
|
||||
- cell "90211" [ref=e454]
|
||||
- cell "Mike" [ref=e455]
|
||||
- cell "987654321" [ref=e456]
|
||||
- cell "-" [ref=e457]
|
||||
- cell "-" [ref=e458]
|
||||
- cell "file2.pdf" [ref=e459]
|
||||
- cell "mark2.pdf" [ref=e460]
|
||||
- cell "order2.pdf" [ref=e461]
|
||||
- cell "圆通" [ref=e462]
|
||||
- cell "YT123456789" [ref=e463]
|
||||
- cell "加急" [ref=e464]
|
||||
- cell "内部备注2" [ref=e465]
|
||||
- cell "user1" [ref=e466]
|
||||
- cell "2024-01-11" [ref=e467]
|
||||
- row [ref=e468]:
|
||||
- cell [ref=e469]:
|
||||
- checkbox [ref=e470] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e471]:
|
||||
- link "详情" [ref=e472] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e473]: 更多 ∨
|
||||
- cell "HDHK2606151045" [ref=e474]
|
||||
- cell "待接收审核" [ref=e475]
|
||||
- cell "未录入测量数据" [ref=e476]
|
||||
- cell [ref=e477]:
|
||||
- textbox [ref=e478]
|
||||
- cell "未录入费用" [ref=e479]
|
||||
- cell "岩盛" [ref=e480]
|
||||
- cell "义乌仓" [ref=e481]
|
||||
- cell "义乌仓" [ref=e482]
|
||||
- cell "未配载" [ref=e483]
|
||||
- cell "否" [ref=e484]
|
||||
- cell "-" [ref=e485]
|
||||
- cell "CSLU1234569" [ref=e486]
|
||||
- cell "ABC125" [ref=e487]
|
||||
- cell "岩盛进出口" [ref=e488]
|
||||
- cell "空运" [ref=e489]
|
||||
- cell "自提" [ref=e490]
|
||||
- cell "2024-01-17" [ref=e491]
|
||||
- cell "13700137000" [ref=e492]
|
||||
- cell "深圳市南山区XX路XX号" [ref=e493]
|
||||
- cell "518000" [ref=e494]
|
||||
- cell "ys@rocksheng.com" [ref=e495]
|
||||
- cell "空运" [ref=e496]
|
||||
- cell "买单" [ref=e497]
|
||||
- cell "否" [ref=e498]
|
||||
- cell "已完成" [ref=e499]
|
||||
- cell "2024-01-22" [ref=e500]
|
||||
- cell "2024-01-25" [ref=e501]
|
||||
- cell "3" [ref=e502]
|
||||
- cell "150" [ref=e503]
|
||||
- cell "145" [ref=e504]
|
||||
- cell "0.5" [ref=e505]
|
||||
- cell "0.45" [ref=e506]
|
||||
- cell "4" [ref=e507]
|
||||
- cell "A3" [ref=e508]
|
||||
- cell "160" [ref=e509]
|
||||
- cell "130" [ref=e510]
|
||||
- cell "FBA仓" [ref=e511]
|
||||
- cell "德国仓" [ref=e512]
|
||||
- cell "Germany Address" [ref=e513]
|
||||
- cell "10178" [ref=e514]
|
||||
- cell "Tom" [ref=e515]
|
||||
- cell "456789012" [ref=e516]
|
||||
- cell "-" [ref=e517]
|
||||
- cell "-" [ref=e518]
|
||||
- cell "file3.pdf" [ref=e519]
|
||||
- cell "mark3.pdf" [ref=e520]
|
||||
- cell "order3.pdf" [ref=e521]
|
||||
- cell "EMS" [ref=e522]
|
||||
- cell "EMS123456789" [ref=e523]
|
||||
- cell "无" [ref=e524]
|
||||
- cell "内部备注3" [ref=e525]
|
||||
- cell "user2" [ref=e526]
|
||||
- cell "2024-01-12" [ref=e527]
|
||||
- row [ref=e528]:
|
||||
- cell [ref=e529]:
|
||||
- checkbox [ref=e530] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e531]:
|
||||
- link "详情" [ref=e532] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e533]: 更多 ∨
|
||||
- cell "HDHK2606151044" [ref=e534]
|
||||
- cell "待接收审核" [ref=e535]
|
||||
- cell "未录入测量数据" [ref=e536]
|
||||
- cell [ref=e537]:
|
||||
- textbox [ref=e538]
|
||||
- cell "未录入费用" [ref=e539]
|
||||
- cell "岩盛" [ref=e540]
|
||||
- cell "义乌仓" [ref=e541]
|
||||
- cell "义乌仓" [ref=e542]
|
||||
- cell "未配载" [ref=e543]
|
||||
- cell "否" [ref=e544]
|
||||
- cell "-" [ref=e545]
|
||||
- cell "CSLU1234570" [ref=e546]
|
||||
- cell "ABC126" [ref=e547]
|
||||
- cell "岩盛进出口" [ref=e548]
|
||||
- cell "空运" [ref=e549]
|
||||
- cell "送货上门" [ref=e550]
|
||||
- cell "2024-01-18" [ref=e551]
|
||||
- cell "13600136000" [ref=e552]
|
||||
- cell "深圳市福田区XX路XX号" [ref=e553]
|
||||
- cell "518001" [ref=e554]
|
||||
- cell "ys2@rocksheng.com" [ref=e555]
|
||||
- cell "空运" [ref=e556]
|
||||
- cell "退税" [ref=e557]
|
||||
- cell "否" [ref=e558]
|
||||
- cell "已完成" [ref=e559]
|
||||
- cell "2024-01-23" [ref=e560]
|
||||
- cell "2024-01-26" [ref=e561]
|
||||
- cell "6" [ref=e562]
|
||||
- cell "300" [ref=e563]
|
||||
- cell "290" [ref=e564]
|
||||
- cell "1.2" [ref=e565]
|
||||
- cell "1.1" [ref=e566]
|
||||
- cell "5" [ref=e567]
|
||||
- cell "A4" [ref=e568]
|
||||
- cell "320" [ref=e569]
|
||||
- cell "260" [ref=e570]
|
||||
- cell "FBA仓" [ref=e571]
|
||||
- cell "英国仓" [ref=e572]
|
||||
- cell "UK Address" [ref=e573]
|
||||
- cell "EC1A 1BB" [ref=e574]
|
||||
- cell "Jerry" [ref=e575]
|
||||
- cell "321098765" [ref=e576]
|
||||
- cell "-" [ref=e577]
|
||||
- cell "-" [ref=e578]
|
||||
- cell "file4.pdf" [ref=e579]
|
||||
- cell "mark4.pdf" [ref=e580]
|
||||
- cell "order4.pdf" [ref=e581]
|
||||
- cell "DHL" [ref=e582]
|
||||
- cell "DHL123456789" [ref=e583]
|
||||
- cell "无" [ref=e584]
|
||||
- cell "内部备注4" [ref=e585]
|
||||
- cell "user3" [ref=e586]
|
||||
- cell "2024-01-13" [ref=e587]
|
||||
- row [ref=e588]:
|
||||
- cell [ref=e589]:
|
||||
- checkbox [ref=e590] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e591]:
|
||||
- link "详情" [ref=e592] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e593]: 更多 ∨
|
||||
- cell "EXHKHK2606151044" [ref=e594]
|
||||
- cell "待接收审核" [ref=e595]
|
||||
- cell "未录入测量数据" [ref=e596]
|
||||
- cell [ref=e597]:
|
||||
- textbox [ref=e598]
|
||||
- cell "未录入费用" [ref=e599]
|
||||
- cell "上海粤讯" [ref=e600]
|
||||
- cell "义乌仓" [ref=e601]
|
||||
- cell "义乌仓" [ref=e602]
|
||||
- cell "未配载" [ref=e603]
|
||||
- cell "否" [ref=e604]
|
||||
- cell "-" [ref=e605]
|
||||
- cell "CSLU1234571" [ref=e606]
|
||||
- cell "ABC127" [ref=e607]
|
||||
- cell "上海粤讯国际" [ref=e608]
|
||||
- cell "海运整柜" [ref=e609]
|
||||
- cell "自提" [ref=e610]
|
||||
- cell "2024-01-19" [ref=e611]
|
||||
- cell "13500135000" [ref=e612]
|
||||
- cell "上海市浦东新区XX路XX号" [ref=e613]
|
||||
- cell "200120" [ref=e614]
|
||||
- cell "yx@yuexun.com" [ref=e615]
|
||||
- cell "海运" [ref=e616]
|
||||
- cell "买单" [ref=e617]
|
||||
- cell "是" [ref=e618]
|
||||
- cell "已完成" [ref=e619]
|
||||
- cell "2024-01-24" [ref=e620]
|
||||
- cell "2024-02-15" [ref=e621]
|
||||
- cell "50" [ref=e622]
|
||||
- cell "10000" [ref=e623]
|
||||
- cell "9800" [ref=e624]
|
||||
- cell "60" [ref=e625]
|
||||
- cell "58" [ref=e626]
|
||||
- cell "10500" [ref=e627]
|
||||
- cell "9000" [ref=e628]
|
||||
- cell "海外仓" [ref=e629]
|
||||
- cell "澳大利亚仓" [ref=e630]
|
||||
- cell "Australia Address" [ref=e631]
|
||||
- cell "2000" [ref=e632]
|
||||
- cell "Lucy" [ref=e633]
|
||||
- cell "654321098" [ref=e634]
|
||||
- cell "-" [ref=e635]
|
||||
- cell "-" [ref=e636]
|
||||
- cell "file5.pdf" [ref=e637]
|
||||
- cell "mark5.pdf" [ref=e638]
|
||||
- cell "order5.pdf" [ref=e639]
|
||||
- cell "UPS" [ref=e640]
|
||||
- cell "UPS123456789" [ref=e641]
|
||||
- cell "整柜运输" [ref=e642]
|
||||
- cell "内部备注5" [ref=e643]
|
||||
- cell "admin" [ref=e644]
|
||||
- cell "2024-01-14" [ref=e645]
|
||||
- row [ref=e646]:
|
||||
- cell [ref=e647]:
|
||||
- checkbox [ref=e648] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e649]:
|
||||
- link "详情" [ref=e650] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e651]: 更多 ∨
|
||||
- cell "HDHK2606151043" [ref=e652]
|
||||
- cell "待接收审核" [ref=e653]
|
||||
- cell "未录入测量数据" [ref=e654]
|
||||
- cell [ref=e655]:
|
||||
- textbox [ref=e656]
|
||||
- cell "未录入费用" [ref=e657]
|
||||
- cell "欧业" [ref=e658]
|
||||
- cell "义乌仓" [ref=e659]
|
||||
- cell "B001" [ref=e660]
|
||||
- cell "未配载" [ref=e661]
|
||||
- cell "否" [ref=e662]
|
||||
- cell "-" [ref=e663]
|
||||
- cell "CSLU1234572" [ref=e664]
|
||||
- cell "ABC128" [ref=e665]
|
||||
- cell "义乌欧业进出口" [ref=e666]
|
||||
- cell "海运拼箱" [ref=e667]
|
||||
- cell "送货上门" [ref=e668]
|
||||
- cell "2024-01-20" [ref=e669]
|
||||
- cell "13400134000" [ref=e670]
|
||||
- cell "义乌市XX路XX号" [ref=e671]
|
||||
- cell "322000" [ref=e672]
|
||||
- cell "oy@ouye.com" [ref=e673]
|
||||
- cell "海运" [ref=e674]
|
||||
- cell "退税" [ref=e675]
|
||||
- cell "否" [ref=e676]
|
||||
- cell "已完成" [ref=e677]
|
||||
- cell "2024-01-25" [ref=e678]
|
||||
- cell "2024-02-16" [ref=e679]
|
||||
- cell "10" [ref=e680]
|
||||
- cell "1000" [ref=e681]
|
||||
- cell "980" [ref=e682]
|
||||
- cell "5.0" [ref=e683]
|
||||
- cell "4.8" [ref=e684]
|
||||
- cell "6" [ref=e685]
|
||||
- cell "A5" [ref=e686]
|
||||
- cell "1050" [ref=e687]
|
||||
- cell "900" [ref=e688]
|
||||
- cell "FBA仓" [ref=e689]
|
||||
- cell "加拿大仓" [ref=e690]
|
||||
- cell "Canada Address" [ref=e691]
|
||||
- cell "M5V 2T6" [ref=e692]
|
||||
- cell "Bob" [ref=e693]
|
||||
- cell "789012345" [ref=e694]
|
||||
- cell "-" [ref=e695]
|
||||
- cell "-" [ref=e696]
|
||||
- cell "file6.pdf" [ref=e697]
|
||||
- cell "mark6.pdf" [ref=e698]
|
||||
- cell "order6.pdf" [ref=e699]
|
||||
- cell "申通" [ref=e700]
|
||||
- cell "STO123456789" [ref=e701]
|
||||
- cell "无" [ref=e702]
|
||||
- cell "内部备注6" [ref=e703]
|
||||
- cell "user4" [ref=e704]
|
||||
- cell "2024-01-15" [ref=e705]
|
||||
- row [ref=e706]:
|
||||
- cell [ref=e707]:
|
||||
- checkbox [ref=e708] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e709]:
|
||||
- link "详情" [ref=e710] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e711]: 更多 ∨
|
||||
- cell "HDHK2606151042" [ref=e712]
|
||||
- cell "待接收审核" [ref=e713]
|
||||
- cell "未录入测量数据" [ref=e714]
|
||||
- cell [ref=e715]:
|
||||
- textbox [ref=e716]
|
||||
- cell "未录入费用" [ref=e717]
|
||||
- cell "欧业" [ref=e718]
|
||||
- cell "义乌仓" [ref=e719]
|
||||
- cell "B001" [ref=e720]
|
||||
- cell "未配载" [ref=e721]
|
||||
- cell "否" [ref=e722]
|
||||
- cell "-" [ref=e723]
|
||||
- cell "CSLU1234573" [ref=e724]
|
||||
- cell "ABC129" [ref=e725]
|
||||
- cell "义乌欧业进出口" [ref=e726]
|
||||
- cell "空运" [ref=e727]
|
||||
- cell "自提" [ref=e728]
|
||||
- cell "2024-01-21" [ref=e729]
|
||||
- cell "13300133000" [ref=e730]
|
||||
- cell "义乌市XX路XX号" [ref=e731]
|
||||
- cell "322001" [ref=e732]
|
||||
- cell "oy2@ouye.com" [ref=e733]
|
||||
- cell "空运" [ref=e734]
|
||||
- cell "买单" [ref=e735]
|
||||
- cell "否" [ref=e736]
|
||||
- cell "已完成" [ref=e737]
|
||||
- cell "2024-01-26" [ref=e738]
|
||||
- cell "2024-01-29" [ref=e739]
|
||||
- cell "4" [ref=e740]
|
||||
- cell "200" [ref=e741]
|
||||
- cell "195" [ref=e742]
|
||||
- cell "0.8" [ref=e743]
|
||||
- cell "0.75" [ref=e744]
|
||||
- cell "7" [ref=e745]
|
||||
- cell "A6" [ref=e746]
|
||||
- cell "210" [ref=e747]
|
||||
- cell "175" [ref=e748]
|
||||
- cell "FBA仓" [ref=e749]
|
||||
- cell "日本仓" [ref=e750]
|
||||
- cell "Japan Address" [ref=e751]
|
||||
- cell "100-0001" [ref=e752]
|
||||
- cell "Alice" [ref=e753]
|
||||
- cell "876543210" [ref=e754]
|
||||
- cell "-" [ref=e755]
|
||||
- cell "-" [ref=e756]
|
||||
- cell "file7.pdf" [ref=e757]
|
||||
- cell "mark7.pdf" [ref=e758]
|
||||
- cell "order7.pdf" [ref=e759]
|
||||
- cell "顺丰国际" [ref=e760]
|
||||
- cell "SFI123456789" [ref=e761]
|
||||
- cell "无" [ref=e762]
|
||||
- cell "内部备注7" [ref=e763]
|
||||
- cell "user5" [ref=e764]
|
||||
- cell "2024-01-16" [ref=e765]
|
||||
- row [ref=e766]:
|
||||
- cell [ref=e767]:
|
||||
- checkbox [ref=e768] [cursor=pointer]
|
||||
- cell "详情 | 更多 ∨" [ref=e769]:
|
||||
- link "详情" [ref=e770] [cursor=pointer]:
|
||||
- /url: javascript:void(0)
|
||||
- text: "|"
|
||||
- generic [ref=e771]: 更多 ∨
|
||||
- cell "HDHK2606151041" [ref=e772]
|
||||
- cell "审核通过" [ref=e773]
|
||||
- cell "未录入测量数据" [ref=e774]
|
||||
- cell [ref=e775]:
|
||||
- textbox [ref=e776]
|
||||
- cell "未录入费用" [ref=e777]
|
||||
- cell "义乌卓越" [ref=e778]
|
||||
- cell "义乌仓" [ref=e779]
|
||||
- cell "义乌仓" [ref=e780]
|
||||
- cell "未配载" [ref=e781]
|
||||
- cell "否" [ref=e782]
|
||||
- cell "-" [ref=e783]
|
||||
- cell "CSLU1234574" [ref=e784]
|
||||
- cell "ABC130" [ref=e785]
|
||||
- cell "义乌卓越物流" [ref=e786]
|
||||
- cell "海运拼箱" [ref=e787]
|
||||
- cell "送货上门" [ref=e788]
|
||||
- cell "2024-01-22" [ref=e789]
|
||||
- cell "13200132000" [ref=e790]
|
||||
- cell "义乌市XX路XX号" [ref=e791]
|
||||
- cell "322002" [ref=e792]
|
||||
- cell "zy@zhuoyue.com" [ref=e793]
|
||||
- cell "海运" [ref=e794]
|
||||
- cell "退税" [ref=e795]
|
||||
- cell "否" [ref=e796]
|
||||
- cell "已完成" [ref=e797]
|
||||
- cell "2024-01-27" [ref=e798]
|
||||
- cell "2024-02-17" [ref=e799]
|
||||
- cell "7" [ref=e800]
|
||||
- cell "700" [ref=e801]
|
||||
- cell "680" [ref=e802]
|
||||
- cell "3.5" [ref=e803]
|
||||
- cell "3.3" [ref=e804]
|
||||
- cell "8" [ref=e805]
|
||||
- cell "A7" [ref=e806]
|
||||
- cell "740" [ref=e807]
|
||||
- cell "630" [ref=e808]
|
||||
- cell "FBA仓" [ref=e809]
|
||||
- cell "法国仓" [ref=e810]
|
||||
- cell "France Address" [ref=e811]
|
||||
- cell "75001" [ref=e812]
|
||||
- cell "David" [ref=e813]
|
||||
- cell "901234567" [ref=e814]
|
||||
- cell "-" [ref=e815]
|
||||
- cell "-" [ref=e816]
|
||||
- cell "file8.pdf" [ref=e817]
|
||||
- cell "mark8.pdf" [ref=e818]
|
||||
- cell "order8.pdf" [ref=e819]
|
||||
- cell "韵达" [ref=e820]
|
||||
- cell "YD123456789" [ref=e821]
|
||||
- cell "无" [ref=e822]
|
||||
- cell "内部备注8" [ref=e823]
|
||||
- cell "admin" [ref=e824]
|
||||
- cell "2024-01-17" [ref=e825]
|
||||
- generic [ref=e826]:
|
||||
- generic [ref=e827]: 共 128 条
|
||||
- button "1" [ref=e828] [cursor=pointer]
|
||||
- button "2" [ref=e829] [cursor=pointer]
|
||||
- button "3" [ref=e830] [cursor=pointer]
|
||||
- button "→" [ref=e831] [cursor=pointer]
|
||||
- text: ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓
|
||||
- text: ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓
|
||||
- text: ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓ ↑↓
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,231 @@
|
||||
# 0805 新增订舱页合并与美化实施计划
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax.
|
||||
|
||||
**Goal:** 在 0805 后台原型中隐藏新增订舱的“基本”页签,将其字段合并到“订舱”页,并加入保存/取消操作与统一视觉布局。
|
||||
|
||||
**Architecture:** 保留现有单文件静态原型和全局 `switchPage` 导航,仅替换订舱详情页的页签壳、重复字段和局部样式。订舱页由业务信息、运输条款、箱型箱量三个连续卡片构成;MB/L、HB/L 继续使用原有页签内容。保存和取消通过现有原型函数返回订舱列表,不引入接口。
|
||||
|
||||
**Tech Stack:** HTML/CSS/vanilla JavaScript,PowerShell 静态断言,Codex Browser 本地预览。
|
||||
|
||||
---
|
||||
|
||||
### Task 1: 建立合并订舱页的失败断言
|
||||
|
||||
**Files:**
|
||||
- Verify: `C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
|
||||
- [ ] **Step 1: 运行结构 RED 断言**
|
||||
|
||||
```powershell
|
||||
$p='C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html'
|
||||
$html=Get-Content -Raw -LiteralPath $p
|
||||
$s=$html.IndexOf('<div class="page" id="page-booking-detail">')
|
||||
$e=$html.IndexOf('<!-- ==================== CONTAINER LIST',$s)
|
||||
$booking=$html.Substring($s,$e-$s)
|
||||
if($booking.Contains('data-tab="basic"')){throw 'Basic booking tab is still present.'}
|
||||
if(-not $booking.Contains('booking-create-form')){throw 'Merged booking form marker is missing.'}
|
||||
foreach($text in @('保存','取消')){if(-not $booking.Contains($text)){throw "Missing action: $text"}}
|
||||
'RED_EXPECTED'
|
||||
```
|
||||
|
||||
Expected: FAIL because the old four-tab shell remains.
|
||||
|
||||
- [ ] **Step 2: 运行行为 RED 断言**
|
||||
|
||||
```powershell
|
||||
foreach($required in @('function saveBooking()','function cancelBooking()')){
|
||||
if(-not $html.Contains($required)){throw "Missing booking behavior: $required"}
|
||||
}
|
||||
```
|
||||
|
||||
Expected: FAIL because the handlers do not yet exist.
|
||||
|
||||
### Task 2: 添加订舱页局部视觉样式
|
||||
|
||||
**Files:**
|
||||
- Modify: `C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html` in the top `<style>` block immediately after existing booking styles.
|
||||
|
||||
- [ ] **Step 1: 写 CSS 失败断言**
|
||||
|
||||
```powershell
|
||||
foreach($required in @('/* ===== 订舱新增页合并样式 ===== */','.booking-create-form','.booking-create-toolbar','.booking-create-grid','@media(max-width:1023px)')){
|
||||
if(-not $html.Contains($required)){throw "Missing booking CSS: $required"}
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 添加最小样式实现**
|
||||
|
||||
```css
|
||||
/* ===== 订舱新增页合并样式 ===== */
|
||||
#page-booking-detail .booking-create-form{background:#fff;border:1px solid #e8edf3;border-radius:12px;box-shadow:0 3px 12px rgba(15,23,42,.05);overflow:hidden}
|
||||
#page-booking-detail .booking-create-toolbar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid #e8edf3;flex-wrap:wrap}
|
||||
#page-booking-detail .booking-create-primary-actions{display:flex;gap:8px;margin-left:auto}
|
||||
#page-booking-detail .booking-create-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:16px;padding:18px}
|
||||
#page-booking-detail .booking-create-section{min-width:0;border:1px solid #e8edf3;border-radius:10px;background:#fff}
|
||||
#page-booking-detail .booking-create-section-title{margin:0;padding:14px 16px;border-bottom:1px solid #eef2f6;font-size:14px;font-weight:700;color:#1f2937}
|
||||
#page-booking-detail .booking-create-section-body{padding:16px}
|
||||
#page-booking-detail .booking-create-section .bk-field,#page-booking-detail .booking-create-section .bk-field-new{margin-bottom:12px}
|
||||
#page-booking-detail .booking-create-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
|
||||
@media(max-width:1199px){#page-booking-detail .booking-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
||||
@media(max-width:1023px){#page-booking-detail .booking-create-grid{grid-template-columns:1fr}}
|
||||
```
|
||||
|
||||
- [ ] **Step 3: 运行 CSS GREEN 断言**
|
||||
|
||||
Expected: `BOOKING_CREATE_CSS_OK`; confirm all new selectors are scoped below `#page-booking-detail`.
|
||||
|
||||
### Task 3: 隐藏基本页签并合并三个信息区块
|
||||
|
||||
**Files:**
|
||||
- Modify: same HTML file, booking detail markup between `<!-- ==================== BOOKING DETAIL -->` and `<!-- ==================== CONTAINER LIST`.
|
||||
|
||||
- [ ] **Step 1: 写结构变更**
|
||||
|
||||
Replace the current toolbar/tab wrapper with:
|
||||
|
||||
```html
|
||||
<div class="booking-create-form" id="booking-create-form">
|
||||
<div class="booking-create-toolbar">
|
||||
<div class="booking-create-secondary-actions">
|
||||
<button class="btn btn-sm btn-default" type="button" onclick="copyBooking()">复制</button>
|
||||
<button class="btn btn-sm btn-primary" type="button" onclick="returnBooking()">退关</button>
|
||||
<button class="btn btn-sm btn-primary" type="button" onclick="printBooking()">打印</button>
|
||||
</div>
|
||||
<div class="booking-create-primary-actions">
|
||||
<button class="btn btn-sm btn-primary" type="button" onclick="saveBooking()">保存</button>
|
||||
<button class="btn btn-sm btn-default" type="button" onclick="cancelBooking()">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="booking-create-grid" id="booking-create-tab-booking">
|
||||
```
|
||||
|
||||
Remove the `data-tab="basic"` element and do not add a replacement hidden tab. Keep only the visible tab items for `订舱`、`MB/L`、`HB/L`.
|
||||
|
||||
- [ ] **Step 2: Move basic fields into the 订舱 panel**
|
||||
|
||||
Move the business, terms, and container cards from `booking-tab-basic-content` into `booking-create-tab-booking`, adding classes/IDs:
|
||||
|
||||
```html
|
||||
<section class="booking-create-section" id="booking-create-business">
|
||||
<h3 class="booking-create-section-title">业务信息</h3>
|
||||
<div class="booking-create-section-body"></div>
|
||||
</section>
|
||||
<section class="booking-create-section" id="booking-create-terms">
|
||||
<h3 class="booking-create-section-title">运输条款</h3>
|
||||
<div class="booking-create-section-body"></div>
|
||||
</section>
|
||||
<section class="booking-create-section" id="booking-create-containers">
|
||||
<h3 class="booking-create-section-title">箱型箱量</h3>
|
||||
<div class="booking-create-section-body"></div>
|
||||
</section>
|
||||
```
|
||||
|
||||
Populate the three empty bodies by moving the current descendants from the old basic panel: the complete business field groups into `booking-create-business`, the complete terms field list into `booking-create-terms`, and the current `#booking-container-rows` table plus add button into `booking-create-containers`. Move nodes without changing their values, options, placeholders, or existing row handlers.
|
||||
|
||||
Keep `addContainerRow()` and `delContainerRow()` handlers. Delete the duplicate business/terms/container cards from the old basic panel and the duplicate business/terms fields from `booking-tab-booking`.
|
||||
|
||||
- [ ] **Step 3: Apply deduplication and label corrections**
|
||||
|
||||
Within the merged booking panel:
|
||||
|
||||
```powershell
|
||||
if([regex]::Matches($booking,'主要运输条款 Service Term').Count -ne 1){throw 'Service Term duplicated.'}
|
||||
if([regex]::Matches($booking,'船名\(Vessel\)').Count -ne 1){throw 'Vessel duplicated or missing.'}
|
||||
if([regex]::Matches($booking,'航次\(Voyage\)').Count -ne 1){throw 'Voyage duplicated or missing.'}
|
||||
if($booking.Contains('起运港POU') -or $booking.Contains('卸货港POL')){throw 'Obsolete port labels remain.'}
|
||||
```
|
||||
|
||||
Use `起运港 POL` and `卸货港 POD` for the canonical port labels.
|
||||
|
||||
- [ ] **Step 4: Close the merged wrapper and run structure GREEN**
|
||||
|
||||
Close `booking-create-grid`, `booking-create-form`, and the remaining MB/L/HB/L wrappers correctly. Expected output: `BOOKING_CREATE_STRUCTURE_OK` with no `data-tab="basic"` and exactly one merged business, terms, and container section.
|
||||
|
||||
### Task 4: Implement save/cancel and remove basic-tab initialization
|
||||
|
||||
**Files:**
|
||||
- Modify: same HTML file in the booking-related JavaScript block near `openNewBooking()` and the tab initialization IIFE.
|
||||
|
||||
- [ ] **Step 1: Write behavior assertions**
|
||||
|
||||
```powershell
|
||||
foreach($required in @('function saveBooking()','function cancelBooking()','showToast(\'订舱信息保存成功\',\'success\')','switchPage(\'booking-list\')')){
|
||||
if(-not $html.Contains($required)){throw "Missing booking behavior: $required"}
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 2: Add minimal handlers**
|
||||
|
||||
```javascript
|
||||
function saveBooking(){
|
||||
showToast('订舱信息保存成功','success');
|
||||
switchPage('booking-list');
|
||||
}
|
||||
function cancelBooking(){
|
||||
switchPage('booking-list');
|
||||
}
|
||||
```
|
||||
|
||||
Keep existing `copyBooking`, `returnBooking`, and `printBooking` behavior if present. Remove only the IIFE that assumes and activates `.tab-item[data-tab="basic"]`; keep the tab behavior for the remaining three tabs.
|
||||
|
||||
- [ ] **Step 3: Run behavior GREEN assertions**
|
||||
|
||||
Expected output: `BOOKING_CREATE_BEHAVIOR_OK`; the booking detail page contains no basic-tab initialization and the two buttons call the new handlers.
|
||||
|
||||
### Task 5: Browser verification and bounded visual polish
|
||||
|
||||
**Files:**
|
||||
- Verify: same HTML file.
|
||||
- Create/replace only local artifacts under `悦(0805)\悦\货代SAAS平台后台\output\playwright\`.
|
||||
|
||||
- [ ] **Step 1: Run the Impeccable layout detector once**
|
||||
|
||||
```powershell
|
||||
node 'C:\Users\BY\.codex\skills\impeccable\scripts\detect.mjs' --json --scope layout 'C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html'
|
||||
```
|
||||
|
||||
Record only findings attributable to the merged booking page.
|
||||
|
||||
- [ ] **Step 2: Verify at 1440×900**
|
||||
|
||||
Open the local file, navigate to 服务中心 → 订舱列表 → 新增订舱, and assert:
|
||||
|
||||
```javascript
|
||||
document.querySelectorAll('#page-booking-detail .tab-item[data-tab="basic"]').length === 0
|
||||
document.querySelectorAll('#page-booking-detail #booking-create-business, #page-booking-detail #booking-create-terms, #page-booking-detail #booking-create-containers').length === 3
|
||||
document.documentElement.scrollWidth === document.documentElement.clientWidth
|
||||
```
|
||||
|
||||
Confirm the buttons 复制、退关、打印、保存、取消 are visible and capture `booking-create-1440x900.png`.
|
||||
|
||||
- [ ] **Step 3: Verify save and cancel**
|
||||
|
||||
Click 保存 and confirm the success toast plus return to `booking-list`; reopen 新增订舱, change no data, click 取消 and confirm return to `booking-list` without a toast.
|
||||
|
||||
- [ ] **Step 4: Verify at 780×900**
|
||||
|
||||
Confirm the merged grid becomes one column, toolbar actions wrap without overlap, the page has no horizontal overflow, and the container table scrolls only within `.booking-create-table-scroll`. Capture `booking-create-780x900.png`.
|
||||
|
||||
### Task 6: Final static verification
|
||||
|
||||
**Files:**
|
||||
- Verify: `C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
|
||||
- [ ] **Step 1: Run final assertions**
|
||||
|
||||
```powershell
|
||||
$p='C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html'
|
||||
$html=Get-Content -Raw -LiteralPath $p
|
||||
$s=$html.IndexOf('<div class="page" id="page-booking-detail">')
|
||||
$e=$html.IndexOf('<!-- ==================== CONTAINER LIST',$s)
|
||||
$booking=$html.Substring($s,$e-$s)
|
||||
foreach($removed in @('data-tab="basic"','id="booking-tab-basic-content"')){if($booking.Contains($removed)){throw "Obsolete booking markup: $removed"}}
|
||||
foreach($required in @('booking-create-form','booking-create-business','booking-create-terms','booking-create-containers','保存','取消','function saveBooking()','function cancelBooking()','起运港 POL','卸货港 POD')){if(-not $html.Contains($required)){throw "Missing booking feature: $required"}}
|
||||
if([regex]::Matches($booking,'主要运输条款 Service Term').Count -ne 1){throw 'Service Term is duplicated.'}
|
||||
'FINAL_BOOKING_CREATE_OK'
|
||||
```
|
||||
|
||||
Expected: `FINAL_BOOKING_CREATE_OK`.
|
||||
|
||||
No commit step is included because this workspace is not a Git repository.
|
||||
@@ -0,0 +1,138 @@
|
||||
# 0805 MB/L、HB/L 统一表单实施计划
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax.
|
||||
|
||||
**Goal:** 让 0805 原型的 MB/L、HB/L 整页表单与已完成的订舱页保持统一的卡片、字段和响应式视觉。
|
||||
|
||||
**Architecture:** 在单文件原型中增加只作用于 `#page-booking-detail` 的 MB/L/HB/L 样式,并在两个页签内部补充语义 class,保持现有字段节点、示例值、按钮和表格行为。MB/L、HB/L 的分区采用统一卡片容器和 CSS Grid;宽表格保留局部滚动,页面本身不产生横向溢出。
|
||||
|
||||
**Tech Stack:** HTML/CSS/vanilla JavaScript,PowerShell 静态断言,Codex Browser 预览。
|
||||
|
||||
---
|
||||
|
||||
### Task 1: 建立 MB/L、HB/L 统一样式的失败断言
|
||||
|
||||
**Files:**
|
||||
- Verify: `C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
|
||||
- [ ] **Step 1: 运行 RED 断言**
|
||||
|
||||
```powershell
|
||||
$p='C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html'
|
||||
$html=Get-Content -Raw -LiteralPath $p
|
||||
foreach($required in @('booking-party-grid','booking-unified-section','booking-unified-field','booking-unified-table-scroll')){
|
||||
if(-not $html.Contains($required)){throw "Missing unified MB/L-HB/L style hook: $required"}
|
||||
}
|
||||
```
|
||||
|
||||
Expected: FAIL because the new hooks do not exist yet.
|
||||
|
||||
### Task 2: 添加页级统一表单样式
|
||||
|
||||
**Files:**
|
||||
- Modify: same HTML file, the top `<style>` block after the existing `booking-create-*` rules.
|
||||
|
||||
- [ ] **Step 1: 添加最小 CSS 实现**
|
||||
|
||||
```css
|
||||
/* ===== MB/L、HB/L 统一表单样式 ===== */
|
||||
#page-booking-detail .booking-unified-section{background:#fff;border:1px solid #e8edf3;border-radius:10px;box-shadow:0 2px 8px rgba(15,23,42,.04);overflow:hidden;margin-bottom:16px}
|
||||
#page-booking-detail .booking-unified-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eef2f6}
|
||||
#page-booking-detail .booking-unified-section-head h3{margin:0;font-size:14px;font-weight:700;color:#1f2937}
|
||||
#page-booking-detail .booking-unified-section-body{padding:16px}
|
||||
#page-booking-detail .booking-party-grid,#page-booking-detail .booking-unified-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
|
||||
#page-booking-detail .booking-party-card{min-width:0;padding:14px;border:1px solid #edf1f6;border-radius:8px;background:#fbfcfe}
|
||||
#page-booking-detail .booking-party-card h4{margin:0 0 10px;font-size:13px;color:#334155}
|
||||
#page-booking-detail .booking-unified-field{min-width:0;margin:0 0 12px}
|
||||
#page-booking-detail .booking-unified-field>label{display:block;margin:0 0 6px;font-size:12px;font-weight:600;color:#475569}
|
||||
#page-booking-detail .booking-unified-field input,#page-booking-detail .booking-unified-field select,#page-booking-detail .booking-unified-field textarea,#page-booking-detail .booking-party-card input,#page-booking-detail .booking-party-card textarea{box-sizing:border-box;width:100%;min-height:36px;padding:8px 10px;border:1px solid #d9e2f2;border-radius:10px;background:#fff;color:#1f2937;font:inherit;line-height:1.45;outline:none}
|
||||
#page-booking-detail .booking-unified-field input:focus,#page-booking-detail .booking-unified-field select:focus,#page-booking-detail .booking-unified-field textarea:focus,#page-booking-detail .booking-party-card input:focus,#page-booking-detail .booking-party-card textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.1)}
|
||||
#page-booking-detail .booking-unified-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
|
||||
#page-booking-detail .booking-unified-table-scroll>table{min-width:760px}
|
||||
@media(max-width:1023px){#page-booking-detail .booking-party-grid,#page-booking-detail .booking-unified-field-grid{grid-template-columns:1fr}}
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 运行 CSS GREEN 断言**
|
||||
|
||||
Expected: `MBL_HBL_CSS_OK`; assert all new selectors begin with `#page-booking-detail` and the marker occurs exactly once.
|
||||
|
||||
### Task 3: 为 MB/L、HB/L 标记统一分区和主体字段
|
||||
|
||||
**Files:**
|
||||
- Modify: same HTML file, markup inside `#booking-tab-mbl` and `#booking-tab-hbl` only.
|
||||
|
||||
- [ ] **Step 1: 标记 MB/L 分区**
|
||||
|
||||
Add these classes without changing descendants or values:
|
||||
|
||||
```html
|
||||
<section class="booking-unified-section">
|
||||
<div class="booking-unified-section-head"><h3>收发通信息</h3><button>明细格式</button></div>
|
||||
<div class="booking-unified-section-body"><div class="booking-party-grid"></div></div>
|
||||
</section>
|
||||
<section class="booking-unified-section">
|
||||
<div class="booking-unified-section-head"><h3>货物信息</h3></div>
|
||||
<div class="booking-unified-section-body booking-unified-field-grid"></div>
|
||||
</section>
|
||||
<section class="booking-unified-section">
|
||||
<div class="booking-unified-section-head"><h3>装箱信息</h3></div>
|
||||
<div class="booking-unified-section-body"></div>
|
||||
</section>
|
||||
```
|
||||
|
||||
Populate the three empty bodies by moving the current MB/L nodes verbatim: three party groups into `.booking-party-grid`, each ordinary cargo field into `.booking-unified-field`, and both existing table wrappers into `.booking-unified-table-scroll`.
|
||||
|
||||
- [ ] **Step 2: 标记 HB/L 分区**
|
||||
|
||||
Wrap the existing HB/L columns in four `.booking-unified-section` blocks titled `收发通信息`、`货物信息`、`运输信息`、`其他信息`; use `.booking-party-grid` for the first block and `.booking-unified-field-grid` for the remaining ordinary fields. Keep all textarea content, disabled inputs, option lists and action buttons unchanged.
|
||||
|
||||
- [ ] **Step 3: 运行结构断言**
|
||||
|
||||
```powershell
|
||||
$mbl=$html.Substring($html.IndexOf('id="booking-tab-mbl"'),$html.IndexOf('<!-- HB/L Tab -->')-$html.IndexOf('id="booking-tab-mbl"'))
|
||||
$hbl=$html.Substring($html.IndexOf('id="booking-tab-hbl"'),$html.IndexOf('<!-- ==================== CONTAINER LIST')-$html.IndexOf('id="booking-tab-hbl"'))
|
||||
foreach($scope in @($mbl,$hbl)){if(-not $scope.Contains('booking-unified-section')){throw 'Unified section missing.'}}
|
||||
foreach($label in @('发货人','收货人','通知人')){if(-not $html.Contains($label)){throw "Party label missing: $label"}}
|
||||
'MBL_HBL_STRUCTURE_OK'
|
||||
```
|
||||
|
||||
### Task 4: 浏览器视觉与响应式验证
|
||||
|
||||
**Files:**
|
||||
- Verify: same HTML file.
|
||||
- Artifacts: `悦(0805)\悦\货代SAAS平台后台\output\playwright\mbl-hbl-unified-*.png`
|
||||
|
||||
- [ ] **Step 1: 在 1440×900 检查 MB/L**
|
||||
|
||||
进入新增订舱,点击 MB/L,确认三类主体字段使用统一圆角输入框,分区标题与订舱页一致,装箱表仅在自身容器滚动;截图 `mbl-unified-1440x900.png`。
|
||||
|
||||
- [ ] **Step 2: 在 1440×900 检查 HB/L**
|
||||
|
||||
点击 HB/L,确认四个分区、textarea、下拉框和禁用字段均沿用统一间距与焦点样式;截图 `hbl-unified-1440x900.png`。
|
||||
|
||||
- [ ] **Step 3: 在 780×900 检查响应式**
|
||||
|
||||
确认 MB/L、HB/L 主体栅格变为单列、操作按钮可换行、`document.documentElement.scrollWidth === document.documentElement.clientWidth`;截图 `mbl-hbl-unified-780x900.png`。
|
||||
|
||||
- [ ] **Step 4: 检查控制台**
|
||||
|
||||
确认没有由本次改动产生的 JavaScript error;忽略仅由本地预览 favicon 缺失导致的 404。
|
||||
|
||||
### Task 5: 最终静态验证
|
||||
|
||||
**Files:**
|
||||
- Verify: `C:\Users\BY\Desktop\产品文档\柏悦(liujun)\悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
|
||||
- [ ] **Step 1: 运行最终断言**
|
||||
|
||||
```powershell
|
||||
$html=Get-Content -Raw -LiteralPath $p
|
||||
if(([regex]::Matches($html,'/\* ===== MB/L、HB/L 统一表单样式 ===== \*/')).Count -ne 1){throw 'Style marker count invalid.'}
|
||||
foreach($required in @('booking-unified-section','booking-party-grid','booking-unified-field','booking-unified-table-scroll')){if(-not $html.Contains($required)){throw "Missing feature: $required"}}
|
||||
if($html.Contains('起运港POU') -or $html.Contains('卸货港POL')){throw 'Old port labels resurfaced.'}
|
||||
'FINAL_MBL_HBL_UNIFIED_OK'
|
||||
```
|
||||
|
||||
Expected: `FINAL_MBL_HBL_UNIFIED_OK`.
|
||||
|
||||
No commit step is included because this workspace is not a Git repository.
|
||||
@@ -0,0 +1,168 @@
|
||||
# 订舱列表单据打印 Implementation Plan
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** 在 0805 订舱列表中增加动态单据选择、A4 预览及出口货物托运单/提单确认件打印能力。
|
||||
|
||||
**Architecture:** 保持现有单文件原型结构,在订舱列表行上增加稳定业务 ID,并用前端数据对象补齐打印字段。选择弹窗只管理单据类型,预览弹窗通过纯函数生成两套 HTML 模板;打印媒体只显示当前 A4 根节点。
|
||||
|
||||
**Tech Stack:** HTML5、CSS3、原生 JavaScript、浏览器 `window.print()`、Playwright CLI、Node.js 静态断言
|
||||
|
||||
---
|
||||
|
||||
### Task 1: 建立列表打印入口与选择弹窗
|
||||
|
||||
**Files:**
|
||||
- Modify: `货代SaaS平台原型.html:591-635`
|
||||
- Modify: `货代SaaS平台原型.html:5945-6097`
|
||||
|
||||
- [ ] **Step 1: 运行失败的静态断言**
|
||||
|
||||
运行 Node.js 断言,要求订舱列表四条数据行均包含 `data-booking-id` 和 `openBookingPrint`,并存在 `modal-booking-print-select`。当前应以 `PRINT_ENTRY_RED` 失败。
|
||||
|
||||
```powershell
|
||||
@'
|
||||
const fs=require('fs');
|
||||
const s=fs.readFileSync('货代SaaS平台原型.html','utf8');
|
||||
const list=s.slice(s.indexOf('id="page-booking-list"'),s.indexOf('id="page-truck-list"'));
|
||||
const rows=(list.match(/data-booking-id=/g)||[]).length;
|
||||
const buttons=(list.match(/openBookingPrint\(/g)||[]).length;
|
||||
if(rows!==4||buttons!==4||!s.includes('id="modal-booking-print-select"')){
|
||||
console.error(`PRINT_ENTRY_RED rows=${rows} buttons=${buttons}`);process.exit(1);
|
||||
}
|
||||
'@ | node -
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 增加操作列入口**
|
||||
|
||||
给四条订舱行分别添加 `data-booking-id="BYSE2607044"`、`BYSE2607005`、`BYSE2607006`、`BYSE2607007`,并在“编辑”后增加:
|
||||
|
||||
```html
|
||||
<a href="javascript:void(0)" class="booking-print-link"
|
||||
onclick="event.stopPropagation();openBookingPrint(this.closest('tr').dataset.bookingId)">打印</a>
|
||||
```
|
||||
|
||||
操作列宽度调整为 210px,并为三个文字操作使用统一间距。
|
||||
|
||||
- [ ] **Step 3: 增加类型选择弹窗**
|
||||
|
||||
在订舱列表页之后增加 `modal-booking-print-select`,包含业务编号、两个同名为 `booking-print-type` 的 radio、取消和预览按钮。预览按钮调用 `openBookingPrintPreview()`。
|
||||
|
||||
- [ ] **Step 4: 运行静态断言确认通过**
|
||||
|
||||
重复 Step 1,预期退出码 0,输出中 `rows=4`、`buttons=4`。
|
||||
|
||||
### Task 2: 建立动态打印数据与模板渲染
|
||||
|
||||
**Files:**
|
||||
- Modify: `货代SaaS平台原型.html:18047-18088`
|
||||
|
||||
- [ ] **Step 1: 运行失败的数据与模板断言**
|
||||
|
||||
```powershell
|
||||
@'
|
||||
const fs=require('fs');
|
||||
const s=fs.readFileSync('货代SaaS平台原型.html','utf8');
|
||||
for(const token of ['const bookingPrintData','renderShippingInstruction','renderBillConfirmation','escapePrintHtml']){
|
||||
if(!s.includes(token)){console.error('PRINT_TEMPLATE_RED '+token);process.exit(1)}
|
||||
}
|
||||
'@ | node -
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 定义四条打印数据**
|
||||
|
||||
新增 `bookingPrintData` 对象,键与 `data-booking-id` 一致。每条记录包含 `jobNo/customer/shipper/consignee/notify/pic/tel/documentNo/etd/cutoff/vessel/voyage/pol/pod/delivery/serviceTerm/freightTerm/carrier/bookingAgent/marks/packages/packageType/goods/grossWeight/measurement/container/hsCode/packageWords/blNo/onBoardDate/placeOfIssue/remark/printDate`。
|
||||
|
||||
第一条记录完整复刻附件 BYSE2607044 的业务数据;其余三条结合列表中的客户、港口、船名、航次、箱型与日期生成对应记录,确保切换记录时关键字段不同。
|
||||
|
||||
- [ ] **Step 3: 定义安全渲染和模板函数**
|
||||
|
||||
```javascript
|
||||
function escapePrintHtml(value){
|
||||
return String(value == null ? '' : value)
|
||||
.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')
|
||||
.replace(/"/g,'"').replace(/'/g,''');
|
||||
}
|
||||
function printText(value){return escapePrintHtml(value).replace(/\n/g,'<br>');}
|
||||
```
|
||||
|
||||
`renderShippingInstruction(data)` 返回带 `.shipping-instruction-sheet` 的 A4 表格模板;`renderBillConfirmation(data)` 返回带 `.bill-confirmation-sheet` 的 A4 无边框模板。所有动态值必须经过 `escapePrintHtml` 或 `printText`。
|
||||
|
||||
- [ ] **Step 4: 实现弹窗状态与预览切换**
|
||||
|
||||
新增 `currentBookingPrintId`、`openBookingPrint(id)`、`openBookingPrintPreview()`、`backToBookingPrintSelect()`、`closeBookingPrintDialogs()` 和 `printBookingDocument()`。
|
||||
|
||||
`openBookingPrintPreview()` 验证单选值和数据记录,将模板写入 `#booking-print-sheet`,更新标题,关闭选择弹窗并打开预览弹窗。无选项时调用 `showToast('请选择打印单据类型','warning')`;无记录时调用 `showToast('未找到该订舱记录','error')`。
|
||||
|
||||
- [ ] **Step 5: 运行数据与模板断言确认通过**
|
||||
|
||||
重复 Step 1,预期退出码 0。
|
||||
|
||||
### Task 3: 完成 A4 预览与打印媒体样式
|
||||
|
||||
**Files:**
|
||||
- Modify: `货代SaaS平台原型.html:591-635`
|
||||
- Modify: `货代SaaS平台原型.html` 订舱打印弹窗区域
|
||||
|
||||
- [ ] **Step 1: 增加预览弹窗结构**
|
||||
|
||||
新增 `modal-booking-print-preview`,工具栏包含标题、“返回”“打印”和关闭按钮;滚动容器内包含唯一的 `#booking-print-sheet`。
|
||||
|
||||
- [ ] **Step 2: 增加选择卡片与预览布局样式**
|
||||
|
||||
选择弹窗最大宽度 480px,radio 卡片具有 hover、checked 和 focus-visible 状态。预览弹窗宽度 `min(1100px,96vw)`,内容区使用浅灰背景,A4 纸张尺寸为 `210mm × 297mm`,并在窄屏下通过容器缩放展示。
|
||||
|
||||
- [ ] **Step 3: 增加两套单据样式**
|
||||
|
||||
托运单使用紧凑线框表格、宋体/Times New Roman 字体和 10-12px 打印字号;提单确认件使用无边框分区、顶部标题、右侧摘要、DRAFT 标识和底部备注区。两套模板均限制内容在一张 A4 内。
|
||||
|
||||
- [ ] **Step 4: 增加打印媒体规则**
|
||||
|
||||
```css
|
||||
@media print{
|
||||
@page{size:A4 portrait;margin:0}
|
||||
body *{visibility:hidden!important}
|
||||
#booking-print-sheet,#booking-print-sheet *{visibility:visible!important}
|
||||
#booking-print-sheet{position:absolute;left:0;top:0;width:210mm!important;min-height:297mm!important;box-shadow:none!important;margin:0!important}
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] **Step 5: 运行 Impeccable 布局检测**
|
||||
|
||||
```powershell
|
||||
node C:\Users\BY\.codex\skills\impeccable\scripts\detect.mjs --json --scope layout "货代SaaS平台原型.html"
|
||||
```
|
||||
|
||||
预期输出 `[]`。
|
||||
|
||||
### Task 4: 浏览器交互、动态数据和响应式验证
|
||||
|
||||
**Files:**
|
||||
- Verify: `货代SaaS平台原型.html`
|
||||
|
||||
- [ ] **Step 1: 在 1280×900 打开订舱列表**
|
||||
|
||||
使用本地 HTTP 服务与 Playwright CLI 打开页面,进入“服务中心 > 订舱列表”。确认操作列显示“查看、编辑、打印”。
|
||||
|
||||
- [ ] **Step 2: 验证选择与错误状态**
|
||||
|
||||
点击第一行“打印”,确认弹窗业务编号为 `BYSE2607044`;未选择时点击“预览”,弹窗保持打开并出现选择提示。
|
||||
|
||||
- [ ] **Step 3: 验证两套模板与动态字段**
|
||||
|
||||
依次预览“出口货物托运单”和“提单确认件”,确认标题、业务编号、客户、港口和货物字段正确。关闭后点击另一条记录打印,确认预览中的业务编号与港口随记录变化。
|
||||
|
||||
- [ ] **Step 4: 验证打印媒体**
|
||||
|
||||
通过 Playwright `page.emulateMedia({media:'print'})` 检查 `#booking-print-sheet` 可见,导航、列表、预览工具栏不可见;确认纸张宽度为 A4 对应尺寸。
|
||||
|
||||
- [ ] **Step 5: 验证 780×900 响应式布局**
|
||||
|
||||
确认选择弹窗、预览弹窗和页面不存在水平滚动:`document.documentElement.scrollWidth === document.documentElement.clientWidth`。
|
||||
|
||||
- [ ] **Step 6: 运行最终静态断言**
|
||||
|
||||
一次性检查四个打印入口、两个 radio、两个模板函数、四条数据和 `@media print` 均存在,预期退出码 0。
|
||||
|
||||
> 当前工作目录不是 Git 仓库,不执行提交步骤;每个任务以对应断言和浏览器证据作为检查点。
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
# 柏悦物流后台 0805 栏目架构图设计
|
||||
|
||||
## 目标
|
||||
|
||||
以 `悦(0805)/悦/货代SAAS平台后台/货代SaaS平台原型.html` 的左侧导航为唯一栏目依据,生成独立的 0805 版栏目架构图,供产品、运营和管理人员日常查看、搜索与核对,同时完整保留 0804 历史版本。
|
||||
|
||||
## 交付文件
|
||||
|
||||
- `柏悦物流后台栏目架构图(0805原型).html`:离线可打开的交互式全景图。
|
||||
- `柏悦物流后台栏目架构图(0805原型).md`:Mermaid 架构图、完整栏目清单、统计和整理规则。
|
||||
|
||||
两个文件均新增在 0805 原型所在目录,不覆盖或移动 0804 文件。
|
||||
|
||||
## 栏目口径
|
||||
|
||||
栏目顺序、名称和层级严格跟随 0805 原型左侧导航:
|
||||
|
||||
1. 首页数据看板
|
||||
2. 客户管理
|
||||
3. 国内仓
|
||||
4. 海外仓
|
||||
5. 海外派送
|
||||
6. 服务中心
|
||||
7. 供应商中心
|
||||
8. 货柜管理
|
||||
9. 海外业务
|
||||
10. 财务管理
|
||||
11. 销售管理
|
||||
12. 通用
|
||||
13. 系统管理
|
||||
|
||||
相较 0804 版,国内仓中的“入库单列表”“入库单测量”分别改为“订单列表”“订单测量”;“海外仓库存”改为“海外仓”并移至国内仓之后;供应商中心新增“海运渠道”;财务管理新增“客户账户”。最终统计为 13 个一级栏目、49 个二级栏目和 50 个左侧导航入口。
|
||||
|
||||
## HTML 展示设计
|
||||
|
||||
0805 HTML 继承现有 0804 日常查看工具的视觉系统和交互能力,包括搜索、清空、展开/收起、聚焦、缩放、拖动、视图复位、主题切换、键盘操作和响应式布局。页面标题、版本标记、数据源说明、菜单数据和统计改为 0805 口径,不引入新的业务栏目或编辑能力。
|
||||
|
||||
界面继续采用“物流控制台全景”视觉方向:深色页首、冷白点阵画布、物流青交互状态和铜橙搜索命中。布局和控件规格保持稳定,避免版本升级造成不必要的使用习惯变化。
|
||||
|
||||
## Markdown 文档设计
|
||||
|
||||
Markdown 同步更新标题、整理日期、原型来源、Mermaid 节点顺序、栏目清单和统计。全局入口仍不计入左侧栏目;新增、编辑、详情、审核和流程页不自动升级为导航栏目。原型页面容器与未挂载路由数量通过脚本重新计算后写入,不沿用 0804 数值。
|
||||
|
||||
## 验证标准
|
||||
|
||||
- HTML 与 Markdown 的一级、二级栏目顺序和名称均与 0805 原型一致。
|
||||
- 两份架构图均显示 13 个一级栏目、49 个二级栏目和 50 个导航入口。
|
||||
- HTML 可离线打开,原有搜索、展开、主题、缩放、键盘和移动端行为继续工作。
|
||||
- 在真实浏览器桌面与移动端视口中无内容溢出、遮挡或控制台错误。
|
||||
- 0804 原型和两份 0804 架构图保持不变。
|
||||
|
||||
## 范围边界
|
||||
|
||||
本次只新增 0805 栏目架构图及其必要验证,不修改 0805 原型页面功能,不把未挂载路由纳入正式栏目,也不合并或删除任何历史版本文件。
|
||||
@@ -0,0 +1,53 @@
|
||||
# 0805 新增订舱页合并与美化设计说明
|
||||
|
||||
## 目标
|
||||
|
||||
只修改 0805 本地后台原型。在“新增订舱”详情页隐藏“基本”页签,将基本页中的业务信息、运输条款、箱型箱量合并到“订舱”页,并在不改变字段含义的前提下优化排版与视觉层级。
|
||||
|
||||
## 范围
|
||||
|
||||
- 修改文件:`悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
- 仅影响订舱列表进入的新增订舱详情页;其他版本、其他页面和后台导航保持不变。
|
||||
- 保留现有 MB/L、HB/L 页签及其专属字段。
|
||||
- 不新增后端接口,不改变示例数据,不引入外部依赖。
|
||||
|
||||
## 页面结构
|
||||
|
||||
新增订舱页面调整为:
|
||||
|
||||
1. 页面面包屑和顶部操作栏:复制、退关、打印;右侧主操作区增加保存、取消。
|
||||
2. 页签栏仅保留:订舱、MB/L、HB/L;基本页签不显示、不再作为入口。
|
||||
3. 订舱页按顺序显示三个卡片区块:
|
||||
- 业务信息:托运/收货信息、船期信息、港口与类型、代理与联系方式。
|
||||
- 运输条款:主要运输条款、分票运输条款、运费条款、拼关行、托车公司。
|
||||
- 箱型箱量:船名/航次汇总、箱型箱种数量表、添加箱型操作。
|
||||
4. MB/L 和 HB/L 页签继续承载原有内容,不复制订舱页的业务、运输或箱量字段。
|
||||
|
||||
## 去重规则
|
||||
|
||||
- 船名、航次只保留业务信息中的一组;箱型箱量区的船名/航次改为只读摘要或移除重复输入。
|
||||
- 起运港和目的港只保留业务信息中的一组,统一标签为 `起运港 POL`、`卸货港 POD`。
|
||||
- 主要运输条款只保留一组;运费支付方式、地点等字段沿用订舱页原有含义,不重复出现。
|
||||
- 业务编号保留系统自动生成字段,不再在多个页签重复展示。
|
||||
|
||||
## 视觉与交互
|
||||
|
||||
- 延续 0805 后台现有白底、浅灰边框、蓝色主按钮和 12px/13px 表单文字体系。
|
||||
- 三个区块使用统一卡片边框、圆角、标题间距和字段间距;桌面端采用业务信息较宽、其余两列等宽的三列布局。
|
||||
- 视口宽度不足时自动变为两列,再变为单列;箱量表只允许在自身容器内横向滚动,页面不产生整体横向滚动。
|
||||
- “基本”页签及其点击初始化逻辑移除,进入新增订舱后默认显示合并后的订舱页。
|
||||
- 原有复制、退关、打印按钮保留并统一按钮风格;保存使用主按钮样式,取消使用次按钮样式。
|
||||
- 保存按钮沿用原型现有保存成功提示并返回订舱列表;取消按钮直接返回订舱列表且不保存当前输入。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- 新增订舱页中不存在可见的“基本”页签或基本页签切换逻辑。
|
||||
- 订舱页一次可见业务信息、运输条款和箱型箱量三个区块,字段顺序清晰且无重复输入。
|
||||
- MB/L、HB/L 页签仍可切换,原内容未被删除或错位。
|
||||
- 1440px 和 780px 宽度下布局无页面级横向溢出;箱量表在局部容器滚动。
|
||||
- 现有导航、列表、复制、退关、打印行为不受影响;保存和取消按钮可见且可用。
|
||||
|
||||
## 不在本次范围
|
||||
|
||||
- 不修改 Logo、公司名称、数据看板主题或其他版本。
|
||||
- 不重写订舱业务流程,不增加保存接口或真实数据校验。
|
||||
@@ -0,0 +1,44 @@
|
||||
# 0805 MB/L、HB/L 与订舱页统一表单设计说明
|
||||
|
||||
## 目标
|
||||
|
||||
在已完成的 0805 新增订舱页合并基础上,将 MB/L、HB/L 两个页签的整页表单视觉统一到订舱页:同样的白色分区卡片、字段标签、输入框、间距、按钮和响应式栅格。保留所有现有字段、示例值和操作,不改变业务语义。
|
||||
|
||||
## 范围
|
||||
|
||||
- 只修改:`悦(0805)\悦\货代SAAS平台后台\货代SaaS平台原型.html`
|
||||
- 只作用于 `#booking-tab-mbl`、`#booking-tab-hbl` 及其内部表单样式。
|
||||
- 订舱页已存在的布局和功能保持不变;其他版本、其他页面和全局导航不变。
|
||||
|
||||
## 统一视觉规则
|
||||
|
||||
- 页面容器:白色背景、浅灰 `#e8edf3` 边框、12px 圆角和轻微阴影,与订舱页 `booking-create-form` 同级。
|
||||
- 分区:使用统一的标题栏和内容内边距;分区标题为 14px、700 字重、深灰文字,标题下保留细分隔线。
|
||||
- 字段:标签置于输入框上方,保持 12–13px 字号和 6px 左右间距;输入框统一高度、内边距、圆角和浅蓝灰边框,焦点使用订舱页相同的蓝色环。
|
||||
- 操作按钮:清除、明细格式、抄录收货人等按钮使用现有后台次按钮/浅蓝按钮语义,不改变文字或点击行为。
|
||||
|
||||
## MB/L 结构
|
||||
|
||||
1. 收发通信息:发货人、收货人、通知人及现有清除/抄录操作,保留多行地址输入内容;桌面端两列排布,单组跨列时保持完整宽度。
|
||||
2. 货物信息:原有货物字段按统一 `bk-field` 栅格排列。
|
||||
3. 装箱信息:货量描述、装箱表和表格操作放在独立分区;表格仅在自身滚动容器中横向滚动。
|
||||
|
||||
## HB/L 结构
|
||||
|
||||
1. 收发通信息:发货人、收货人、通知人及代理信息 textarea/操作按钮,保留多行内容;桌面端两列,小屏单列。
|
||||
2. 货物信息:件数、重量、体积、货物描述等现有字段沿用统一栅格。
|
||||
3. 运输信息:HB/L NO.、SO NO.、分单流水号、船名、航次、日期和提单相关字段统一排版。
|
||||
4. 其他信息:签单备注、代理提单、SCAC、联系电话、港口要求等字段保持现有顺序,统一输入样式。
|
||||
|
||||
## 响应式与验收
|
||||
|
||||
- 1440px:MB/L、HB/L 主表单采用两列或四列合理栅格,字段对齐且不产生页面级横向滚动。
|
||||
- 1023px 以下:各分区收敛为两列;767px 以下:收发通信息和其他字段收敛为单列,操作按钮可换行。
|
||||
- 长表格只允许 `.booking-unified-table-scroll` 自身横向滚动。
|
||||
- MB/L、HB/L 中发货人、收货人、通知人仍可编辑,已有清除/抄录按钮仍可见。
|
||||
- 订舱页的三个区块、保存/取消、页签切换和示例数据不受影响。
|
||||
|
||||
## 不在范围内
|
||||
|
||||
- 不删除字段、不改字段值、不改变页签切换逻辑。
|
||||
- 不新增后端接口、校验规则或外部资源。
|
||||
@@ -0,0 +1,73 @@
|
||||
# 订舱列表单据打印设计
|
||||
|
||||
## 目标与范围
|
||||
|
||||
仅修改 0805 本地版本的 `货代SaaS平台原型.html`。在订舱列表每条记录的操作列增加“打印”,支持动态生成并预览以下两种 A4 单据:
|
||||
|
||||
- 出口货物托运单
|
||||
- 提单确认件
|
||||
|
||||
打印版式分别参考 `海运货物托运书_BYSE2607044.pdf` 和 `提单确认件_BYSE2607044.pdf`。不修改其他版本,不增加后端服务,也不改变现有“查看”“编辑”和行点击行为。
|
||||
|
||||
## 交互流程
|
||||
|
||||
1. 用户点击某条订舱记录操作列中的“打印”。按钮阻止事件冒泡,不进入订舱明细页。
|
||||
2. 页面打开“选择打印单据”弹窗,显示当前业务编号,并以单选项提供两种单据类型。
|
||||
3. 用户选择单据后点击“预览”。未选择时保持弹窗并提示选择单据类型。
|
||||
4. 页面打开 A4 预览弹窗。预览工具栏显示单据名称,并提供“返回”“打印”和关闭按钮。
|
||||
5. 点击“打印”调用浏览器打印能力。打印媒体下只输出当前 A4 单据,隐藏后台导航、列表、弹窗遮罩和预览工具栏。
|
||||
6. 返回时回到类型选择弹窗;关闭时清除本次选择和当前订舱记录。
|
||||
|
||||
## 页面结构
|
||||
|
||||
### 订舱列表操作列
|
||||
|
||||
操作列按“查看、编辑、打印”排列,保持现有蓝色文字操作风格,并适当扩充列宽,避免换行。
|
||||
|
||||
### 类型选择弹窗
|
||||
|
||||
弹窗使用现有后台白色弹窗样式,宽度约 480px。两种单据以单选卡片呈现,包含单据名称与 A4 说明;底部为“取消”和“预览”。默认不自动选择,避免误打印。
|
||||
|
||||
### A4 预览弹窗
|
||||
|
||||
预览弹窗使用浅色背景和可滚动内容区,内部居中显示白色 A4 纸张。桌面端按 A4 比例展示,窄屏按容器宽度缩放,不产生页面级横向溢出。
|
||||
|
||||
## 数据模型与映射
|
||||
|
||||
为四条现有订舱记录建立完整的前端打印数据对象,并通过稳定的 `data-booking-id` 与列表行关联。字段包括:
|
||||
|
||||
- 业务信息:业务编号、委托单位、联系人、电话、制单日期
|
||||
- 收发通信息:发货人、收货人、通知人
|
||||
- 船期信息:船名、航次、起运港、卸货港、交货地、开航日期、截单日期
|
||||
- 条款信息:运输条款、运费条款、船公司、订舱代理
|
||||
- 货物信息:唛头、件数、包装、品名、毛重、体积、箱型箱量、件数大写、HS 编号
|
||||
- 提单信息:提单号、装船日期、签发地点、备注
|
||||
|
||||
列表可直接提供的字段使用对应行数据;列表未展示的字段使用该记录在前端打印数据对象中的明细值。模板渲染统一经过文本转义函数,空值显示为空白,不显示 `undefined` 或 `null`。
|
||||
|
||||
## 打印模板
|
||||
|
||||
### 出口货物托运单
|
||||
|
||||
按附件的 A4 纵向表格结构实现:顶部英文标题与收件方、左侧收发通信息、右侧委托方和业务信息、中部船期与运输条款、货物明细表、件数大写、备注、船公司和订舱代理。线框、字号、间距和字段分区接近附件版式。
|
||||
|
||||
### 提单确认件
|
||||
|
||||
按附件的 A4 纵向无边框版式实现:顶部居中标题,收发通信息与右侧提单摘要,中部船期、港口和货物信息,下部装船信息、DRAFT 标识、箱封摘要、确认备注及签发信息。英文内容使用适合单据的衬线字体,中文使用系统宋体族。
|
||||
|
||||
## 状态与异常处理
|
||||
|
||||
- 打开选择弹窗时记录当前订舱 ID。
|
||||
- 未选择单据类型时显示页面提示,不进入预览。
|
||||
- 找不到订舱数据时关闭弹窗并显示“未找到该订舱记录”。
|
||||
- 打印期间使用独立的打印根节点,打印完成后保留预览,方便再次打印或返回。
|
||||
- `Escape` 和关闭按钮均可退出当前弹窗;弹窗按钮具有明确焦点样式。
|
||||
|
||||
## 验证
|
||||
|
||||
- 静态断言:四条列表记录均有且仅有一个打印入口;两种模板与数据映射函数存在。
|
||||
- 交互验证:打印按钮不触发行跳转;未选择类型不能预览;两种类型都能进入正确预览。
|
||||
- 数据验证:切换不同列表行时,业务编号、客户、港口和船期随记录变化。
|
||||
- 打印验证:打印媒体仅显示一张 A4 单据,页面列表与工具栏不输出。
|
||||
- 响应式验证:1280px 和 780px 下弹窗无重叠、无页面级横向溢出。
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 123 KiB |
+821
-374
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user