<el-form ref="organizationData" :rules="rules" :model="organizationData"> <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="選擇文件" :label-width="formLabelWidth"> <el-upload action="" class="upload-demo" :multiple="false" :limit="1" :on-preview="handlePictureCardPreview" :on-remove="handleRemove" :on-change="handleChangeLi" :auto-upload="false" :file-list="fileListAdd" > <el-button size="small" type="primary">點擊上傳</el-button> </el-upload> </el-form-item> </el-col> </el-row> </el-form>
export default { name: 'WarehouseInformation', components: { Pagination }, data() { return { organizationData: { spaceType: '1', // 存放空間 fileSpaceId: '', // 存放路徑 // processNo: '', // 所屬工序 // bin: '', // 所屬bin customerNo: '', // 客戶來源 fileUnzipPath: '' // 解壓路徑 }, rules: { spaceType: [{ required: true, message: '存放空間不能為空!', trigger: 'change' }], fileSpaceId: [{ required: true, message: '存儲路徑不能為空!', trigger: 'change' }], // processNo: [{ required: true, message: '所屬工序不能為空!', trigger: 'change' }], // bin: [{ required: true, message: '所屬BIN級不能為空!', trigger: 'blur' }], customerNo: [{ required: true, message: '來源客戶不能為空!', trigger: 'change' }], fileUnzipPath: [{ required: true, message: '解壓路徑不能為空!', trigger: 'blur' }] }, formLabelWidth: '120px', // 彈出框form表單寬度展示 readonly: false, fileOptions: [], fileListAdd: [], // 上傳文件列表 isDisable: false // 第三方變量進行防重 } }, methods: { /** * 創建接口 */ createData() { const _this = this this.$refs['organizationData'].validate((valid) => { if (valid) { if (this.fileListAdd.length <= 0) { this.$message({ type: 'info', message: '文件必須上傳' }) return false } if (this.isDisable) { this.$message({ type: 'warning', message: '接口在請求中,請勿重復點擊!' }) return false } this.isDisable = true const formData = new FormData() for (const key in this.organizationData) { formData.append(key, this.organizationData[key]) } this.fileListAdd.map(item => { formData.append('file', item.raw) }) fileInfoAdd(formData).then((res) => { if (res.code === '0') { this.isDisable = false if (res.data.code === '3001') { _this.$confirm('此文件名重復,若點擊【確定】則新版本會覆蓋並刪除原版本,點擊取消則關閉退出', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning' }).then(() => { const formDataNew = new FormData() for (const key in _this.organizationData) { formDataNew.append(key, _this.organizationData[key]) } _this.fileListAdd.map(item => { formDataNew.append('file', item.raw) }) formDataNew.append('override', true) fileInfoAdd(formDataNew).then((res) => { if (res.code === '0') { _this.dialogFormVisible = false _this.$message({ type: 'success', message: '創建成功' }) _this.pageNum = 1 _this.pageSize = 10 _this.getList() } else { _this.$message({ type: 'error', message: res.message }) } }) // 刪除到回收站的接口 fileInfoMvToRecycler({ id: res.data.id }).then((res) => { if (res.code === '0') { console.log((res)) } else { this.$message({ type: 'error', message: res.message }) } }) }).catch(() => { // 取消 this.$message({ type: 'info', message: '已取消刪除' }) }) } else { this.dialogFormVisible = false this.$message({ type: 'success', message: '創建成功' }) this.pageNum = 1 this.pageSize = 10 this.getList() } } else { this.isDisable = false this.$message({ type: 'error', message: res.message }) } }) } }) }, /** * 文件上傳刪除 */ handleRemove(file, fileList) { // 上傳附件大小 console.log(file) console.log(fileList) }, /** * 文件發生改變時 */ handleChangeLi(file, fileList) { console.log(file) console.log(fileList) this.fileListAdd = fileList }, handlePictureCardPreview(file) { console.log(file) } } }