From fc94d0cccc8e82a14c421fc2cbd1a760d624819a Mon Sep 17 00:00:00 2001 From: lb Date: Tue, 15 Aug 2023 14:57:10 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/base/components/dialogForm.vue | 29 +++++++++- src/views/base/equipmentType/index.vue | 74 ++++++------------------ 2 files changed, 46 insertions(+), 57 deletions(-) diff --git a/src/views/base/components/dialogForm.vue b/src/views/base/components/dialogForm.vue index 2db7ffd9..7dc2315f 100644 --- a/src/views/base/components/dialogForm.vue +++ b/src/views/base/components/dialogForm.vue @@ -1,7 +1,7 @@ @@ -45,6 +45,18 @@ type="datetime" :placeholder="`请选择${col.label}`" v-bind="col.bind"> + + 点击上传 +
+ {{ col.uploadTips || '只能上传jpg/png文件,大小不超过2MB' }} +
+
@@ -90,6 +102,7 @@ export default { return { formLoading: true, optionListOf: {}, + uploadedFileList: [], }; }, computed: { @@ -196,6 +209,20 @@ export default { } if (!promiseList.length) this.formLoading = false; }, + // 上传成功的特殊处理 + // 上传前的验证规则可通过 bind 属性传入 + handleUploadSuccess(response, file, fileList) { + // 保存原始文件名 + if ('fileNames' in this.form) this.form.fileNames.push(file.name); + // 保存完整地址 + if ('fileUrls' in this.form) this.form.fileUrls.push(response.data); + // console.log('[dialogForm:handleUploadSuccess]', response, file, fileList, this.form); + this.$modal.msgSuccess('上传成功'); + }, + + getFileName(fileUrl) { + return fileUrl.split('/').pop(); + } }, }; diff --git a/src/views/base/equipmentType/index.vue b/src/views/base/equipmentType/index.vue index 2228fb42..6666633f 100644 --- a/src/views/base/equipmentType/index.vue +++ b/src/views/base/equipmentType/index.vue @@ -54,6 +54,8 @@ import { exportEquipmentTypeExcel, } from '@/api/base/equipmentType'; +import { getAccessToken } from '@/utils/auth'; + export default { name: 'EquipmentType', components: {}, @@ -86,40 +88,7 @@ export default { { prop: 'name', label: '设备类型名称', align: 'center' }, { prop: 'code', label: '检测类型编码', align: 'center' }, { prop: 'remark', label: '备注', align: 'center' }, - // { - // label: '操作', - // alignt: 'center', - // subcomponent: { - // render: function (h) { - // return h('div', null, [ - // h( - // 'el-button', - // { - // props: { - // icon: 'el-icon-edit', - // size: 'mini', - // type: 'text', - // }, - // }, - // ' 修改' - // ), - // h( - // 'el-button', - // { - // props: { - // icon: 'el-icon-edit', - // size: 'mini', - // type: 'text', - // }, - // }, - // ' 修改' - // ), - // ]); - // }, - // }, - // }, ], - // searchBarFormConfig: [ { type: 'input', @@ -133,11 +102,6 @@ export default { name: 'search', color: 'primary', }, - // { - // type: 'button', - // btnName: '重置', - // name: 'reset', - // }, { type: 'separate', }, @@ -159,22 +123,6 @@ export default { // color: 'warning', // }, ], - // 表单配置 - // formRows: [ - // [ - // { - // input: true, - // label: '检测类型名称', - // prop: 'name', - // rules: [{ required: true, message: '不能为空', trigger: 'blur' }], - // // bind: { - // // disabled: true, // some condition, like detail mode... - // // } - // }, - // ], - // [{ input: true, label: '检测类型编码', prop: 'code' }], - // [{ input: true, label: '备注', prop: 'remark' }], - // ], rows: [ [ { @@ -198,13 +146,17 @@ export default { select: true, label: '父类', prop: 'parentId', - // other... + url: '/base/equipment-type/page?pageNo=1&pageSize=100', }, { upload: true, label: '上传资料', prop: 'uploadFiles', - // other... + url: process.env.VUE_APP_BASE_API + '/admin-api/infra/file/upload', // 请求地址 + bind: { + headers: { Authorization: 'Bearer ' + getAccessToken() }, + 'show-file-list': false, + }, }, ], [{ input: true, label: '备注', prop: 'remark' }], @@ -221,6 +173,14 @@ export default { form: {}, }; }, + watch: { + // form: { + // handler: function (val, oldVal) { + // console.log('[watch:form]', val, oldVal); + // }, + // deep: true, + // }, + }, created() { this.getList(); }, @@ -248,6 +208,8 @@ export default { name: undefined, parentId: undefined, remark: undefined, + fileNames: [], + fileUrls: [], }; this.resetForm('form'); },