Commit c3a3eedbf338c2d01d110ccc0c5fe4ab39cca116

Authored by 2c2c2c
1 parent 793dde09

更新

Too many changes to show.

To preserve performance only 13 of 15 files are displayed.

.idea/.gitignore 0 → 100644
  1 +# 默认忽略的文件
  2 +/shelf/
  3 +/workspace.xml
  4 +# 基于编辑器的 HTTP 客户端请求
  5 +/httpRequests/
  6 +# Datasource local storage ignored files
  7 +/dataSources/
  8 +/dataSources.local.xml
... ...
.idea/garbage-removal.iml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module type="JAVA_MODULE" version="4">
  3 + <component name="NewModuleRootManager" inherit-compiler-output="true">
  4 + <exclude-output />
  5 + <content url="file://$MODULE_DIR$" />
  6 + <orderEntry type="inheritedJdk" />
  7 + <orderEntry type="sourceFolder" forTests="false" />
  8 + </component>
  9 +</module>
0 10 \ No newline at end of file
... ...
.idea/misc.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="zulu-1.8" project-jdk-type="JavaSDK">
  4 + <output url="file://$PROJECT_DIR$/out" />
  5 + </component>
  6 +</project>
0 7 \ No newline at end of file
... ...
.idea/modules.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectModuleManager">
  4 + <modules>
  5 + <module fileurl="file://$PROJECT_DIR$/.idea/garbage-removal.iml" filepath="$PROJECT_DIR$/.idea/garbage-removal.iml" />
  6 + </modules>
  7 + </component>
  8 +</project>
0 9 \ No newline at end of file
... ...
.idea/vcs.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="VcsDirectoryMappings">
  4 + <mapping directory="" vcs="Git" />
  5 + </component>
  6 +</project>
0 7 \ No newline at end of file
... ...
garbage-removal/.env.dev
1   -VITE_BASE_URL=http://localhost:8080/workflow
  1 +VITE_BASE_URL=http://127.0.0.1:8080/workflow
2 2  
3   -VITE_STOMP_URL=http://localhost:8080/ws
  3 +VITE_STOMP_URL=http://127.0.0.1:8080/ws
... ...
garbage-removal/.env.local
1   -VITE_BASE_URL=http://localhost:8080/workflow
  1 +VITE_BASE_URL=http://127.0.0.1:8080/workflow
2 2 VITE_BASE_FILE_UPLOAD_PREFIX=/order/upload
3   -VITE_STOMP_URL=http://localhost:8080/ws
  3 +VITE_STOMP_URL=http://127.0.0.1:8080/ws
... ...
garbage-removal/package-lock.json
... ... @@ -22,6 +22,7 @@
22 22 "@dcloudio/uni-mp-weixin": "3.0.0-3090620231104002",
23 23 "@dcloudio/uni-mp-xhs": "3.0.0-3090620231104002",
24 24 "@dcloudio/uni-quickapp-webview": "3.0.0-3090620231104002",
  25 + "axios": "^0.27.2",
25 26 "clipboard": "^2.0.11",
26 27 "dayjs": "^1.11.10",
27 28 "js-md5": "^0.8.3",
... ... @@ -4592,9 +4593,7 @@
4592 4593 "node_modules/asynckit": {
4593 4594 "version": "0.4.0",
4594 4595 "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
4595   - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
4596   - "dev": true,
4597   - "peer": true
  4596 + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
4598 4597 },
4599 4598 "node_modules/autoprefixer": {
4600 4599 "version": "10.4.16",
... ... @@ -4633,6 +4632,29 @@
4633 4632 "postcss": "^8.1.0"
4634 4633 }
4635 4634 },
  4635 + "node_modules/axios": {
  4636 + "version": "0.27.2",
  4637 + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz",
  4638 + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
  4639 + "dependencies": {
  4640 + "follow-redirects": "^1.14.9",
  4641 + "form-data": "^4.0.0"
  4642 + }
  4643 + },
  4644 + "node_modules/axios/node_modules/form-data": {
  4645 + "version": "4.0.2",
  4646 + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
  4647 + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
  4648 + "dependencies": {
  4649 + "asynckit": "^0.4.0",
  4650 + "combined-stream": "^1.0.8",
  4651 + "es-set-tostringtag": "^2.1.0",
  4652 + "mime-types": "^2.1.12"
  4653 + },
  4654 + "engines": {
  4655 + "node": ">= 6"
  4656 + }
  4657 + },
4636 4658 "node_modules/babel-jest": {
4637 4659 "version": "27.5.1",
4638 4660 "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz",
... ... @@ -5081,6 +5103,18 @@
5081 5103 "url": "https://github.com/sponsors/ljharb"
5082 5104 }
5083 5105 },
  5106 + "node_modules/call-bind-apply-helpers": {
  5107 + "version": "1.0.2",
  5108 + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  5109 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
  5110 + "dependencies": {
  5111 + "es-errors": "^1.3.0",
  5112 + "function-bind": "^1.1.2"
  5113 + },
  5114 + "engines": {
  5115 + "node": ">= 0.4"
  5116 + }
  5117 + },
5084 5118 "node_modules/callsites": {
5085 5119 "version": "3.1.0",
5086 5120 "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
... ... @@ -5246,8 +5280,6 @@
5246 5280 "version": "1.0.8",
5247 5281 "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
5248 5282 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
5249   - "dev": true,
5250   - "peer": true,
5251 5283 "dependencies": {
5252 5284 "delayed-stream": "~1.0.0"
5253 5285 },
... ... @@ -5553,8 +5585,6 @@
5553 5585 "version": "1.0.0",
5554 5586 "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
5555 5587 "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
5556   - "dev": true,
5557   - "peer": true,
5558 5588 "engines": {
5559 5589 "node": ">=0.4.0"
5560 5590 }
... ... @@ -5635,6 +5665,19 @@
5635 5665 "node": ">=8"
5636 5666 }
5637 5667 },
  5668 + "node_modules/dunder-proto": {
  5669 + "version": "1.0.1",
  5670 + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
  5671 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  5672 + "dependencies": {
  5673 + "call-bind-apply-helpers": "^1.0.1",
  5674 + "es-errors": "^1.3.0",
  5675 + "gopd": "^1.2.0"
  5676 + },
  5677 + "engines": {
  5678 + "node": ">= 0.4"
  5679 + }
  5680 + },
5638 5681 "node_modules/ee-first": {
5639 5682 "version": "1.1.1",
5640 5683 "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
... ... @@ -5698,12 +5741,53 @@
5698 5741 "is-arrayish": "^0.2.1"
5699 5742 }
5700 5743 },
  5744 + "node_modules/es-define-property": {
  5745 + "version": "1.0.1",
  5746 + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
  5747 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  5748 + "engines": {
  5749 + "node": ">= 0.4"
  5750 + }
  5751 + },
  5752 + "node_modules/es-errors": {
  5753 + "version": "1.3.0",
  5754 + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
  5755 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  5756 + "engines": {
  5757 + "node": ">= 0.4"
  5758 + }
  5759 + },
5701 5760 "node_modules/es-module-lexer": {
5702 5761 "version": "1.3.1",
5703 5762 "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
5704 5763 "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
5705 5764 "license": "MIT"
5706 5765 },
  5766 + "node_modules/es-object-atoms": {
  5767 + "version": "1.1.1",
  5768 + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  5769 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  5770 + "dependencies": {
  5771 + "es-errors": "^1.3.0"
  5772 + },
  5773 + "engines": {
  5774 + "node": ">= 0.4"
  5775 + }
  5776 + },
  5777 + "node_modules/es-set-tostringtag": {
  5778 + "version": "2.1.0",
  5779 + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  5780 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  5781 + "dependencies": {
  5782 + "es-errors": "^1.3.0",
  5783 + "get-intrinsic": "^1.2.6",
  5784 + "has-tostringtag": "^1.0.2",
  5785 + "hasown": "^2.0.2"
  5786 + },
  5787 + "engines": {
  5788 + "node": ">= 0.4"
  5789 + }
  5790 + },
5707 5791 "node_modules/esbuild": {
5708 5792 "version": "0.16.17",
5709 5793 "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz",
... ... @@ -6113,6 +6197,25 @@
6113 6197 "node": ">=8"
6114 6198 }
6115 6199 },
  6200 + "node_modules/follow-redirects": {
  6201 + "version": "1.15.9",
  6202 + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
  6203 + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
  6204 + "funding": [
  6205 + {
  6206 + "type": "individual",
  6207 + "url": "https://github.com/sponsors/RubenVerborgh"
  6208 + }
  6209 + ],
  6210 + "engines": {
  6211 + "node": ">=4.0"
  6212 + },
  6213 + "peerDependenciesMeta": {
  6214 + "debug": {
  6215 + "optional": true
  6216 + }
  6217 + }
  6218 + },
6116 6219 "node_modules/form-data": {
6117 6220 "version": "3.0.1",
6118 6221 "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz",
... ... @@ -6233,16 +6336,23 @@
6233 6336 }
6234 6337 },
6235 6338 "node_modules/get-intrinsic": {
6236   - "version": "1.2.2",
6237   - "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
6238   - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
6239   - "dev": true,
6240   - "license": "MIT",
  6339 + "version": "1.3.0",
  6340 + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  6341 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
6241 6342 "dependencies": {
  6343 + "call-bind-apply-helpers": "^1.0.2",
  6344 + "es-define-property": "^1.0.1",
  6345 + "es-errors": "^1.3.0",
  6346 + "es-object-atoms": "^1.1.1",
6242 6347 "function-bind": "^1.1.2",
6243   - "has-proto": "^1.0.1",
6244   - "has-symbols": "^1.0.3",
6245   - "hasown": "^2.0.0"
  6348 + "get-proto": "^1.0.1",
  6349 + "gopd": "^1.2.0",
  6350 + "has-symbols": "^1.1.0",
  6351 + "hasown": "^2.0.2",
  6352 + "math-intrinsics": "^1.1.0"
  6353 + },
  6354 + "engines": {
  6355 + "node": ">= 0.4"
6246 6356 },
6247 6357 "funding": {
6248 6358 "url": "https://github.com/sponsors/ljharb"
... ... @@ -6258,6 +6368,18 @@
6258 6368 "node": ">=8.0.0"
6259 6369 }
6260 6370 },
  6371 + "node_modules/get-proto": {
  6372 + "version": "1.0.1",
  6373 + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
  6374 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  6375 + "dependencies": {
  6376 + "dunder-proto": "^1.0.1",
  6377 + "es-object-atoms": "^1.0.0"
  6378 + },
  6379 + "engines": {
  6380 + "node": ">= 0.4"
  6381 + }
  6382 + },
6261 6383 "node_modules/get-stream": {
6262 6384 "version": "6.0.1",
6263 6385 "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
... ... @@ -6336,13 +6458,11 @@
6336 6458 }
6337 6459 },
6338 6460 "node_modules/gopd": {
6339   - "version": "1.0.1",
6340   - "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
6341   - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
6342   - "dev": true,
6343   - "license": "MIT",
6344   - "dependencies": {
6345   - "get-intrinsic": "^1.1.3"
  6461 + "version": "1.2.0",
  6462 + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
  6463 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  6464 + "engines": {
  6465 + "node": ">= 0.4"
6346 6466 },
6347 6467 "funding": {
6348 6468 "url": "https://github.com/sponsors/ljharb"
... ... @@ -6376,12 +6496,10 @@
6376 6496 "url": "https://github.com/sponsors/ljharb"
6377 6497 }
6378 6498 },
6379   - "node_modules/has-proto": {
6380   - "version": "1.0.1",
6381   - "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz",
6382   - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
6383   - "dev": true,
6384   - "license": "MIT",
  6499 + "node_modules/has-symbols": {
  6500 + "version": "1.1.0",
  6501 + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
  6502 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
6385 6503 "engines": {
6386 6504 "node": ">= 0.4"
6387 6505 },
... ... @@ -6389,12 +6507,13 @@
6389 6507 "url": "https://github.com/sponsors/ljharb"
6390 6508 }
6391 6509 },
6392   - "node_modules/has-symbols": {
6393   - "version": "1.0.3",
6394   - "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
6395   - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
6396   - "dev": true,
6397   - "license": "MIT",
  6510 + "node_modules/has-tostringtag": {
  6511 + "version": "1.0.2",
  6512 + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  6513 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  6514 + "dependencies": {
  6515 + "has-symbols": "^1.0.3"
  6516 + },
6398 6517 "engines": {
6399 6518 "node": ">= 0.4"
6400 6519 },
... ... @@ -6409,10 +6528,9 @@
6409 6528 "license": "MIT"
6410 6529 },
6411 6530 "node_modules/hasown": {
6412   - "version": "2.0.0",
6413   - "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz",
6414   - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
6415   - "license": "MIT",
  6531 + "version": "2.0.2",
  6532 + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
  6533 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
6416 6534 "dependencies": {
6417 6535 "function-bind": "^1.1.2"
6418 6536 },
... ... @@ -8956,6 +9074,14 @@
8956 9074 "tmpl": "1.0.5"
8957 9075 }
8958 9076 },
  9077 + "node_modules/math-intrinsics": {
  9078 + "version": "1.1.0",
  9079 + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  9080 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  9081 + "engines": {
  9082 + "node": ">= 0.4"
  9083 + }
  9084 + },
8959 9085 "node_modules/media-typer": {
8960 9086 "version": "0.3.0",
8961 9087 "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
... ...
garbage-removal/src/components/liu-delivery-time/liu-delivery-time.vue
... ... @@ -105,9 +105,9 @@ const getFutureDays = () =&gt; {
105 105 const day = date.getDate().toString().padStart(2, '0');
106 106 if (i === 0) {
107 107 let hours = new Date().getHours();
108   - if (hours >= 13) {
109   - continue;
110   - }
  108 + // if (hours >= 13) {
  109 + // continue;
  110 + // }
111 111 days.push({
112 112 day: `${year}-${month}-${day}`,
113 113 timeList: getCurrentDayTimeList(9, hours, 1)
... ...
garbage-removal/src/pages/home-info/clean/index.vue
... ... @@ -25,7 +25,7 @@
25 25 </view>
26 26 <view @click.stop="handleTimeChoose" class="company-clean-container-header-reservation">
27 27 <view class="company-clean-container-header-reservation-left">
28   - <text style="color: red;">*</text> <u-icon name="calendar" size="40"></u-icon>预约时间
  28 + <text style="color: red;">*</text> <u-icon name="calendar" size="40"></u-icon>123预约时间123
29 29 </view>
30 30 <view class="company-clean-container-header-reservation-right">
31 31 <text style="margin-right: 10rpx;">{{ dayTime ? dayTime : "请选择时间" }}</text> <u-icon name="arrow-right"
... ... @@ -69,14 +69,6 @@
69 69 </view>
70 70 </view>
71 71  
72   - <view class="company-clean-container-car-main-content-type" >
73   - <view class="company-clean-container-car-main-content-type-price-area">
74   - <text style="color: red;">*</text>预估费用:
75   - </view>
76   - <view style=" width:100%;display:flex; color:#909399; align-items: center;">
77   - <u-number-box :min="0" :max="999999" integer buttonSize="46" :inputWidth="100" :adjust-position="false" :cursor-spacing="0" v-model="paramFrom.garEstimatedCost"></u-number-box>
78   - </view>
79   - </view>
80 72  
81 73 <view class="company-clean-container-car-main-content-type">
82 74 <view class="company-clean-container-car-main-content-type-price-area">
... ... @@ -417,15 +409,6 @@ const orderClick = ref(true)
417 409 * 处理下单
418 410 */
419 411 const handleOderSure = async () => {
420   - if(null == paramFrom.value.garEstimatedCost|| "" == paramFrom.value.garEstimatedCost || undefined == paramFrom.value.garEstimatedCost){
421   - jumpPrompt("预估费用不能为空");
422   -
423   - return;
424   - }
425   - if(paramFrom.value.garEstimatedCost<=0){
426   - jumpPrompt("预估费用必须大于0");
427   - return;
428   - }
429 412 let garCarInfos = [];
430 413 for (const key in garCarInfoList.value) {
431 414 if(garCarInfoList.value[key]&& garCarInfoList.value[key].garOrderCarNumber && garCarInfoList.value[key].garOrderCarNumber>0){
... ... @@ -586,9 +569,6 @@ const validateParams = (params) =&gt; {
586 569 case "garOrderAgreementTime":
587 570 jumpPrompt('请选择预约时间')
588 571 break;
589   - case "garEstimatedCost":
590   - jumpPrompt('请输入预估费用')
591   - break;
592 572 case "garOrderCompanyTel":
593 573 jumpPrompt('企业负责人手机号不能为空')
594 574 break;
... ...
garbage-removal/src/pages/home/index.vue
... ... @@ -383,6 +383,7 @@ onShow(() =&gt; {
383 383 initData()
384 384 let flag = uni.getStorageSync("refreshFlag");
385 385 if(flag){
  386 + console.log(paging.value);
386 387 paging.value.reload();
387 388 uni.removeStorageSync("refreshFlag");
388 389 }
... ...
garbage-removal/src/pages/order-info/order-other/detail/index.vue
1 1 <template>
2   - <clashDriverDispatch ref="clashDriverDispatchRef" :valueKey="'licensePlateNumber'"
3   - :onconfirm="handleDriverDispatchConfirm" :dataList="driverPersonnelList">
4   - </clashDriverDispatch>
5   - <clashDisposalDispatch ref="clashDisposalDispatchRef" :valueKey="'companyName'"
6   - :onconfirm="handleDisposalDispatchConfirm" :dataList="driverPersonnelList">
7   - </clashDisposalDispatch>
8   - <u-popup :zIndex="10074" closeOnClickOverlay :show="carPopupShowFlag" :round="10" @close="handlePopupClick(false)"
9   - @open="handlePopupClick(true)">
10   - <view class="company-clean-container-car-popup">
11   - <!-- 主要内容 -->
12   - <view class="company-clean-container-car-popup-content">
13   - <view class="company-clean-container-car-popup-content-title">
14   - <view style="text-align: center;">
15   - 车辆类型
16   - </view>
17   - </view>
18   - <view class="company-clean-container-car-popup-content-box">
19   - <view class="company-clean-container-car-popup-content-box-item" v-for="(item, index) in garCarInfoList"
20   - :key="index">
21   - <view class="company-clean-container-car-popup-content-box-item-text">
22   - {{ item.garOrderCarType }}
23   - </view>
24   - <view class="company-clean-container-car-popup-content-box-item-number" hover-class="hoverClickStyle">
25   - <u-number-box :min="0" :max="9999" integer buttonSize="46" :inputWidth="100"
26   - v-model="garCarInfoList[item.garOrderCarType].garOrderCarNumber" :disabledInput="true"></u-number-box>
27   - </view>
28   - </view>
29   - </view>
30   - </view>
31   - <!-- 占位盒子 -->
32   - <view class="company-clean-container-car-popup-button-safe">
33   - <view class="company-clean-container-car-popup-button-safe-btn">
34   - <u-button type="primary" color="#19a97c" @click="submitUpdateCarInfo">确定</u-button>
35   - </view>
36   - </view>
37   - </view>
38   - </u-popup>
39   - <view class="order-detail-container" v-if="dataGram != null || dataGram != undefined">
40   - <view class="order-detail-container-box">
41   - <view class="order-detail-top">
42   - <view class="order-detail-top-box">
43   - <view class="order-detail-top-box-step">
44   - <u-steps :current="currentStep(dataGram.garOrderHandlerStatus)" dot>
45   - <u-steps-item title="待清运"></u-steps-item>
46   - <u-steps-item title="清运中"></u-steps-item>
47   - <u-steps-item title="已完成"></u-steps-item>
48   - </u-steps>
49   - </view>
50   - </view>
51   - </view>
52   - <!-- 信息提示 -->
53   - <view class="order-detail-container-box-card">
54   - <text v-if="dataGram.garCancelFlag == 0" style="color: red;">请于交易完成后线下支付!!</text>
55   - <view v-else style="display: flex; color:red;">
56   - <u-icon name="close-circle" color="red"></u-icon>
57   - <text> &nbsp;&nbsp;订单已被取消!原因:{{ dataGram.garReason }}</text>
58   - </view>
59   - </view>
60   - <!-- 订单信息 -->
61   - <view class="order-detail-container-box-card">
62   - <view class="order-detail-container-header-card-title">
63   - <view class="order-detail-container-header-card-uicon"></view>
64   - 订单信息
65   - </view>
66   - <view class="order-detail-container-header-item"
67   - @click.stop="handlerJumpOtherApp(dataGram.garLatitude, dataGram.garLongitude, dataGram.garCoordinate)">
68   - <text class="order-detail-container-header-title">清运地点:</text>
69   - <view class="order-detail-container-header-content" style="text-decoration: underline">
70   - <text selectable='true'>{{ dataGram.garOrderAddress + dataGram.garOrderAddressDetails }}</text>
71   - </view>
72   - </view>
73   - <view class="order-detail-container-header-item">
74   - <text class="order-detail-container-header-title">现场图片:</text>
75   - <view class="order-detail-container-header-content">
76   - <u-upload width="180" height="130" :fileList="currentImages" name="3" multiple :maxCount="10"
77   - :previewFullImage="true" :isReadOnly="true"></u-upload>
78   - </view>
79   - </view>
80   - <view class="order-detail-container-header-item">
81   - <text class="order-detail-container-header-title">负责单位:</text>
82   - <view class="order-detail-container-header-content">
83   - {{ dataGram.garOrderCompanyName }}
84   - </view>
85   - </view>
86   - <view class="order-detail-container-header-item">
87   - <text class="order-detail-container-header-title">垃圾类型:</text>
88   - <view class="order-detail-container-header-content">
89   - {{ dataGram.garOrderTrashType }}
90   - </view>
91   - </view>
92   -
93   - <view class="order-detail-container-header-item" v-for="(disposal,index) in dataGram.disposalSites">
94   - <view>
95   - <text class="order-detail-container-header-title" v-if="index == 0" >处置场地:</text>
96   - <text class="order-detail-container-header-title" v-else >&emsp;&emsp;&emsp;&emsp;&emsp;</text>
97   - </view>
98   - <view class="order-detail-container-header-content" style="text-decoration: underline" @click.stop="handlerJumpOtherApp(disposal.latitude, disposal.longitude, dataGram.garCoordinate)">
99   - <text>{{ disposal.addrStr }}</text>
100   - </view>
101   - </view>
102   -
103   - <view class="order-detail-container-header-item">
104   - <text class="order-detail-container-header-title">订单号:</text>
105   - <view class="order-detail-container-header-content">
106   - <text selectable="true">{{ orderId }}</text>
107   - </view>
108   - <!-- 生成二维码 -->
109   - <view class="order-detail-container-header-qrCode" style="display: flex; align-items: center;">
110   - <view @click="handleQrCodeClick(orderId)" class="iconfont icon-erweima-xian"></view>
111   - </view>
112   - </view>
113   - </view>
114   - <!-- 车辆信息 -->
115   - <view class="order-detail-container-box-card">
116   - <view class="order-detail-container-header-card-title">
117   - <view class="order-detail-container-header-card-uicon"></view>
118   - 车辆信息
119   - </view>
120   - <view class="order-detail-container-header-item" style="justify-content: space-between;"
121   - v-for="(item) in dataGram.garCarInfoList" :key="item.garId">
122   - <text class="order-detail-container-header-title" style="color: #303133;">{{ item.garOrderCarType }}
123   - </text>
124   - <view class="order-detail-container-header-content">
125   - <text class="order-detail-container-header-title">
126   - {{ cleanStatus(dataGram.garOrderHandlerStatus) }}
127   - </text>
128   - </view>
129   - </view>
130   - </view>
131   - <!-- 订单记录 -->
132   - <view class="order-detail-container-box-card">
133   - <view class="order-detail-container-header-card-title">
134   - <view class="order-detail-container-header-card-uicon"></view>
135   - 订单人员
136   - </view>
137   - <!-- <view class="order-detail-container-header-item">
  2 + <clashDriverDispatch ref="clashDriverDispatchRef" :valueKey="'licensePlateNumber'"
  3 + :onconfirm="handleDriverDispatchConfirm" :dataList="driverPersonnelList">
  4 + </clashDriverDispatch>
  5 + <clashDisposalDispatch ref="clashDisposalDispatchRef" :valueKey="'companyName'"
  6 + :onconfirm="handleDisposalDispatchConfirm" :dataList="driverPersonnelList">
  7 + </clashDisposalDispatch>
  8 + <u-popup :zIndex="10074" closeOnClickOverlay :show="carPopupShowFlag" :round="10" @close="handlePopupClick(false)"
  9 + @open="handlePopupClick(true)">
  10 + <view class="company-clean-container-car-popup">
  11 + <!-- 主要内容 -->
  12 + <view class="company-clean-container-car-popup-content">
  13 + <view class="company-clean-container-car-popup-content-title">
  14 + <view style="text-align: center;">
  15 + 车辆类型
  16 + </view>
  17 + </view>
  18 + <view class="company-clean-container-car-popup-content-box">
  19 + <view class="company-clean-container-car-popup-content-box-item"
  20 + v-for="(item, index) in garCarInfoList" :key="index">
  21 + <view class="company-clean-container-car-popup-content-box-item-text">
  22 + {{ item.garOrderCarType }}
  23 + </view>
  24 + <view class="company-clean-container-car-popup-content-box-item-number"
  25 + hover-class="hoverClickStyle">
  26 + <u-number-box :min="0" :max="9999" integer buttonSize="46" :inputWidth="100"
  27 + v-model="garCarInfoList[item.garOrderCarType].garOrderCarNumber"
  28 + :disabledInput="true"></u-number-box>
  29 + </view>
  30 + </view>
  31 + </view>
  32 + </view>
  33 + <!-- 占位盒子 -->
  34 + <view class="company-clean-container-car-popup-button-safe">
  35 + <view class="company-clean-container-car-popup-button-safe-btn">
  36 + <u-button type="primary" color="#19a97c" @click="submitUpdateCarInfo">确定</u-button>
  37 + </view>
  38 + </view>
  39 + </view>
  40 + </u-popup>
  41 + <view class="order-detail-container" v-if="dataGram != null || dataGram != undefined">
  42 + <view class="order-detail-container-box">
  43 + <view class="order-detail-top">
  44 + <view class="order-detail-top-box">
  45 + <view class="order-detail-top-box-step">
  46 + <u-steps :current="currentStep(dataGram.garOrderHandlerStatus)" dot>
  47 + <u-steps-item title="待清运"></u-steps-item>
  48 + <u-steps-item title="清运中"></u-steps-item>
  49 + <u-steps-item title="已完成"></u-steps-item>
  50 + </u-steps>
  51 + </view>
  52 + </view>
  53 + </view>
  54 + <!-- 信息提示 -->
  55 + <view class="order-detail-container-box-card">
  56 + <text v-if="dataGram.garCancelFlag == 0" style="color: red;">请于交易完成后线下支付!!</text>
  57 + <view v-else style="display: flex; color:red;">
  58 + <u-icon name="close-circle" color="red"></u-icon>
  59 + <text> &nbsp;&nbsp;订单已被取消!原因:{{ dataGram.garReason }}</text>
  60 + </view>
  61 + </view>
  62 + <!-- 订单信息 -->
  63 + <view class="order-detail-container-box-card">
  64 + <view class="order-detail-container-header-card-title">
  65 + <view class="order-detail-container-header-card-uicon"></view>
  66 + 订单信息
  67 + </view>
  68 + <view class="order-detail-container-header-item"
  69 + @click.stop="handlerJumpOtherApp(dataGram.garLatitude, dataGram.garLongitude, dataGram.garCoordinate)">
  70 + <text class="order-detail-container-header-title">清运地点:</text>
  71 + <view class="order-detail-container-header-content" style="text-decoration: underline">
  72 + <text selectable='true'>{{ dataGram.garOrderAddress + dataGram.garOrderAddressDetails }}</text>
  73 + </view>
  74 + </view>
  75 + <view class="order-detail-container-header-item">
  76 + <text class="order-detail-container-header-title">现场图片:</text>
  77 + <view class="order-detail-container-header-content">
  78 + <u-upload width="180" height="130" :fileList="currentImages" name="3" multiple :maxCount="10"
  79 + :previewFullImage="true" :isReadOnly="true"></u-upload>
  80 + </view>
  81 + </view>
  82 + <view class="order-detail-container-header-item">
  83 + <text class="order-detail-container-header-title">负责单位:</text>
  84 + <view class="order-detail-container-header-content">
  85 + {{ dataGram.garOrderCompanyName }}
  86 + </view>
  87 + </view>
  88 + <view class="order-detail-container-header-item">
  89 + <text class="order-detail-container-header-title">垃圾类型:</text>
  90 + <view class="order-detail-container-header-content">
  91 + {{ dataGram.garOrderTrashType }}
  92 + </view>
  93 + </view>
  94 +
  95 + <view class="order-detail-container-header-item" v-for="(disposal,index) in dataGram.disposalSites">
  96 + <view>
  97 + <text class="order-detail-container-header-title" v-if="index == 0">处置场地:</text>
  98 + <text class="order-detail-container-header-title" v-else>&emsp;&emsp;&emsp;&emsp;&emsp;</text>
  99 + </view>
  100 + <view class="order-detail-container-header-content" style="text-decoration: underline"
  101 + @click.stop="handlerJumpOtherApp(disposal.latitude, disposal.longitude, dataGram.garCoordinate)">
  102 + <text>{{ disposal.addrStr }}</text>
  103 + </view>
  104 + </view>
  105 +
  106 + <view class="order-detail-container-header-item">
  107 + <text class="order-detail-container-header-title">订单号:</text>
  108 + <view class="order-detail-container-header-content">
  109 + <text selectable="true">{{ orderId }}</text>
  110 + </view>
  111 + <!-- 生成二维码 -->
  112 + <view class="order-detail-container-header-qrCode" style="display: flex; align-items: center;">
  113 + <view @click="handleQrCodeClick(orderId)" class="iconfont icon-erweima-xian"></view>
  114 + </view>
  115 + </view>
  116 + </view>
  117 + <!-- 车辆信息 -->
  118 + <view class="order-detail-container-box-card">
  119 + <view class="order-detail-container-header-card-title">
  120 + <view class="order-detail-container-header-card-uicon"></view>
  121 + 车辆信息
  122 + </view>
  123 + <view class="order-detail-container-header-item" style="justify-content: space-between;"
  124 + v-for="(item) in dataGram.garCarInfoList" :key="item.garId">
  125 + <text class="order-detail-container-header-title" style="color: #303133;">{{ item.garOrderCarType }}
  126 + </text>
  127 + <view class="order-detail-container-header-content">
  128 + <text class="order-detail-container-header-title">
  129 + {{ cleanStatus(dataGram.garOrderHandlerStatus) }}
  130 + </text>
  131 + </view>
  132 + </view>
  133 + </view>
  134 + <!-- 订单记录 -->
  135 + <view class="order-detail-container-box-card">
  136 + <view class="order-detail-container-header-card-title">
  137 + <view class="order-detail-container-header-card-uicon"></view>
  138 + 订单人员
  139 + </view>
  140 + <!-- <view class="order-detail-container-header-item">
138 141 <text class="order-detail-container-header-title">订单时间:</text>
139 142 <view class="order-detail-container-header-content">
140 143 {{ dataGram.garCreateTime }}
141 144 </view>
142 145 </view> -->
143   - <view class="order-detail-container-header-item">
144   - <text class="order-detail-container-header-title">预约时间:</text>
145   - <view class="order-detail-container-header-content">
146   - {{ dataGram.garOrderAgreementTime }}
147   - </view>
148   - </view>
149   - <view class="order-detail-container-header-item">
150   - <text class="order-detail-container-header-title">联系电话:</text>
151   - <view class="order-detail-container-header-content">
152   - <text selectable="true">{{ dataGram.garOrderContactTel }}</text>
153   - <view class="icon-box" style="display: flex; align-items: center; justify-content: center;">
154   - <u-icon v-if="dataGram.handleFlag" name="phone" size="28"
155   - @click="handleContactClick(dataGram.garOrderContactTel)"></u-icon>
156   - </view>
157   - </view>
158   - </view>
159   - <view class="order-detail-container-header-item">
160   - <text class="order-detail-container-header-title">订单人:</text>
161   - <view class="order-detail-container-header-content">
162   - {{ dataGram.garOrderContactName }}
163   - </view>
164   - </view>
165   -
166   - <view class="order-detail-container-header-item">
167   - <text class="order-detail-container-header-title">预估费用:</text>
168   - <view class="order-detail-container-header-content">
169   - {{ dataGram.garEstimatedCost }}
170   - </view>
171   - </view>
172   -
173   - <view class="order-detail-container-header-item">
174   - <text class="order-detail-container-header-title">备注:</text>
175   - <view class="order-detail-container-header-content">
176   - {{ dataGram.garRemark }}
177   - </view>
178   - </view>
179   - </view>
180   - <!-- 处理信息 -->
181   - <view class="order-detail-container-box-card">
182   - <view class="order-detail-container-header-card-title">
183   - <view class="order-detail-container-header-card-uicon"></view>
184   - 处理信息
185   - </view>
186   - <view v-if="putDownImages.length || putOnImages.length" style="width: 100%;">
187   - <view class="order-detail-container-header-item">
188   - <text class=" order-detail-container-header-title">装车照片:</text>
189   - <view class="order-detail-container-header-content">
190   - <u-upload width="180" height="130" :fileList="putOnImages" name="3" multiple :maxCount="20"
191   - :previewFullImage="true" :isReadOnly="true"></u-upload>
192   - </view>
193   - </view>
194   - <view class="order-detail-container-header-item">
195   - <text class=" order-detail-container-header-title">卸车照片:</text>
196   - <view class="order-detail-container-header-content">
197   - <u-upload width="180" height="130" :fileList="putDownImages" name="3" multiple :maxCount="20"
198   - :previewFullImage="true" :isReadOnly="true"></u-upload>
199   - </view>
200   - </view>
201   - </view>
202   - <view v-else class="empty-image"
203   - style="width: 100%; display: flex; justify-content: center; align-items: center;">
204   - <image class="image-style" style="width: 200rpx; height: 200rpx;" :src="emptyBase64Image"></image>
205   - </view>
206   - </view>
207   - <view class="space-box">{{ spaceStr }}</view>
208   - </view>
209   - <!-- 占位符 -->
210   - <view class="order-detail-bottom">
211   - <view class="order-detail-bottom-box">
212   - <view class=" order-detail-bottom-left">
213   - <u-button v-if="dataGram.garOrderHandlerStatus === 0 && userType == '运输企业负责人' && dataGram.garCancelFlag === 0"
214   - @click="handleOderCancelClick()" shape="square" color="#19a97c" text="取消订单"></u-button>
215   - <u-button
216   - v-if="dataGram.garOrderScanHandlerFlag === 0 && userType == '用户' && dataGram.garOrderHandlerStatus != 3"
217   - @click="handlerUpdateOrderClick()" shape="square" color="#19a97c" text="修改车辆信息"></u-button>
218   - <u-button v-if="dataGram.garOrderHandlerStatus === 1 && userType == '运输企业负责人'"
219   - @click="handleOrderDispatchClick(orderId)" shape="square" color="#19a97c" text="分配驾驶员"></u-button>
220   - </view>
221   - <view class="order-detail-bottom-right">
222   - <u-button v-if="dataGram.garOrderHandlerStatus === 0 && userType == '用户' && dataGram.garCancelFlag === 0"
223   - @click="handleOderCancelClick()" shape="square" color="#19a97c" text="取消订单"></u-button>
224   - <u-button @click="handleOrder(orderId)"
225   - v-if="dataGram.garOrderHandlerStatus === 0 && dataGram.handleFlag && dataGram.garCancelFlag === 0 && userType === '运输企业负责人'"
226   - shape="square" color="#19a97c" text="处理订单"></u-button>
227   - <u-button @click="handleEvaluate(orderId, userType)"
228   - v-if="dataGram.garEvaluateFlag === 0 && userType === '用户'" shape="square" color="#19a97c"
229   - text="去评价"></u-button>
230   - <u-button @click="handleEvaluateDetail(orderId, userType)"
231   - v-if="dataGram.garHandlerEvaluateFlag === 0 && userType === '运输企业负责人' && dataGram.haveEvaluateOfClient==1" shape="square" color="#19a97c"
232   - text="查看评价"></u-button>
233   - <u-button @click="handleEvaluateDetail(orderId, userType)"
234   - v-if="dataGram.garHandlerEvaluateFlag === 1 && userType === '运输企业负责人' && dataGram.haveEvaluateOfClient==1" shape="square" color="#19a97c"
235   - text="查看评价"></u-button>
236   - <u-button @click="handleEvaluateDetail(orderId, userType)"
237   - v-if="dataGram.garEvaluateFlag === 1 && userType === '用户'" shape="square" color="#19a97c"
238   - text="查看评价"></u-button>
239   - <u-button v-if="dataGram.garOrderHandlerStatus === 1 && userType == '运输企业负责人'"
240   - @click="handleDisposalDispatchClick(orderId)" shape="square" color="#19a97c" text="分配处置场所"></u-button>
241   - </view>
242   - </view>
243   - </view>
244   - <u-action-sheet :closeOnClickOverlay="true" :closeOnClickAction="false" @actionSheetClose="handleClose"
245   - @submitFunction="submitFunction" @select="selectClick" :actions="list" round="15" title="取消订单" :show="cancelShow">
246   - </u-action-sheet>
247   - </view>
248   - <view v-if="showUQRcode" class="mask-container" @click="showUQRcode = false">
249   - <uqrcode :h5SaveIsDownload="true" ref="qrCodeRef" canvas-id="qrcode" :value="qrCodeText"
250   - :options="{ margin: 10, boxSizing: borderBox }"></uqrcode>
251   - </view>
  146 + <view class="order-detail-container-header-item">
  147 + <text class="order-detail-container-header-title">预约时间:</text>
  148 + <view class="order-detail-container-header-content">
  149 + {{ dataGram.garOrderAgreementTime }}
  150 + </view>
  151 + </view>
  152 + <view class="order-detail-container-header-item">
  153 + <text class="order-detail-container-header-title">联系电话:</text>
  154 + <view class="order-detail-container-header-content">
  155 + <text selectable="true">{{ dataGram.garOrderContactTel }}</text>
  156 + <view class="icon-box" style="display: flex; align-items: center; justify-content: center;">
  157 + <u-icon v-if="dataGram.handleFlag" name="phone" size="28"
  158 + @click="handleContactClick(dataGram.garOrderContactTel)"></u-icon>
  159 + </view>
  160 + </view>
  161 + </view>
  162 + <view class="order-detail-container-header-item">
  163 + <text class="order-detail-container-header-title">订单人:</text>
  164 + <view class="order-detail-container-header-content">
  165 + {{ dataGram.garOrderContactName }}
  166 + </view>
  167 + </view>
  168 +
  169 + <view class="order-detail-container-header-item">
  170 + <text class="order-detail-container-header-title">备注:</text>
  171 + <view class="order-detail-container-header-content">
  172 + {{ dataGram.garRemark }}
  173 + </view>
  174 + </view>
  175 + </view>
  176 + <!-- 处理信息 -->
  177 + <view class="order-detail-container-box-card">
  178 + <view class="order-detail-container-header-card-title">
  179 + <view class="order-detail-container-header-card-uicon"></view>
  180 + 处理信息
  181 + </view>
  182 + <view v-if="putDownImages.length || putOnImages.length" style="width: 100%;">
  183 + <view class="order-detail-container-header-item">
  184 + <text class=" order-detail-container-header-title">装车照片:</text>
  185 + <view class="order-detail-container-header-content">
  186 + <u-upload width="180" height="130" :fileList="putOnImages" name="3" multiple :maxCount="20"
  187 + :previewFullImage="true" :isReadOnly="true"></u-upload>
  188 + </view>
  189 + </view>
  190 + <view class="order-detail-container-header-item">
  191 + <text class=" order-detail-container-header-title">卸车照片:</text>
  192 + <view class="order-detail-container-header-content">
  193 + <u-upload width="180" height="130" :fileList="putDownImages" name="3" multiple
  194 + :maxCount="20" :previewFullImage="true" :isReadOnly="true"></u-upload>
  195 + </view>
  196 + </view>
  197 + </view>
  198 + <view v-else class="empty-image"
  199 + style="width: 100%; display: flex; justify-content: center; align-items: center;">
  200 + <image class="image-style" style="width: 200rpx; height: 200rpx;" :src="emptyBase64Image"></image>
  201 + </view>
  202 + </view>
  203 + <view class="space-box">{{ spaceStr }}</view>
  204 + </view>
  205 + <!-- 占位符 -->
  206 + <view class="order-detail-bottom">
  207 + <view class="order-detail-bottom-box">
  208 + <view class=" order-detail-bottom-left">
  209 + <u-button
  210 + v-if="dataGram.garOrderHandlerStatus === 0 && userType == '运输企业负责人' && dataGram.garCancelFlag === 0"
  211 + @click="handleOderCancelClick()" shape="square" color="#19a97c" text="取消订单"></u-button>
  212 + <u-button
  213 + v-if="dataGram.garOrderScanHandlerFlag === 0 && userType == '用户' && dataGram.garOrderHandlerStatus != 3"
  214 + @click="handlerUpdateOrderClick()" shape="square" color="#19a97c" text="修改车辆信息"></u-button>
  215 + <u-button v-if="dataGram.garOrderHandlerStatus === 1 && userType == '运输企业负责人'"
  216 + @click="handleOrderDispatchClick(orderId)" shape="square" color="#19a97c"
  217 + text="分配驾驶员"></u-button>
  218 + </view>
  219 + <view class="order-detail-bottom-right">
  220 + <u-button
  221 + v-if="dataGram.garOrderHandlerStatus === 0 && userType == '用户' && dataGram.garCancelFlag === 0"
  222 + @click="handleOderCancelClick()" shape="square" color="#19a97c" text="取消订单"></u-button>
  223 + <u-button @click="handleOrder(orderId)"
  224 + v-if="dataGram.garOrderHandlerStatus === 0 && dataGram.handleFlag && dataGram.garCancelFlag === 0 && userType === '运输企业负责人'"
  225 + shape="square" color="#19a97c" text="处理订单"></u-button>
  226 + <u-button @click="handleEvaluate(orderId, userType)"
  227 + v-if="dataGram.garEvaluateFlag === 0 && userType === '用户'" shape="square" color="#19a97c"
  228 + text="去评价"></u-button>
  229 + <u-button @click="handleEvaluateDetail(orderId, userType)"
  230 + v-if="dataGram.garHandlerEvaluateFlag === 0 && userType === '运输企业负责人' && dataGram.haveEvaluateOfClient==1"
  231 + shape="square" color="#19a97c" text="查看评价"></u-button>
  232 + <u-button @click="handleEvaluateDetail(orderId, userType)"
  233 + v-if="dataGram.garHandlerEvaluateFlag === 1 && userType === '运输企业负责人' && dataGram.haveEvaluateOfClient==1"
  234 + shape="square" color="#19a97c" text="查看评价"></u-button>
  235 + <u-button @click="handleEvaluateDetail(orderId, userType)"
  236 + v-if="dataGram.garEvaluateFlag === 1 && userType === '用户'" shape="square" color="#19a97c"
  237 + text="查看评价"></u-button>
  238 + <u-button v-if="dataGram.garOrderHandlerStatus === 1 && userType == '运输企业负责人'"
  239 + @click="handleDisposalDispatchClick(orderId)" shape="square" color="#19a97c"
  240 + text="分配处置场所"></u-button>
  241 + </view>
  242 + </view>
  243 + </view>
  244 + <u-action-sheet :closeOnClickOverlay="true" :closeOnClickAction="false" @actionSheetClose="handleClose"
  245 + @submitFunction="submitFunction" @select="selectClick" :actions="list" round="15" title="取消订单"
  246 + :show="cancelShow">
  247 + </u-action-sheet>
  248 + </view>
  249 + <view v-if="showUQRcode" class="mask-container" @click="showUQRcode = false">
  250 + <uqrcode :h5SaveIsDownload="true" ref="qrCodeRef" canvas-id="qrcode" :value="qrCodeText"
  251 + :options="{ margin: 10, boxSizing: borderBox }"></uqrcode>
  252 + </view>
252 253 </template>
253 254  
254 255 <script setup>
255   -import { queryCarList } from '@/apis/carinfo.js';
256   -import { dispatchDisposalOrders, dispatchOrders, queryDisposalDispatch, queryOrderDetail, queryOrderDispatch, updateOrder } from "@/apis/order.js";
257   -import { createQrCode } from '@/apis/qrcode.js';
258   -import uqrcode from '@/components/Sansnn-uQRCode_4.0.6/components/uqrcode/uqrcode.vue';
259   -import clashDisposalDispatch from '@/components/clash-disposal-dispatch/index.vue';
260   -import clashDriverDispatch from '@/components/clash-driver-dispatch/index.vue';
261   -import zStatic from '@/components/z-paging/js/z-paging-static';
262   -import { useMainStore } from '@/stores/index.js';
263   -import { onLoad, onShow } from '@dcloudio/uni-app';
264   -import { computed, ref } from 'vue';
265   -const paramFrom = ref({
266   - carNumber: 0,
267   - carType: ""
268   -})
269   -const garCarInfoList = ref({})
270   -const carPopupShowFlag = ref(false)
271   -const isOnloadIn = ref(false)
272   -const clashDriverDispatchRef = ref()
273   -const clashDisposalDispatchRef = ref()
274   -const driverPersonnelList = ref([])
275   -const disposalPersonnelList = ref([])
276   -const store = useMainStore();
277   -const userType = computed(() => store.userType)
278   -const dataGram = ref();
279   -const orderId = ref(null)
280   -const currentImages = ref([])
281   -const putOnImages = ref([])
282   -const putDownImages = ref([])
283   -const emptyBase64Image = ref(zStatic.base64Empty)
284   -const showUQRcode = ref(false)
285   -const spaceStr = ref("")
286   -const cancelShow = ref(false)
287   -const currentCancelName = ref("")
288   -const qrCodeRef = ref()
289   -const qrCodeText = ref()
290   -const candidates = ref([])
291   -const garCarLabelInfoList = ref({})
292   -const garCarLabelInfoNow = ref()
293   -const list = computed(() => {
294   - let reason = [
295   - {
296   - name: '订单信息填写有误',
297   - },
298   - {
299   - name: '线下协商有问题',
300   - },
301   - {
302   - name: '不需要清运了',
303   - },
304   - {
305   - name: '其他',
306   - },
307   - {
308   - name: '提交',
309   - }
310   - ]
311   - if (userType.value === '用户') {
312   - reason.unshift({
313   - name: '长时间无人接单',
314   - })
315   - }
316   - return reason
317   -})
318   -
319   -const handlePopupClick = (val) => {
320   - carPopupShowFlag.value = val
321   -}
322   -// 创建二维码
323   -const createQrCodeLocal = (orderId) => {
324   - // 获取本地地址拼接订单id
325   - showUQRcode.value = true;
326   - const hostname = window.location.hostname;
327   - const port = window.location.port;
328   - const protocol = window.location.protocol;
329   - const localAddress = `${protocol}//${hostname}:${port}`;
330   - // const localAddress = `http://localhost:5173`;
331   - qrCodeText.value = localAddress + "/pages/order-info/order-other/guest/index?orderId=" + orderId;
332   - console.log(qrCodeRef.value);
333   -}
334   -// 获取二维码
335   -const handleQrCodeClick = (orderId) => {
336   - // 微信小程序可用
337   - // #ifdef MP-WEIXIN
338   - createQrCode(orderId).then((res) => {
339   - if (res.data.success) {
340   - uni.previewImage({
341   - urls: [res.data.data],
342   - longPressActions: {
343   - itemList: ['发送给朋友', '保存图片', '收藏'],
344   - success: function (res) {
345   - console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
346   - },
347   - fail: function (res) {
348   - console.log(res);
349   - }
350   - }
351   - })
352   - }
353   - })
354   - // #endif
355   - // H5
356   - // #ifdef H5
357   - createQrCodeLocal(orderId)
358   - // #endif
359   -}
360   -
361   -const handleOrderDispatchClick = (orderId) => {
362   - // 获取驾驶员人员
363   - queryOrderDispatch(orderId).then(res => {
364   - if (res.data.success) {
365   - // 过滤车辆 非用户选择的车辆无法选中
366   -
367   - driverPersonnelList.value = res.data.data
368   - clashDriverDispatchRef.value.open(res.data.data)
369   - } else {
370   - uni.$u.toast("驾驶员分配成功!")
371   - }
372   - })
373   -}
374   -const handleDisposalDispatchClick = (orderId) => {
375   - // 获取处置场所人员
376   - queryDisposalDispatch(orderId).then(res => {
377   - if (res.data.success) {
378   - disposalPersonnelList.value = res.data.data
379   - clashDisposalDispatchRef.value.open(res.data.data)
380   - } else {
381   - uni.$u.toast("处理场所分配成功!")
382   - }
383   - })
384   -}
385   -
386   -
387   -
388   -const handleClose = (e) => {
389   - cancelShow.value = false
390   -}
391   -const handleEvaluateDetail = (orderId, userType) => {
392   - uni.$u.route(`pages/order-info/order-other/evaluate-info/index`,
393   - { orderId: orderId, userType: userType })
394   -}
395   -const selectClick = (index) => {
396   - currentCancelName.value = index.name;
397   -}
398   -const handleOrderDetail = (orderId) => {
399   - queryOrderDetail(orderId).then(res => {
400   - dataGram.value = res.data.data;
401   - console.log(res.data.data);
402   - currentImages.value = res.data.data.currentImages.map(item => {
403   - return { url: import.meta.env.VITE_BASE_URL + item };
404   - });
405   - putOnImages.value = res.data.data.putOnImages.map(item => {
406   - return { url: import.meta.env.VITE_BASE_URL + item };
407   - });
408   - putDownImages.value = res.data.data.putDownImages.map(item => {
409   - return { url: import.meta.env.VITE_BASE_URL + item };
410   - });
411   - })
412   -}
413   -/**
414   - * 拨打电话回调
415   - */
416   -const handleContactClick = (val) => {
417   - uni.makePhoneCall({ phoneNumber: val }).then(res => {
418   - }).catch(err => { });
419   -}
420   -
421   -const handlerJumpOtherApp = (latitude, longitude, garCoordinate) => {
422   - console.log(latitude+"=================>"+longitude);
423   - // 给出提示确定要跳转吗
424   - uni.showModal({
425   - title: '提示',
426   - content: '是否跳转到app定位进行导航?',
427   - success: function (res) {
428   - if (res.confirm) {
429   - uni.openLocation({
430   - latitude: latitude,
431   - longitude: longitude,
432   - success: function () {
433   - console.log('success');
434   - }
435   - });
436   - }
437   - }
438   - })
439   -}
440   -
441   -/**
442   - * 取消订单
443   - * @param {*} orderId
444   - */
445   -const handleOderCancelClick = () => {
446   - cancelShow.value = true;
447   -}
448   -
449   -/**
450   - * 提交取消订单
451   - */
452   -const submitFunction = (otherReason) => {
453   - let reason = otherReason
454   - if (currentCancelName.value != "其他") {
455   - reason = currentCancelName.value
456   - }
457   - if (!reason) {
458   - uni.$u.toast("请提供取消订单的原因")
459   - return
460   - }
461   - let params = {
462   - garOrderId: orderId.value,
463   - garCancelFlag: 1,
464   - garReason: reason
465   - }
466   - updateOrder(params).then(res => {
467   - if (res.data.success) {
468   - cancelShow.value = false
469   - uni.$u.toast(res.data.data)
470   - uni.$u.route({
471   - type: "reLaunch",
472   - url: `pages/order/index`,
473   - })
474   - }
475   - })
476   -}
477   -// 提交完成
478   -const handleSubmitSuccess = (orderId) => {
479   - uni.showModal({
480   - title: '提示',
481   - content: '订单已经清运完成了吗?',
482   - success: function (res) {
483   - if (res.confirm) {
484   - updateOrder({ garOrderId: orderId, handleType: 3 }).then(res => {
485   - if (res.data.success) {
486   - uni.$u.toast("已完成")
487   - handleOrderDetail(orderId)
488   - }
489   - })
490   - } else if (res.cancel) {
491   - }
492   - }
493   - });
494   -
495   -}
496   -const handleEvaluate = (orderId, userType) => {
497   - uni.$u.route(`pages/order-info/order-other/evaluate/index?orderId=${orderId}&userType=${userType}`)
498   -}
499   -
500   -// 接收订单
501   -const handleOrder = (orderId) => {
502   - updateOrder({ garOrderId: orderId, handleType: 0 }).then(res => {
503   - if (res.data.success) {
504   - if (res.data.data === "订单已经被别人接受啦") {
505   - uni.$u.toast(res.data.data)
506   - uni.$u.route({
507   - type: "reLaunch",
508   - url: `pages/order/index`,
509   - })
510   - } else {
511   - uni.$u.toast(res.data.data)
512   - handleOrderDetail(orderId)
513   - }
514   - }
515   - })
516   -}
517   -
518   -const currentStep = (step) => {
519   - if (step > 2) {
520   - return step - 1;
521   - }
522   - return step;
523   -}
524   -
525   -/**
526   - * 清运状态
527   - * @param {*} status
528   - */
529   -const cleanStatus = (status) => {
530   - if (dataGram.garCancelFlag === 1) {
531   - return '取消清运';
532   - }
533   - switch (status) {
534   - case 0:
535   - return '准备清运';
536   - case 1:
537   - return '正在清运';
538   - case 3:
539   - return '清运完成';
540   - }
541   -}
542   -
543   -const handleDisposalDispatchConfirm = (val) => {
544   - console.log(val);
545   - if (!val) {
546   - return
547   - }
548   - let data = {
549   - garOrderId: orderId.value,
550   - dispatchList: []
551   - }
552   - for (const key in val) {
553   - data.dispatchList.push({
554   - ...val[key]
555   - });
556   - }
557   - console.log(data);
558   - dispatchDisposalOrders(data).then(res => {
559   - if (res.data.success) {
560   - uni.$u.toast(res.data.msg)
561   - } else {
562   - uni.$u.toast("指定人员失败,请重试")
563   - }
564   - clashDriverDispatchRef.value.close()
565   - })
566   -}
567   -
568   -const handlerUpdateOrderClick = () => {
569   - carPopupShowFlag.value = true;
570   - // TODO 照搬一键清运得弹窗
571   - console.log("点击了修改订单按钮");
572   - // TODO
573   - queryCarList({
574   - companyId: dataGram.value.garOrderCompanyId
575   - }).then(res => {
576   - // 设置车辆类型
577   - candidates.value = [[...new Set(res.data.rows
578   - .filter(item => item.containerVolume)
579   - .map(item => {
580   - garCarLabelInfoList.value[item.carType] = item
581   - return item.carType
582   - }))
583   - ]];
584   - // 设置初始车辆数量
585   - candidates.value[0].forEach((item, index) => {
586   - garCarInfoList.value[item] = {
587   - garOrderCarNumber: 0,
588   - garOrderCarType: item,
589   - id: garCarLabelInfoList.value[item].id,
590   - containerVolume: garCarLabelInfoList.value[item].containerVolume
591   - }
592   - })
593   - // 设置默认车辆
594   - paramFrom.value.carType = candidates.value[0][0];
595   - garCarLabelInfoNow.value = garCarLabelInfoList.value[paramFrom.value.carType]
596   - console.log(garCarLabelInfoList.value, garCarInfoList.value, paramFrom.value.carType);
597   - })
598   -}
599   -// 指定人员
600   -const handleDriverDispatchConfirm = (val) => {
601   - console.log(val);
602   - if (!val) {
603   - return
604   - }
605   - let data = {
606   - garOrderId: orderId.value,
607   - dispatchList: []
608   - }
609   - for (const key in val) {
610   - data.dispatchList.push({
611   - ...val[key]
612   - });
613   - }
614   - console.log(data);
615   - dispatchOrders(data).then(res => {
616   - if (res.data.success) {
617   - uni.$u.toast(res.data.msg)
618   - } else {
619   - uni.$u.toast("指定人员失败,请重试")
620   - }
621   - clashDriverDispatchRef.value.close()
622   - })
623   -}
624   -
625   -const submitUpdateCarInfo = () => {
626   - let garCarInfos = [];
627   - for (const key in garCarInfoList.value) {
628   - garCarInfos.push(garCarInfoList.value[key])
629   - }
630   -
631   - let data = {
632   - garOrderId: orderId.value,
633   - garCarInfoList: garCarInfos,
634   - updated: true
635   - }
636   - if(dataGram.value.garOrderAgreementTime){
637   - let index = dataGram.value.garOrderAgreementTime.indexOf(' ')+1;
638   - if(index > 0){
639   - let val = dataGram.value.garOrderAgreementTime.substring(index,dataGram.value.garOrderAgreementTime.length);
640   -
641   -
642   - if(val == "07:00-08:00" || val == "08:00-09:00"|| val == "09:00-10:00" || val == "10:00-11:00" || val == "11:00-12:00"|| val == "12:00-13:00" || val == "13:00-14:00"
643   - || val == "14:00-15:00" || val == "15:00-16:00"|| val == "16:00-17:00"|| val == "17:00-18:00" || val == "18:00-19:00"|| val == "19:00-20:00"|| val == "20:00-21:00"
644   - || val == "21:00-22:00"){
645   - let size = garCarInfos.length;
646   - for (let index = 0; index < size; index++) {
647   - if((garCarInfos[index].containerVolume=="8" || parseInt(garCarInfos[index].containerVolume) >=8) && garCarInfos[index].garOrderCarNumber > 0){
648   - console.log(garCarInfos[index]);
649   -
650   - jumpPrompt("中大型车辆只能选择22:00-07:00时间段");
651   - return;
652   - }
653   -
654   - }
655   - }
656   -
657   - }
658   -
659   - }
660   - console.log(dataGram.value.garOrderAgreementTime );
661   - console.log(garCarInfos);
662   - console.log("=================================>");
663   -
664   -
665   - updateOrder(data).then(res => {
666   - if (res.data.code == 200) {
667   - uni.$u.toast("车辆信息修改成功")
668   - // 更新数据
669   - handleOrderDetail(orderId.value)
670   - // 关闭弹窗
671   - carPopupShowFlag.value = false
672   - }
673   - }).catch(err => {
674   - uni.$u.toast("修改失败,请重试")
675   - })
676   -}
677   -
678   -
679   -
680   -const jumpPrompt = (msg) => {
681   - uni.showModal({
682   - title: '提示',
683   - content: msg,
684   - showCancel: false,
685   - success: function (res) {
686   - if (res.confirm) {
687   - } else if (res.cancel) {
688   - }
689   - }
690   - });
691   -}
692   -
693   -/**
694   - * 初始化信息
695   - */
696   -onLoad((options) => {
697   - orderId.value = options.orderId
698   - handleOrderDetail(orderId.value)
699   -})
700   -
701   -onShow(() => {
702   - try {
703   - if (isOnloadIn.value) {
704   - handleOrderDetail(orderId.value)
705   - } else {
706   - isOnloadIn.value = true
707   - }
708   - } catch (error) {
709   - console.log(error);
710   - }
711   -})
  256 + import {
  257 + queryCarList
  258 + } from '@/apis/carinfo.js';
  259 + import {
  260 + dispatchDisposalOrders,
  261 + dispatchOrders,
  262 + queryDisposalDispatch,
  263 + queryOrderDetail,
  264 + queryOrderDispatch,
  265 + updateOrder
  266 + } from "@/apis/order.js";
  267 + import {
  268 + createQrCode
  269 + } from '@/apis/qrcode.js';
  270 + import uqrcode from '@/components/Sansnn-uQRCode_4.0.6/components/uqrcode/uqrcode.vue';
  271 + import clashDisposalDispatch from '@/components/clash-disposal-dispatch/index.vue';
  272 + import clashDriverDispatch from '@/components/clash-driver-dispatch/index.vue';
  273 + import zStatic from '@/components/z-paging/js/z-paging-static';
  274 + import {
  275 + useMainStore
  276 + } from '@/stores/index.js';
  277 + import {
  278 + onLoad,
  279 + onShow
  280 + } from '@dcloudio/uni-app';
  281 + import {
  282 + computed,
  283 + ref
  284 + } from 'vue';
  285 + const paramFrom = ref({
  286 + carNumber: 0,
  287 + carType: ""
  288 + })
  289 + const garCarInfoList = ref({})
  290 + const carPopupShowFlag = ref(false)
  291 + const isOnloadIn = ref(false)
  292 + const clashDriverDispatchRef = ref()
  293 + const clashDisposalDispatchRef = ref()
  294 + const driverPersonnelList = ref([])
  295 + const disposalPersonnelList = ref([])
  296 + const store = useMainStore();
  297 + const userType = computed(() => store.userType)
  298 + const dataGram = ref();
  299 + const orderId = ref(null)
  300 + const currentImages = ref([])
  301 + const putOnImages = ref([])
  302 + const putDownImages = ref([])
  303 + const emptyBase64Image = ref(zStatic.base64Empty)
  304 + const showUQRcode = ref(false)
  305 + const spaceStr = ref("")
  306 + const cancelShow = ref(false)
  307 + const currentCancelName = ref("")
  308 + const qrCodeRef = ref()
  309 + const qrCodeText = ref()
  310 + const candidates = ref([])
  311 + const garCarLabelInfoList = ref({})
  312 + const garCarLabelInfoNow = ref()
  313 + const list = computed(() => {
  314 + let reason = [{
  315 + name: '订单信息填写有误',
  316 + },
  317 + {
  318 + name: '线下协商有问题',
  319 + },
  320 + {
  321 + name: '不需要清运了',
  322 + },
  323 + {
  324 + name: '其他',
  325 + },
  326 + {
  327 + name: '提交',
  328 + }
  329 + ]
  330 + if (userType.value === '用户') {
  331 + reason.unshift({
  332 + name: '长时间无人接单',
  333 + })
  334 + }
  335 + return reason
  336 + })
  337 +
  338 + const handlePopupClick = (val) => {
  339 + carPopupShowFlag.value = val
  340 + }
  341 + // 创建二维码
  342 + const createQrCodeLocal = (orderId) => {
  343 + // 获取本地地址拼接订单id
  344 + showUQRcode.value = true;
  345 + const hostname = window.location.hostname;
  346 + const port = window.location.port;
  347 + const protocol = window.location.protocol;
  348 + const localAddress = `${protocol}//${hostname}:${port}`;
  349 + // const localAddress = `http://localhost:5173`;
  350 + qrCodeText.value = localAddress + "/pages/order-info/order-other/guest/index?orderId=" + orderId;
  351 + console.log(qrCodeRef.value);
  352 + }
  353 + // 获取二维码
  354 + const handleQrCodeClick = (orderId) => {
  355 + // 微信小程序可用
  356 + // #ifdef MP-WEIXIN
  357 + createQrCode(orderId).then((res) => {
  358 + if (res.data.success) {
  359 + uni.previewImage({
  360 + urls: [res.data.data],
  361 + longPressActions: {
  362 + itemList: ['发送给朋友', '保存图片', '收藏'],
  363 + success: function(res) {
  364 + console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
  365 + },
  366 + fail: function(res) {
  367 + console.log(res);
  368 + }
  369 + }
  370 + })
  371 + }
  372 + })
  373 + // #endif
  374 + // H5
  375 + // #ifdef H5
  376 + createQrCodeLocal(orderId)
  377 + // #endif
  378 + }
  379 +
  380 + const handleOrderDispatchClick = (orderId) => {
  381 + // 获取驾驶员人员
  382 + queryOrderDispatch(orderId).then(res => {
  383 + console.log(res.data.data);
  384 + if (res.data.success) {
  385 + // 过滤车辆 非用户选择的车辆无法选中
  386 + driverPersonnelList.value = res.data.data
  387 + clashDriverDispatchRef.value.open(res.data.data)
  388 + } else {
  389 + uni.$u.toast("驾驶员分配成功!")
  390 + }
  391 + })
  392 + }
  393 + const handleDisposalDispatchClick = (orderId) => {
  394 + // 获取处置场所人员
  395 + queryDisposalDispatch(orderId).then(res => {
  396 + if (res.data.success) {
  397 + disposalPersonnelList.value = res.data.data
  398 + clashDisposalDispatchRef.value.open(res.data.data)
  399 + } else {
  400 + uni.$u.toast("处理场所分配成功!")
  401 + }
  402 + })
  403 + }
  404 +
  405 +
  406 +
  407 + const handleClose = (e) => {
  408 + cancelShow.value = false
  409 + }
  410 + const handleEvaluateDetail = (orderId, userType) => {
  411 + uni.$u.route(`pages/order-info/order-other/evaluate-info/index`, {
  412 + orderId: orderId,
  413 + userType: userType
  414 + })
  415 + }
  416 + const selectClick = (index) => {
  417 + currentCancelName.value = index.name;
  418 + }
  419 + const handleOrderDetail = (orderId) => {
  420 + queryOrderDetail(orderId).then(res => {
  421 + dataGram.value = res.data.data;
  422 + console.log(res.data.data);
  423 + currentImages.value = res.data.data.currentImages.map(item => {
  424 + return {
  425 + url: import.meta.env.VITE_BASE_URL + item
  426 + };
  427 + });
  428 + putOnImages.value = res.data.data.putOnImages.map(item => {
  429 + return {
  430 + url: import.meta.env.VITE_BASE_URL + item
  431 + };
  432 + });
  433 + putDownImages.value = res.data.data.putDownImages.map(item => {
  434 + return {
  435 + url: import.meta.env.VITE_BASE_URL + item
  436 + };
  437 + });
  438 + })
  439 + }
  440 + /**
  441 + * 拨打电话回调
  442 + */
  443 + const handleContactClick = (val) => {
  444 + uni.makePhoneCall({
  445 + phoneNumber: val
  446 + }).then(res => {}).catch(err => {});
  447 + }
  448 +
  449 + const handlerJumpOtherApp = (latitude, longitude, garCoordinate) => {
  450 + console.log(latitude + "=================>" + longitude);
  451 + // 给出提示确定要跳转吗
  452 + uni.showModal({
  453 + title: '提示',
  454 + content: '是否跳转到app定位进行导航?',
  455 + success: function(res) {
  456 + if (res.confirm) {
  457 + uni.openLocation({
  458 + latitude: latitude,
  459 + longitude: longitude,
  460 + success: function() {
  461 + console.log('success');
  462 + }
  463 + });
  464 + }
  465 + }
  466 + })
  467 + }
  468 +
  469 + /**
  470 + * 取消订单
  471 + * @param {*} orderId
  472 + */
  473 + const handleOderCancelClick = () => {
  474 + cancelShow.value = true;
  475 + }
  476 +
  477 + /**
  478 + * 提交取消订单
  479 + */
  480 + const submitFunction = (otherReason) => {
  481 + let reason = otherReason
  482 + if (currentCancelName.value != "其他") {
  483 + reason = currentCancelName.value
  484 + }
  485 + if (!reason) {
  486 + uni.$u.toast("请提供取消订单的原因")
  487 + return
  488 + }
  489 + let params = {
  490 + garOrderId: orderId.value,
  491 + garCancelFlag: 1,
  492 + garReason: reason
  493 + }
  494 + updateOrder(params).then(res => {
  495 + if (res.data.success) {
  496 + cancelShow.value = false
  497 + uni.$u.toast(res.data.data)
  498 + uni.$u.route({
  499 + type: "reLaunch",
  500 + url: `pages/order/index`,
  501 + })
  502 + }
  503 + })
  504 + }
  505 + // 提交完成
  506 + const handleSubmitSuccess = (orderId) => {
  507 + uni.showModal({
  508 + title: '提示',
  509 + content: '订单已经清运完成了吗?',
  510 + success: function(res) {
  511 + if (res.confirm) {
  512 + updateOrder({
  513 + garOrderId: orderId,
  514 + handleType: 3
  515 + }).then(res => {
  516 + if (res.data.success) {
  517 + uni.$u.toast("已完成")
  518 + handleOrderDetail(orderId)
  519 + }
  520 + })
  521 + } else if (res.cancel) {}
  522 + }
  523 + });
  524 +
  525 + }
  526 + const handleEvaluate = (orderId, userType) => {
  527 + uni.$u.route(`pages/order-info/order-other/evaluate/index?orderId=${orderId}&userType=${userType}`)
  528 + }
  529 +
  530 + // 接收订单
  531 + const handleOrder = (orderId) => {
  532 + updateOrder({
  533 + garOrderId: orderId,
  534 + handleType: 0
  535 + }).then(res => {
  536 + if (res.data.success) {
  537 + if (res.data.data === "订单已经被别人接受啦") {
  538 + uni.$u.toast(res.data.data)
  539 + uni.$u.route({
  540 + type: "reLaunch",
  541 + url: `pages/order/index`,
  542 + })
  543 + } else {
  544 + uni.$u.toast(res.data.data)
  545 + handleOrderDetail(orderId)
  546 + }
  547 + }
  548 + })
  549 + }
  550 +
  551 + const currentStep = (step) => {
  552 + if (step > 2) {
  553 + return step - 1;
  554 + }
  555 + return step;
  556 + }
  557 +
  558 + /**
  559 + * 清运状态
  560 + * @param {*} status
  561 + */
  562 + const cleanStatus = (status) => {
  563 + if (dataGram.garCancelFlag === 1) {
  564 + return '取消清运';
  565 + }
  566 + switch (status) {
  567 + case 0:
  568 + return '准备清运';
  569 + case 1:
  570 + return '正在清运';
  571 + case 3:
  572 + return '清运完成';
  573 + }
  574 + }
  575 +
  576 + const handleDisposalDispatchConfirm = (val) => {
  577 + console.log(val);
  578 + if (!val) {
  579 + return
  580 + }
  581 + let data = {
  582 + garOrderId: orderId.value,
  583 + dispatchList: []
  584 + }
  585 + for (const key in val) {
  586 + data.dispatchList.push({
  587 + ...val[key]
  588 + });
  589 + }
  590 + console.log(data);
  591 + dispatchDisposalOrders(data).then(res => {
  592 + if (res.data.success) {
  593 + uni.$u.toast(res.data.msg)
  594 + } else {
  595 + uni.$u.toast("指定人员失败,请重试")
  596 + }
  597 + clashDriverDispatchRef.value.close()
  598 + })
  599 + }
  600 +
  601 + const handlerUpdateOrderClick = () => {
  602 + carPopupShowFlag.value = true;
  603 + // TODO 照搬一键清运得弹窗
  604 + console.log("点击了修改订单按钮");
  605 + // TODO
  606 + queryCarList({
  607 + companyId: dataGram.value.garOrderCompanyId
  608 + }).then(res => {
  609 + // 设置车辆类型
  610 + candidates.value = [
  611 + [...new Set(res.data.rows
  612 + .filter(item => item.containerVolume)
  613 + .map(item => {
  614 + garCarLabelInfoList.value[item.carType] = item
  615 + return item.carType
  616 + }))]
  617 + ];
  618 + // 设置初始车辆数量
  619 + candidates.value[0].forEach((item, index) => {
  620 + garCarInfoList.value[item] = {
  621 + garOrderCarNumber: 0,
  622 + garOrderCarType: item,
  623 + id: garCarLabelInfoList.value[item].id,
  624 + containerVolume: garCarLabelInfoList.value[item].containerVolume
  625 + }
  626 + })
  627 + // 设置默认车辆
  628 + paramFrom.value.carType = candidates.value[0][0];
  629 + garCarLabelInfoNow.value = garCarLabelInfoList.value[paramFrom.value.carType]
  630 + console.log(garCarLabelInfoList.value, garCarInfoList.value, paramFrom.value.carType);
  631 + })
  632 + }
  633 + // 指定人员
  634 + const handleDriverDispatchConfirm = (val) => {
  635 + console.log(val);
  636 + if (!val) {
  637 + return
  638 + }
  639 + let data = {
  640 + garOrderId: orderId.value,
  641 + dispatchList: []
  642 + }
  643 + for (const key in val) {
  644 + data.dispatchList.push({
  645 + ...val[key]
  646 + });
  647 + }
  648 + console.log(data);
  649 + dispatchOrders(data).then(res => {
  650 + if (res.data.success) {
  651 + uni.$u.toast(res.data.msg)
  652 + } else {
  653 + uni.$u.toast("指定人员失败,请重试")
  654 + }
  655 + clashDriverDispatchRef.value.close()
  656 + })
  657 + }
  658 +
  659 + const submitUpdateCarInfo = () => {
  660 + let garCarInfos = [];
  661 + for (const key in garCarInfoList.value) {
  662 + garCarInfos.push(garCarInfoList.value[key])
  663 + }
  664 +
  665 + let data = {
  666 + garOrderId: orderId.value,
  667 + garCarInfoList: garCarInfos,
  668 + updated: true
  669 + }
  670 + if (dataGram.value.garOrderAgreementTime) {
  671 + let index = dataGram.value.garOrderAgreementTime.indexOf(' ') + 1;
  672 + if (index > 0) {
  673 + let val = dataGram.value.garOrderAgreementTime.substring(index, dataGram.value.garOrderAgreementTime
  674 + .length);
  675 +
  676 +
  677 + if (val == "07:00-08:00" || val == "08:00-09:00" || val == "09:00-10:00" || val == "10:00-11:00" ||
  678 + val == "11:00-12:00" || val == "12:00-13:00" || val == "13:00-14:00" ||
  679 + val == "14:00-15:00" || val == "15:00-16:00" || val == "16:00-17:00" || val == "17:00-18:00" ||
  680 + val == "18:00-19:00" || val == "19:00-20:00" || val == "20:00-21:00" ||
  681 + val == "21:00-22:00") {
  682 + let size = garCarInfos.length;
  683 + for (let index = 0; index < size; index++) {
  684 + if ((garCarInfos[index].containerVolume == "8" || parseInt(garCarInfos[index]
  685 + .containerVolume) >= 8) && garCarInfos[index].garOrderCarNumber > 0) {
  686 + console.log(garCarInfos[index]);
  687 +
  688 + jumpPrompt("中大型车辆只能选择22:00-07:00时间段");
  689 + return;
  690 + }
  691 +
  692 + }
  693 + }
  694 +
  695 + }
  696 +
  697 + }
  698 + console.log(dataGram.value.garOrderAgreementTime);
  699 + console.log(garCarInfos);
  700 + console.log("=================================>");
  701 +
  702 +
  703 + updateOrder(data).then(res => {
  704 + if (res.data.code == 200) {
  705 + uni.$u.toast("车辆信息修改成功")
  706 + // 更新数据
  707 + handleOrderDetail(orderId.value)
  708 + // 关闭弹窗
  709 + carPopupShowFlag.value = false
  710 + }
  711 + }).catch(err => {
  712 + uni.$u.toast("修改失败,请重试")
  713 + })
  714 + }
  715 +
  716 +
  717 +
  718 + const jumpPrompt = (msg) => {
  719 + uni.showModal({
  720 + title: '提示',
  721 + content: msg,
  722 + showCancel: false,
  723 + success: function(res) {
  724 + if (res.confirm) {} else if (res.cancel) {}
  725 + }
  726 + });
  727 + }
  728 +
  729 + /**
  730 + * 初始化信息
  731 + */
  732 + onLoad((options) => {
  733 + orderId.value = options.orderId
  734 + handleOrderDetail(orderId.value)
  735 + })
  736 +
  737 + onShow(() => {
  738 + try {
  739 + if (isOnloadIn.value) {
  740 + handleOrderDetail(orderId.value)
  741 + } else {
  742 + isOnloadIn.value = true
  743 + }
  744 + } catch (error) {
  745 + console.log(error);
  746 + }
  747 + })
712 748 </script>
713 749  
714 750 <style lang="scss" scoped>
715   -$custom-marin-bottom: 20rpx;
716   -$custom-page-padding: 20rpx;
717   -$custom-border-radio: 20rpx;
718   -$custom-bottom-height: 200rpx;
719   -
720   -@mixin card {
721   - padding: $custom-page-padding;
722   - box-sizing: border-box;
723   - background-color: #ffffff;
724   - border-radius: $custom-border-radio;
725   - margin-bottom: $custom-marin-bottom;
726   -}
727   -
728   -.order-detail-container {
729   - height: 100%;
730   - width: 100%;
731   - background-color: $u-info-light;
732   - box-sizing: border-box;
733   - overflow-y: scroll;
734   - background: linear-gradient(to bottom, #19a97c, $u-info-light, $u-info-light, $u-info-light);
735   -
736   -
737   - .order-detail-container-box {
738   - height: 100%;
739   - width: 100%;
740   - padding: $custom-page-padding;
741   - box-sizing: border-box;
742   -
743   - .order-detail-top {
744   - @include card();
745   -
746   - .order-detail-top-box {
747   - .order-detail-top-box-step {
748   - u-steps {
749   - u-steps-item {}
750   - }
751   - }
752   - }
753   - }
754   -
755   - .order-detail-container-box-card {
756   - @include card();
757   -
758   - .order-detail-container-header-card-title {
759   - font-weight: bold;
760   - line-height: 80rpx;
761   - border-bottom: 3rpx solid $u-info-light;
762   - margin-bottom: $custom-marin-bottom;
763   - color: $u-primary;
764   - display: flex;
765   - align-items: center;
766   -
767   - .order-detail-container-header-card-uicon {
768   - background-color: $u-primary;
769   - margin-right: 10rpx;
770   - height: 35rpx;
771   - width: 15rpx;
772   - }
773   - }
774   -
775   - .order-detail-container-header-item {
776   - display: flex;
777   - margin-bottom: $custom-marin-bottom;
778   -
779   - // font-size: 30rpx;
780   - // font-weight: bold;
781   - // color: $u-main-color;
782   - .order-detail-container-header-title {
783   - color: $u-main-color;
784   - white-space: nowrap; //溢出不换行
785   - color: $u-info;
786   - }
787   -
788   - .order-detail-container-header-content {
789   - display: flex;
790   - }
791   - }
792   - }
793   - }
794   -
795   -
796   - .space-box {
797   - padding-bottom: $custom-bottom-height;
798   - margin-bottom: 40rpx;
799   - }
800   -
801   -
802   - .order-detail-bottom {
803   - position: absolute;
804   - width: 100%;
805   - // height: 100%;
806   - bottom: 0;
807   - left: 0;
808   -
809   - .movableAreaDetail {
810   - pointer-events: none;
811   - position: fixed;
812   - left: 0;
813   - top: 0;
814   - width: 100%;
815   - height: calc(100% - $custom-bottom-height);
816   - z-index: 999;
817   -
818   - .movableView {
819   - pointer-events: auto;
820   - min-height: 60rpx;
821   - min-width: 60rpx;
822   -
823   - .order-detail-call-box-container {
824   - min-height: 60rpx;
825   - min-width: 60rpx;
826   - display: flex;
827   - align-items: center;
828   - justify-content: center;
829   - background-color: #19a97c;
830   - border-radius: 100%;
831   - }
832   - }
833   - }
834   -
835   - .order-detail-bottom-box {
836   - height: $custom-bottom-height;
837   - padding: 50rpx;
838   - box-sizing: border-box;
839   - display: flex;
840   - justify-content: space-between;
841   - align-items: center;
842   -
843   - .order-detail-bottom-left {
844   - min-width: 200rpx;
845   - }
846   -
847   - .order-detail-bottom-right {
848   - min-width: 200rpx;
849   - }
850   - }
851   - }
852   -}
853   -
854   -.mask-container {
855   - position: fixed;
856   - top: 0;
857   - left: 0;
858   - width: 100%;
859   - height: 100%;
860   - z-index: 999;
861   - background-color: rgba(0, 0, 0, 0.5);
862   - display: flex;
863   - align-items: center;
864   - justify-content: center;
865   -}
866   -
867   -// 弹出框
868   -.company-clean-container-car-popup {
869   - min-height: 450rpx;
870   - padding: $custom-page-padding;
871   - box-sizing: border-box;
872   -
873   - .company-clean-container-car-popup-content {
874   - font-size: 28rpx;
875   -
876   - .company-clean-container-car-popup-content-box {
877   - box-sizing: border-box;
878   - padding: $custom-page-padding;
879   - border: 2rpx solid #19a97c;
880   - border-radius: 10rpx;
881   -
882   - .company-clean-container-car-popup-content-box-item {
883   - display: flex;
884   - align-items: center;
885   - justify-content: space-between;
886   - margin: 20rpx 0;
887   - box-sizing: border-box;
888   -
889   - .company-clean-container-car-popup-content-box-item-text {}
890   -
891   - .company-clean-container-car-popup-content-box-item-number {}
892   - }
893   - }
894   -
895   - .company-clean-container-car-popup-content-title {
896   - color: $u-main-color;
897   - box-sizing: border-box;
898   - margin-bottom: 20rpx;
899   - font-size: 30rpx;
900   - font-weight: bold;
901   - }
902   - }
903   -
904   - .company-clean-container-car-popup-button-safe {
905   - width: 100%;
906   - height: $custom-bottom-height;
907   - box-sizing: border-box;
908   - padding: 20rpx;
909   -
910   - .company-clean-container-car-popup-button-safe-btn {
911   - width: 100%;
912   - height: 100%;
913   - border-radius: 10rpx;
914   - font-size: 30rpx;
915   - line-height: 100rpx;
916   - text-align: center;
917   - }
918   - }
919   -}
920   -</style>
  751 + $custom-marin-bottom: 20rpx;
  752 + $custom-page-padding: 20rpx;
  753 + $custom-border-radio: 20rpx;
  754 + $custom-bottom-height: 200rpx;
  755 +
  756 + @mixin card {
  757 + padding: $custom-page-padding;
  758 + box-sizing: border-box;
  759 + background-color: #ffffff;
  760 + border-radius: $custom-border-radio;
  761 + margin-bottom: $custom-marin-bottom;
  762 + }
  763 +
  764 + .order-detail-container {
  765 + height: 100%;
  766 + width: 100%;
  767 + background-color: $u-info-light;
  768 + box-sizing: border-box;
  769 + overflow-y: scroll;
  770 + background: linear-gradient(to bottom, #19a97c, $u-info-light, $u-info-light, $u-info-light);
  771 +
  772 +
  773 + .order-detail-container-box {
  774 + height: 100%;
  775 + width: 100%;
  776 + padding: $custom-page-padding;
  777 + box-sizing: border-box;
  778 +
  779 + .order-detail-top {
  780 + @include card();
  781 +
  782 + .order-detail-top-box {
  783 + .order-detail-top-box-step {
  784 + u-steps {
  785 + u-steps-item {}
  786 + }
  787 + }
  788 + }
  789 + }
  790 +
  791 + .order-detail-container-box-card {
  792 + @include card();
  793 +
  794 + .order-detail-container-header-card-title {
  795 + font-weight: bold;
  796 + line-height: 80rpx;
  797 + border-bottom: 3rpx solid $u-info-light;
  798 + margin-bottom: $custom-marin-bottom;
  799 + color: $u-primary;
  800 + display: flex;
  801 + align-items: center;
  802 +
  803 + .order-detail-container-header-card-uicon {
  804 + background-color: $u-primary;
  805 + margin-right: 10rpx;
  806 + height: 35rpx;
  807 + width: 15rpx;
  808 + }
  809 + }
  810 +
  811 + .order-detail-container-header-item {
  812 + display: flex;
  813 + margin-bottom: $custom-marin-bottom;
  814 +
  815 + // font-size: 30rpx;
  816 + // font-weight: bold;
  817 + // color: $u-main-color;
  818 + .order-detail-container-header-title {
  819 + color: $u-main-color;
  820 + white-space: nowrap; //溢出不换行
  821 + color: $u-info;
  822 + }
  823 +
  824 + .order-detail-container-header-content {
  825 + display: flex;
  826 + }
  827 + }
  828 + }
  829 + }
  830 +
  831 +
  832 + .space-box {
  833 + padding-bottom: $custom-bottom-height;
  834 + margin-bottom: 40rpx;
  835 + }
  836 +
  837 +
  838 + .order-detail-bottom {
  839 + position: absolute;
  840 + width: 100%;
  841 + // height: 100%;
  842 + bottom: 0;
  843 + left: 0;
  844 +
  845 + .movableAreaDetail {
  846 + pointer-events: none;
  847 + position: fixed;
  848 + left: 0;
  849 + top: 0;
  850 + width: 100%;
  851 + height: calc(100% - $custom-bottom-height);
  852 + z-index: 999;
  853 +
  854 + .movableView {
  855 + pointer-events: auto;
  856 + min-height: 60rpx;
  857 + min-width: 60rpx;
  858 +
  859 + .order-detail-call-box-container {
  860 + min-height: 60rpx;
  861 + min-width: 60rpx;
  862 + display: flex;
  863 + align-items: center;
  864 + justify-content: center;
  865 + background-color: #19a97c;
  866 + border-radius: 100%;
  867 + }
  868 + }
  869 + }
  870 +
  871 + .order-detail-bottom-box {
  872 + height: $custom-bottom-height;
  873 + padding: 50rpx;
  874 + box-sizing: border-box;
  875 + display: flex;
  876 + justify-content: space-between;
  877 + align-items: center;
  878 +
  879 + .order-detail-bottom-left {
  880 + min-width: 200rpx;
  881 + }
  882 +
  883 + .order-detail-bottom-right {
  884 + min-width: 200rpx;
  885 + }
  886 + }
  887 + }
  888 + }
  889 +
  890 + .mask-container {
  891 + position: fixed;
  892 + top: 0;
  893 + left: 0;
  894 + width: 100%;
  895 + height: 100%;
  896 + z-index: 999;
  897 + background-color: rgba(0, 0, 0, 0.5);
  898 + display: flex;
  899 + align-items: center;
  900 + justify-content: center;
  901 + }
  902 +
  903 + // 弹出框
  904 + .company-clean-container-car-popup {
  905 + min-height: 450rpx;
  906 + padding: $custom-page-padding;
  907 + box-sizing: border-box;
  908 +
  909 + .company-clean-container-car-popup-content {
  910 + font-size: 28rpx;
  911 +
  912 + .company-clean-container-car-popup-content-box {
  913 + box-sizing: border-box;
  914 + padding: $custom-page-padding;
  915 + border: 2rpx solid #19a97c;
  916 + border-radius: 10rpx;
  917 +
  918 + .company-clean-container-car-popup-content-box-item {
  919 + display: flex;
  920 + align-items: center;
  921 + justify-content: space-between;
  922 + margin: 20rpx 0;
  923 + box-sizing: border-box;
  924 +
  925 + .company-clean-container-car-popup-content-box-item-text {}
  926 +
  927 + .company-clean-container-car-popup-content-box-item-number {}
  928 + }
  929 + }
  930 +
  931 + .company-clean-container-car-popup-content-title {
  932 + color: $u-main-color;
  933 + box-sizing: border-box;
  934 + margin-bottom: 20rpx;
  935 + font-size: 30rpx;
  936 + font-weight: bold;
  937 + }
  938 + }
  939 +
  940 + .company-clean-container-car-popup-button-safe {
  941 + width: 100%;
  942 + height: $custom-bottom-height;
  943 + box-sizing: border-box;
  944 + padding: 20rpx;
  945 +
  946 + .company-clean-container-car-popup-button-safe-btn {
  947 + width: 100%;
  948 + height: 100%;
  949 + border-radius: 10rpx;
  950 + font-size: 30rpx;
  951 + line-height: 100rpx;
  952 + text-align: center;
  953 + }
  954 + }
  955 + }
  956 +</style>
921 957 \ No newline at end of file
... ...
garbage-removal/src/pages/order/order-disposal/index.vue
... ... @@ -96,12 +96,12 @@ const handleScan = () =&gt; {
96 96 })
97 97 }
98 98 } catch (error) {
99   - uni.$u.toast("无法确认当前二维码趟次,请扫描正在进行的运输趟次");
  99 + uni.$u.toast("无法确认当前二维码趟次,请扫描正在进行的运输趟次123");
100 100 console.log("===================>weixin");
101 101 }
102 102 },
103 103 fail:function (res) {
104   - uni.$u.toast("图片扫码失败,请检查二维码图片");
  104 + uni.$u.toast("图片扫码失败,请检查二维码图片123");
105 105 console.log("===================>weixin");
106 106 }
107 107 });
... ... @@ -248,4 +248,4 @@ onMounted(() =&gt; {
248 248 }
249 249 }
250 250 }
251 251 -</style>
  252 +</style>
252 253 \ No newline at end of file
... ...