fix: BUG修改
This commit is contained in:
parent
63c62d605b
commit
d7a47c544d
166
package-lock.json
generated
166
package-lock.json
generated
@ -26,8 +26,10 @@
|
|||||||
"echarts-liquidfill": "^3.1.0",
|
"echarts-liquidfill": "^3.1.0",
|
||||||
"element-china-area-data": "^5.0.2",
|
"element-china-area-data": "^5.0.2",
|
||||||
"element-plus": "^2.2.30",
|
"element-plus": "^2.2.30",
|
||||||
|
"file-saver": "^2.0.5",
|
||||||
"js-base64": "^3.7.5",
|
"js-base64": "^3.7.5",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
|
"jszip": "^3.10.1",
|
||||||
"mars3d": "^3.5.6",
|
"mars3d": "^3.5.6",
|
||||||
"mars3d-cesium": "^1.105.0",
|
"mars3d-cesium": "^1.105.0",
|
||||||
"mitt": "^3.0.0",
|
"mitt": "^3.0.0",
|
||||||
@ -5095,8 +5097,7 @@
|
|||||||
"node_modules/core-util-is": {
|
"node_modules/core-util-is": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
|
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
|
||||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
|
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/cors": {
|
"node_modules/cors": {
|
||||||
"version": "2.8.5",
|
"version": "2.8.5",
|
||||||
@ -7040,6 +7041,11 @@
|
|||||||
"node": "^10.12.0 || >=12.0.0"
|
"node": "^10.12.0 || >=12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/file-saver": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
|
||||||
|
},
|
||||||
"node_modules/filelist": {
|
"node_modules/filelist": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz",
|
||||||
@ -8007,6 +8013,11 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/immediate": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
|
||||||
|
},
|
||||||
"node_modules/immer": {
|
"node_modules/immer": {
|
||||||
"version": "9.0.21",
|
"version": "9.0.21",
|
||||||
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
|
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
|
||||||
@ -8080,8 +8091,7 @@
|
|||||||
"node_modules/inherits": {
|
"node_modules/inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/ini": {
|
"node_modules/ini": {
|
||||||
"version": "1.3.8",
|
"version": "1.3.8",
|
||||||
@ -8404,8 +8414,7 @@
|
|||||||
"node_modules/isarray": {
|
"node_modules/isarray": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
|
||||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/isexe": {
|
"node_modules/isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -8570,6 +8579,49 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jszip": {
|
||||||
|
"version": "3.10.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz",
|
||||||
|
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
|
||||||
|
"dependencies": {
|
||||||
|
"lie": "~3.3.0",
|
||||||
|
"pako": "~1.0.2",
|
||||||
|
"readable-stream": "~2.3.6",
|
||||||
|
"setimmediate": "^1.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jszip/node_modules/pako": {
|
||||||
|
"version": "1.0.11",
|
||||||
|
"resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
|
||||||
|
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||||
|
},
|
||||||
|
"node_modules/jszip/node_modules/readable-stream": {
|
||||||
|
"version": "2.3.8",
|
||||||
|
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
|
||||||
|
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
||||||
|
"dependencies": {
|
||||||
|
"core-util-is": "~1.0.0",
|
||||||
|
"inherits": "~2.0.3",
|
||||||
|
"isarray": "~1.0.0",
|
||||||
|
"process-nextick-args": "~2.0.0",
|
||||||
|
"safe-buffer": "~5.1.1",
|
||||||
|
"string_decoder": "~1.1.1",
|
||||||
|
"util-deprecate": "~1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/jszip/node_modules/safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
},
|
||||||
|
"node_modules/jszip/node_modules/string_decoder": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||||
|
"dependencies": {
|
||||||
|
"safe-buffer": "~5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/kdbush": {
|
"node_modules/kdbush": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
|
||||||
@ -8619,6 +8671,14 @@
|
|||||||
"integrity": "sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==",
|
"integrity": "sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/lie": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"immediate": "~3.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lilconfig": {
|
"node_modules/lilconfig": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz",
|
"resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz",
|
||||||
@ -10457,8 +10517,7 @@
|
|||||||
"node_modules/process-nextick-args": {
|
"node_modules/process-nextick-args": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/protobufjs": {
|
"node_modules/protobufjs": {
|
||||||
"version": "7.2.3",
|
"version": "7.2.3",
|
||||||
@ -11287,6 +11346,11 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/setimmediate": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
|
||||||
|
},
|
||||||
"node_modules/setprototypeof": {
|
"node_modules/setprototypeof": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||||
@ -14367,8 +14431,7 @@
|
|||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"node_modules/v8-compile-cache": {
|
"node_modules/v8-compile-cache": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
@ -19176,8 +19239,7 @@
|
|||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
|
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
|
||||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
|
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"cors": {
|
"cors": {
|
||||||
"version": "2.8.5",
|
"version": "2.8.5",
|
||||||
@ -20632,6 +20694,11 @@
|
|||||||
"flat-cache": "^3.0.4"
|
"flat-cache": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-saver": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
|
||||||
|
},
|
||||||
"filelist": {
|
"filelist": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz",
|
||||||
@ -21411,6 +21478,11 @@
|
|||||||
"integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
|
"integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"immediate": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
|
||||||
|
},
|
||||||
"immer": {
|
"immer": {
|
||||||
"version": "9.0.21",
|
"version": "9.0.21",
|
||||||
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
|
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
|
||||||
@ -21471,8 +21543,7 @@
|
|||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.8",
|
"version": "1.3.8",
|
||||||
@ -21720,8 +21791,7 @@
|
|||||||
"isarray": {
|
"isarray": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
|
||||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"isexe": {
|
"isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -21848,6 +21918,51 @@
|
|||||||
"through": ">=2.2.7 <3"
|
"through": ">=2.2.7 <3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jszip": {
|
||||||
|
"version": "3.10.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz",
|
||||||
|
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
|
||||||
|
"requires": {
|
||||||
|
"lie": "~3.3.0",
|
||||||
|
"pako": "~1.0.2",
|
||||||
|
"readable-stream": "~2.3.6",
|
||||||
|
"setimmediate": "^1.0.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"pako": {
|
||||||
|
"version": "1.0.11",
|
||||||
|
"resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
|
||||||
|
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||||
|
},
|
||||||
|
"readable-stream": {
|
||||||
|
"version": "2.3.8",
|
||||||
|
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
|
||||||
|
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
||||||
|
"requires": {
|
||||||
|
"core-util-is": "~1.0.0",
|
||||||
|
"inherits": "~2.0.3",
|
||||||
|
"isarray": "~1.0.0",
|
||||||
|
"process-nextick-args": "~2.0.0",
|
||||||
|
"safe-buffer": "~5.1.1",
|
||||||
|
"string_decoder": "~1.1.1",
|
||||||
|
"util-deprecate": "~1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
},
|
||||||
|
"string_decoder": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "~5.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"kdbush": {
|
"kdbush": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz",
|
||||||
@ -21891,6 +22006,14 @@
|
|||||||
"integrity": "sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==",
|
"integrity": "sha512-9yowMWA70tKhKdCJDaltY0mNQG4OWo7pWKScnTp9aiSxS7s20ZYlwBRE3335nweOf5qKXVC7sDxJwMPM8/MFZg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"lie": {
|
||||||
|
"version": "3.3.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz",
|
||||||
|
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
||||||
|
"requires": {
|
||||||
|
"immediate": "~3.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lilconfig": {
|
"lilconfig": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz",
|
"resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz",
|
||||||
@ -23376,8 +23499,7 @@
|
|||||||
"process-nextick-args": {
|
"process-nextick-args": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"protobufjs": {
|
"protobufjs": {
|
||||||
"version": "7.2.3",
|
"version": "7.2.3",
|
||||||
@ -24046,6 +24168,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"setimmediate": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
|
||||||
|
},
|
||||||
"setprototypeof": {
|
"setprototypeof": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||||
@ -26202,8 +26329,7 @@
|
|||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"v8-compile-cache": {
|
"v8-compile-cache": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
|
|||||||
@ -38,8 +38,10 @@
|
|||||||
"echarts-liquidfill": "^3.1.0",
|
"echarts-liquidfill": "^3.1.0",
|
||||||
"element-china-area-data": "^5.0.2",
|
"element-china-area-data": "^5.0.2",
|
||||||
"element-plus": "^2.2.30",
|
"element-plus": "^2.2.30",
|
||||||
|
"file-saver": "^2.0.5",
|
||||||
"js-base64": "^3.7.5",
|
"js-base64": "^3.7.5",
|
||||||
"js-md5": "^0.7.3",
|
"js-md5": "^0.7.3",
|
||||||
|
"jszip": "^3.10.1",
|
||||||
"mars3d": "^3.5.6",
|
"mars3d": "^3.5.6",
|
||||||
"mars3d-cesium": "^1.105.0",
|
"mars3d-cesium": "^1.105.0",
|
||||||
"mitt": "^3.0.0",
|
"mitt": "^3.0.0",
|
||||||
|
|||||||
@ -49,6 +49,10 @@ export function calculateFileSize(byte: number) {
|
|||||||
* @returns 图像 url
|
* @returns 图像 url
|
||||||
*/
|
*/
|
||||||
export function createImage(file: UploadFile): string {
|
export function createImage(file: UploadFile): string {
|
||||||
|
console.log(file);
|
||||||
|
if (file.response && file.response.response && file.response.response.contentType.includes("image")) {
|
||||||
|
return file.response.response.url;
|
||||||
|
}
|
||||||
if (file.response && file.response.contentType.includes("image")) {
|
if (file.response && file.response.contentType.includes("image")) {
|
||||||
return file.response.url;
|
return file.response.url;
|
||||||
}
|
}
|
||||||
@ -56,7 +60,10 @@ export function createImage(file: UploadFile): string {
|
|||||||
/**
|
/**
|
||||||
* TODO: 边界情况, 如果 file.type 不包含 image 则认为非图像文件, 需要手动处理, 如判断是 pdf 附件则展示 pdf 缩略图
|
* TODO: 边界情况, 如果 file.type 不包含 image 则认为非图像文件, 需要手动处理, 如判断是 pdf 附件则展示 pdf 缩略图
|
||||||
*/
|
*/
|
||||||
if (file.type.indexOf("image") === -1) {
|
if (
|
||||||
|
(file && file.type && file.type.indexOf("image") === -1) ||
|
||||||
|
(file && file.contentType && file.contentType.indexOf("image") === -1)
|
||||||
|
) {
|
||||||
return "https://pic.616pic.com/ys_img/01/01/73/ofxoiudgdb.jpg";
|
return "https://pic.616pic.com/ys_img/01/01/73/ofxoiudgdb.jpg";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -474,15 +474,16 @@ const beforeClose = () => {
|
|||||||
*/
|
*/
|
||||||
const initFileList = () => {
|
const initFileList = () => {
|
||||||
if (props.files && props.files.length) {
|
if (props.files && props.files.length) {
|
||||||
props.files.map(item => {
|
// props.files.map(item => {
|
||||||
fileList.value.push({
|
// fileList.value.push({
|
||||||
response: { ...item, url: item.fileUrl },
|
// response: { ...item, url: item.fileUrl },
|
||||||
name: item.fileName,
|
// name: item.fileName,
|
||||||
url: item.fileUrl,
|
// url: item.fileUrl,
|
||||||
size: item.fileSize,
|
// size: item.fileSize,
|
||||||
type: item.contentType
|
// type: item.contentType
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
|
fileList.value = [...props.files];
|
||||||
successList.value = [...props.files];
|
successList.value = [...props.files];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
<el-option v-for="item in nameList" :key="item.code" :label="item.name" :value="item.code" />
|
<el-option v-for="item in nameList" :key="item.code" :label="item.name" :value="item.code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间">
|
<el-form-item label="报警时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.createTime"
|
v-model="form.createTime"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
@ -76,10 +76,10 @@
|
|||||||
<div class="img_title">{{ item.typeName }}</div>
|
<div class="img_title">{{ item.typeName }}</div>
|
||||||
<div style="display: flex; justify-content: space-between">
|
<div style="display: flex; justify-content: space-between">
|
||||||
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||||||
设备名称:{{ item.address }}
|
位置:{{ item.deviceName }}
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||||||
报警时间:{{ item.createTime }}
|
报警时间:{{ item.reportTime }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -103,6 +103,12 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringEngDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-dialog class="imgDialog" title="整改图片" width="50%" v-model="imgVisible" show-close>
|
<el-dialog class="imgDialog" title="整改图片" width="50%" v-model="imgVisible" show-close>
|
||||||
@ -113,8 +119,8 @@
|
|||||||
<div class="flx-justify-between">
|
<div class="flx-justify-between">
|
||||||
<div class="flx-center">
|
<div class="flx-center">
|
||||||
<span class="img_diatitle m-10">{{ imgList.typeName }}</span>
|
<span class="img_diatitle m-10">{{ imgList.typeName }}</span>
|
||||||
<span class="img_text m-10">设备名称:{{ imgList.deviceName }}</span>
|
<span class="img_text m-10">位置:{{ imgList.deviceName }}</span>
|
||||||
<span class="img_text m-10">时间:{{ imgList.createTime }}</span>
|
<span class="img_text m-10">时间:{{ imgList.reportTime }}</span>
|
||||||
<span class="img_text m-10 flx-center"
|
<span class="img_text m-10 flx-center"
|
||||||
><div :class="imgList.state === -1 ? 'pending' : 'complete'"></div>
|
><div :class="imgList.state === -1 ? 'pending' : 'complete'"></div>
|
||||||
{{ imgList.state === -1 ? "待处理" : "已处理" }}</span
|
{{ imgList.state === -1 ? "待处理" : "已处理" }}</span
|
||||||
@ -137,12 +143,6 @@
|
|||||||
@confirm="saveItem"
|
@confirm="saveItem"
|
||||||
>
|
>
|
||||||
</DialogForm>
|
</DialogForm>
|
||||||
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
|
||||||
<template #default="{ data }">
|
|
||||||
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
|
||||||
</template>
|
|
||||||
</engineeringEngDrawer>
|
|
||||||
<allEngineering @click="engVisable = true" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|||||||
@ -29,13 +29,13 @@
|
|||||||
@confirm="saveItem"
|
@confirm="saveItem"
|
||||||
>
|
>
|
||||||
</DialogForm>
|
</DialogForm>
|
||||||
|
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringEngDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
</div>
|
</div>
|
||||||
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
|
||||||
<template #default="{ data }">
|
|
||||||
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
|
||||||
</template>
|
|
||||||
</engineeringEngDrawer>
|
|
||||||
<allEngineering @click="engVisable = true" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
||||||
|
|||||||
@ -47,13 +47,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</DialogForm>
|
</DialogForm>
|
||||||
<AMap v-model="isOpen" @get-address="getAddress" />
|
<AMap v-model="isOpen" @get-address="getAddress" />
|
||||||
|
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringEngDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
</div>
|
</div>
|
||||||
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
|
||||||
<template #default="{ data }">
|
|
||||||
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
|
||||||
</template>
|
|
||||||
</engineeringEngDrawer>
|
|
||||||
<allEngineering @click="engVisable = true" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
:cell-style="{ textAlign: 'center', height: '40px' }"
|
:cell-style="{ textAlign: 'center', height: '40px' }"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="100" />
|
<el-table-column type="index" label="序号" width="100" />
|
||||||
<el-table-column prop="singleId" label="单体工程" width="200">
|
<el-table-column prop="singleId" label="*单体工程" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-select v-if="row.isEdit" style="width: 100%" v-model="row.singleId" clearable placeholder="请选择">
|
<el-select v-if="row.isEdit" style="width: 100%" v-model="row.singleId" clearable placeholder="请选择">
|
||||||
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<span v-else>{{ row.singleProject }}</span>
|
<span v-else>{{ row.singleProject }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="planCheckDate" label="计划验收时间" width="200">
|
<el-table-column prop="planCheckDate" label="*计划验收时间" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-if="row.isEdit"
|
v-if="row.isEdit"
|
||||||
@ -71,25 +71,25 @@
|
|||||||
<span v-else>{{ row.planCheckDate }}</span>
|
<span v-else>{{ row.planCheckDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="startFlag" label="起始标识" width="200">
|
<el-table-column prop="startFlag" label="*起始标识" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.startFlag" v-if="row.isEdit" />
|
<el-input v-model="row.startFlag" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.startFlag }}</span>
|
<span v-else>{{ row.startFlag }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="endFlag" label="截止标识" width="200">
|
<el-table-column prop="endFlag" label="*截止标识" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.endFlag" v-if="row.isEdit" />
|
<el-input v-model="row.endFlag" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.endFlag }}</span>
|
<span v-else>{{ row.endFlag }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="headPerson" label="验收负责人" width="200">
|
<el-table-column prop="headPerson" label="*验收负责人" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.headPerson" v-if="row.isEdit" />
|
<el-input v-model="row.headPerson" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.headPerson }}</span>
|
<span v-else>{{ row.headPerson }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="headPersonPhone" label="负责人电话" width="200">
|
<el-table-column prop="headPersonPhone" label="*负责人电话" width="200">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.headPersonPhone" v-if="row.isEdit" @blur="e => validatorPhone(e, $index)" />
|
<el-input v-model="row.headPersonPhone" v-if="row.isEdit" @blur="e => validatorPhone(e, $index)" />
|
||||||
<span v-else>{{ row.headPersonPhone }}</span>
|
<span v-else>{{ row.headPersonPhone }}</span>
|
||||||
@ -152,16 +152,18 @@
|
|||||||
:cell-style="{ height: '40px', textAlign: 'center' }"
|
:cell-style="{ height: '40px', textAlign: 'center' }"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="200" />
|
<el-table-column type="index" label="序号" width="200" />
|
||||||
<el-table-column prop="annexName" label="附件名称">
|
<el-table-column prop="annexName" label="*附件名称">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<span v-if="title == '详情'">{{ row.annexName }}</span>
|
<span v-if="title == '详情'">{{ row.annexName }}</span>
|
||||||
<el-input v-else class="test" v-model="row.annexName" />
|
<el-input v-else class="test" v-model="row.annexName" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="fileList" label="操作" v-if="title != '详情'">
|
<el-table-column prop="fileList" label="*操作">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<!-- <el-button v-if="title == '详情'" type="primary" @click="onDownLoad(row)" link>下载附件</el-button> -->
|
<el-button v-if="title != '新增' && title != '重新发起'" type="primary" @click="onDownLoad(row)" link
|
||||||
<el-button type="primary" @click="onUpload(row)" link>上传附件</el-button>
|
>下载附件</el-button
|
||||||
|
>
|
||||||
|
<el-button v-else type="primary" @click="onUpload(row, $index)" link>上传附件</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column fixed="right" v-if="title != '详情'">
|
<el-table-column fixed="right" v-if="title != '详情'">
|
||||||
@ -280,6 +282,9 @@ import { getDicList } from "@/api/modules/jxjview";
|
|||||||
import { singleEngineer } from "@/api/modules/common";
|
import { singleEngineer } from "@/api/modules/common";
|
||||||
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
||||||
import transformInfo from "./transformInfo.vue";
|
import transformInfo from "./transformInfo.vue";
|
||||||
|
import axios from "axios";
|
||||||
|
import JSZip from "jszip";
|
||||||
|
import FileSaver from "file-saver";
|
||||||
const current = ref({
|
const current = ref({
|
||||||
files: []
|
files: []
|
||||||
});
|
});
|
||||||
@ -292,6 +297,7 @@ const checkRowId = ref("");
|
|||||||
const globalStore = GlobalStore();
|
const globalStore = GlobalStore();
|
||||||
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
||||||
const documentData = ref<any>([]);
|
const documentData = ref<any>([]);
|
||||||
|
const documentDataIndex = ref(0);
|
||||||
const baseUrl = import.meta.env.VITE_API_URL;
|
const baseUrl = import.meta.env.VITE_API_URL;
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dialogVisible: Boolean,
|
dialogVisible: Boolean,
|
||||||
@ -328,20 +334,59 @@ const validatorPhone = (e: any, index: any) => {
|
|||||||
recordData.value[index].headPersonPhone = "";
|
recordData.value[index].headPersonPhone = "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const getFile = (url: any) => {
|
||||||
|
return new Promise((resolve: any, reject: any) => {
|
||||||
|
axios({
|
||||||
|
method: "get",
|
||||||
|
url,
|
||||||
|
responseType: "blob"
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
resolve(res.data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
reject(error.toString());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
// 下载附件按钮
|
// 下载附件按钮
|
||||||
const onDownLoad = (row: any) => {
|
const onDownLoad = (row: any) => {
|
||||||
console.log(row);
|
console.log(row);
|
||||||
// if (row.url) {
|
if (row.fileList && row.fileList.length > 0) {
|
||||||
// window.open(baseUrl + "/xmgl/file/preview?fileUrl=" + row.url);
|
const arr = row.fileList;
|
||||||
// } else {
|
const zip = new JSZip();
|
||||||
// ElMessage.error("暂无可下载文件");
|
const cache = {};
|
||||||
// }
|
const promises = [];
|
||||||
|
arr.forEach((item, i) => {
|
||||||
|
const promise = getFile(item.fileUrl).then(data => {
|
||||||
|
const file_name = i + 1 + item.fileName;
|
||||||
|
zip.file(file_name, data, { binary: true });
|
||||||
|
cache[file_name] = data;
|
||||||
|
});
|
||||||
|
promises.push(promise);
|
||||||
|
});
|
||||||
|
Promise.all(promises).then(() => {
|
||||||
|
zip.generateAsync({ type: "blob" }).then(content => {
|
||||||
|
FileSaver.saveAs(content, "附件.zip");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ElMessage.error("暂无可下载文件");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// 上传附件按钮
|
// 上传附件按钮
|
||||||
const onUpload = async row => {
|
const onUpload = async (row: any, index: any) => {
|
||||||
|
console.log(row);
|
||||||
showFilesUpload.value = true;
|
showFilesUpload.value = true;
|
||||||
|
documentDataIndex.value = index;
|
||||||
if (row.fileList.length > 0) {
|
if (row.fileList.length > 0) {
|
||||||
current.value.files = row.fileList;
|
let arr: any = [];
|
||||||
|
row.fileList.map(item => {
|
||||||
|
delete item.response;
|
||||||
|
arr.push(item);
|
||||||
|
});
|
||||||
|
current.value.files = arr;
|
||||||
|
console.log(current.value.files);
|
||||||
} else {
|
} else {
|
||||||
current.value.files = [];
|
current.value.files = [];
|
||||||
}
|
}
|
||||||
@ -352,7 +397,7 @@ const handlechange = e => {
|
|||||||
item.label = current.value.dictLabel;
|
item.label = current.value.dictLabel;
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
console.log(current.value);
|
documentData.value[documentDataIndex.value].fileList = current.value.files;
|
||||||
};
|
};
|
||||||
// 单体工程名称转换
|
// 单体工程名称转换
|
||||||
// const singleEngText = (id: any) => {
|
// const singleEngText = (id: any) => {
|
||||||
@ -398,14 +443,18 @@ const confirm = async () => {
|
|||||||
}
|
}
|
||||||
delete item.id;
|
delete item.id;
|
||||||
});
|
});
|
||||||
|
let annexPass = true;
|
||||||
requestData.annexList.map(item => {
|
requestData.annexList.map(item => {
|
||||||
|
if (!item.annexName) {
|
||||||
|
annexPass = false;
|
||||||
|
}
|
||||||
if (item.files && item.files.length > 0) {
|
if (item.files && item.files.length > 0) {
|
||||||
item.files.map(item2 => {
|
item.files.map(item2 => {
|
||||||
item.fileList.push({
|
item.fileList.push({
|
||||||
createTime: item2.response.createTime,
|
createTime: item2.response.createTime,
|
||||||
extendName: item2.response.ext,
|
extendName: item2.response.ext,
|
||||||
fileId: item2.response.id,
|
fileId: item2.response.id,
|
||||||
fileName: item2.response.filename,
|
fileName: item2.response.originalFilename,
|
||||||
fileSize: item2.response.size,
|
fileSize: item2.response.size,
|
||||||
fileUrl: item2.response.url,
|
fileUrl: item2.response.url,
|
||||||
contentType: item2.response.contentType
|
contentType: item2.response.contentType
|
||||||
@ -415,9 +464,12 @@ const confirm = async () => {
|
|||||||
item.fileList.map(item2 => {
|
item.fileList.map(item2 => {
|
||||||
delete item2.fileId;
|
delete item2.fileId;
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
annexPass = false;
|
||||||
}
|
}
|
||||||
delete item.id;
|
delete item.id;
|
||||||
});
|
});
|
||||||
|
|
||||||
delete requestData.state;
|
delete requestData.state;
|
||||||
if (!requestData.stage) {
|
if (!requestData.stage) {
|
||||||
ElMessage.error("请输入验收阶段");
|
ElMessage.error("请输入验收阶段");
|
||||||
@ -431,10 +483,10 @@ const confirm = async () => {
|
|||||||
ElMessage.error("请完整填写验收内容表格");
|
ElMessage.error("请完整填写验收内容表格");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if (!annexPass) {
|
if (!annexPass) {
|
||||||
// ElMessage.error("请上传资料附件相关信息");
|
ElMessage.error("请上传资料附件相关信息");
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
const res = await acceptanceApplyAdd(requestData);
|
const res = await acceptanceApplyAdd(requestData);
|
||||||
if (res.message) {
|
if (res.message) {
|
||||||
ElMessage.success("操作成功");
|
ElMessage.success("操作成功");
|
||||||
|
|||||||
@ -258,7 +258,7 @@ const exitFormConfig = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
teamSn: [
|
exitTime: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择",
|
message: "请选择",
|
||||||
|
|||||||
@ -212,6 +212,11 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
:deep() {
|
||||||
|
.tabs-option {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
// :deep(.el-dialog__body) {
|
// :deep(.el-dialog__body) {
|
||||||
// padding: 0 0 0 0 !important;
|
// padding: 0 0 0 0 !important;
|
||||||
// background-color: pink;
|
// background-color: pink;
|
||||||
|
|||||||
@ -150,8 +150,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="fileList" label="操作" v-if="title != '详情' && title != '资料审批'">
|
<el-table-column prop="fileList" label="操作" v-if="title != '详情' && title != '资料审批'">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<!-- <el-button v-if="title == '详情'" type="primary" @click="onDownLoad(row)" link>下载附件</el-button> -->
|
<el-button v-if="title == '详情'" type="primary" @click="onDownLoad(row)" link>下载附件</el-button>
|
||||||
<el-button type="primary" @click="onUpload(row)" link>上传附件</el-button>
|
<!-- <el-button type="primary" @click="onUpload(row)" link>上传附件</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<template #empty>
|
<template #empty>
|
||||||
@ -269,6 +269,9 @@ import { getDicList } from "@/api/modules/jxjview";
|
|||||||
import { singleEngineer } from "@/api/modules/common";
|
import { singleEngineer } from "@/api/modules/common";
|
||||||
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
||||||
import transformInfo from "./transformInfo.vue";
|
import transformInfo from "./transformInfo.vue";
|
||||||
|
import axios from "axios";
|
||||||
|
import JSZip from "jszip";
|
||||||
|
import FileSaver from "file-saver";
|
||||||
const backForm = ref({
|
const backForm = ref({
|
||||||
content: ""
|
content: ""
|
||||||
});
|
});
|
||||||
@ -334,14 +337,45 @@ const validatorPhone = (e: any, index: any) => {
|
|||||||
recordData.value[index].headPersonPhone = "";
|
recordData.value[index].headPersonPhone = "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const getFile = (url: any) => {
|
||||||
|
return new Promise((resolve: any, reject: any) => {
|
||||||
|
axios({
|
||||||
|
method: "get",
|
||||||
|
url,
|
||||||
|
responseType: "blob"
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
resolve(res.data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
reject(error.toString());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
// 下载附件按钮
|
// 下载附件按钮
|
||||||
const onDownLoad = (row: any) => {
|
const onDownLoad = (row: any) => {
|
||||||
console.log(row);
|
console.log(row);
|
||||||
// if (row.url) {
|
if (row.fileList && row.fileList.length > 0) {
|
||||||
// window.open(baseUrl + "/xmgl/file/preview?fileUrl=" + row.url);
|
const arr = row.fileList;
|
||||||
// } else {
|
const zip = new JSZip();
|
||||||
// ElMessage.error("暂无可下载文件");
|
const cache = {};
|
||||||
// }
|
const promises = [];
|
||||||
|
arr.forEach((item, i) => {
|
||||||
|
const promise = getFile(item.fileUrl).then(data => {
|
||||||
|
const file_name = i + 1 + item.fileName;
|
||||||
|
zip.file(file_name, data, { binary: true });
|
||||||
|
cache[file_name] = data;
|
||||||
|
});
|
||||||
|
promises.push(promise);
|
||||||
|
});
|
||||||
|
Promise.all(promises).then(() => {
|
||||||
|
zip.generateAsync({ type: "blob" }).then(content => {
|
||||||
|
FileSaver.saveAs(content, "附件.zip");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ElMessage.error("暂无可下载文件");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// 上传附件按钮
|
// 上传附件按钮
|
||||||
const onUpload = async row => {
|
const onUpload = async row => {
|
||||||
|
|||||||
@ -61,7 +61,7 @@ const statisticsOption = ref([
|
|||||||
name: "今日出勤总数",
|
name: "今日出勤总数",
|
||||||
value: 0,
|
value: 0,
|
||||||
img: new URL("@/assets/images/govermentImg/出勤总数.png", import.meta.url).href,
|
img: new URL("@/assets/images/govermentImg/出勤总数.png", import.meta.url).href,
|
||||||
prop: "workerAttendanceTotal"
|
prop: "workerAttendanceNum"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "今日出勤率",
|
name: "今日出勤率",
|
||||||
@ -73,7 +73,7 @@ const statisticsOption = ref([
|
|||||||
name: "今日考勤次数",
|
name: "今日考勤次数",
|
||||||
value: 0,
|
value: 0,
|
||||||
img: new URL("@/assets/images/govermentImg/考勤次数.png", import.meta.url).href,
|
img: new URL("@/assets/images/govermentImg/考勤次数.png", import.meta.url).href,
|
||||||
prop: "workerAttendanceNum"
|
prop: "workerAttendanceTotal"
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
const echartsRef = ref<HTMLElement>();
|
const echartsRef = ref<HTMLElement>();
|
||||||
@ -100,8 +100,8 @@ const drawEchart = (data: any) => {
|
|||||||
let yThreeArr: any = [];
|
let yThreeArr: any = [];
|
||||||
data.map(item => {
|
data.map(item => {
|
||||||
xArr.push(item.dayDate);
|
xArr.push(item.dayDate);
|
||||||
yOneArr.push(item.personNum);
|
yOneArr.push(item.attend);
|
||||||
yTwoArr.push(item.attend);
|
yTwoArr.push(item.personNum);
|
||||||
yThreeArr.push(item.ratio);
|
yThreeArr.push(item.ratio);
|
||||||
});
|
});
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
@ -141,10 +141,7 @@ const drawEchart = (data: any) => {
|
|||||||
name: "单位(人)",
|
name: "单位(人)",
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
align: "right"
|
align: "right"
|
||||||
},
|
}
|
||||||
min: 0,
|
|
||||||
max: 250,
|
|
||||||
interval: 50
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "value",
|
type: "value",
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
<el-option v-for="item in nameList" :key="item.code" :label="item.name" :value="item.code" />
|
<el-option v-for="item in nameList" :key="item.code" :label="item.name" :value="item.code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间">
|
<el-form-item label="报警时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.createTime"
|
v-model="form.createTime"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
@ -34,10 +34,10 @@
|
|||||||
<div class="img_title">{{ item.typeName }}</div>
|
<div class="img_title">{{ item.typeName }}</div>
|
||||||
<div style="display: flex; justify-content: space-between">
|
<div style="display: flex; justify-content: space-between">
|
||||||
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||||||
位置:{{ item.address }}
|
位置:{{ item.deviceName }}
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
<div style="font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
|
||||||
报警时间:{{ item.createTime }}
|
报警时间:{{ item.reportTime }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
<div class="flx-center">
|
<div class="flx-center">
|
||||||
<span class="img_diatitle m-10">{{ imgList.typeName }}</span>
|
<span class="img_diatitle m-10">{{ imgList.typeName }}</span>
|
||||||
<span class="img_text m-10">位置:{{ imgList.deviceName }}</span>
|
<span class="img_text m-10">位置:{{ imgList.deviceName }}</span>
|
||||||
<span class="img_text m-10">时间:{{ imgList.createTime }}</span>
|
<span class="img_text m-10">时间:{{ imgList.reportTime }}</span>
|
||||||
<span class="img_text m-10 flx-center"
|
<span class="img_text m-10 flx-center"
|
||||||
><div :class="imgList.state === -1 ? 'pending' : 'complete'"></div>
|
><div :class="imgList.state === -1 ? 'pending' : 'complete'"></div>
|
||||||
{{ imgList.state === -1 ? "待处理" : "已处理" }}</span
|
{{ imgList.state === -1 ? "待处理" : "已处理" }}</span
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
:cell-style="{ textAlign: 'center', height: '40px' }"
|
:cell-style="{ textAlign: 'center', height: '40px' }"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="100" />
|
<el-table-column type="index" label="序号" width="100" />
|
||||||
<el-table-column prop="singleId" label="单体工程" width="200">
|
<el-table-column prop="singleId" label="*单体工程" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-select v-if="row.isEdit" style="width: 100%" v-model="row.singleId" clearable placeholder="请选择">
|
<el-select v-if="row.isEdit" style="width: 100%" v-model="row.singleId" clearable placeholder="请选择">
|
||||||
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<span v-else>{{ row.singleProject }}</span>
|
<span v-else>{{ row.singleProject }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="planCheckDate" label="计划验收时间" width="200">
|
<el-table-column prop="planCheckDate" label="*计划验收时间" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-if="row.isEdit"
|
v-if="row.isEdit"
|
||||||
@ -71,25 +71,25 @@
|
|||||||
<span v-else>{{ row.planCheckDate }}</span>
|
<span v-else>{{ row.planCheckDate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="startFlag" label="起始标识" width="200">
|
<el-table-column prop="startFlag" label="*起始标识" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.startFlag" v-if="row.isEdit" />
|
<el-input v-model="row.startFlag" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.startFlag }}</span>
|
<span v-else>{{ row.startFlag }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="endFlag" label="截止标识" width="200">
|
<el-table-column prop="endFlag" label="*截止标识" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.endFlag" v-if="row.isEdit" />
|
<el-input v-model="row.endFlag" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.endFlag }}</span>
|
<span v-else>{{ row.endFlag }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="headPerson" label="验收负责人" width="200">
|
<el-table-column prop="headPerson" label="*验收负责人" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input v-model="row.headPerson" v-if="row.isEdit" />
|
<el-input v-model="row.headPerson" v-if="row.isEdit" />
|
||||||
<span v-else>{{ row.headPerson }}</span>
|
<span v-else>{{ row.headPerson }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="headPersonPhone" label="负责人电话" width="200">
|
<el-table-column prop="headPersonPhone" label="*负责人电话" width="200">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-input v-model="row.headPersonPhone" v-if="row.isEdit" @blur="e => validatorPhone(e, $index)" />
|
<el-input v-model="row.headPersonPhone" v-if="row.isEdit" @blur="e => validatorPhone(e, $index)" />
|
||||||
<span v-else>{{ row.headPersonPhone }}</span>
|
<span v-else>{{ row.headPersonPhone }}</span>
|
||||||
@ -152,16 +152,18 @@
|
|||||||
:cell-style="{ height: '40px', textAlign: 'center' }"
|
:cell-style="{ height: '40px', textAlign: 'center' }"
|
||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="200" />
|
<el-table-column type="index" label="序号" width="200" />
|
||||||
<el-table-column prop="annexName" label="附件名称">
|
<el-table-column prop="annexName" label="*附件名称">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<span v-if="title == '详情'">{{ row.annexName }}</span>
|
<span v-if="title == '详情'">{{ row.annexName }}</span>
|
||||||
<el-input v-else class="test" v-model="row.annexName" />
|
<el-input v-else class="test" v-model="row.annexName" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="fileList" label="操作" v-if="title != '详情'">
|
<el-table-column prop="fileList" label="*操作" v-if="title != '详情'">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<!-- <el-button v-if="title == '详情'" type="primary" @click="onDownLoad(row)" link>下载附件</el-button> -->
|
<el-button v-if="title != '新增' && title != '重新发起'" type="primary" @click="onDownLoad(row)" link
|
||||||
<el-button type="primary" @click="onUpload(row)" link>上传附件</el-button>
|
>下载附件</el-button
|
||||||
|
>
|
||||||
|
<el-button v-else type="primary" @click="onUpload(row, $index)" link>上传附件</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column fixed="right" v-if="title != '详情'">
|
<el-table-column fixed="right" v-if="title != '详情'">
|
||||||
@ -280,6 +282,9 @@ import { getDicList } from "@/api/modules/jxjview";
|
|||||||
import { singleEngineer } from "@/api/modules/common";
|
import { singleEngineer } from "@/api/modules/common";
|
||||||
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
||||||
import transformInfo from "./transformInfo.vue";
|
import transformInfo from "./transformInfo.vue";
|
||||||
|
import axios from "axios";
|
||||||
|
import JSZip from "jszip";
|
||||||
|
import FileSaver from "file-saver";
|
||||||
const current = ref({
|
const current = ref({
|
||||||
files: []
|
files: []
|
||||||
});
|
});
|
||||||
@ -292,6 +297,7 @@ const checkRowId = ref("");
|
|||||||
const globalStore = GlobalStore();
|
const globalStore = GlobalStore();
|
||||||
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
||||||
const documentData = ref<any>([]);
|
const documentData = ref<any>([]);
|
||||||
|
const documentDataIndex = ref(0);
|
||||||
const baseUrl = import.meta.env.VITE_API_URL;
|
const baseUrl = import.meta.env.VITE_API_URL;
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dialogVisible: Boolean,
|
dialogVisible: Boolean,
|
||||||
@ -328,20 +334,59 @@ const validatorPhone = (e: any, index: any) => {
|
|||||||
recordData.value[index].headPersonPhone = "";
|
recordData.value[index].headPersonPhone = "";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const getFile = (url: any) => {
|
||||||
|
return new Promise((resolve: any, reject: any) => {
|
||||||
|
axios({
|
||||||
|
method: "get",
|
||||||
|
url,
|
||||||
|
responseType: "blob"
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
resolve(res.data);
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
reject(error.toString());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
// 下载附件按钮
|
// 下载附件按钮
|
||||||
const onDownLoad = (row: any) => {
|
const onDownLoad = (row: any) => {
|
||||||
console.log(row);
|
console.log(row);
|
||||||
// if (row.url) {
|
if (row.fileList && row.fileList.length > 0) {
|
||||||
// window.open(baseUrl + "/xmgl/file/preview?fileUrl=" + row.url);
|
const arr = row.fileList;
|
||||||
// } else {
|
const zip = new JSZip();
|
||||||
// ElMessage.error("暂无可下载文件");
|
const cache = {};
|
||||||
// }
|
const promises = [];
|
||||||
|
arr.forEach((item, i) => {
|
||||||
|
const promise = getFile(item.fileUrl).then(data => {
|
||||||
|
const file_name = i + 1 + item.fileName;
|
||||||
|
zip.file(file_name, data, { binary: true });
|
||||||
|
cache[file_name] = data;
|
||||||
|
});
|
||||||
|
promises.push(promise);
|
||||||
|
});
|
||||||
|
Promise.all(promises).then(() => {
|
||||||
|
zip.generateAsync({ type: "blob" }).then(content => {
|
||||||
|
FileSaver.saveAs(content, "附件.zip");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ElMessage.error("暂无可下载文件");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// 上传附件按钮
|
// 上传附件按钮
|
||||||
const onUpload = async row => {
|
const onUpload = async (row: any, index: any) => {
|
||||||
|
console.log(row);
|
||||||
showFilesUpload.value = true;
|
showFilesUpload.value = true;
|
||||||
|
documentDataIndex.value = index;
|
||||||
if (row.fileList.length > 0) {
|
if (row.fileList.length > 0) {
|
||||||
current.value.files = row.fileList;
|
let arr: any = [];
|
||||||
|
row.fileList.map(item => {
|
||||||
|
delete item.response;
|
||||||
|
arr.push(item);
|
||||||
|
});
|
||||||
|
current.value.files = arr;
|
||||||
|
console.log(current.value.files);
|
||||||
} else {
|
} else {
|
||||||
current.value.files = [];
|
current.value.files = [];
|
||||||
}
|
}
|
||||||
@ -352,7 +397,7 @@ const handlechange = e => {
|
|||||||
item.label = current.value.dictLabel;
|
item.label = current.value.dictLabel;
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
console.log(current.value);
|
documentData.value[documentDataIndex.value].fileList = current.value.files;
|
||||||
};
|
};
|
||||||
// 单体工程名称转换
|
// 单体工程名称转换
|
||||||
// const singleEngText = (id: any) => {
|
// const singleEngText = (id: any) => {
|
||||||
@ -400,13 +445,16 @@ const confirm = async () => {
|
|||||||
});
|
});
|
||||||
let annexPass = true;
|
let annexPass = true;
|
||||||
requestData.annexList.map(item => {
|
requestData.annexList.map(item => {
|
||||||
|
if (!item.annexName) {
|
||||||
|
annexPass = false;
|
||||||
|
}
|
||||||
if (item.files && item.files.length > 0) {
|
if (item.files && item.files.length > 0) {
|
||||||
item.files.map(item2 => {
|
item.files.map(item2 => {
|
||||||
item.fileList.push({
|
item.fileList.push({
|
||||||
createTime: item2.response.createTime,
|
createTime: item2.response.createTime,
|
||||||
extendName: item2.response.ext,
|
extendName: item2.response.ext,
|
||||||
fileId: item2.response.id,
|
fileId: item2.response.id,
|
||||||
fileName: item2.response.filename,
|
fileName: item2.response.originalFilename,
|
||||||
fileSize: item2.response.size,
|
fileSize: item2.response.size,
|
||||||
fileUrl: item2.response.url,
|
fileUrl: item2.response.url,
|
||||||
contentType: item2.response.contentType
|
contentType: item2.response.contentType
|
||||||
@ -416,8 +464,7 @@ const confirm = async () => {
|
|||||||
item.fileList.map(item2 => {
|
item.fileList.map(item2 => {
|
||||||
delete item2.fileId;
|
delete item2.fileId;
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
if ((item.files && item.files.length == 0) || (item.fileList && item.fileList.length == 0)) {
|
|
||||||
annexPass = false;
|
annexPass = false;
|
||||||
}
|
}
|
||||||
delete item.id;
|
delete item.id;
|
||||||
@ -435,10 +482,10 @@ const confirm = async () => {
|
|||||||
ElMessage.error("请完整填写验收内容表格");
|
ElMessage.error("请完整填写验收内容表格");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if (!annexPass) {
|
if (!annexPass) {
|
||||||
// ElMessage.error("请上传资料附件相关信息");
|
ElMessage.error("请上传资料附件相关信息");
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
const res = await acceptanceApplyAdd(requestData);
|
const res = await acceptanceApplyAdd(requestData);
|
||||||
if (res.message) {
|
if (res.message) {
|
||||||
ElMessage.success("操作成功");
|
ElMessage.success("操作成功");
|
||||||
|
|||||||
@ -265,7 +265,7 @@ const exitFormConfig = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
teamSn: [
|
exitTime: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择",
|
message: "请选择",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user