From d2e4ac01e289a37feb59e5eda1cce2c02262dd7c Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Mon, 5 Feb 2024 17:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=8F=B0=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Detail/src/DetailDeviceLedger.vue | 203 +++++++++--------- src/components/UploadFile/src/UploadFile.vue | 4 +- .../deviceAccounts/deviceAccounts.data.ts | 22 +- src/views/eam/device/deviceAccounts/index.vue | 31 +-- 4 files changed, 111 insertions(+), 149 deletions(-) diff --git a/src/components/Detail/src/DetailDeviceLedger.vue b/src/components/Detail/src/DetailDeviceLedger.vue index c16e5ee..dc74c8e 100644 --- a/src/components/Detail/src/DetailDeviceLedger.vue +++ b/src/components/Detail/src/DetailDeviceLedger.vue @@ -25,7 +25,7 @@ /> - +
@@ -39,37 +39,30 @@ @searchFormClick="searchFormClick" :allSchemas="detailAllSchemas" /> - -
-
+ + + + + 点击修改
- - - - 点击修改 - - +
+ + + + + + + + + 点击修改 +
{} defineOptions({ name: 'Detail' }) @@ -295,33 +290,12 @@ const props = defineProps({ required: false, default: false }, - // 详情上传图片 - upImageRules: { - type: Array, - required: false, - default: null - }, - imageFormAllSchemas: { - type: Object, - required: true, - default: null - }, // 详情上传文件 upFileRules: { type: Array, required: false, default: null }, - fileFormAllSchemas: { - type: Object, - required: true, - default: null - }, - subIndex: { - type: String, - required: false, - default: 'A' - }, // 获取图片详情方法 getImageApi: { type: Function, @@ -333,21 +307,24 @@ const props = defineProps({ type: Function, required: false, default: null - }, + } +}) +const imageFormData = ref({ + filePathList: [] +}) +const fileFormData = ref({ + filePathList: [] }) -const subIndex = ref(props.subIndex) +const subIndex = ref('A') const isShowDrawer = ref(false) const detailLoading = ref(false) const tabsList = ref(JSON.parse(JSON.stringify(props.tabs ? props.tabs : ''))) const subTabsList = ref(JSON.parse(JSON.stringify(props.subTabs ? props.subTabs : ''))) -const imageFormSchemas = ref(props.imageFormAllSchemas?.formSchema) -const fileFormSchemas = ref(props.fileFormAllSchemas?.formSchema) -console.log('imageFormSchemas', imageFormSchemas.value) // Tabs当前选择 const current = ref(0) -const imageParmas=ref({ +const imageParmas = ref({ funcCode: 'device_mould_picture', //获取图片详情参数 fileBusiType: '' //获取图片详情参数 }) @@ -355,17 +332,24 @@ const change = (item, index) => { current.value = index if (item.prop == 'Image') { imageParmas.value.funcCode = 'device_mould_picture' + imageParmas.value.fileBusiType = '' + getImage() } else if (item.prop == 'Word') { - imageParmas.value.funcCode = 'device_mould_attachment' - } else{ - imageParmas.value.funcCode = '' + imageParmas.value.funcCode = 'device_mould_attachment' + imageParmas.value.fileBusiType = 'A' + subIndex.value = 'A' + formKey.value += 1 + getImage() + } else { + imageParmas.value.funcCode = '' + imageParmas.value.fileBusiType = '' } emit('changeTabs', item) } //主表所需的参数 const masterParmas = ref({ - number: '' ,//主表id + number: '' //主表id }) // 列表头部按钮 @@ -376,12 +360,12 @@ const buttondata = ref() const detailData = ref() const titleNameRef = ref() const titleValueRef = ref() -const tabsKay =ref(0)//刷新tabs组件key值 +const tabsKay = ref(0) //刷新tabs组件key值 const openDetail = async (row: any, titleName: any, titleValue: any, tableName: any) => { titleNameRef.value = titleName titleValueRef.value = titleValue current.value = 0 - tabsKay.value+=1 + tabsKay.value += 1 // 加载明细列表 if (!props.isBasic || (props.isBasic && props.tabsExtend)) { // 设置主表id @@ -394,11 +378,13 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: } } isShowDrawer.value = true + + imageParmas.value.funcCode = 'device_mould_picture' + if (row) { - console.log(row) detailLoading.value = true try { - await getImage() + await getImage() detailData.value = row // 判断详情新增按钮是否显示 if (routeName.value.indexOf('Job') > -1) { @@ -470,19 +456,24 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: defineExpose({ openDetail }) // 提供 open 方法,用于打开弹窗 // 获取图片详情 -const getImage=()=>{ - props.getImageApi({ - number:masterParmas.value.number, - funcCode:imageParmas.value.funcCode, - fileBusiType:imageParmas.value.fileBusiType - }).then((res)=>{ - console.log(res) - nextTick(() => { - imageFormRef.value.setValues({ - filePathList:res - }) +const formKey = ref(0) +const getImage = () => { + props + .getImageApi({ + number: masterParmas.value.number, + funcCode: imageParmas.value.funcCode, + fileBusiType: imageParmas.value.fileBusiType + }) + .then((res) => { + nextTick(() => { + if (imageParmas.value.funcCode == 'device_mould_picture') { + imageFormData.value.filePathList = res + } else { + fileFormData.value.filePathList = res + formKey.value += 1 + } }) - }) + }) } const tableObjectRef = ref() @@ -588,8 +579,7 @@ const emit = defineEmits([ 'detailOpenForm', 'tableFormButton', 'openImage', - 'subTabsChick', - 'uploadFile' + 'subTabsChick' ]) /** 删除按钮操作 */ const handleDelete = async (id: number) => { @@ -640,17 +630,18 @@ const openImage = (item) => { } const imageFormRef = ref() // 上传图片 -const uploadImage =async () => { - const elForm = unref(imageFormRef)?.getElFormRef() - // 校验表单 - if (!elForm) return - const valid = await elForm.validate() - if (!valid) return +const uploadImage = async () => { + // const elForm = unref(imageFormRef)?.getElFormRef() + // // 校验表单 + // if (!elForm) return + // const valid = await elForm.validate() + // if (!valid) return + imageFormData let data = { - number:masterParmas.value.number, - filePathList: imageFormRef.value.formModel.filePathList.map((item) => item.url), + number: masterParmas.value.number, + filePathList: imageFormData.value.filePathList.map((item) => item.url), funcCode: imageParmas.value.funcCode, - fileBusiType: imageParmas.value.fileBusiType ? imageParmas.value.fileBusiType : '' + fileBusiType: imageParmas.value.fileBusiType ? imageParmas.value.fileBusiType : '' } props.uploadImage(data).then((res) => { message.success('修改成功') @@ -659,23 +650,29 @@ const uploadImage =async () => { } // 选择二级tabs const fileFormRef = ref() -const handleTabsChange=(e)=>{ - emit('subTabsChick',e) +const handleTabsChange = (e) => { + imageParmas.value.fileBusiType = e + getImage() } // 上传文件 -const uploadFile=async(index)=>{ - let _lists = fileFormRef.value?.map(v => unref(v)?.getElFormRef()) - const elForm = _lists[index] - // 校验表单 - if (!elForm) return - const valid = await elForm.validate() - if (!valid) return - console.log(fileFormRef.value.formModel) - emit( - 'uploadFile', - masterParmas.value.number, - fileFormRef.value.formModel.filePathList.map((item) => item.url) - ) +const uploadFile = async () => { + console.log(fileFormData.value.filePathList) + // const elForm = unref(fileFormRef)?.getElFormRef() + // // 校验表单 + // if (!elForm) return + // const valid = await elForm.validate() + // if (!valid) return + // console.log(fileFormRef.value?.formModel.filePathList) + let data = { + number: masterParmas.value.number, + filePathList: fileFormData.value.filePathList.map((item) => item.url), + funcCode: imageParmas.value.funcCode, + fileBusiType: imageParmas.value.fileBusiType ? imageParmas.value.fileBusiType : '' + } + props.uploadImage(data).then((res) => { + message.success('修改成功') + getImage() + }) } //监视属性 watch( diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue index 8db435b..464a54a 100644 --- a/src/components/UploadFile/src/UploadFile.vue +++ b/src/components/UploadFile/src/UploadFile.vue @@ -69,6 +69,7 @@ const props = defineProps({ const valueRef = ref(props.modelValue) const uploadRef = ref() const uploadList = ref([]) +console.log('88',props.modelValue) const fileList = props.modelValue && props.modelValue.length > 0 ? ref(props.modelValue) : ref([]) const uploadNumber = ref(0) const uploadHeaders = ref({ @@ -116,7 +117,7 @@ const handleFileSuccess: UploadProps['onSuccess'] = (res: any): void => { fileList.value = fileList.value.concat(uploadList.value) uploadList.value = [] uploadNumber.value = 0 - emit('update:modelValue', listToString(fileList.value)) + emit('update:modelValue', fileList.value) } } // 文件数超出提示 @@ -137,6 +138,7 @@ const handleRemove = (file) => { } const handlePreview: UploadProps['onPreview'] = (uploadFile) => { console.log(uploadFile) + window.open(uploadFile.url) } // 对象转成指定字符串分隔 const listToString = (list: UploadUserFile[], separator?: string) => { diff --git a/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts b/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts index e9df4c0..0c43812 100644 --- a/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts +++ b/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts @@ -157,21 +157,7 @@ export const UpImage = useCrudSchemas(reactive([ } }, ])) -// 表单校验 -export const UpFileRules = reactive({ - filePath: [required], -}) -export const UploadFile = useCrudSchemas(reactive([ - { - label: '上传文件', - field: 'filePathList', - sort: 'custom', - isForm: true, - form:{ - component:'UploadFile', - componentProps:{ - limit:10 - } - } - }, -])) \ No newline at end of file +// // 表单校验 +// export const UpFileRules = reactive({ +// filePath: [required], +// }) diff --git a/src/views/eam/device/deviceAccounts/index.vue b/src/views/eam/device/deviceAccounts/index.vue index b159b0e..d2d8019 100644 --- a/src/views/eam/device/deviceAccounts/index.vue +++ b/src/views/eam/device/deviceAccounts/index.vue @@ -68,12 +68,6 @@ :apiPage="apiPage" :tabsExtend="tabsExtend" :tableObjectExtend="tableObjectExtend" - :imageFormAllSchemas="UpImage.allSchemas" - :upImageRules="UpImageRules" - :fileFormAllSchemas="UploadFile.allSchemas" - :upFileRules="UpFileRules" - @subTabsChick="subTabsChick" - @uploadFile="uploadFile" :getImageApi="uploadApi.getImage" :uploadImage="uploadApi.uploadImage" /> @@ -92,10 +86,7 @@ import download from '@/utils/download' import { DeviceAccounts, DeviceAccountsRules, - UpImage, - UpImageRules, - UploadFile, - UpFileRules + UpImage } from './deviceAccounts.data' import { Item } from '@/views/eam/basic/item/item.data' import * as ItemApi from '@/api/eam/basic/item' @@ -321,6 +312,7 @@ const changeTabs = (item) => { // apiPage.value = deviceRepairApi.getDeviceRepairPage // detailAllSchemas.value = DeviceRepair.allSchemas } else if (item.prop == 'DeviceReportRecord') { + console.log(item.prop) tabsExtend.value = 3 apiPage.value = deviceRepairApi.getDeviceRepairPage detailAllSchemas.value = DeviceRepair.allSchemas @@ -346,23 +338,8 @@ const changeTabs = (item) => { } ] } -// 二级切换事件 -const fileBusiType = ref() -const subTabsChick = (e) => { - fileBusiType.value = e -} -// 上传文件 -const uploadFile = (number, filePath) => { - let data = { - number, - filePathList: filePath, - funcCode: funcCode.value, - fileBusiType: fileBusiType.value ? fileBusiType.value : '' - } - uploadApi.uploadImage(data).then((res) => { - console.log(res) - }) -} + + /** 初始化 **/ onMounted(async () => { getList()