From 4a68467d88baa1cfe7e377be51983190964bcbb4 Mon Sep 17 00:00:00 2001 From: lb Date: Thu, 1 Feb 2024 16:19:42 +0800 Subject: [PATCH 01/36] =?UTF-8?q?update=20=E5=AE=89=E5=85=A8=E8=AE=BE?= =?UTF-8?q?=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/specialEquipment/basic/Safety.vue | 46 +- .../components/BasicDrawer.vue | 544 ++++++++++++++++++ .../components/EquipmentDrawer.vue | 45 +- .../components/EquipmentInfoForm.vue | 256 ++++++--- .../components/dialogInDrawer.vue | 170 ++++++ yarn.lock | 398 ++++++------- 6 files changed, 1102 insertions(+), 357 deletions(-) create mode 100644 src/views/specialEquipment/components/BasicDrawer.vue create mode 100644 src/views/specialEquipment/components/dialogInDrawer.vue diff --git a/src/views/specialEquipment/basic/Safety.vue b/src/views/specialEquipment/basic/Safety.vue index b91767fb..d31773af 100644 --- a/src/views/specialEquipment/basic/Safety.vue +++ b/src/views/specialEquipment/basic/Safety.vue @@ -55,11 +55,11 @@ :has-files="true" :disabled="editMode === 'detail'" :rows="computedRows" /> - + - + @destroy="cancelEdit" /> @@ -116,7 +116,6 @@ import moment from 'moment'; import basicPageMixin from '@/mixins/lb/basicPageMixin'; import EquipmentDrawer from '../components/EquipmentDrawer'; - import { createEquipment, updateEquipment, @@ -127,12 +126,14 @@ import { } from '@/api/base/equipment'; import Editor from '@/components/Editor'; import AssetsUpload from '../components/AssetsUpload.vue'; +import BasicDrawer from '../components/BasicDrawer.vue'; export default { name: 'SpecialEquipmentForSafety', components: { Editor, EquipmentDrawer, + BasicDrawer, }, mixins: [basicPageMixin], data() { @@ -386,26 +387,35 @@ export default { this.editMode = 'add'; }, /** 修改按钮操作 */ + // handleUpdate(row) { + // this.reset(); + // this.showUploadComponents = false; + // this.editMode = 'edit'; + // const id = row.id; + // getEquipment(id).then((response) => { + // this.form = response.data; + // this.open = true; + // this.title = '修改设备'; + // }); + // }, handleUpdate(row) { this.reset(); + this.form.id = row.id; this.showUploadComponents = false; this.editMode = 'edit'; - const id = row.id; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '修改设备'; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); }); }, - handleDetail(row) { - this.reset(); - this.showUploadComponents = false; - const id = row.id; - this.editMode = 'detail'; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '查看详情'; + handleDetail(row, mode = 'detail') { + const { id } = row; + this.form.id = id; + // 打开抽屉 + this.editMode = mode; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); }); }, /** 提交按钮 */ diff --git a/src/views/specialEquipment/components/BasicDrawer.vue b/src/views/specialEquipment/components/BasicDrawer.vue new file mode 100644 index 00000000..624a4161 --- /dev/null +++ b/src/views/specialEquipment/components/BasicDrawer.vue @@ -0,0 +1,544 @@ + + + + + + + diff --git a/src/views/specialEquipment/components/EquipmentDrawer.vue b/src/views/specialEquipment/components/EquipmentDrawer.vue index 3c58a5c9..d258bd70 100644 --- a/src/views/specialEquipment/components/EquipmentDrawer.vue +++ b/src/views/specialEquipment/components/EquipmentDrawer.vue @@ -242,50 +242,6 @@ export default { this.$axios(query).then(({ data }) => { if (section.key == 'base') { this.form = data; - // this.form = { - // code: 'gj', - // name: '下片机', - // enName: 'unload', - // abbr: '', - // equipmentTypeId: 21084, - // remark: '备注', - // id: '1712367395052384257', - // createTime: 1697095176000, - // enterTime: 0, - // productionTime: 0, - // files: [ - // { - // fileName: '测试.xlsx', - // fileUrl: 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0108%2F0f0c6f30j00r5cle9000sc000hs00gtc.jpg&thumbnail=660x2147483647&quality=80&type=jpg', - // fileType: 1 - // }, - // { - // fileName: '测试2.xlsx', - // fileUrl: 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0415%2F2cd23619j00racb96000kc000hs00hsc.jpg&thumbnail=660x2147483647&quality=80&type=jpg', - // fileType: 1 - // }, - // { - // fileName: '测试3.xlsx', - // fileUrl: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2F1fea91a0-d088-409e-b145-e0e61254b28b%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1700031689&t=2e0fe7d1de7f54adff3007efe133d67c', - // fileType: 1 - // }, - // { - // fileName: '测试4.xlsx', - // fileUrl: 'https://pics5.baidu.com/feed/b7003af33a87e950cdfb4b4546eed044faf2b40d.jpeg?token=1d7484cfe4b014dd201f8c8725cab945', - // fileType: 2 - // }, - // { - // fileName: '测试5.xlsx', - // fileUrl: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fe3500876-9c46-4b70-8d37-4799520cdd13%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1700031689&t=4abc1df930e62730e5361a7d3765e0f2', - // fileType: 2 - // }, - // ], - // tvalue: 0, - // processingTime: 0, - // manufacturer: '', - // spec: '', - // description: '描述', - // }; this.showForm = true; this.infoQuery = query; } else if (section.key == 'attrs') { @@ -323,6 +279,7 @@ export default { } this.btnLoading = false; + this.$emit('refreshDataList') this.handleCancel(); }); }, diff --git a/src/views/specialEquipment/components/EquipmentInfoForm.vue b/src/views/specialEquipment/components/EquipmentInfoForm.vue index 926c850a..c1b642c1 100644 --- a/src/views/specialEquipment/components/EquipmentInfoForm.vue +++ b/src/views/specialEquipment/components/EquipmentInfoForm.vue @@ -6,141 +6,242 @@ --> @@ -196,7 +297,7 @@ export default { assets: [], pics: [], }, - eqTypeList: [], + rpList: [], dataLoaded: false, }; }, @@ -226,26 +327,25 @@ export default { }, mounted() { - this.getEqTypeList(); + this.getRpList(); }, methods: { updateForm() { - console.log('update form ==> '); this.form.files = [...this.form.assets, ...this.form.pics]; delete this.form.assets; delete this.form.pics; this.$emit('update', this.form); }, - async getEqTypeList() { + async getRpList() { this.formLoading = true; const { code, data } = await this.$axios( - '/base/core-equipment-type/page?pageNo=1&pageSize=100' + '/base/core-worker/listAll' ); // debugger; if (code == 0) { - this.eqTypeList = data.list; + this.rpList = data; } this.formLoading = false; }, @@ -263,7 +363,7 @@ export default { return response.data; }, // 上传成功的特殊处理 - beforeUpload() { }, + beforeUpload() {}, // 上传前的验证规则可通过 bind 属性传入 handleUploadSuccess(response, file, fileList) { // 保存原始文件名 diff --git a/src/views/specialEquipment/components/dialogInDrawer.vue b/src/views/specialEquipment/components/dialogInDrawer.vue new file mode 100644 index 00000000..cab8b8fd --- /dev/null +++ b/src/views/specialEquipment/components/dialogInDrawer.vue @@ -0,0 +1,170 @@ + + + + + + + diff --git a/yarn.lock b/yarn.lock index f16d0367..ae1e5ca4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2046,21 +2046,16 @@ "resolved" "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz" "version" "7.2.0" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^6.4.1": +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1", "acorn@^7.4.0": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" + +"acorn@^6.4.1": "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" "resolved" "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz" "version" "6.4.2" -"acorn@^7.1.1": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - -"acorn@^7.4.0": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - "acorn@^8.8.2": "integrity" "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" "resolved" "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz" @@ -2081,7 +2076,7 @@ "resolved" "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz" "version" "1.3.1" -"aes-decrypter@^4.0.1": +"aes-decrypter@^4.0.1", "aes-decrypter@4.0.1": "integrity" "sha512-H1nh/P9VZXUf17AA5NQfJML88CFjVBDuGkp5zDHa7oEhYN9TTpNLJknRY1ie0iSKWlDf6JRnJKaZVDSQdPy6Cg==" "resolved" "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.1.tgz" "version" "4.0.1" @@ -2108,16 +2103,6 @@ "global" "^4.4.0" "pkcs7" "^1.0.4" -"aes-decrypter@4.0.1": - "integrity" "sha512-H1nh/P9VZXUf17AA5NQfJML88CFjVBDuGkp5zDHa7oEhYN9TTpNLJknRY1ie0iSKWlDf6JRnJKaZVDSQdPy6Cg==" - "resolved" "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "@babel/runtime" "^7.12.5" - "@videojs/vhs-utils" "^3.0.5" - "global" "^4.4.0" - "pkcs7" "^1.0.4" - "aggregate-error@^3.0.0": "integrity" "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==" "resolved" "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz" @@ -2193,21 +2178,28 @@ "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz" "version" "2.2.1" -"ansi-styles@^3.1.0", "ansi-styles@^3.2.0", "ansi-styles@^3.2.1": +"ansi-styles@^3.1.0": "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz" "version" "3.2.1" dependencies: "color-convert" "^1.9.0" -"ansi-styles@^4.0.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" +"ansi-styles@^3.2.0": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" dependencies: - "color-convert" "^2.0.1" + "color-convert" "^1.9.0" -"ansi-styles@^4.1.0": +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" "version" "4.3.0" @@ -2896,7 +2888,28 @@ "resolved" "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz" "version" "3.1.2" -"cacache@^12.0.2", "cacache@^12.0.3": +"cacache@^12.0.2": + "integrity" "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==" + "resolved" "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz" + "version" "12.0.4" + dependencies: + "bluebird" "^3.5.5" + "chownr" "^1.1.1" + "figgy-pudding" "^3.5.1" + "glob" "^7.1.4" + "graceful-fs" "^4.1.15" + "infer-owner" "^1.0.3" + "lru-cache" "^5.1.1" + "mississippi" "^3.0.0" + "mkdirp" "^0.5.1" + "move-concurrently" "^1.0.1" + "promise-inflight" "^1.0.1" + "rimraf" "^2.6.3" + "ssri" "^6.0.1" + "unique-filename" "^1.1.1" + "y18n" "^4.0.0" + +"cacache@^12.0.3": "integrity" "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==" "resolved" "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz" "version" "12.0.4" @@ -3389,7 +3402,14 @@ "map-visit" "^1.0.0" "object-visit" "^1.0.0" -"color-convert@^1.9.0", "color-convert@^1.9.3": +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^1.9.3": "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz" "version" "1.9.3" @@ -3403,16 +3423,16 @@ dependencies: "color-name" "~1.1.4" -"color-name@^1.0.0", "color-name@1.1.3": - "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"color-name@~1.1.4": +"color-name@^1.0.0", "color-name@~1.1.4": "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" "version" "1.1.4" +"color-name@1.1.3": + "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + "color-string@^1.6.0": "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==" "resolved" "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz" @@ -3441,7 +3461,22 @@ dependencies: "delayed-stream" "~1.0.0" -"commander@*", "commander@^2.18.0", "commander@^2.19.0", "commander@^2.20.0": +"commander@*", "commander@2.17.x": + "integrity" "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "resolved" "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz" + "version" "2.17.1" + +"commander@^2.18.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.19.0": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"commander@^2.20.0": "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" "resolved" "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz" "version" "2.20.3" @@ -3456,11 +3491,6 @@ "resolved" "https://registry.npmmirror.com/commander/-/commander-2.19.0.tgz" "version" "2.19.0" -"commander@2.17.x": - "integrity" "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - "resolved" "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz" - "version" "2.17.1" - "commondir@^1.0.1": "integrity" "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" "resolved" "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz" @@ -4352,7 +4382,7 @@ "resolved" "https://registry.npmmirror.com/domready/-/domready-1.0.8.tgz" "version" "1.0.8" -"domutils@^1.5.1", "domutils@^1.7.0": +"domutils@^1.5.1": "integrity" "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" "resolved" "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz" "version" "1.7.0" @@ -4360,16 +4390,15 @@ "dom-serializer" "0" "domelementtype" "1" -"domutils@^2.5.2": - "integrity" "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==" - "resolved" "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz" - "version" "2.8.0" +"domutils@^1.7.0": + "integrity" "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" + "resolved" "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz" + "version" "1.7.0" dependencies: - "dom-serializer" "^1.0.1" - "domelementtype" "^2.2.0" - "domhandler" "^4.2.0" + "dom-serializer" "0" + "domelementtype" "1" -"domutils@^2.8.0": +"domutils@^2.5.2", "domutils@^2.8.0": "integrity" "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==" "resolved" "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz" "version" "2.8.0" @@ -4584,7 +4613,7 @@ dependencies: "stackframe" "^1.3.4" -"es-abstract@^1.17.2", "es-abstract@^1.19.0", "es-abstract@^1.20.4", "es-abstract@^1.21.2": +"es-abstract@^1.19.0", "es-abstract@^1.20.4", "es-abstract@^1.21.2": "integrity" "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==" "resolved" "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.1.tgz" "version" "1.22.1" @@ -5537,7 +5566,14 @@ "is-glob" "^3.1.0" "path-dirname" "^1.0.0" -"glob-parent@^5.0.0", "glob-parent@~5.1.2": +"glob-parent@^5.0.0": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@~5.1.2": "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" "resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz" "version" "5.1.2" @@ -5740,7 +5776,7 @@ "resolved" "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz" "version" "1.0.1" -"has-symbols@^1.0.1", "has-symbols@^1.0.2", "has-symbols@^1.0.3": +"has-symbols@^1.0.2", "has-symbols@^1.0.3": "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" "resolved" "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz" "version" "1.0.3" @@ -6379,16 +6415,7 @@ "is-data-descriptor" "^0.1.4" "kind-of" "^5.0.0" -"is-descriptor@^1.0.0": - "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==" - "resolved" "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz" - "version" "1.0.2" - dependencies: - "is-accessor-descriptor" "^1.0.0" - "is-data-descriptor" "^1.0.0" - "kind-of" "^6.0.2" - -"is-descriptor@^1.0.2": +"is-descriptor@^1.0.0", "is-descriptor@^1.0.2": "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==" "resolved" "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz" "version" "1.0.2" @@ -6412,6 +6439,11 @@ "resolved" "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz" "version" "0.1.1" +"is-extendable@^0.1.1": + "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + "resolved" "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + "is-extendable@^1.0.1": "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==" "resolved" "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz" @@ -6613,7 +6645,7 @@ dependencies: "is-docker" "^2.0.0" -"isarray@^1.0.0", "isarray@~1.0.0", "isarray@1.0.0": +"isarray@^1.0.0": "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" "resolved" "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" "version" "1.0.0" @@ -6623,6 +6655,16 @@ "resolved" "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz" "version" "2.0.5" +"isarray@~1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + "isexe@^2.0.0": "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" "resolved" "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz" @@ -6831,14 +6873,7 @@ "resolved" "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz" "version" "1.0.1" -"kind-of@^3.0.2": - "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" - "resolved" "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" - "version" "3.2.2" - dependencies: - "is-buffer" "^1.1.5" - -"kind-of@^3.0.3": +"kind-of@^3.0.2", "kind-of@^3.0.3": "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" "resolved" "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" "version" "3.2.2" @@ -7102,7 +7137,23 @@ "resolved" "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz" "version" "1.1.4" -"lru-cache@^4.0.1", "lru-cache@^4.1.2", "lru-cache@^4.1.5": +"lru-cache@^4.0.1": + "integrity" "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" + "resolved" "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" + "version" "4.1.5" + dependencies: + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" + +"lru-cache@^4.1.2": + "integrity" "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" + "resolved" "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" + "version" "4.1.5" + dependencies: + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" + +"lru-cache@^4.1.5": "integrity" "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" "resolved" "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz" "version" "4.1.5" @@ -7421,18 +7472,7 @@ "component-query" "^0.0.3" "domify" "^1.3.1" -"min-dom@^3.1.0": - "integrity" "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==" - "resolved" "https://registry.npmmirror.com/min-dom/-/min-dom-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "component-event" "^0.1.4" - "domify" "^1.3.1" - "indexof" "0.0.1" - "matches-selector" "^1.2.0" - "min-dash" "^3.8.1" - -"min-dom@^3.1.3": +"min-dom@^3.1.0", "min-dom@^3.1.3": "integrity" "sha512-v6YCmnDzxk4rRJntWTUiwggLupPw/8ZSRqUq0PDaBwVZEO/wYzCH4SKVBV+KkEvf3u0XaWHly5JEosPtqRATZA==" "resolved" "https://registry.npmmirror.com/min-dom/-/min-dom-3.2.1.tgz" "version" "3.2.1" @@ -7559,38 +7599,22 @@ "for-in" "^1.0.2" "is-extendable" "^1.0.1" -"mkdirp@^0.5.1": +"mkdirp@^0.5.1", "mkdirp@^0.5.3", "mkdirp@^0.5.6", "mkdirp@~0.5.1": "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" "version" "0.5.6" dependencies: "minimist" "^1.2.6" -"mkdirp@^0.5.3": - "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" - "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" - "version" "0.5.6" - dependencies: - "minimist" "^1.2.6" - -"mkdirp@^0.5.6": - "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" - "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" - "version" "0.5.6" - dependencies: - "minimist" "^1.2.6" - -"mkdirp@^1.0.3", "mkdirp@^1.0.4": +"mkdirp@^1.0.3": "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz" "version" "1.0.4" -"mkdirp@~0.5.1": - "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" - "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz" - "version" "0.5.6" - dependencies: - "minimist" "^1.2.6" +"mkdirp@^1.0.4": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" "mockjs@^1.1.0": "integrity" "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==" @@ -7993,7 +8017,7 @@ "define-properties" "^1.1.4" "es-abstract" "^1.20.4" -"object.getownpropertydescriptors@^2.0.3", "object.getownpropertydescriptors@^2.1.0": +"object.getownpropertydescriptors@^2.0.3": "integrity" "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==" "resolved" "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz" "version" "2.1.6" @@ -8063,14 +8087,7 @@ dependencies: "mimic-fn" "^1.0.0" -"onetime@^5.1.0": - "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" - "resolved" "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "mimic-fn" "^2.1.0" - -"onetime@^5.1.2": +"onetime@^5.1.0", "onetime@^5.1.2": "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" "resolved" "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz" "version" "5.1.2" @@ -8811,7 +8828,7 @@ "source-map" "^0.5.6" "supports-color" "^3.2.3" -"postcss@^7.0.0": +"postcss@^7.0.0", "postcss@^7.0.1", "postcss@^7.0.14", "postcss@^7.0.27", "postcss@^7.0.32", "postcss@^7.0.36", "postcss@^7.0.5", "postcss@^7.0.6", "postcss@>4 <9": "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" "version" "7.0.39" @@ -8819,63 +8836,16 @@ "picocolors" "^0.2.1" "source-map" "^0.6.1" -"postcss@^7.0.1": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" +"postcss@^8.1.10": + "integrity" "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==" + "resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.27.tgz" + "version" "8.4.27" dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" + "nanoid" "^3.3.6" + "picocolors" "^1.0.0" + "source-map-js" "^1.0.2" -"postcss@^7.0.14": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^7.0.27": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^7.0.32": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^7.0.36": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^7.0.5": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^7.0.6": - "integrity" "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==" - "resolved" "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz" - "version" "7.0.39" - dependencies: - "picocolors" "^0.2.1" - "source-map" "^0.6.1" - -"postcss@^8.1.10", "postcss@^8.4.14", "postcss@>4 <9": +"postcss@^8.4.14": "integrity" "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==" "resolved" "https://registry.npmmirror.com/postcss/-/postcss-8.4.27.tgz" "version" "8.4.27" @@ -9457,7 +9427,21 @@ "resolved" "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz" "version" "1.0.1" -"rimraf@^2.5.4", "rimraf@^2.6.1", "rimraf@^2.6.3": +"rimraf@^2.5.4": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^2.6.1": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^2.6.3": "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" "resolved" "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz" "version" "2.7.1" @@ -9685,32 +9669,17 @@ dependencies: "node-forge" "^0.10.0" -"semver@^5.5.0", "semver@^5.6.0", "semver@2 || 3 || 4 || 5": +"semver@^5.5.0": "integrity" "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" "resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" "version" "5.7.2" -"semver@^6.0.0": - "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" - "version" "6.3.1" +"semver@^5.6.0": + "integrity" "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + "resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + "version" "5.7.2" -"semver@^6.1.0": - "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" - "version" "6.3.1" - -"semver@^6.1.2": - "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" - "version" "6.3.1" - -"semver@^6.3.0": - "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" - "version" "6.3.1" - -"semver@^6.3.1": +"semver@^6.0.0", "semver@^6.1.0", "semver@^6.1.2", "semver@^6.3.0", "semver@^6.3.1": "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" "resolved" "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" "version" "6.3.1" @@ -9736,6 +9705,11 @@ dependencies: "lru-cache" "^6.0.0" +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + "resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" + "version" "5.7.2" + "send@0.18.0": "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" "resolved" "https://registry.npmmirror.com/send/-/send-0.18.0.tgz" @@ -10413,14 +10387,7 @@ dependencies: "has-flag" "^3.0.0" -"supports-color@^7.0.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-color@^7.1.0": +"supports-color@^7.0.0", "supports-color@^7.1.0": "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" "version" "7.2.0" @@ -11073,17 +11040,7 @@ "resolved" "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz" "version" "1.0.2" -"util.promisify@~1.0.0": - "integrity" "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==" - "resolved" "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "define-properties" "^1.1.3" - "es-abstract" "^1.17.2" - "has-symbols" "^1.0.1" - "object.getownpropertydescriptors" "^2.1.0" - -"util.promisify@1.0.0": +"util.promisify@~1.0.0", "util.promisify@1.0.0": "integrity" "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" "resolved" "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.0.tgz" "version" "1.0.0" @@ -11616,7 +11573,7 @@ "source-list-map" "^2.0.0" "source-map" "~0.6.1" -"webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.36.0 || ^5.0.0", "webpack@^4.4.0", "webpack@>=2", "webpack@>=2.0.0 <5.0.0", "webpack@>=4.0.0": +"webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.1.0 || ^5.0.0-0", "webpack@^4.36.0 || ^5.0.0", "webpack@^4.4.0", "webpack@>=2", "webpack@>=2.0.0 <5.0.0", "webpack@>=4.0.0": "integrity" "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==" "resolved" "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz" "version" "4.46.0" @@ -11766,7 +11723,14 @@ dependencies: "mkdirp" "^0.5.1" -"ws@^6.0.0", "ws@^6.2.1": +"ws@^6.0.0": + "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==" + "resolved" "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "async-limiter" "~1.0.0" + +"ws@^6.2.1": "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==" "resolved" "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz" "version" "6.2.2" From 49afcb76669e0c57f3d478e0e8b1e58ee431db67 Mon Sep 17 00:00:00 2001 From: lb Date: Fri, 2 Feb 2024 13:15:25 +0800 Subject: [PATCH 02/36] update firefighting --- .../specialEquipment/basic/FireFighthing.vue | 51 ++++++++++++------- .../components/EquipmentDrawer copy.vue | 0 .../components/EquipmentDrawer.vue | 5 +- .../components/EquipmentInfoForm.vue | 19 ++++++- 4 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 src/views/specialEquipment/components/EquipmentDrawer copy.vue diff --git a/src/views/specialEquipment/basic/FireFighthing.vue b/src/views/specialEquipment/basic/FireFighthing.vue index 2bd3409e..28cc03c4 100644 --- a/src/views/specialEquipment/basic/FireFighthing.vue +++ b/src/views/specialEquipment/basic/FireFighthing.vue @@ -59,10 +59,11 @@ - + @destroy="cancelEdit" /> @@ -403,25 +404,41 @@ export default { /** 修改按钮操作 */ handleUpdate(row) { this.reset(); + this.form.id = row.id; this.showUploadComponents = false; this.editMode = 'edit'; - const id = row.id; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '修改设备'; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); }); + // this.reset(); + // this.showUploadComponents = false; + // this.editMode = 'edit'; + // const id = row.id; + // getEquipment(id).then((response) => { + // this.form = response.data; + // this.open = true; + // this.title = '修改设备'; + // }); }, - handleDetail(row) { - this.reset(); - this.showUploadComponents = false; - const id = row.id; - this.editMode = 'detail'; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '查看详情'; - }); + handleDetail(row, mode='detail') { + const {id} = row; + this.form.id = id; + // 打开抽屉 + this.editMode = mode; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); + }) + // this.reset(); + // this.showUploadComponents = false; + // const id = row.id; + // this.editMode = 'detail'; + // getEquipment(id).then((response) => { + // this.form = response.data; + // this.open = true; + // this.title = '查看详情'; + // }); }, /** 提交按钮 */ submitForm() { diff --git a/src/views/specialEquipment/components/EquipmentDrawer copy.vue b/src/views/specialEquipment/components/EquipmentDrawer copy.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/views/specialEquipment/components/EquipmentDrawer.vue b/src/views/specialEquipment/components/EquipmentDrawer.vue index d258bd70..6c1439fa 100644 --- a/src/views/specialEquipment/components/EquipmentDrawer.vue +++ b/src/views/specialEquipment/components/EquipmentDrawer.vue @@ -37,6 +37,7 @@ @@ -149,7 +150,7 @@ const SmallTitle = { export default { components: { SmallTitle, DialogForm, EquipmentInfoForm }, - props: ['sections', 'mode', 'dataId'], // dataId 作为一个通用的存放id的字段 + props: ['sections', 'mode', 'dataId', 'isFireEquipment'], // dataId 作为一个通用的存放id的字段 data() { return { visible: false, @@ -279,7 +280,7 @@ export default { } this.btnLoading = false; - this.$emit('refreshDataList') + this.$emit('refreshDataList'); this.handleCancel(); }); }, diff --git a/src/views/specialEquipment/components/EquipmentInfoForm.vue b/src/views/specialEquipment/components/EquipmentInfoForm.vue index c1b642c1..c670b036 100644 --- a/src/views/specialEquipment/components/EquipmentInfoForm.vue +++ b/src/views/specialEquipment/components/EquipmentInfoForm.vue @@ -121,6 +121,16 @@ --> + + + + + + - + @destroy="cancelEdit" /> @@ -388,25 +388,41 @@ export default { /** 修改按钮操作 */ handleUpdate(row) { this.reset(); + this.form.id = row.id; this.showUploadComponents = false; this.editMode = 'edit'; - const id = row.id; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '修改设备'; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); }); + // this.reset(); + // this.showUploadComponents = false; + // this.editMode = 'edit'; + // const id = row.id; + // getEquipment(id).then((response) => { + // this.form = response.data; + // this.open = true; + // this.title = '修改设备'; + // }); }, - handleDetail(row) { - this.reset(); - this.showUploadComponents = false; - const id = row.id; - this.editMode = 'detail'; - getEquipment(id).then((response) => { - this.form = response.data; - this.open = true; - this.title = '查看详情'; - }); + handleDetail(row, mode='detail') { + const {id} = row; + this.form.id = id; + // 打开抽屉 + this.editMode = mode; + this.editVisible = true; + this.$nextTick(() => { + this.$refs['drawer'].init(); + }) + // this.reset(); + // this.showUploadComponents = false; + // const id = row.id; + // this.editMode = 'detail'; + // getEquipment(id).then((response) => { + // this.form = response.data; + // this.open = true; + // this.title = '查看详情'; + // }); }, /** 提交按钮 */ submitForm() { From da5596766c33f5f0defcc69afd4e069aefae289a Mon Sep 17 00:00:00 2001 From: lb Date: Fri, 2 Feb 2024 16:56:45 +0800 Subject: [PATCH 04/36] =?UTF-8?q?Update=20=E4=BF=9D=E5=85=BB=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 3 +- src/mixins/lb/basicPageMixin.js | 2 + .../maintain/PlanConfig--add.vue | 248 ++++++++++++++---- .../specialEquipment/maintain/PlanConfig.vue | 171 +++++++----- 4 files changed, 314 insertions(+), 110 deletions(-) diff --git a/.env.dev b/.env.dev index 90ad311e..924e1dab 100644 --- a/.env.dev +++ b/.env.dev @@ -14,7 +14,8 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' # VUE_APP_BASE_API = 'http://10.70.2.2:8080' -VUE_APP_BASE_API = 'http://192.168.0.33:48082' +VUE_APP_BASE_API = 'http://192.168.1.47:48082' +# VUE_APP_BASE_API = 'http://192.168.0.33:48082' # VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' diff --git a/src/mixins/lb/basicPageMixin.js b/src/mixins/lb/basicPageMixin.js index 3fe2557f..ca1ed6e6 100644 --- a/src/mixins/lb/basicPageMixin.js +++ b/src/mixins/lb/basicPageMixin.js @@ -106,6 +106,8 @@ export default { case 'detail': this.handleDetail(data); break; + default: + this.handleTableActions({data, type}); } }, // 处理搜索栏按钮 diff --git a/src/views/specialEquipment/maintain/PlanConfig--add.vue b/src/views/specialEquipment/maintain/PlanConfig--add.vue index d4c993d5..34f9f437 100644 --- a/src/views/specialEquipment/maintain/PlanConfig--add.vue +++ b/src/views/specialEquipment/maintain/PlanConfig--add.vue @@ -15,34 +15,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { this.equipmentOptions = this.equipmentList @@ -224,8 +330,33 @@ export default { }, }, mounted() { - this.getEquipmentList(); - this.getCode('/base/equipment-maintain-plan/getCode'); + !this.edit && this.getCode('/base/equipment-maintain-plan/getCode'); + this.getList('maintainer'); + this.getList('department'); + this.getList('line'); + }, + computed: { + departmentOptions() { + return (this.departmentList || []).map((item) => ({ + id: item.id, + label: item.name, + value: item.id, + })); + }, + lineOptions() { + return (this.lineList || []).map((item) => ({ + id: item.id, + label: item.name, + value: item.id, + })); + }, + maintainerOptions() { + return (this.maintainerList || []).map((item) => ({ + id: item.id, + label: item.name, + value: item.name, + })); + }, }, methods: { /** 模拟透传 ref */ @@ -253,6 +384,29 @@ export default { })); this.formLoading = false; }, + async getList(source = 'department') { + const urls = [ + '/base/core-production-line/listAll', + '/base/core-department/listAll', + '/base/core-worker/listAll', + ]; + let res; + switch (source) { + case 'department': + res = await this.$axios(urls[1]); + this.departmentList = res.data || []; + break; + case 'maintainer': + res = await this.$axios(urls[2]); + this.maintainerList = res.data || []; + break; + case 'line': + res = await this.$axios(urls[0]); + this.lineList = res.data || []; + break; + } + this.formLoading = false; + }, // handlers handleEqTypeChange(type) { diff --git a/src/views/specialEquipment/maintain/PlanConfig.vue b/src/views/specialEquipment/maintain/PlanConfig.vue index c4559687..b8b77183 100644 --- a/src/views/specialEquipment/maintain/PlanConfig.vue +++ b/src/views/specialEquipment/maintain/PlanConfig.vue @@ -24,7 +24,7 @@ v-if="tableBtn.length" slot="handleBtn" label="操作" - :width="120" + :width="180" :method-list="tableBtn" @clickBtn="handleTableBtnClick" /> @@ -44,7 +44,7 @@ @close="cancel" @cancel="cancel" @confirm="submitForm"> - + @@ -64,11 +64,15 @@ export default { const t = new Date(); const [y, m, d] = [t.getFullYear(), t.getMonth(), t.getDate()]; return { - searchBarKeys: ['equipmentName', 'specialType', 'createTime'], + searchBarKeys: ['planName'], // 'specialType', 'equipmentName', 'createTime'], tableBtn: [ + // { + // type: 'detail', + // btnName: '保养记录', + // }, { - type: 'detail', - btnName: '保养记录', + type: 'addContent', + btnName: '添加内容', }, this.$auth.hasPermi('equipment:plan-config:update') ? { @@ -84,6 +88,23 @@ export default { : undefined, ].filter((v) => v), tableProps: [ + { prop: 'name', label: '计划名称' }, + { prop: 'departmentName', label: '部门' }, + { width: 144, prop: 'lineName', label: '产线名' }, + { width: 144, prop: 'maintenancePeriod', label: '保养频率(天/次)' }, + { width: 144, prop: 'firstMaintenanceTime', label: '首次保养时间' }, + { width: 144, prop: 'maintainDuration', label: '保养时长' }, + { prop: 'maintainer', label: '计划保养人员' }, + { + width: 144, + prop: 'confirmTimeLimit', + label: '确认时限', + filter: (val) => + val != null && val > 24 + ? `${(val - (val % 24)) / 24}天${val % 24}小时` + : `${val}小时`, + }, + { prop: 'remark', label: '备注' }, // { // prop: 'createTime', // label: '添加时间', @@ -91,59 +112,64 @@ export default { // width: 180, // filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), // }, - { prop: 'name', label: '计划名称' }, - { prop: 'code', label: '计划编号' }, - { - prop: 'enabled', - label: '启用状态', - filter: (val) => ['停用', '启用'][val], - }, - { prop: 'lineName', label: '产线' }, - { - prop: 'equipmentCategory', - label: '设备大类', - filter: (val) => - val != null ? ['-', '安全', '消防', '特种'][val] : '-', - }, - { prop: 'equipmentName', label: '设备名称' }, - { width: 144, prop: 'maintainDuration', label: '计划保养用时(h)' }, - { width: 144, prop: 'maintenancePeriod', label: '保养频率(天/次)' }, - { - prop: 'maintainType', - label: '保养类型', - filter: publicFormatter('maintain_type'), - }, - { prop: 'remark', label: '备注' }, + // { prop: 'code', label: '计划编号' }, + // { + // prop: 'enabled', + // label: '启用状态', + // filter: (val) => ['停用', '启用'][val], + // }, + // { + // prop: 'equipmentCategory', + // label: '设备大类', + // filter: (val) => + // val != null ? ['-', '安全', '消防', '特种'][val] : '-', + // }, + // { prop: 'equipmentName', label: '设备名称' }, + // { width: 144, prop: 'maintainDuration', label: '计划保养用时(h)' }, + // { + // prop: 'maintainType', + // label: '保养类型', + // filter: publicFormatter('maintain_type'), + // }, ], searchBarFormConfig: [ - { - type: 'select', - label: '设备大类', - selectOptions: [ - { id: 1, name: '安全设备' }, - { id: 2, name: '消防设备' }, - { id: 3, name: '特种设备' }, - ], - placeholder: '请选择设备大类', - param: 'specialType', - }, + // { + // type: 'select', + // label: '设备大类', + // selectOptions: [ + // { id: 1, name: '安全设备' }, + // { id: 2, name: '消防设备' }, + // { id: 3, name: '特种设备' }, + // ], + // placeholder: '请选择设备大类', + // param: 'specialType', + // }, { type: 'input', - label: '设备名', - placeholder: '请输入设备名称', - param: 'equipmentName', - }, - { - type: 'datePicker', - label: '时间段', - dateType: 'daterange', - format: 'yyyy-MM-dd', - valueFormat: 'yyyy-MM-dd HH:mm:ss', - rangeSeparator: '-', - startPlaceholder: '开始时间', - endPlaceholder: '结束时间', - param: 'createTime', + label: '保养计划名称', + placeholder: '请输入保养计划名称', + param: 'planName', + // selectOptions: [ + // {name: 1, id: 1} + // ] }, + // { + // type: 'input', + // label: '设备名', + // placeholder: '请输入设备名称', + // param: 'equipmentName', + // }, + // { + // type: 'datePicker', + // label: '时间段', + // dateType: 'daterange', + // format: 'yyyy-MM-dd', + // valueFormat: 'yyyy-MM-dd HH:mm:ss', + // rangeSeparator: '-', + // startPlaceholder: '开始时间', + // endPlaceholder: '结束时间', + // param: 'createTime', + // }, { type: 'button', btnName: '查询', @@ -271,9 +297,10 @@ export default { queryParams: { pageNo: 1, pageSize: 10, - equipmentName: null, - createTime: null, + // equipmentName: null, + // createTime: null, specialType: null, + planName: null, }, // 表单参数 form: {}, @@ -311,19 +338,33 @@ export default { /** 表单重置 */ reset() { this.form = { + id: null, code: null, name: null, - equipmentId: null, - enabled: null, + // equipmentId: null, + maintainer: null, + lineId: null, + departmentId: null, + // enabled: null, maintenancePeriod: null, maintainDuration: null, maintainType: null, remark: null, - enabled: 1, - equipmentCategory: null, + confirmTimeLimit: null, + firstMaintenanceTime: null, + speical: false, + // equipmentCategory: null, }; this.resetForm('form'); }, + handleTableActions({data, type}) { + switch(type) { + case 'addContent': + // 添加内容 + alert('添加内容...') + break; + } + }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; @@ -364,7 +405,6 @@ export default { const id = row.id; this.info({ id }).then((response) => { this.form = response.data; - debugger; this.open = true; this.title = '修改保养计划'; }); @@ -377,7 +417,10 @@ export default { } // 修改的提交 if (this.form.id != null) { - this.put(this.form).then((response) => { + this.put({ + ...this.form, + maintainer: this.form.maintainer.join(','), + }).then((response) => { this.$modal.msgSuccess('修改成功'); this.open = false; this.getList(); @@ -385,7 +428,11 @@ export default { return; } // 添加的提交 - this.post(this.form).then((response) => { + this.post({ + ...this.form, + special: true, + maintainer: this.form.maintainer.join(','), + }).then((response) => { this.$modal.msgSuccess('新增成功'); this.open = false; this.getList(); From fd7e295975b7edea55576b738b8aabaa0f019731 Mon Sep 17 00:00:00 2001 From: lb Date: Sun, 4 Feb 2024 14:33:39 +0800 Subject: [PATCH 05/36] =?UTF-8?q?update=20=E4=BF=9D=E5=85=BB=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maintain/PlanConfig--addContent.vue | 461 ++++++++++++++++++ .../specialEquipment/maintain/PlanConfig.vue | 26 +- 2 files changed, 482 insertions(+), 5 deletions(-) create mode 100644 src/views/specialEquipment/maintain/PlanConfig--addContent.vue diff --git a/src/views/specialEquipment/maintain/PlanConfig--addContent.vue b/src/views/specialEquipment/maintain/PlanConfig--addContent.vue new file mode 100644 index 00000000..5c8c9989 --- /dev/null +++ b/src/views/specialEquipment/maintain/PlanConfig--addContent.vue @@ -0,0 +1,461 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/PlanConfig.vue b/src/views/specialEquipment/maintain/PlanConfig.vue index b8b77183..e2daefa0 100644 --- a/src/views/specialEquipment/maintain/PlanConfig.vue +++ b/src/views/specialEquipment/maintain/PlanConfig.vue @@ -44,8 +44,18 @@ @close="cancel" @cancel="cancel" @confirm="submitForm"> - + + + @@ -55,10 +65,11 @@ import basicPageMixin from '@/mixins/lb/basicPageMixin'; import { deleteEqMaintainPlan } from '@/api/equipment/base/maintain/record'; import { publicFormatter } from '@/utils/dict'; import PlanConfigAdd from './PlanConfig--add.vue'; +import PlanConfigAddContent from './PlanConfig--addContent.vue'; export default { name: 'SpecialEquipmentPlanConfig', - components: { DialogForm: PlanConfigAdd }, + components: { DialogForm: PlanConfigAdd, PlanConfigAddContent }, mixins: [basicPageMixin], data() { const t = new Date(); @@ -305,6 +316,8 @@ export default { // 表单参数 form: {}, basePath: '/base/equipment-maintain-plan', + addContentDrawerVisible: false, + maintainData: null, }; }, created() { @@ -357,11 +370,14 @@ export default { }; this.resetForm('form'); }, - handleTableActions({data, type}) { - switch(type) { + handleTableActions({ data, type }) { + switch (type) { case 'addContent': // 添加内容 - alert('添加内容...') + this.addContentDrawerVisible = true; + this.$nextTick(() => { + this.$refs.planConfigDetailDrawer.show(data); + }); break; } }, From 71aab2df9a5d5324ae2d8f2de925a9349f736186 Mon Sep 17 00:00:00 2001 From: lb Date: Sun, 4 Feb 2024 15:43:33 +0800 Subject: [PATCH 06/36] =?UTF-8?q?update=20=E4=BF=9D=E5=85=BB=E7=9B=91?= =?UTF-8?q?=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maintain/Monitor--detail.vue | 461 ++++++++++++++++++ .../specialEquipment/maintain/Monitor.vue | 235 +++++---- .../maintain/PlanConfig--add.vue | 12 +- 3 files changed, 616 insertions(+), 92 deletions(-) create mode 100644 src/views/specialEquipment/maintain/Monitor--detail.vue diff --git a/src/views/specialEquipment/maintain/Monitor--detail.vue b/src/views/specialEquipment/maintain/Monitor--detail.vue new file mode 100644 index 00000000..704c6ba2 --- /dev/null +++ b/src/views/specialEquipment/maintain/Monitor--detail.vue @@ -0,0 +1,461 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/Monitor.vue b/src/views/specialEquipment/maintain/Monitor.vue index 2223ac45..64b79b93 100644 --- a/src/views/specialEquipment/maintain/Monitor.vue +++ b/src/views/specialEquipment/maintain/Monitor.vue @@ -52,6 +52,11 @@ :has-files="false" :rows="rows" /> + + @@ -62,6 +67,8 @@ import basicPageMixin from '@/mixins/lb/basicPageMixin'; import { exportMaintainMonitorExcel } from '@/api/equipment/base/maintain/record'; import { parseTime } from '@/utils/ruoyi'; +import MonitorDetail from './Monitor--detail.vue'; + const remainBox = { name: 'RemainBox', props: ['injectData'], @@ -120,22 +127,28 @@ const btn = { export default { name: 'SpecialEquipmentMaintainMonitor', - components: {}, + components: { MonitorDetail }, mixins: [basicPageMixin], data() { return { - searchBarKeys: ['planId', 'specialType', 'equipmentId'], + monitorDetailVisible: false, + searchBarKeys: ['planId'], tableProps: [ - // { - // prop: 'createTime', - // label: '添加时间', - // fixed: true, - // width: 180, - // filter: parseTime(createTime), - // }, + { + prop: 'code', + label: '保养计划单号', + minWidth: 118, + showOverflowtooltip: true, + }, { prop: 'name', - label: '保养计划', + label: '保养计划名称', + minWidth: 118, + showOverflowtooltip: true, + }, + { + prop: 'departmentName', + label: '部门', minWidth: 100, showOverflowtooltip: true, }, @@ -146,61 +159,101 @@ export default { showOverflowtooltip: true, }, { - prop: 'equipmentCategory', - label: '设备大类', - minWidth: 100, + prop: 'lastPlanMaintainTime', + label: '上次计划保养时间', + filter: parseTime, + minWidth: 158, showOverflowtooltip: true, - filter: (val) => - val != null ? ['-', '安全设备', '消防设备', '特种设备'][val] : '-', - }, - { - prop: 'equipmentName', - label: '设备名称', - minWidth: 100, - showOverflowtooltip: true, - }, - { prop: 'maintenancePeriod', label: '保养频率' }, - { - prop: 'maintainType', - label: '保养类型', - showOverflowtooltip: true, - filter: publicFormatter(this.DICT_TYPE.MAINTAIN_TYPE), }, { prop: 'lastMaintainTime', - label: '上次保养时间', + label: '上次实际保养时间', filter: parseTime, - minWidth: 150, + minWidth: 158, showOverflowtooltip: true, }, { - prop: 'nextMaintainTime', - label: '计划下次保养时间', + prop: 'nextPlanMaintainTime', + label: '下次计划保养时间', filter: parseTime, - minWidth: 150, + minWidth: 158, showOverflowtooltip: true, }, { - prop: 'remainDays', - label: '距离保养时间(天)', - subcomponent: remainBox, - minWidth: 150, - // showOverflowtooltip: true - }, - { - prop: 'opt1', - label: '设备保养', - name: '操作', - subcomponent: btn, - width: 100, + prop: 'maintainer', + label: '计划保养人员', + minWidth: 158, + showOverflowtooltip: true, }, { prop: 'opt2', - label: '保养记录', - name: '查看详情', + label: '保养内容', + name: '详情', subcomponent: btn, width: 100, }, + { + prop: 'remainDays', + label: '距离下次保养剩余时间(天)', + subcomponent: remainBox, + minWidth: 210, + }, + // { + // prop: 'createTime', + // label: '添加时间', + // fixed: true, + // width: 180, + // filter: parseTime(createTime), + // }, + // { + // prop: 'equipmentCategory', + // label: '设备大类', + // minWidth: 100, + // showOverflowtooltip: true, + // filter: (val) => + // val != null ? ['-', '安全设备', '消防设备', '特种设备'][val] : '-', + // }, + // { + // prop: 'equipmentName', + // label: '设备名称', + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { prop: 'maintenancePeriod', label: '保养频率' }, + // { + // prop: 'maintainType', + // label: '保养类型', + // showOverflowtooltip: true, + // filter: publicFormatter(this.DICT_TYPE.MAINTAIN_TYPE), + // }, + // { + // prop: 'lastMaintainTime', + // label: '上次保养时间', + // filter: parseTime, + // minWidth: 150, + // showOverflowtooltip: true, + // }, + // { + // prop: 'remainDays', + // label: '距离保养时间(天)', + // subcomponent: remainBox, + // minWidth: 150, + // // showOverflowtooltip: true + // }, + // { + // prop: 'opt1', + // label: '设备保养', + // name: '操作', + // subcomponent: btn, + // width: 100, + // }, + // { + // prop: 'opt2', + // label: '保养记录', + // name: '查看详情', + // subcomponent: btn, + // width: 100, + // }, ], searchBarFormConfig: [ { @@ -210,26 +263,26 @@ export default { param: 'planId', filterable: true, }, - { - type: 'select', - label: '设备大类', - placeholder: '请选择设备大类', - param: 'specialType', - onchange: true, - selectOptions: [ - { id: 1, name: '安全设备' }, - { id: 2, name: '消防设备' }, - { id: 3, name: '特种设备' }, - ], - filterable: true, - }, - { - type: 'select', - label: '设备名', - placeholder: '请选择设备', - param: 'equipmentId', - filterable: true, - }, + // { + // type: 'select', + // label: '设备大类', + // placeholder: '请选择设备大类', + // param: 'specialType', + // onchange: true, + // selectOptions: [ + // { id: 1, name: '安全设备' }, + // { id: 2, name: '消防设备' }, + // { id: 3, name: '特种设备' }, + // ], + // filterable: true, + // }, + // { + // type: 'select', + // label: '设备名', + // placeholder: '请选择设备', + // param: 'equipmentId', + // filterable: true, + // }, { type: 'button', btnName: '查询', @@ -255,10 +308,8 @@ export default { queryParams: { pageNo: 1, pageSize: 10, - equipmentName: null, - createTime: null, + planId: null, special: true, - specialType: null, }, // 表单参数 form: {}, @@ -331,28 +382,34 @@ export default { }); }, handleEmitFun({ action, value }) { + console.log('handleEmitFun .... ', action, value); switch (action) { - // 查看详情 - case '设备保养': - this.$router.push({ - path: '/equipment/base/maintain/record', - query: { - addRecord: 1, - row: value, - }, - }); - break; - case '保养记录': - const queryData = { - equipmentId: value.equipmentId, - maintainPlanId: value.id, - relatePlan: value.lastMaintainTime ? 1 : 2, - }; - this.$router.push({ - path: '/equipment/base/maintain/record', - query: queryData, + case '保养内容': + this.monitorDetailVisible = true; + this.$nextTick(() => { + this.$refs.monitorDetailDrawer.show(value); }); break; + // case '设备保养': + // this.$router.push({ + // path: '/equipment/base/maintain/record', + // query: { + // addRecord: 1, + // row: value, + // }, + // }); + // break; + // case '保养记录': + // const queryData = { + // equipmentId: value.equipmentId, + // maintainPlanId: value.id, + // relatePlan: value.lastMaintainTime ? 1 : 2, + // }; + // this.$router.push({ + // path: '/equipment/base/maintain/record', + // query: queryData, + // }); + // break; } }, /** 查询列表 */ diff --git a/src/views/specialEquipment/maintain/PlanConfig--add.vue b/src/views/specialEquipment/maintain/PlanConfig--add.vue index 34f9f437..0d2e016d 100644 --- a/src/views/specialEquipment/maintain/PlanConfig--add.vue +++ b/src/views/specialEquipment/maintain/PlanConfig--add.vue @@ -199,7 +199,12 @@ - + { this.equipmentOptions = this.equipmentList From d0a4dc527f778046fe6d90997668399094efd536 Mon Sep 17 00:00:00 2001 From: lb Date: Sun, 4 Feb 2024 16:30:14 +0800 Subject: [PATCH 07/36] =?UTF-8?q?update=20=E4=BF=9D=E5=85=BB=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mixins/lb/basicPageMixin.js | 2 +- .../maintain/Record--detail.vue | 421 ++++++++++++++++++ .../specialEquipment/maintain/Record.vue | 377 ++++++++++------ 3 files changed, 663 insertions(+), 137 deletions(-) create mode 100644 src/views/specialEquipment/maintain/Record--detail.vue diff --git a/src/mixins/lb/basicPageMixin.js b/src/mixins/lb/basicPageMixin.js index ca1ed6e6..cfe12de6 100644 --- a/src/mixins/lb/basicPageMixin.js +++ b/src/mixins/lb/basicPageMixin.js @@ -138,7 +138,7 @@ export default { } }, handleEmitFun(val) { - console.log('emit unf', val); + console.log('[basicPageMixin handleEmitFun]', val); switch (val.action) { // 查看详情 case 'show-detail': diff --git a/src/views/specialEquipment/maintain/Record--detail.vue b/src/views/specialEquipment/maintain/Record--detail.vue new file mode 100644 index 00000000..ebfff0f8 --- /dev/null +++ b/src/views/specialEquipment/maintain/Record--detail.vue @@ -0,0 +1,421 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/Record.vue b/src/views/specialEquipment/maintain/Record.vue index be4d1309..19dff47f 100644 --- a/src/views/specialEquipment/maintain/Record.vue +++ b/src/views/specialEquipment/maintain/Record.vue @@ -11,7 +11,6 @@ @@ -22,13 +21,13 @@ :limit="queryParams.pageSize" :table-data="list" @emitFun="handleEmitFun"> - + @clickBtn="handleTableBtnClick" /> --> @@ -60,6 +59,11 @@ + + @@ -72,21 +76,47 @@ import { deleteEqMaintainLog, exportMaintainLogExcel, } from '@/api/equipment/base/maintain/record'; +import RecordDetail from './Record--detail.vue'; const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); +const btn = { + name: 'tableBtn', + props: ['injectData'], + data() { + return {}; + }, + methods: { + handleClick() { + this.$emit('emitData', { + action: this.injectData.label, + value: this.injectData, + }); + }, + }, + render: function (h) { + return ( + + {this.injectData.name} + + ); + }, +}; + export default { name: 'SpecialEquipmentMaintainRecord', - components: { DialogForm }, + components: { DialogForm, RecordDetail }, mixins: [basicPageMixin], data() { return { + recordDetailVisible: false, searchBarKeys: [ 'maintainPlanId', 'startTime', - 'relatePlan', - 'equipmentId', - 'specialType', + 'special', + // 'relatePlan', + // 'equipmentId', + // 'specialType', ], tableBtn: [ this.$auth.hasPermi('equipment:maintain-record:update') @@ -122,99 +152,146 @@ export default { width: 110, showOverflowtooltip: true, }, + { + prop: 'planName', + label: '保养计划名称', + width: 110, + showOverflowtooltip: true, + }, + { + prop: 'departmentName', + label: '部门', + width: 110, + showOverflowtooltip: true, + }, + { + prop: 'lineName', + label: '产线名', + width: 110, + showOverflowtooltip: true, + }, + { + prop: 'planStartTime', + label: '计划开始时间', + filter: timeFilter, + minWidth: 150, + showOverflowtooltip: true, + }, + { + prop: 'planEndTime', + label: '计划结束时间', + filter: timeFilter, + minWidth: 150, + showOverflowtooltip: true, + }, { prop: 'startTime', - label: '开始时间', + label: '实际开始时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true, }, { prop: 'endTime', - label: '结束时间', + label: '实际结束时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true, }, { - prop: 'equipmentCategory', - label: '设备大类', + prop: 'relatePlan', + label: '保养计划类型', minWidth: 100, showOverflowtooltip: true, filter: (val) => - val != null ? ['-', '安全设备', '消防设备', '特种设备'][val] : '-', + val != null ? ['-', '计划型', '非计划型'][val] : '-', }, { - prop: 'equipmentName', - label: '设备名称', - minWidth: 100, - showOverflowtooltip: true, - }, - { - prop: 'maintainWorker', - label: '保养人员', - minWidth: 100, - showOverflowtooltip: true, - }, - { - prop: 'relatePlan', - label: '是否计划保养', - width: 120, - filter: (v) => (v != null ? ['', '是', '否'][v] : ''), - }, - { - prop: 'planName', - label: '保养计划名称', - minWidth: 120, - showOverflowtooltip: true, - }, - { - prop: 'maintainDuration', - label: '计划保养用时(h)', - minWidth: 130, - showOverflowtooltip: true, - }, - { prop: 'timeUsed', label: '实际保养用时(h)', minWidth: 130 }, - { - prop: 'remark', - label: '备注', - minWidth: 100, - showOverflowtooltip: true, + prop: '_detail', + label: '详情', + name: '详情', + minWidth: 60, + subcomponent: btn, }, + // { + // prop: 'equipmentCategory', + // label: '设备大类', + // minWidth: 100, + // showOverflowtooltip: true, + // filter: (val) => + // val != null ? ['-', '安全设备', '消防设备', '特种设备'][val] : '-', + // }, + // { + // prop: 'equipmentName', + // label: '设备名称', + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { + // prop: 'maintainWorker', + // label: '保养人员', + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { + // prop: 'relatePlan', + // label: '是否计划保养', + // width: 120, + // filter: (v) => (v != null ? ['', '是', '否'][v] : ''), + // }, + // { + // prop: 'planName', + // label: '保养计划名称', + // minWidth: 120, + // showOverflowtooltip: true, + // }, + // { + // prop: 'maintainDuration', + // label: '计划保养用时(h)', + // minWidth: 130, + // showOverflowtooltip: true, + // }, + // { prop: 'timeUsed', label: '实际保养用时(h)', minWidth: 130 }, + // { + // prop: 'remark', + // label: '备注', + // minWidth: 100, + // showOverflowtooltip: true, + // }, ], searchBarFormConfig: [ + // { + // type: 'select', + // label: '设备大类', + // placeholder: '请选择设备大类', + // param: 'specialType', + // onchange: true, + // selectOptions: [ + // { id: 1, name: '安全设备' }, + // { id: 2, name: '消防设备' }, + // { id: 3, name: '特种设备' }, + // ], + // filterable: true, + // defaultSelect: null + // }, + // { + // type: 'select', + // label: '设备', + // placeholder: '请选择设备', + // param: 'equipmentId', + // defaultSelect: null + // }, { type: 'select', - label: '设备大类', - placeholder: '请选择设备大类', - param: 'specialType', - onchange: true, - selectOptions: [ - { id: 1, name: '安全设备' }, - { id: 2, name: '消防设备' }, - { id: 3, name: '特种设备' }, - ], - filterable: true, - defaultSelect: null - }, - { - type: 'select', - label: '设备', - placeholder: '请选择设备', - param: 'equipmentId', - defaultSelect: null - }, - { - type: 'select', - label: '计划名称', - placeholder: '请选择计划名称', + label: '保养计划名称', + placeholder: '请选择保养计划名称', param: 'maintainPlanId', - defaultSelect: null + defaultSelect: null, }, // 开始结束时间 { type: 'datePicker', - label: '保养开始时间', + label: '实际开始时间', dateType: 'daterange', // datetimerange format: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd HH:mm:ss', @@ -223,19 +300,19 @@ export default { endPlaceholder: '结束日期', defaultTime: ['00:00:00', '23:59:59'], param: 'startTime', - defaultSelect: null + defaultSelect: null, // width: 350, }, - { - type: 'select', - label: '是否计划保养', - selectOptions: [ - { name: '是', id: 1 }, - { name: '否', id: 2 }, - ], - defaultSelect: null, - param: 'relatePlan', - }, + // { + // type: 'select', + // label: '是否计划保养', + // selectOptions: [ + // { name: '是', id: 1 }, + // { name: '否', id: 2 }, + // ], + // defaultSelect: null, + // param: 'relatePlan', + // }, { type: 'button', btnName: '查询', @@ -254,15 +331,15 @@ export default { plain: true, color: 'primary', }, - { - type: this.$auth.hasPermi('equipment:maintain-record:create') - ? 'button' - : '', - btnName: '新增', - name: 'add', - plain: true, - color: 'success', - }, + // { + // type: this.$auth.hasPermi('equipment:maintain-record:create') + // ? 'button' + // : '', + // btnName: '新增', + // name: 'add', + // plain: true, + // color: 'success', + // }, ], rows: [ [ @@ -422,12 +499,11 @@ export default { pageNo: 1, pageSize: 10, maintainPlanId: null, - maintainPlanId: null, startTime: null, - relatePlan: null, - equipmentId: null, + // relatePlan: null, + // equipmentId: null, special: true, - specialType: null, + // specialType: null, }, // 表单参数 form: {}, @@ -438,32 +514,47 @@ export default { }, created() { this.initSearchBar(); - if (this.$route.query) { - this.queryParams.specialType = - this.$route.query?.specialType ?? undefined; - this.queryParams.equipmentId = - this.$route.query?.equipmentId ?? undefined; - this.queryParams.maintainPlanId = - this.$route.query?.maintainPlanId ?? undefined; - this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined; - this.queryParams.startTime = this.$route.query?.createTime ?? undefined; - this.searchBarFormConfig[0].defaultSelect = - this.$route.query.specialType ?? undefined; - this.searchBarFormConfig[1].defaultSelect = - this.$route.query.equipmentId ?? undefined; - this.searchBarFormConfig[2].defaultSelect = - this.$route.query.maintainPlanId ?? undefined; - this.searchBarFormConfig[3].defaultSelect = - this.$route.query?.createTime ?? undefined; - this.searchBarFormConfig[4].defaultSelect = - Number(this.$route.query.relatePlan) ?? undefined; - } + // if (this.$route.query) { + // this.queryParams.specialType = + // this.$route.query?.specialType ?? undefined; + // this.queryParams.equipmentId = + // this.$route.query?.equipmentId ?? undefined; + // this.queryParams.maintainPlanId = + // this.$route.query?.maintainPlanId ?? undefined; + // this.queryParams.relatePlan = this.$route.query?.relatePlan ?? undefined; + // this.queryParams.startTime = this.$route.query?.createTime ?? undefined; + // this.searchBarFormConfig[0].defaultSelect = + // this.$route.query.specialType ?? undefined; + // this.searchBarFormConfig[1].defaultSelect = + // this.$route.query.equipmentId ?? undefined; + // this.searchBarFormConfig[2].defaultSelect = + // this.$route.query.maintainPlanId ?? undefined; + // this.searchBarFormConfig[3].defaultSelect = + // this.$route.query?.createTime ?? undefined; + // this.searchBarFormConfig[4].defaultSelect = + // Number(this.$route.query.relatePlan) ?? undefined; + // } this.getList(); - if (this.$route.query.addRecord) { - this.handleAdd(); - } + // if (this.$route.query.addRecord) { + // this.handleAdd(); + // } }, methods: { + handleEmitFun({ action, value }) { + switch (action) { + case '详情': + this.recordDetailVisible = true; + this.$nextTick(() => { + this.$refs.recordDetailDrawer.show({ + id: value.id, + planMaintainWorker: value.planMaintainWorker, + maintainWorker: value.maintainWorker, + }); + }); + break; + } + }, + handleSearchBarChange({ param, value }) { if ('specialType' === param) { if (!value) { @@ -475,28 +566,29 @@ export default { ); } }, - setSearchBarEquipmentList(eqList) { - this.$set( - this.searchBarFormConfig[1], - 'selectOptions', - eqList.map((item) => ({ - name: item.name, - id: item.id, - })) - ); - }, + // setSearchBarEquipmentList(eqList) { + // this.$set( + // this.searchBarFormConfig[1], + // 'selectOptions', + // eqList.map((item) => ({ + // name: item.name, + // id: item.id, + // })) + // ); + // }, initSearchBar() { - this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { - this.allSpecialEquipments = data.filter((item) => item.special); - this.setSearchBarEquipmentList(data.filter((item) => item.special)); - }); + // this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { + // this.allSpecialEquipments = data.filter((item) => item.special); + // this.setSearchBarEquipmentList(data.filter((item) => item.special)); + // }); this.http('/base/equipment-maintain-plan/page', 'get', { pageNo: 1, pageSize: 100, special: true, }).then(({ data }) => { this.$set( - this.searchBarFormConfig[2], + this.searchBarFormConfig[0], + // this.searchBarFormConfig[2], 'selectOptions', (data?.list || []).map((item) => ({ name: item.name, @@ -509,8 +601,21 @@ export default { getList() { this.loading = true; // 执行查询 - this.recv(this.queryParams).then((response) => { - this.list = response.data.list; + this.recv({ ...this.queryParams, special: true }).then((response) => { + this.list = [ + { + id: 213, + maintainOrderNumber: 123, + planName: 'hhh', + departmentName: 'asdf', + lineName: 456, + planStartTime: '2024-01-01', + planEndTime: '2024-01-01', + startTime: '2024-01-01', + endTime: '2024-01-01', + relatePlan: 1, + }, + ]; // response.data.list; this.total = response.data.total; this.loading = false; }); From 372749e3131dc3c84ca68ba96d0fab13df012bc6 Mon Sep 17 00:00:00 2001 From: lb Date: Sun, 4 Feb 2024 17:00:12 +0800 Subject: [PATCH 08/36] =?UTF-8?q?update=20=E8=AE=BE=E5=A4=87=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maintain/Monitor--detail.vue | 8 +- .../maintain/Record--detail.vue | 8 +- .../specialEquipment/maintain/Repair.vue | 109 +++++++++++------- 3 files changed, 77 insertions(+), 48 deletions(-) diff --git a/src/views/specialEquipment/maintain/Monitor--detail.vue b/src/views/specialEquipment/maintain/Monitor--detail.vue index 704c6ba2..cfbedc87 100644 --- a/src/views/specialEquipment/maintain/Monitor--detail.vue +++ b/src/views/specialEquipment/maintain/Monitor--detail.vue @@ -116,11 +116,11 @@ @@ -178,7 +178,7 @@ export default { data() { return { visible: false, - mode: 'edit', + mode: 'detail', showForm: false, form: { departmentName: null, diff --git a/src/views/specialEquipment/maintain/Record--detail.vue b/src/views/specialEquipment/maintain/Record--detail.vue index ebfff0f8..8eaee473 100644 --- a/src/views/specialEquipment/maintain/Record--detail.vue +++ b/src/views/specialEquipment/maintain/Record--detail.vue @@ -92,11 +92,11 @@ @@ -154,7 +154,7 @@ export default { data() { return { visible: false, - mode: 'edit', + mode: 'detail', showForm: false, form: { id: null, diff --git a/src/views/specialEquipment/maintain/Repair.vue b/src/views/specialEquipment/maintain/Repair.vue index 4a816667..a946645b 100644 --- a/src/views/specialEquipment/maintain/Repair.vue +++ b/src/views/specialEquipment/maintain/Repair.vue @@ -110,72 +110,101 @@ export default { : undefined, ].filter((v) => v), tableProps: [ - { - prop: 'createTime', - label: '添加时间', - fixed: true, - width: 150, - filter: parseTime, - }, + // { + // prop: 'createTime', + // label: '添加时间', + // fixed: true, + // width: 150, + // filter: parseTime, + // }, { prop: 'repairOrderNumber', label: '设备维修单号', minWidth: 120, showOverflowtooltip: true, }, + { + prop: 'lineName', + label: '产线名', + minWidth: 120, + showOverflowtooltip: true, + }, + { + prop: 'sectionName', + label: '工段名', + minWidth: 120, + showOverflowtooltip: true, + }, + { + prop: 'equipmentName', + label: '设备名称', + minWidth: 120, + showOverflowtooltip: true, + }, + { + prop: 'faultDetail', + label: '故障明细', + minWidth: 120, + showOverflowtooltip: true, + }, { prop: 'maintenanceStartTime', - label: '开始时间', + label: '维修开始时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true, }, { prop: 'maintenanceFinishTime', - label: '结束时间', + label: '维修结束时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true, }, { - prop: 'maintenanceStatus', - label: '维修状态', - filter: (v) => (v != null ? ['未完成', '完成', '进行中'][v] : ''), - }, - { prop: 'maintenanceDuration', label: '维修时长(h)', width: 110 }, - { prop: 'lineName', label: '产线' }, - { prop: 'sectionName', label: '工段' }, - { - prop: 'equipmentName', - label: '设备名称', - minWidth: 100, - showOverflowtooltip: true, - }, - { - prop: 'maintenanceDetail', - label: '维修明细', - subcomponent: htmls, - minWidth: 100, - showOverflowtooltip: true, - }, - { - prop: 'repairman', - label: '维修工', - minWidth: 100, - showOverflowtooltip: true, - }, - { - prop: 'repairmanPhone', - label: '联系方式', - minWidth: 100, - showOverflowtooltip: true, + prop: 'maintenanceResult', + label: '维修结果', + filter: (v) => (v != null ? ['成功', '失败'][v] : ''), }, + { prop: 'maintenanceDetail', label: '维修描述', width: 110 }, + { prop: '_detail', label: '查看详情', width: 110 }, { prop: 'remark', label: '备注', minWidth: 120, showOverflowtooltip: true, }, + // { + // prop: 'maintenanceStatus', + // label: '维修状态', + // filter: (v) => (v != null ? ['未完成', '完成', '进行中'][v] : ''), + // }, + // { prop: 'maintenanceDuration', label: '维修时长(h)', width: 110 }, + // { + // prop: 'equipmentName', + // label: '设备名称', + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { + // prop: 'maintenanceDetail', + // label: '维修明细', + // subcomponent: htmls, + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { + // prop: 'repairman', + // label: '维修工', + // minWidth: 100, + // showOverflowtooltip: true, + // }, + // { + // prop: 'repairmanPhone', + // label: '联系方式', + // minWidth: 100, + // showOverflowtooltip: true, + // }, ], searchBarFormConfig: [ { From ae7b13695aa7eb4c1e9bb88e024dc16ee47094d3 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 5 Feb 2024 10:59:36 +0800 Subject: [PATCH 09/36] add waitinglist page and its dialogs --- .../maintain/WaitingList--add--planned.vue | 440 +++++++++++ .../maintain/WaitingList--add--unplanned.vue | 440 +++++++++++ .../specialEquipment/maintain/WaitingList.vue | 687 ++++++++++++++++++ 3 files changed, 1567 insertions(+) create mode 100644 src/views/specialEquipment/maintain/WaitingList--add--planned.vue create mode 100644 src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue create mode 100644 src/views/specialEquipment/maintain/WaitingList.vue diff --git a/src/views/specialEquipment/maintain/WaitingList--add--planned.vue b/src/views/specialEquipment/maintain/WaitingList--add--planned.vue new file mode 100644 index 00000000..de27440e --- /dev/null +++ b/src/views/specialEquipment/maintain/WaitingList--add--planned.vue @@ -0,0 +1,440 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue new file mode 100644 index 00000000..de27440e --- /dev/null +++ b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue @@ -0,0 +1,440 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/WaitingList.vue b/src/views/specialEquipment/maintain/WaitingList.vue new file mode 100644 index 00000000..d12d47d4 --- /dev/null +++ b/src/views/specialEquipment/maintain/WaitingList.vue @@ -0,0 +1,687 @@ + + + + + + + From 9f82aac93120ade7de5b2225931fc71fc34dd427 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 5 Feb 2024 11:17:19 +0800 Subject: [PATCH 10/36] 1 --- .../maintain/WaitingList--add--planned.vue | 165 +++++++----------- .../maintain/WaitingList--add--unplanned.vue | 143 ++++----------- 2 files changed, 100 insertions(+), 208 deletions(-) diff --git a/src/views/specialEquipment/maintain/WaitingList--add--planned.vue b/src/views/specialEquipment/maintain/WaitingList--add--planned.vue index de27440e..5b8240cc 100644 --- a/src/views/specialEquipment/maintain/WaitingList--add--planned.vue +++ b/src/views/specialEquipment/maintain/WaitingList--add--planned.vue @@ -29,16 +29,11 @@ - + + disabled + :placeholder="`请输入保养计划名称`" /> @@ -101,114 +96,27 @@ :value="opt.value" /> - - - + + + - - - - - - - - - - - - - - @@ -216,10 +124,61 @@ + + + + + + + + + + + + + + + + + + - - + + --- @@ -101,114 +93,38 @@ :value="opt.value" /> - - - + + --- + + + + + + --- + + + + + + --- - - - - - - - - - - - - - - @@ -216,10 +132,27 @@ + + + + + + Date: Mon, 5 Feb 2024 11:18:14 +0800 Subject: [PATCH 11/36] 1 --- .../maintain/WaitingList--add--unplanned.vue | 8 +- .../maintain/WaitingList--edit--planned.vue | 399 ++++++++++++++++++ .../maintain/WaitingList--edit--unplanned.vue | 373 ++++++++++++++++ .../specialEquipment/maintain/WaitingList.vue | 5 +- 4 files changed, 780 insertions(+), 5 deletions(-) create mode 100644 src/views/specialEquipment/maintain/WaitingList--edit--planned.vue create mode 100644 src/views/specialEquipment/maintain/WaitingList--edit--unplanned.vue diff --git a/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue index 9fc63893..fd013986 100644 --- a/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue +++ b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue @@ -30,7 +30,7 @@ - --- + @@ -97,19 +97,19 @@ - --- + - --- + - --- + diff --git a/src/views/specialEquipment/maintain/WaitingList--edit--planned.vue b/src/views/specialEquipment/maintain/WaitingList--edit--planned.vue new file mode 100644 index 00000000..5b8240cc --- /dev/null +++ b/src/views/specialEquipment/maintain/WaitingList--edit--planned.vue @@ -0,0 +1,399 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/WaitingList--edit--unplanned.vue b/src/views/specialEquipment/maintain/WaitingList--edit--unplanned.vue new file mode 100644 index 00000000..9fc63893 --- /dev/null +++ b/src/views/specialEquipment/maintain/WaitingList--edit--unplanned.vue @@ -0,0 +1,373 @@ + + + + + + + diff --git a/src/views/specialEquipment/maintain/WaitingList.vue b/src/views/specialEquipment/maintain/WaitingList.vue index d12d47d4..cc3b17f8 100644 --- a/src/views/specialEquipment/maintain/WaitingList.vue +++ b/src/views/specialEquipment/maintain/WaitingList.vue @@ -39,7 +39,7 @@ :limit.sync="queryParams.pageSize" @pagination="getList" /> - + + + + From f67930941fa8fbcedb26c56b803c90da0f47dac4 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 5 Feb 2024 16:12:31 +0800 Subject: [PATCH 12/36] before change table --- .../maintain/WaitingList--add--unplanned.vue | 24 +- .../specialEquipment/maintain/WaitingList.vue | 243 +++++++++++------- 2 files changed, 163 insertions(+), 104 deletions(-) diff --git a/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue index fd013986..b4d9d4ca 100644 --- a/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue +++ b/src/views/specialEquipment/maintain/WaitingList--add--unplanned.vue @@ -16,12 +16,12 @@ @@ -102,13 +102,13 @@ - + - + @@ -116,12 +116,12 @@ { - return index % 2 == 0; - }, + // prop: '_selection', + // label: '批量选择', + width: 48, subcomponent: { - render: (h, { row, index }) => { - return

hello

; - // return + props: ['injectData'], + data() { + return { + outside: false, + selected: false, + }; + }, + watch: { + selected(val) { + if (!this.outside) { + console.log("emit row-selected...") + this.$emit('emitData', { + action: 'row-selected', + value: { + row: this.injectData, + selected: val, + }, + }); + } + }, + injectData: { + deep: true, + immediate: true, + handler: function (val) { + this.outside = true; + this.selected = !!((val._selection & 0b01) != 0); + this.$nextTick(() => { + this.outside = false; + }) + }, + }, + }, + render(h) { + const enabled = 0b10 & this.injectData._selection; + // return this.injectData?._selection ? h('h1', null, 'hello') : h('h1', null, '1'); + return ( +
+ {this.selected} + +
+ ); }, }, }, @@ -397,6 +433,15 @@ export default { allSpecialEquipments: [], }; }, + watch: { + tobeConfirmedIdList: { + handler(val) { + if (val.length == this.list.length) { + this.$refs['table'].toggleAllSelection(); + } + }, + }, + }, created() { this.initSearchBar(); // if (this.$route.query) { @@ -426,7 +471,31 @@ export default { }, methods: { handleSelectionChange(list) { - console.log('handleSelectionChange', list); + if (this.tobeConfirmedIdList.length) { + this.tobeConfirmedIdList = []; + this.list.forEach((item) => { + this.handleEmitFun({ + action: 'row-selected', + value: { row: item, selected: false }, + }); + }); + console.log( + '清空选择列表', + this.list.map((item) => item._selection) + ); + } else { + this.tobeConfirmedIdList = list.map((item) => item.id); + this.list.forEach((item) => { + this.handleEmitFun({ + action: 'row-selected', + value: { row: item, selected: true }, + }); + }); + console.log( + '全选', + this.list.map((item) => item._selection) + ); + } }, handleEmitFun({ action, value }) { @@ -441,6 +510,18 @@ export default { }); }); break; + case 'row-selected': + if (value.selected) { + this.tobeConfirmedIdList.push(value.row.id); + value.row._selection = 0b11; + } else { + const index = this.tobeConfirmedIdList.indexOf(value.row.id); + if (index != -1) { + this.tobeConfirmedIdList.splice(index, 1); + } + } + console.log('tobeConfirmedIdList', this.tobeConfirmedIdList); + break; } }, @@ -455,16 +536,6 @@ export default { ); } }, - // setSearchBarEquipmentList(eqList) { - // this.$set( - // this.searchBarFormConfig[1], - // 'selectOptions', - // eqList.map((item) => ({ - // name: item.name, - // id: item.id, - // })) - // ); - // }, initSearchBar() { // this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { // this.allSpecialEquipments = data.filter((item) => item.special); @@ -490,28 +561,20 @@ export default { getList() { this.loading = true; // 执行查询 - this.recv({ ...this.queryParams, special: true, confirmed: false }).then( - (response) => { - this.list = - // [ - // { - // id: 213, - // maintainOrderNumber: 123, - // planName: 'hhh', - // departmentName: 'asdf', - // lineName: 456, - // planStartTime: '2024-01-01', - // planEndTime: '2024-01-01', - // startTime: '2024-01-01', - // endTime: '2024-01-01', - // relatePlan: 1, - // }, - // ]; - response.data.list; - this.total = response.data.total; - this.loading = false; - } - ); + this.recv({ + ...this.queryParams, + special: true, + relatePlan: 2, + confirmed: false, + }).then((response) => { + this.list = response.data.list.map((item) => ({ + ...item, + planName: '---', + _selection: 0b10, + })); + this.total = response.data.total; + this.loading = false; + }); }, /** 取消按钮 */ cancel() { @@ -524,22 +587,13 @@ export default { this.form = { id: null, relatePlan: null, - maintainPlanId: null, - equipmentId: null, maintainWorker: [], maintainOrderNumber: null, + departmentId: null, + lineId: null, startTime: null, endTime: null, - timeUsed: null, remark: null, - maintenanceDes: null, - files: [ - // { - // fileName: '', - // fileType: '', - // fileUrl: '', - // }, - ], }; this.resetForm('form'); }, @@ -556,32 +610,32 @@ export default { /** 新增按钮操作 */ handleAdd() { this.reset(); - if (this.$route.query.addRecord) { - // 赋值 - const tempRow = this.$route.query.row; - this.form.equipmentId = tempRow.equipmentId; - this.form.relatePlan = tempRow.nextMaintainTime ? 1 : 2; - this.form.startTime = tempRow.nextMaintainTime; - this.form.maintainPlanId = tempRow.id; - // await (() => { - // return new Promise((acpt, rejt) => { - // this.form.relatePlan = - // this.$route.query.relatePlan || - // (tempRow.nextMaintainTime ? 1 : 2); - // this.form.startTime = tempRow.nextMaintainTime; - // acpt(); - // }); - // })(); - // this.$nextTick(() => { - // this.form.maintainPlanId = tempRow.id; - // this.form.equipmentId = tempRow.equipmentId; - // }); - } - if (this.$route.query.isAdd) { - // 赋值 - this.form.equipmentId = this.$route.query.equipmentId; - this.form.maintainPlanId = this.$route.query.maintainPlanId; - } + // if (this.$route.query.addRecord) { + // // 赋值 + // const tempRow = this.$route.query.row; + // this.form.equipmentId = tempRow.equipmentId; + // this.form.relatePlan = tempRow.nextMaintainTime ? 1 : 2; + // this.form.startTime = tempRow.nextMaintainTime; + // this.form.maintainPlanId = tempRow.id; + // // await (() => { + // // return new Promise((acpt, rejt) => { + // // this.form.relatePlan = + // // this.$route.query.relatePlan || + // // (tempRow.nextMaintainTime ? 1 : 2); + // // this.form.startTime = tempRow.nextMaintainTime; + // // acpt(); + // // }); + // // })(); + // // this.$nextTick(() => { + // // this.form.maintainPlanId = tempRow.id; + // // this.form.equipmentId = tempRow.equipmentId; + // // }); + // } + // if (this.$route.query.isAdd) { + // // 赋值 + // this.form.equipmentId = this.$route.query.equipmentId; + // this.form.maintainPlanId = this.$route.query.maintainPlanId; + // } this.open = true; this.title = '添加待确认保养记录'; }, @@ -607,6 +661,8 @@ export default { this.put({ ...this.form, maintainWorker: this.form.maintainWorker.join(','), + special: true, + relatePlan: 2, }).then((response) => { this.$modal.msgSuccess('修改成功'); this.open = false; @@ -618,24 +674,27 @@ export default { this.post({ ...this.form, maintainWorker: this.form.maintainWorker.join(','), + special: true, + relatePlan: 2, }).then((response) => { this.$modal.msgSuccess('新增成功'); // 跳转至 备品备件 保养 - const toSparePartsMaintain = () => { - this.open = false; - // 没有备品备件保养模块。。。 - }; + // const toSparePartsMaintain = () => { + // this.open = false; + // }; - this.$confirm('是否有备品备件更换?', '提示', { - confirmButtonText: '有', - cancelButtonText: '没有', - }) - .then(toSparePartsMaintain) - .catch(() => { - this.open = false; - this.getList(); - }); + // this.$confirm('是否有备品备件更换?', '提示', { + // confirmButtonText: '有', + // cancelButtonText: '没有', + // }) + // .then(toSparePartsMaintain) + // .catch(() => { + // this.open = false; + // this.getList(); + // }); + this.open = false; + this.getList(); }); }); }, From 441a0f537126ea1314a452ec7b397f42acd0a1c8 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 5 Feb 2024 16:45:23 +0800 Subject: [PATCH 13/36] update new table --- .../specialEquipment/maintain/WaitingList.vue | 5 +- .../maintain/WaitingListTable.vue | 229 ++++++++ .../maintain/iconfont/demo.css | 539 ++++++++++++++++++ .../maintain/iconfont/demo_index.html | 306 ++++++++++ .../maintain/iconfont/iconfont.css | 38 ++ .../maintain/iconfont/iconfont.eot | Bin 0 -> 2664 bytes .../maintain/iconfont/iconfont.js | 1 + .../maintain/iconfont/iconfont.json | 44 ++ .../maintain/iconfont/iconfont.svg | 29 + .../maintain/iconfont/iconfont.ttf | Bin 0 -> 2496 bytes .../maintain/iconfont/iconfont.woff | Bin 0 -> 1544 bytes .../maintain/iconfont/iconfont.woff2 | Bin 0 -> 1120 bytes 12 files changed, 1190 insertions(+), 1 deletion(-) create mode 100644 src/views/specialEquipment/maintain/WaitingListTable.vue create mode 100644 src/views/specialEquipment/maintain/iconfont/demo.css create mode 100644 src/views/specialEquipment/maintain/iconfont/demo_index.html create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.css create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.eot create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.js create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.json create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.svg create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.ttf create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.woff create mode 100644 src/views/specialEquipment/maintain/iconfont/iconfont.woff2 diff --git a/src/views/specialEquipment/maintain/WaitingList.vue b/src/views/specialEquipment/maintain/WaitingList.vue index b7d6d4f4..2e43e778 100644 --- a/src/views/specialEquipment/maintain/WaitingList.vue +++ b/src/views/specialEquipment/maintain/WaitingList.vue @@ -61,6 +61,8 @@
+ + + + + + + + diff --git a/src/views/specialEquipment/maintain/iconfont/demo.css b/src/views/specialEquipment/maintain/iconfont/demo.css new file mode 100644 index 00000000..a67054a0 --- /dev/null +++ b/src/views/specialEquipment/maintain/iconfont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/views/specialEquipment/maintain/iconfont/demo_index.html b/src/views/specialEquipment/maintain/iconfont/demo_index.html new file mode 100644 index 00000000..348d9b91 --- /dev/null +++ b/src/views/specialEquipment/maintain/iconfont/demo_index.html @@ -0,0 +1,306 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    downward
    +
    &#xe604;
    +
  • + +
  • + +
    upward
    +
    &#xe605;
    +
  • + +
  • + +
    detail
    +
    &#xe601;
    +
  • + +
  • + +
    edit
    +
    &#xe602;
    +
  • + +
  • + +
    delete
    +
    &#xe603;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot?t=1689233106339'); /* IE9 */
+  src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */
+       url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'),
+       url('iconfont.woff?t=1689233106339') format('woff'),
+       url('iconfont.ttf?t=1689233106339') format('truetype'),
+       url('iconfont.svg?t=1689233106339#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + downward +
    +
    .icon-downward +
    +
  • + +
  • + +
    + upward +
    +
    .icon-upward +
    +
  • + +
  • + +
    + detail +
    +
    .icon-detail +
    +
  • + +
  • + +
    + edit +
    +
    .icon-edit +
    +
  • + +
  • + +
    + delete +
    +
    .icon-delete +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    downward
    +
    #icon-downward
    +
  • + +
  • + +
    upward
    +
    #icon-upward
    +
  • + +
  • + +
    detail
    +
    #icon-detail
    +
  • + +
  • + +
    edit
    +
    #icon-edit
    +
  • + +
  • + +
    delete
    +
    #icon-delete
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.css b/src/views/specialEquipment/maintain/iconfont/iconfont.css new file mode 100644 index 00000000..da3d1f0f --- /dev/null +++ b/src/views/specialEquipment/maintain/iconfont/iconfont.css @@ -0,0 +1,38 @@ +@font-face { + font-family: "iconfont"; /* Project id 3821755 */ + src: url('iconfont.eot?t=1689233106339'); /* IE9 */ + src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'), + url('iconfont.woff?t=1689233106339') format('woff'), + url('iconfont.ttf?t=1689233106339') format('truetype'), + url('iconfont.svg?t=1689233106339#iconfont') format('svg'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-downward:before { + content: "\e604"; +} + +.icon-upward:before { + content: "\e605"; +} + +.icon-detail:before { + content: "\e601"; +} + +.icon-edit:before { + content: "\e602"; +} + +.icon-delete:before { + content: "\e603"; +} + diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.eot b/src/views/specialEquipment/maintain/iconfont/iconfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e746725cb7ee14836d415117d59484c396fcf152 GIT binary patch literal 2664 zcmd^B-ES0C6hCKXcG_*Xv)vCDx`jI3cGslf7S>@4WLpvtiV0EVqr`+nmfdN)bicA4 zzKk(dh{j+7A>aeyL81>DeDIaT59C2&LgI_X7gI@0788vRBtDqfslPir>&m9YKft>? z=l;&`oO|xQ=g!BO?IODEC1R3DG>JU21HfEjf%ffh=q>5cP?vVp&bQbm>ZJnZs6u6$ zcBBP^MhD2G89GTt%2EwXgr>mMXdd3eSEtRCq)o7_HXgK?w3`-4rcILv5AW13#9srs z73`sx4vwZWk-dx1--CWESISl&ZmS#EjRNlDnc~^$H^wHf6Um?B+B<7z^TXdhx&hw@ zxYDyAI+o;jfMKWM*^+f;Eda*;2C=qS$z`SY`3%N>3SBE@&r~^rO%e+?y__wXy&q;i zBkI6>(oD57Z@v6e^a_!;2>T(ic6niCfsVqACKly@mQWoA?D^V`rC0r#Kd8Im`(W|N z0pZr@R~8kLH$d%lkE;<$r6Z&|!NehU;YYOM=nZ=p5<5ZC^LzFkBCVLU$`logaGF@j zzcCjJGg-uMjAYn^mBFwxhvTmhUm_3o`mS^j){Bjvf29;-Wa}P+?Xk9hdUu{~*SYR- z@j!=dFz7$|`BdKU-#yX=JykKzji#F^nvTX`VgkO#>}eK@ymbQt$mEP+)wcA*Zn zl!(ehTZ{xYfkPd_ednC3k%${fOYL3Mzq`J9UxALvh9EaAg`%f&MIyDnCMe{it}pZbR` zR>3d3xQnK^$Hm>0;M}g7nYGNke*COn$W_YIm9o|B512D2i`iOJZT3@UZN5+`>zk9C zn$)COHfzl=^QUG~mNl(U*D57_58|1{VnwgkDksdGm7KM#>h{r5F^}Mrxk`z4p&~I+ zp;(Z4(&;#zg>0{9+V#h4n|5ovzIxr$?lp-Ol${ExeKqrR3YAm}YqU^d>9}gBph`e{ z+NM=pEdoHPTf{&zQIK$v3gTkVwn~8u*x0O gnXjBKpU&3u>dC6p.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}")}catch(t){console&&console.log(t)}}n=function(){var t,e=document.createElement("div");e.innerHTML=a._iconfont_svg_string_3821755,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?d(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(n,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),n()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(o=n,c=a.document,l=!1,v(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,s())})}function s(){l||(l=!0,o())}function v(){try{c.documentElement.doScroll("left")}catch(t){return void setTimeout(v,50)}s()}}(window); \ No newline at end of file diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.json b/src/views/specialEquipment/maintain/iconfont/iconfont.json new file mode 100644 index 00000000..fd0f1b78 --- /dev/null +++ b/src/views/specialEquipment/maintain/iconfont/iconfont.json @@ -0,0 +1,44 @@ +{ + "id": "3821755", + "name": "component", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "封装的组件中的icon", + "glyphs": [ + { + "icon_id": "36426261", + "name": "downward", + "font_class": "downward", + "unicode": "e604", + "unicode_decimal": 58884 + }, + { + "icon_id": "36426301", + "name": "upward", + "font_class": "upward", + "unicode": "e605", + "unicode_decimal": 58885 + }, + { + "icon_id": "33347867", + "name": "detail", + "font_class": "detail", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "33347918", + "name": "edit", + "font_class": "edit", + "unicode": "e602", + "unicode_decimal": 58882 + }, + { + "icon_id": "33347930", + "name": "delete", + "font_class": "delete", + "unicode": "e603", + "unicode_decimal": 58883 + } + ] +} diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.svg b/src/views/specialEquipment/maintain/iconfont/iconfont.svg new file mode 100644 index 00000000..647e5515 --- /dev/null +++ b/src/views/specialEquipment/maintain/iconfont/iconfont.svg @@ -0,0 +1,29 @@ + + + + Created by iconfont + + + + + + + + + + + + + + + + + + diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.ttf b/src/views/specialEquipment/maintain/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..014c3da9b180f6bb81e952964e168afc3e36648e GIT binary patch literal 2496 zcmd^B+iM(E82`SR+1YHenay6@Hk&q1HrW-@I%(JGrY)NYtxYNvFTJD)1-spyB-`wb z&GaTB(TXA!T1x9f>4QZdl=|Rn!D}BZLctePU!)d}2{93M(E`b|W%9tGUHZAyD@42<(u2<*7|G<~dl$jK3;t-KlCR(2(KLx9 z1+tH3%4eou8=bsLB!7mvch<@mhrWGq4Yv0%v$GKR@5*ljLr+7q75nsh0Qmj}vc6m^ zl~*7^ukQ9<||gu2f0s){Mb*Lsn_Q17k^4zA_|nDKS;=3URYkB zBT!?Aq+GBcD=j1{McT%lpt2B{J?eaomvlLZAY0?VL2U{s7-wS(|~Jc91o_jwgSotvU= zqNb>K6IBvZRIVv_(F0*4cu`Ha#=xRK!j33S&(Uoj<`02I6q2t?uTz95#aT0*^anVd zRAcKnzAm1Xp5(b`+Kf6kotrT;73H}=Fp|E&7kdo7$GOaNJ-X53R67*4^_+-UXGN?4 z$75>pi2$p~v^mPz(QJI}SW?}oieNnFTo%Fjq8kipxxJUqOLr(lkJAX{=vkUV$^%Jt zBgf)T4P>%oY^LS^;5pXMnQ=A^PHG%}BqP7I^o^`2vb0mdcm)3I7cH?dp*@mFU;E_k zvd<;X&ue2T9!i8liGD$x@7KnnQ_G9;b-Yo;`+?ZZX5x>9W12KLkTj%iVRKx<`TIGh zF(jG(%L!#}>5!RXu~WCR%eDU8_1vAp=ZtXY@3x*M z;3%g1WPx^oYhj7})aPLt@}!3q;9(E@@FmT7ScQDd!=1E=_IS7p5$ocussyl4n$CKd zsfRxHutXZ&@URT|Ee|WeKX}+jak}qe74jtychVGhd$^0zT-e>P^0rmfkDbv=g<5sG zR<+yferx7LIp1ir?RCm(%$I6aeXFshEt<5dR-+we{^U%?wx{*!My;YxAf8n&*YtX$ zcHAo1#;k4EcaDsReT3X7)GD-_8e~zPY|tXsQI)1$YCpv9hxH7dpfWrg z4{29>Pr!b=pb>9>3LAld!6~maDUwr<2$%gB)#Sq+>P^sRA_N1 zf+vQ~9SR|g0)pI76flYbJQ9j1AOj-G{qf4oy_s*{`@Z>h-_GpYv;KSb00_XLgaT^v ztRnoI%j^G#&!J#103Z~sy1)oB$~I2&KV)SKYr9}B2f=k6{slRjNQ1Qun4f}knG`o} z9}&e2hie%C2yFn6_!K9fd@6+)2G=XF&kBYkwqve{3X1?Jn8Vx<23C0($)QHm8L)RCU!=9Zmf&$*^=Q8rigfId@Lb4_Z$b`5v^D0D1=U(#;GM7XkrU9<2?QNT_c5b|M zu(hzIh$L?R(yD10Uq_IJ?P>FGtAyzH97tx4}dmaV|nj-Uud zR%}Bn7uf71Q(~6h3WdV+90+e~U2IB10MaZvoRR;Y+oGQ4fl}bObaN`T$=jNeLsn~x z)Q+;T)haq7aympmgHmp^Az6m(dmGZ{a&DNhge&lg&Q571XBqUeVJEV*%hhvI5<%^m%CA8A>obANMjuEZx#=jO`x68=+MVINp0z zO|{%5Tp2Z>RL4E-f@UTgvF43K24eDy;+nJugs*;sekMC>)EQf4eVXojEu&|0;yGiS z=@Sd3U)UtzNRXvR%gp)CH;oe;(tGv<3DkC|+pd*)C+n8m3;AQqL-F}9<`10wFjh0% zF_pBKOA*tG7Y3;~T~=b;OHY@MeywaG#$tf9_^ATZ${%(j?J#>{>MQwU5W}D;S&C3G zA`38WlBm`yi>nX)DS)!#j$=np`yc%CCMwrV=Udn}-tl!2M=Y||t}JR|>PeN_gB;an zk(sgVLnki#(ct`O9rTrgQ&##YHFK9pN3{1-BZ5DbBv!*4O3M zW>LltVHCVpUGqpH>$Z8fHt}oK@iu!Zs_Te(30y1$ywW zl7|U60J@;SR4z!MaUljtD3Deen)relWGSy>y0gd4Z(k|DNyK z;~1J3lyI>-Kz|}gOul`-QHER3Z@;xmoq2z3u&nD=t;R_K-Eyj4%#(Riwb6tk8x}d= zo5qFN{Q`UnTu>W4^4Q%+hp!Dak8(;{>H|C?!KxrR(0D!*$z)yo) literal 0 HcmV?d00001 diff --git a/src/views/specialEquipment/maintain/iconfont/iconfont.woff2 b/src/views/specialEquipment/maintain/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..28c928058ba5d5c7f7bb8fb6318699bc2d478764 GIT binary patch literal 1120 zcmV-m1fTnNPew8T0RR9100dwF3jhEB013bV00a~O0RR9100000000000000000000 z0000SR0d!GgD47yNQEo`HUcCA7z+*n1Rw>3X9rXpR0znfFmBOtiz5-v5tQKt4rko(4-J>iMGQp$7hhAP9f&8 z#1qba-7>bzRD$Mq?=)^;ss=$cMU$vi5G-XyHg#^*IPx-W(rNK53w*SjCAHY6M2BpC zb>sifG1DdCw*gRQ;#%he8c;Vy67J37j^u>smf_VwuhYjMKuE7L4s+^mJwiVFO zK!W~)TZe#qE5HI8=$x5I*4Hamats}v90|)5PP9{<4FW%%0pO?L66XCc4>Sggpg9FTmF^ibGNhTIx2g)J!XGZ5a~ zzHIvsQyf+v63++UO~qKr+0>hXSXd1{9ou)D4!oI)Bi56tcZ2cbdgyuIon2id@jP=b z1cIdgv-F#FC7Y+y=i7r@XHzE|4#Ew))9dL=)Fsu2@1byhdb(iK_VcfZzu>J7tgLv% z=evs?)F=7dPWK(J_l1q?=a-v7)|Hd9wXN+?I&~#z@|wtl^1T&_VWbP`_!;5(XyDQ_ z??O6wrKQ*1X2eLm$Ez-6w77tirdrOOzkMw|&5)B`YBS%YJm+p&x@~d%dGKSD@)X7t z9AD)$s7Gz#xbe%X%yj7+5`913X>YA|OY2Om#oQd9`id-{{MwoG87{TYn!$K!tHu5I zWpjTZ6_mZd3QGCywY)H^<`a_#nI7k~Gf$k-%NZGu(X-~27tgmDrL^oRFDx(0a2wC@ z&8`}o9h*eQm8|fT@iy3}V)c@^9or_i4_+NqFg`J~r+v`w(Tpdg)F)+1)Wb08`$+1e z&$hdQyhG+KnxY-Z^#cvjx}WTKIR2L3@ZJ7XtO4N1@23y2KJylX;3E8+tq}O7m^-kb zQH|hCS$;bO0UWDdhfM*YX@(4jCf`k8tO9T-2tEZdC_E}a<5Q0`*mkf)^n=4^3PL*6 z&W|Xdb3{x4G#f@Bl@Nw|A3{~KXByw4mqs+d@j^$9S$gv~fJEhFo$2Mt&kW9)5W7Uu*LMpazL?gxrOvCgOsEIh4+ zbG;}%os>N!%|caFjR7Vcu)@qbVG;{UL)^kV{dx}oQ7eTB10tWu7(0!pn#VGw$p9eh z85$_>OxoME5oO^xLiZyWN`=*_GN70a3e(HG*#HYJO-l=#u1Gpnh(H-> Date: Mon, 19 Feb 2024 09:41:10 +0800 Subject: [PATCH 14/36] update special equipment basic pages --- .../specialEquipment/basic/FireFighthing.vue | 2 +- src/views/specialEquipment/basic/Manage.vue | 2 +- src/views/specialEquipment/basic/Safety.vue | 4 +- .../components/EquipmentDrawer copy.vue | 0 .../components/firefightingDrawer.vue | 508 +++++++++++++++++ .../components/manageDrawer.vue | 509 ++++++++++++++++++ .../components/manageDrawerForm.vue | 228 ++++++++ .../components/safetyDrawer.vue | 509 ++++++++++++++++++ .../maintain/iconfont/demo_index.html | 306 ----------- 9 files changed, 1757 insertions(+), 311 deletions(-) delete mode 100644 src/views/specialEquipment/components/EquipmentDrawer copy.vue create mode 100644 src/views/specialEquipment/components/firefightingDrawer.vue create mode 100644 src/views/specialEquipment/components/manageDrawer.vue create mode 100644 src/views/specialEquipment/components/manageDrawerForm.vue create mode 100644 src/views/specialEquipment/components/safetyDrawer.vue delete mode 100644 src/views/specialEquipment/maintain/iconfont/demo_index.html diff --git a/src/views/specialEquipment/basic/FireFighthing.vue b/src/views/specialEquipment/basic/FireFighthing.vue index 28cc03c4..e7cf21db 100644 --- a/src/views/specialEquipment/basic/FireFighthing.vue +++ b/src/views/specialEquipment/basic/FireFighthing.vue @@ -116,7 +116,7 @@ + + diff --git a/src/views/specialEquipment/components/manageDrawer.vue b/src/views/specialEquipment/components/manageDrawer.vue new file mode 100644 index 00000000..b43981b0 --- /dev/null +++ b/src/views/specialEquipment/components/manageDrawer.vue @@ -0,0 +1,509 @@ + + + + + + + + diff --git a/src/views/specialEquipment/components/manageDrawerForm.vue b/src/views/specialEquipment/components/manageDrawerForm.vue new file mode 100644 index 00000000..13eac654 --- /dev/null +++ b/src/views/specialEquipment/components/manageDrawerForm.vue @@ -0,0 +1,228 @@ + + + + + + + diff --git a/src/views/specialEquipment/components/safetyDrawer.vue b/src/views/specialEquipment/components/safetyDrawer.vue new file mode 100644 index 00000000..55cfb3ce --- /dev/null +++ b/src/views/specialEquipment/components/safetyDrawer.vue @@ -0,0 +1,509 @@ + + + + + + + + diff --git a/src/views/specialEquipment/maintain/iconfont/demo_index.html b/src/views/specialEquipment/maintain/iconfont/demo_index.html deleted file mode 100644 index 348d9b91..00000000 --- a/src/views/specialEquipment/maintain/iconfont/demo_index.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - iconfont Demo - - - - - - - - - - - - - -
-

- - -

- -
-
-
    - -
  • - -
    downward
    -
    &#xe604;
    -
  • - -
  • - -
    upward
    -
    &#xe605;
    -
  • - -
  • - -
    detail
    -
    &#xe601;
    -
  • - -
  • - -
    edit
    -
    &#xe602;
    -
  • - -
  • - -
    delete
    -
    &#xe603;
    -
  • - -
-
-

Unicode 引用

-
- -

Unicode 是字体在网页端最原始的应用方式,特点是:

-
    -
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • -
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • -
-
-

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

-
-

Unicode 使用步骤如下:

-

第一步:拷贝项目下面生成的 @font-face

-
@font-face {
-  font-family: 'iconfont';
-  src: url('iconfont.eot?t=1689233106339'); /* IE9 */
-  src: url('iconfont.eot?t=1689233106339#iefix') format('embedded-opentype'), /* IE6-IE8 */
-       url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAARgAAsAAAAACcAAAAQUAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDKAqGSIUsATYCJAMYCw4ABCAFhGcHVBtUCMiuMG7hiaIkox1FaBhxvd1fpwAN4YKo1v7tWTr8hBRkBQgO7yqKUJKPUKzDjkixjn7/q0vlANCkEHCJtsMvx2eQn04h5rHEE8593TK2y1SC5nbvNG5gqgZBNEWTqFUQLGVFNnVu1TjyMm3SafEsC3y0myW12KdEh2x+deP/zzHTJeG3AVBm4lrnAxpQN0US7s3ijuSE6Jbh1UGv08cgQEivMg5z6m49Qj77TVxDEZww6gXicNkviSbkxgswNeGCj+CgMw1yFRpAnUNegSv+8+UfU/igsBpjnRV3rRV9+Su8Fk1Agv6CW4eAeyvAAhronJlI1tcrVnIMHZ0cCcsUTrRTnQ0CP50B4KfgEub9Lw80BougQBwGI8bYJU4LPwUbBw0/HXAw8NORUM90wsT9JeIMFACux9QckHyQ9FDYTobcGi+FLSjwMxDe3L5s+w9THFYeEs8H303FWMnZ1JuBWFgNPh3bd5wOvJmKI9aTqXeD8eJ66HnfnV1dJPE8cy4EgqT+s/SbdSWbp9Pn24NbZ1MnGw7CDbvT6+lL1CXVh++hcH56umDT9vOviL/grQ6srHjE57uLHdQn+dtO9x2v94WN6+eXm0HWlZOzta3tUDp1JWjymsiD8r0ViWGkC+n4GeH5aODSM+9COnilpdfdZsRIvMerLmS0uICTplrOnb99LT3NkJNeajPfpDznblq6bXH8efBjlPIUxhQcX+U0qEdt4bjxy6rMdOkbEn0/3mlvrXZL60ysxdwcn/qKLJ/82pnzGS61z5rBeGmrxf33ZXN/IBWUvb8KSvnttbwwq+YTkweZHue0M0+c0ssZGY/Rs+aVF8+3GaW07CkvLC/KcBvP8c2uGpsdm0THlazwlPE22Kdi9ZK4Hdsmtw9eHVQwPjG0p33Q7tGMJ6TUJ2VK1MMw6ftI6qPPtruCvEPmLZqiHcj1Aw3Rup/sdzj+lt/w3f5TrAHgx++nD7A+8xaD4CL8m60Q+KWYO7CgUY3gTFl+OwUBHKteh00BoWmGDIYm301frAJwKAg+BTEoPCpA41OPNNh2sET0g8NnCkI61M6PKKBzREwANBtGIOS6BEU2D0CT6xvSYP+Apdg/cOT6DyErI68W0RzbqhmYOFixuRNLFqoRi839Zh+A2KqYWJH1CTC7hM04My0j664HDVgXY+xtYhbnBBNGVVzH7geKQrHOqA0sPK2Fc70oPZ2UPSTNQlVUjQEmHLDCzDphEgtKQ9zCPP16DwBRK4UJAyKfyBg7jaeaxzKlyQAg6xkaKO9M2tu1EWXhOEL3IxhKhdWpMqCYDgrTy7vZAAsuTUsLm65IOlWIQBlp47PUS9wAhBgHOFGixYgVJx7+dtqutZuY1eXTvXYncJOkOF1Wicd+CnBACA==') format('woff2'),
-       url('iconfont.woff?t=1689233106339') format('woff'),
-       url('iconfont.ttf?t=1689233106339') format('truetype'),
-       url('iconfont.svg?t=1689233106339#iconfont') format('svg');
-}
-
-

第二步:定义使用 iconfont 的样式

-
.iconfont {
-  font-family: "iconfont" !important;
-  font-size: 16px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-

第三步:挑选相应图标并获取字体编码,应用于页面

-
-<span class="iconfont">&#x33;</span>
-
-
-

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

-
-
-
-
-
    - -
  • - -
    - downward -
    -
    .icon-downward -
    -
  • - -
  • - -
    - upward -
    -
    .icon-upward -
    -
  • - -
  • - -
    - detail -
    -
    .icon-detail -
    -
  • - -
  • - -
    - edit -
    -
    .icon-edit -
    -
  • - -
  • - -
    - delete -
    -
    .icon-delete -
    -
  • - -
-
-

font-class 引用

-
- -

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

-

与 Unicode 使用方式相比,具有如下特点:

-
    -
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • -
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • -
-

使用步骤如下:

-

第一步:引入项目下面生成的 fontclass 代码:

-
<link rel="stylesheet" href="./iconfont.css">
-
-

第二步:挑选相应图标并获取类名,应用于页面:

-
<span class="iconfont icon-xxx"></span>
-
-
-

" - iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

-
-
-
-
-
    - -
  • - -
    downward
    -
    #icon-downward
    -
  • - -
  • - -
    upward
    -
    #icon-upward
    -
  • - -
  • - -
    detail
    -
    #icon-detail
    -
  • - -
  • - -
    edit
    -
    #icon-edit
    -
  • - -
  • - -
    delete
    -
    #icon-delete
    -
  • - -
-
-

Symbol 引用

-
- -

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 - 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

-
    -
  • 支持多色图标了,不再受单色限制。
  • -
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • -
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • -
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • -
-

使用步骤如下:

-

第一步:引入项目下面生成的 symbol 代码:

-
<script src="./iconfont.js"></script>
-
-

第二步:加入通用 CSS 代码(引入一次就行):

-
<style>
-.icon {
-  width: 1em;
-  height: 1em;
-  vertical-align: -0.15em;
-  fill: currentColor;
-  overflow: hidden;
-}
-</style>
-
-

第三步:挑选相应图标并获取类名,应用于页面:

-
<svg class="icon" aria-hidden="true">
-  <use xlink:href="#icon-xxx"></use>
-</svg>
-
-
-
- -
-
- - - From 66337f4aca3231b8e6f0ce3963f51a74a123e760 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 19 Feb 2024 11:11:09 +0800 Subject: [PATCH 15/36] update waitinglist table --- .../maintain/Monitor--detail.vue | 2 +- .../specialEquipment/maintain/Monitor.vue | 11 +-- .../specialEquipment/maintain/WaitingList.vue | 6 +- .../maintain/WaitingListTable.vue | 93 ++++++++++++++++--- 4 files changed, 87 insertions(+), 25 deletions(-) diff --git a/src/views/specialEquipment/maintain/Monitor--detail.vue b/src/views/specialEquipment/maintain/Monitor--detail.vue index cfbedc87..e39a632d 100644 --- a/src/views/specialEquipment/maintain/Monitor--detail.vue +++ b/src/views/specialEquipment/maintain/Monitor--detail.vue @@ -238,7 +238,7 @@ export default { detailTableProps: [ { prop: 'equipmentName', label: '设备名称' }, { prop: 'program', label: '保养项目' }, - { prop: 'remark', label: '备注' }, + { prop: 'maintenanceDes', label: '保养描述' }, ], detailTableQuery: { pageNo: 1, diff --git a/src/views/specialEquipment/maintain/Monitor.vue b/src/views/specialEquipment/maintain/Monitor.vue index 64b79b93..01472b68 100644 --- a/src/views/specialEquipment/maintain/Monitor.vue +++ b/src/views/specialEquipment/maintain/Monitor.vue @@ -361,11 +361,10 @@ export default { ); }, initSearchBar() { - this.$watch('current', {}); - this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { - this.allSpecialEquipments = data.filter((item) => item.special); - this.setSearchBarEquipmentList(data.filter((item) => item.special)); - }); + // this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { + // this.allSpecialEquipments = data.filter((item) => item.special); + // this.setSearchBarEquipmentList(data.filter((item) => item.special)); + // }); this.http('/base/equipment-maintain-plan/page', 'get', { pageNo: 1, pageSize: 100, @@ -382,7 +381,7 @@ export default { }); }, handleEmitFun({ action, value }) { - console.log('handleEmitFun .... ', action, value); + // console.log('handleEmitFun .... ', action, value); switch (action) { case '保养内容': this.monitorDetailVisible = true; diff --git a/src/views/specialEquipment/maintain/WaitingList.vue b/src/views/specialEquipment/maintain/WaitingList.vue index 2e43e778..9835ff26 100644 --- a/src/views/specialEquipment/maintain/WaitingList.vue +++ b/src/views/specialEquipment/maintain/WaitingList.vue @@ -15,7 +15,7 @@ @headBtnClick="handleSearchBarBtnClick" /> - - + --> + - - + @@ -189,6 +388,10 @@ export default { allSpeicalEquipments: [], uploadOpen: false, form: {}, + formFilters: { + lineId: null, + sectionId: null, + }, formLoading: true, dataLoaded: false, equipmentList: [], @@ -200,6 +403,8 @@ export default { ], workerOptions: [], planOptions: [], + sectionOptions: [], + lineOptions: [], }; }, watch: { diff --git a/src/views/specialEquipment/maintain/Repair.vue b/src/views/specialEquipment/maintain/Repair.vue index a946645b..f03fd675 100644 --- a/src/views/specialEquipment/maintain/Repair.vue +++ b/src/views/specialEquipment/maintain/Repair.vue @@ -51,7 +51,7 @@ v-model="form" :disabled="mode == 'detail'" /> - import basicPageMixin from '@/mixins/lb/basicPageMixin'; -import CustomDialogForm from './CustomDialogForm.vue'; +import DetailDrawer from './CustomDialogForm.vue'; import { deleteRepair, exportRepairLogExcel, @@ -72,13 +72,13 @@ import DialogForm from './Repair--add.vue'; export default { name: 'SpecialEquipmentRepair', - components: { CustomDialogForm, DialogForm }, + components: { DetailDrawer, DialogForm }, mixins: [basicPageMixin], data() { return { addOrUpdateVisible: false, searchBarKeys: [ - 'maintenanceStatus', + 'maintenanceResult', 'createTime', 'equipmentId', 'specialType', @@ -167,7 +167,6 @@ export default { filter: (v) => (v != null ? ['成功', '失败'][v] : ''), }, { prop: 'maintenanceDetail', label: '维修描述', width: 110 }, - { prop: '_detail', label: '查看详情', width: 110 }, { prop: 'remark', label: '备注', @@ -207,19 +206,19 @@ export default { // }, ], searchBarFormConfig: [ - { - type: 'select', - label: '设备大类', - placeholder: '请选择设备大类', - param: 'specialType', - onchange: true, - selectOptions: [ - { id: 1, name: '安全设备' }, - { id: 2, name: '消防设备' }, - { id: 3, name: '特种设备' }, - ], - filterable: true, - }, + // { + // type: 'select', + // label: '设备大类', + // placeholder: '请选择设备大类', + // param: 'specialType', + // onchange: true, + // selectOptions: [ + // { id: 1, name: '安全设备' }, + // { id: 2, name: '消防设备' }, + // { id: 3, name: '特种设备' }, + // ], + // filterable: true, + // }, { type: 'select', label: '设备', @@ -229,13 +228,12 @@ export default { }, { type: 'select', - label: '状态', - placeholder: '请选择状态', - param: 'maintenanceStatus', + label: '维修结果', + placeholder: '请选择维修结果', + param: 'maintenanceResult', selectOptions: [ - { name: '未完成', id: '0' }, - { name: '完成', id: '1' }, - { name: '进行中', id: '2' }, + { name: '成功', id: '0' }, + { name: '失败', id: '1' }, ], }, // 时间段 @@ -282,7 +280,8 @@ export default { queryParams: { pageNo: 1, pageSize: 10, - maintenanceStatus: null, + // maintenanceStatus: null, + maintenanceResult: null, createTime: null, equipmentId: null, special: true, @@ -488,7 +487,7 @@ export default { }, setSearchBarEquipmentList(eqList) { this.$set( - this.searchBarFormConfig[1], + this.searchBarFormConfig[0], 'selectOptions', eqList.map((item) => ({ name: item.name, From f8c2889abca36eb32a3eb09018c3e7a45351417b Mon Sep 17 00:00:00 2001 From: lb Date: Wed, 21 Feb 2024 14:44:15 +0800 Subject: [PATCH 23/36] update repair --- src/utils/dict.js | 3 + .../specialEquipment/maintain/Repair--add.vue | 302 +++++++++++++++--- .../specialEquipment/maintain/Repair.vue | 22 +- 3 files changed, 268 insertions(+), 59 deletions(-) diff --git a/src/utils/dict.js b/src/utils/dict.js index 9c500f2e..45fe2b31 100644 --- a/src/utils/dict.js +++ b/src/utils/dict.js @@ -107,6 +107,9 @@ export const DICT_TYPE = { // ============== EQUIPMENT - 设备模块 ============= MAINTAIN_TYPE: 'maintain_type', FAULT_LEVEL: 'fault-level', + FAULT_TYPE: 'fault-type', + REPAIR_MODE: 'repair-mode', + REPAIR_RESULT: 'repair-result', // ============== ENVIRONMENTAL - 环保模块 ============= ENVIRONMENT_CHECK_UNIT: 'environment_check_unit' diff --git a/src/views/specialEquipment/maintain/Repair--add.vue b/src/views/specialEquipment/maintain/Repair--add.vue index e21849c2..a233a308 100644 --- a/src/views/specialEquipment/maintain/Repair--add.vue +++ b/src/views/specialEquipment/maintain/Repair--add.vue @@ -37,7 +37,7 @@ :disabled="disabled" clearable filterable - @change="handleEqTypeChange"> + @change="initSections"> @@ -222,11 +222,20 @@ :rules="[ { required: true, message: '维修工不能为空', trigger: 'blur' }, ]"> - + placeholder="请选择维修工" + filterable + clearable + multiple + :disabled="disabled"> + + @@ -264,7 +273,7 @@ :disabled="disabled" @change="$emit('update', form)"> @@ -290,7 +299,7 @@ :disabled="disabled" @change="$emit('update', form)"> @@ -320,17 +329,73 @@ message: '故障明细不能为空', trigger: 'blur', }, - ]"> + ]"> + + - + + + - + +
+ + + + + + + + 上传文件 + +
+ 只能上传jpg/png文件, 大小不超过2MB +
+
+ + +
+
@@ -361,6 +426,71 @@ diff --git a/src/views/specialEquipment/maintain/Repair.vue b/src/views/specialEquipment/maintain/Repair.vue index f03fd675..188db221 100644 --- a/src/views/specialEquipment/maintain/Repair.vue +++ b/src/views/specialEquipment/maintain/Repair.vue @@ -164,9 +164,15 @@ export default { { prop: 'maintenanceResult', label: '维修结果', + showOverflowtooltip: true, filter: (v) => (v != null ? ['成功', '失败'][v] : ''), }, - { prop: 'maintenanceDetail', label: '维修描述', width: 110 }, + { + prop: 'maintenanceDetail', + label: '维修描述', + showOverflowtooltip: true, + width: 110, + }, { prop: 'remark', label: '备注', @@ -397,12 +403,13 @@ export default { if (!valid) { return; } - // if (this.form.repairman) { - // this.form.repairman = this.form.repairman.join(',') - // } + // 修改的提交 if (this.form.id != null) { - this.put(this.form).then((response) => { + this.put({ + ...this.form, + repairman: this.form.repairman.join(','), + }).then((response) => { this.$modal.msgSuccess('修改成功'); this.open = false; this.getList(); @@ -410,7 +417,10 @@ export default { return; } // 添加的提交 - this.post(this.form).then((response) => { + this.post({ + ...this.form, + repairman: this.form.repairman.join(','), + }).then((response) => { this.$modal.msgSuccess('新增成功'); this.open = false; this.getList(); From 5b40c3972cf00f15bf5de691c07adb91273ea5c2 Mon Sep 17 00:00:00 2001 From: lb Date: Wed, 21 Feb 2024 15:35:12 +0800 Subject: [PATCH 24/36] update repair detail --- .../maintain/CustomDialogForm.vue | 339 ++++++++---------- .../specialEquipment/maintain/Repair--add.vue | 5 + 2 files changed, 148 insertions(+), 196 deletions(-) diff --git a/src/views/specialEquipment/maintain/CustomDialogForm.vue b/src/views/specialEquipment/maintain/CustomDialogForm.vue index 3078223a..32f87620 100644 --- a/src/views/specialEquipment/maintain/CustomDialogForm.vue +++ b/src/views/specialEquipment/maintain/CustomDialogForm.vue @@ -21,37 +21,26 @@ label-position="top" v-loading="formLoading"> - - - {{ dataForm.repairOrderNumber }} - - - - - - {{ - ['-', '安全设备', '消防设备', '特种设备'][ - dataForm.equipmentCategory || 0 - ] - }} - - - - - - {{ dataForm.equipmentName }} - - - - - {{ dataForm.repairman }} - - {{ parseTime(dataForm.faultTime) }} + + + @@ -59,163 +48,68 @@ + + + + + {{ getDictDataLabel('fault-type', dataForm.faultType) }} + + + + + + + {{ dataForm.repairman }} + + + {{ dataForm.repairmanPhone }} + + + + + {{ getDictDataLabel('repair-mode', dataForm.repairMode) }} + + + + + + +
+ +
+

暂无附件

+
+
+ + + + {{ parseTime(dataForm.createTime) }} + + + + + + {{ dataForm.creator }} + + + + + + {{ dataForm.remark }} + +
- - - -
- - {{ '设备维修信息' }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -230,7 +230,7 @@ export default { label: '巡检项目', }, { - prop: 'maintenanceDes', + prop: 'checkResult', label: '巡检结果', }, ], @@ -239,10 +239,10 @@ export default { attrTitle: '', attrForm: { id: null, - logId: null, + orderId: null, program: null, - maintenanceDes: null, - remark: null, + checkResult: null, + equipmentId: null, }, attrFormVisible: false, attrRows: [ @@ -252,12 +252,6 @@ export default { label: '设备名称', prop: 'equipmentId', url: '/base/core-equipment/page?pageNo=1&pageSize=100&special=true', - // method: 'post', - // queryParams: { - // pageNo: 1, - // pageSize: 100, - // special: true, - // }, rules: [ { required: true, message: '设备不能为空', trigger: 'blur' }, ], @@ -266,22 +260,21 @@ export default { [ { input: true, - label: '保养项目', + label: '巡检项目', prop: 'program', + rules: [ + { required: true, message: '巡检项目不能为空', trigger: 'blur' }, + ], }, ], [ { input: true, - label: '保养描述', - prop: 'maintenanceDes', - }, - ], - [ - { - input: true, - label: '备注', - prop: 'remark', + label: '巡检结果', + prop: 'checkResult', + rules: [ + { required: true, message: '巡检结果不能为空', trigger: 'blur' }, + ], }, ], ], @@ -333,6 +326,7 @@ export default { }, }, mounted() { + this.formLoading = true; this.getList('department'); this.getList('groupClass'); this.getList('inspector'); @@ -360,12 +354,12 @@ export default { this.btnLoading = true; this.$nextTick(async () => { const { code, data } = await this.$axios({ - url: '/base/equipment-maintain-log/update', + url: '/base/equipment-check-order/update', method: 'put', data: { ...this.form, - maintainWorker: this.form.maintainWorker.join(','), - planMaintainWorker: this.form.planMaintainWorker?.join(','), + groupClass: this.form.groupClass.join(','), + checkPerson: this.form.checkPerson.join(','), }, }); if (code == 0) { @@ -385,19 +379,18 @@ export default { console.log('row', row); this.visible = true; this.row = row; - // this.getInfo(row); - // this.getAttrList(row); + this.getInfo(row); + this.getAttrList(row); }, async getInfo(row) { - this.formLoading = true; const res = await this.$axios( - '/base/equipment-maintain-log/get?id=' + row.id + '/base/equipment-check-order/get?id=' + row.id ); if (res.code == 0) { this.form = res.data; - this.form.maintainWorker = res.data.maintainWorker.split(','); - this.form.planMaintainWorker = res.data.planMaintainWorker?.split(','); + this.form.groupClass = res.data.groupClass.split(','); + this.form.checkPerson = res.data.checkPerson.split(','); this.formLoading = false; } this.formLoading = false; @@ -407,11 +400,11 @@ export default { if (!row) row = this.row; this.attrListLoading = true; const res = await this.$axios({ - url: '/base/equipment-maintain-log-det/page', + url: '/base/equipment-check-order-det/page', method: 'get', params: { ...this.attrQuery.params, - logId: row.id, + orderId: row.id, ...condition, }, }); @@ -456,11 +449,14 @@ export default { })) ); } - this.inspectorOptions = inspectorList; + this.inspectorOptions = inspectorList; break; case 'groupClass': res = await this.$axios(urls[1]); - this.lineList = res.data || []; + this.groupOptions = (res.data || []).map((item) => ({ + label: item.name, + value: item.id, + })); break; } this.formLoading = false; @@ -489,10 +485,10 @@ export default { resetAttrform() { this.attrForm = { id: null, - logId: this.row.id, - maintenanceDes: '', + orderId: null, + equipmentId: null, program: null, - remark: null, + checkResult: null, }; }, @@ -507,27 +503,27 @@ export default { // 编辑属性 async handleEditAttr(attrId) { const res = await this.$axios({ - url: '/base/equipment-maintain-log-det/get', + url: '/base/equipment-check-order-det/get', method: 'get', params: { id: attrId }, }); if (res.code == 0) { this.attrForm = res.data; - this.attrTitle = '编辑设备属性'; + this.attrTitle = '编辑巡检单详情'; this.attrFormVisible = true; } }, // 删除属性 handleDeleteAttr(attrId) { - this.$confirm('确定删除该保养内容?', '提示', { + this.$confirm('确定删除该巡检内容?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', }) .then(async () => { const res = await this.$axios({ - url: '/base/equipment-maintain-log-det/delete?id=' + attrId, + url: '/base/equipment-check-order-det/delete?id=' + attrId, method: 'delete', }); if (res.code == 0) { @@ -556,10 +552,10 @@ export default { this.attrFormSubmitting = true; const res = await this.$axios({ url: isEdit - ? '/base/equipment-maintain-log-det/update' - : '/base/equipment-maintain-log-det/create', + ? '/base/equipment-check-order-det/update' + : '/base/equipment-check-order-det/create', method: isEdit ? 'put' : 'post', - data: this.attrForm, + data: { ...this.attrForm, orderId: this.row.id }, }); if (res.code == 0) { diff --git a/src/views/specialEquipment/check/Content.vue b/src/views/specialEquipment/check/Content.vue index 3c8c66fe..43debe1f 100644 --- a/src/views/specialEquipment/check/Content.vue +++ b/src/views/specialEquipment/check/Content.vue @@ -11,25 +11,8 @@ - - - // val != null && val > 24 // ? `${(val - (val % 24)) / 24}天${val % 24}小时` @@ -207,28 +191,19 @@ export default { handleSubmit() { this.$refs.add.dataFormSubmit(); }, + successSubmit() { this.cancel(); this.getList(); }, + initSearchBar() { this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { this.allSpecialEquipments = data.filter((item) => item.special); this.setSearchBarEquipmentList(data.filter((item) => item.special)); }); }, - // 设备大类改变 - handleSearchBarChange({ param, value }) { - if ('specialType' === param) { - if (!value) { - this.setSearchBarEquipmentList(this.allSpecialEquipments); - return; - } - this.setSearchBarEquipmentList( - this.allSpecialEquipments.filter((item) => item.specialType == value) - ); - } - }, + setSearchBarEquipmentList(eqList) { this.$set( this.searchBarFormConfig[2], @@ -239,6 +214,7 @@ export default { })) ); }, + /** 查询列表 */ getList() { this.loading = true; @@ -249,33 +225,20 @@ export default { this.loading = false; }); }, + /** 取消按钮 */ cancel() { this.$refs.add.reset(); this.open = false; this.title = ''; }, - /** 表单重置 */ - reset() { - this.form = { - id: null, - name: null, - content: null, - program: null, - remark: null, - }; - this.resetForm('form'); - }, + /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; this.getList(); }, - /** 重置按钮操作 */ - resetQuery() { - this.resetForm('queryForm'); - this.handleQuery(); - }, + /** 新增按钮操作 */ handleAdd() { this.open = true; @@ -284,6 +247,7 @@ export default { this.$refs.add.init(); }); }, + /** 修改按钮操作 */ handleUpdate(row) { this.open = true; @@ -292,29 +256,7 @@ export default { this.$refs.add.init(row); }); }, - /** 提交按钮 */ - submitForm() { - this.$refs['form'].validate((valid) => { - if (!valid) { - return; - } - // 修改的提交 - if (this.form.id != null) { - this.put(this.form).then((response) => { - this.$modal.msgSuccess('修改成功'); - this.open = false; - this.getList(); - }); - return; - } - // 添加的提交 - this.post(this.form).then((response) => { - this.$modal.msgSuccess('新增成功'); - this.open = false; - this.getList(); - }); - }); - }, + /** 编辑 */ handleEdit(row) { this.editOpen = true; @@ -322,8 +264,10 @@ export default { this.$refs['content-edit'].init(row); }); }, + /** 确认巡检单 */ handleConfirm(row) {}, + /** 删除巡检单 */ handleDelete(row) { const id = row.id; @@ -338,23 +282,7 @@ export default { }) .catch(() => {}); }, - // 处理表格按钮 - handleTableBtnClick({ data, type }) { - switch (type) { - case 'edit': - this.handleUpdate(data); - break; - case 'delete': - this.handleDelete(data); - break; - case 'detail': - this.handleDetail(data); - break; - case 'add': - this.handleAddDetail(data); - break; - } - }, + handleDetail(row) { this.addOrUpdateVisible = true; this.addOrEditTitle = '详情'; @@ -362,13 +290,7 @@ export default { this.$refs.addOrUpdate.init(row?.id, true); }); }, - handleAddDetail(row) { - this.addOrUpdateVisible = true; - this.addOrEditTitle = '添加内容'; - this.$nextTick(() => { - this.$refs.addOrUpdate.init(row); - }); - }, + /** 导出按钮操作 */ handleExport() { // 处理查询参数 diff --git a/src/views/specialEquipment/check/Record.vue b/src/views/specialEquipment/check/Record.vue index 59de97e6..f76dbbe2 100644 --- a/src/views/specialEquipment/check/Record.vue +++ b/src/views/specialEquipment/check/Record.vue @@ -278,10 +278,8 @@ export default { queryParams: { pageNo: 1, pageSize: 10, - actualTime: null, - configId: null, special: true, - specialType: null, + status: 2, }, // 表单参数 form: {}, @@ -328,8 +326,7 @@ export default { this.loading = true; // 执行查询 this.recv(this.queryParams).then((response) => { - // this.list = response.data.list; - this.list = [{}]; + this.list = response.data.list; this.total = response.data.total; this.loading = false; }); From 15738642b0c81e56735933d002225cbb2cd274e8 Mon Sep 17 00:00:00 2001 From: lb Date: Fri, 23 Feb 2024 16:32:01 +0800 Subject: [PATCH 35/36] update --- src/views/specialEquipment/check/Config.vue | 15 +- .../specialEquipment/check/Content-edit.vue | 27 +- src/views/specialEquipment/check/Content.vue | 74 +++- src/views/specialEquipment/check/Record.vue | 344 ++++-------------- 4 files changed, 157 insertions(+), 303 deletions(-) diff --git a/src/views/specialEquipment/check/Config.vue b/src/views/specialEquipment/check/Config.vue index 1ec798e2..aef4b49b 100644 --- a/src/views/specialEquipment/check/Config.vue +++ b/src/views/specialEquipment/check/Config.vue @@ -354,18 +354,21 @@ export default { }, /** 导出按钮操作 */ handleExport() { - // 处理查询参数 - let params = { ...this.queryParams }; - params.pageNo = undefined; - params.pageSize = undefined; this.$modal .confirm('是否确认导出所有巡检设置?') .then(() => { this.exportLoading = true; - return exportEquipmentTypeExcel(params); + return this.$axios({ + url: '/base/equipment-check-order/export-excel', + params: { + name: this.queryParams.name, + status: 0, + special: true, + }, + }); }) .then((response) => { - this.$download.excel(response, '巡检设置.xls'); + this.$download.excel(response, '巡检单设置.xls'); this.exportLoading = false; }) .catch(() => {}); diff --git a/src/views/specialEquipment/check/Content-edit.vue b/src/views/specialEquipment/check/Content-edit.vue index 010b46b5..95082642 100644 --- a/src/views/specialEquipment/check/Content-edit.vue +++ b/src/views/specialEquipment/check/Content-edit.vue @@ -32,6 +32,7 @@ @@ -42,6 +43,7 @@ v-model="form.departmentId" filterable clearable + :disabled="disableEdit" :placeholder="`请选择部门`"> @@ -123,7 +128,9 @@
-
+
添加内容 @@ -139,6 +146,7 @@ @@ -154,8 +162,14 @@
@@ -314,6 +328,7 @@ export default { ], row: null, groupOptions: [], + disableEdit: false, }; }, computed: { @@ -375,8 +390,8 @@ export default { console.log('handleEmitFun', val); }, - init(row) { - console.log('row', row); + init(row, detail) { + if (detail) this.disableEdit = true; this.visible = true; this.row = row; this.getInfo(row); @@ -390,7 +405,7 @@ export default { if (res.code == 0) { this.form = res.data; this.form.groupClass = res.data.groupClass.split(','); - this.form.checkPerson = res.data.checkPerson.split(','); + this.form.checkPerson = res.data.checkPerson?.split(','); this.formLoading = false; } this.formLoading = false; diff --git a/src/views/specialEquipment/check/Content.vue b/src/views/specialEquipment/check/Content.vue index 43debe1f..7044619a 100644 --- a/src/views/specialEquipment/check/Content.vue +++ b/src/views/specialEquipment/check/Content.vue @@ -233,6 +233,32 @@ export default { this.title = ''; }, + /** search bar click */ + async searchBarClicked(btn) { + switch (btn.btnName) { + /** 批量确认 */ + case 'batch-confirm': + if (this.$refs['check-order-list-table'].selectedOrder.length == 0) { + this.$message.warning('请选择待确认的巡检单'); + return; + } + const res = await this.$axios({ + url: + '/base/equipment-check-order/confirm?confirmPerson=' + + this.$store.getters.userId, + method: 'put', + data: this.$refs['check-order-list-table'].selectedOrder.map( + (item) => item.id + ), + }); + if (res.code == 0) { + this.$message.success('确认成功'); + this.getList(); + } + break; + } + }, + /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNo = 1; @@ -258,15 +284,35 @@ export default { }, /** 编辑 */ - handleEdit(row) { + handleEdit(row, detail) { this.editOpen = true; this.$nextTick(() => { - this.$refs['content-edit'].init(row); + this.$refs['content-edit'].init(row, detail ?? false); }); }, /** 确认巡检单 */ - handleConfirm(row) {}, + handleConfirm(row) { + const id = row.id; + this.$modal + .confirm('是否确认巡检单"' + row.name + '"?') + .then(() => { + return this.$axios({ + url: + '/base/equipment-check-order/confirm?confirmPerson=' + + this.$store.getters.userId, + // '/base/equipment-check-order/confirm?ids=' + JSON.stringify([id]).replaceAll("\"", ''), + method: 'put', + data: [id], + }); + }) + .then((res) => { + this.getList(); + res.code == 0 && this.$modal.msgSuccess('确认成功'); + res.code != 0 && this.$modal.msgError('确认失败'); + }) + .catch(() => {}); + }, /** 删除巡检单 */ handleDelete(row) { @@ -284,27 +330,27 @@ export default { }, handleDetail(row) { - this.addOrUpdateVisible = true; - this.addOrEditTitle = '详情'; - this.$nextTick(() => { - this.$refs.addOrUpdate.init(row?.id, true); - }); + this.handleEdit(row, true); }, /** 导出按钮操作 */ handleExport() { - // 处理查询参数 - let params = { ...this.queryParams }; - params.pageNo = undefined; - params.pageSize = undefined; this.$modal .confirm('是否确认导出所有巡检设置?') .then(() => { this.exportLoading = true; - return exportEquipmentTypeExcel(params); + return this.$axios({ + url: '/base/equipment-check-order/export-excel', + // params: { + // name: this.queryParams.name, + // status: 1, + // special: true, + // }, + responseType: 'blob', + }); }) .then((response) => { - this.$download.excel(response, '巡检设置.xls'); + this.$download.excel(response, '巡检单待确认.xls'); this.exportLoading = false; }) .catch(() => {}); diff --git a/src/views/specialEquipment/check/Record.vue b/src/views/specialEquipment/check/Record.vue index f76dbbe2..54ed0c51 100644 --- a/src/views/specialEquipment/check/Record.vue +++ b/src/views/specialEquipment/check/Record.vue @@ -11,7 +11,6 @@ @@ -25,7 +24,7 @@ v-if="tableBtn.length" slot="handleBtn" label="操作" - :width="120" + :width="70" :method-list="tableBtn" @clickBtn="handleTableBtnClick" /> @@ -37,45 +36,16 @@ :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> - - - - - - -
- - diff --git a/src/views/specialEquipment/check/Record-detail.vue b/src/views/specialEquipment/check/Record-detail.vue new file mode 100644 index 00000000..833cc738 --- /dev/null +++ b/src/views/specialEquipment/check/Record-detail.vue @@ -0,0 +1,636 @@ + + + + + + + diff --git a/src/views/specialEquipment/check/Record.vue b/src/views/specialEquipment/check/Record.vue index 54ed0c51..aa32bf39 100644 --- a/src/views/specialEquipment/check/Record.vue +++ b/src/views/specialEquipment/check/Record.vue @@ -36,19 +36,27 @@ :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> + +