From 55c00ae585a6ce2c1543417d6c9d41354231ae65 Mon Sep 17 00:00:00 2001 From: ljlong_2630 Date: Thu, 28 Mar 2024 00:03:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/infra/file/index.ts | 6 + .../Detail/src/DetailDeviceLedger.vue | 88 +- .../deviceAccounts/deviceAccounts.data.ts | 35 + src/views/eam/device/deviceAccounts/index.vue | 17 +- .../eam/device/devicemaintainjob/index.vue | 3 + .../deviceMaintenanceMain.data.ts | 41 +- .../eam/device/devicemaintenancejob/index.vue | 16 +- src/views/eam/mold/moldAccounts/index.vue | 960 +++++++++--------- .../mold/moldAccounts/moldAccounts.data.ts | 656 ++++++------ .../eam/mold/moldmaintenancejob/index.vue | 11 +- .../moldMaintenanceMain.data.ts | 41 +- 11 files changed, 1041 insertions(+), 833 deletions(-) diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts index f64bc0d..82d5400 100644 --- a/src/api/infra/file/index.ts +++ b/src/api/infra/file/index.ts @@ -15,3 +15,9 @@ export const getFilePage = (params: FilePageReqVO) => { export const deleteFile = (id: number) => { return request.delete({ url: '/infra/file/delete?id=' + id }) } + + +// 删除文件 +export const selectList = () => { + return request.get({ url: '/infra/file/selectList' }) +} diff --git a/src/components/Detail/src/DetailDeviceLedger.vue b/src/components/Detail/src/DetailDeviceLedger.vue index 5abc48c..2a33e31 100644 --- a/src/components/Detail/src/DetailDeviceLedger.vue +++ b/src/components/Detail/src/DetailDeviceLedger.vue @@ -194,8 +194,9 @@ :width="600" :maxHeight="900" :style="{height:'600px'}" + :key="dialogFormKey" > - + @@ -220,6 +221,8 @@ import BasicForm from '@/components/BasicForm/src/BasicForm.vue' import TableHead from '@/components/TableHead/src/TableHead.vue' import DetailTable from '@/components/DetailTable/src/DetailTable.vue' import { useUserStoreWithOut } from '@/store/modules/user' +import * as fileApi from '@/api/infra/file' +import { el } from 'element-plus/es/locale' defineOptions({ name: 'Detail' }) @@ -242,6 +245,7 @@ const dialogUploadNumber = ref() const dialogUploadBusiCode = ref() const dialogFormKey = ref(0) const milestoneUpdateKey = ref(0) +const fileDialogUploadRef = ref() const props = defineProps({ // 标签参数 tabs: { @@ -472,6 +476,9 @@ const change = (item, index) => { subIndex.value = 'A' formKey.value += 1 getImage() + } else if (item.prop == 'Milestone') { + imageParmas.value.funcCode = props.milestoneFuncCode + getImage() } else { imageParmas.value.funcCode = '' imageParmas.value.fileBusiType = '' @@ -591,23 +598,61 @@ defineExpose({ openDetail }) // 提供 open 方法,用于打开弹窗 // 获取图片详情 const formKey = ref(0) const getImage = () => { - props + fileApi.selectList().then((response) => { + 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 { - console.log(444,res) - fileFormData.value.filePathList = res - formKey.value += 1 - } + nextTick(() => { + if (imageParmas.value.funcCode == 'device_mould_picture') { + imageFormData.value.filePathList = res + } else { + console.log(444,res) + fileFormData.value.filePathList = res.map(item=>{ + response.forEach(element=>{ + if(item.url == element.url){ + item.name = element.name + } + }) + return item + }) + formKey.value += 1 + } + }) + }) + }) +} + +const getImageDialog = () => { + fileApi.selectList().then((response) => { + 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 { + console.log(444,res) + fileDialogUploadData.value.filePathList = res.map(item=>{ + response.forEach(element=>{ + if(item.url == element.url){ + item.name = element.name + } + }) + return item + }) + formKey.value += 1 + } }) }) + }) } const tableObjectRef = ref() @@ -771,7 +816,6 @@ const uploadImage = async () => { // if (!elForm) return // const valid = await elForm.validate() // if (!valid) return - imageFormData let data = { number: masterParmas.value.number, filePathList: imageFormData.value.filePathList.map((item) => item.url), @@ -916,7 +960,7 @@ const submitDialogForm = async (type, row) => { } function openDialogUpload(row) { - dialogUploadVisible.value = true + // dialogUploadVisible.value = true getDialogUpload(row) } @@ -929,13 +973,27 @@ const openDialogForm = async (type: string, row?: number) => { const getDialogUpload = (row) => { dialogUploadNumber.value = row.number dialogUploadBusiCode.value = row.milestoneStage + masterParmas.value.number = row.number, + imageParmas.value.fileBusiType = row.milestoneStage props.getImageApi({ number: row.number, funcCode: props.milestoneFuncCode }) .then((res) => { - fileDialogUploadData.value.filePathList = res - dialogFormKey.value += 1 + fileApi.selectList().then(response=>{ + fileDialogUploadData.value.filePathList = res.map(item=>{ + response.forEach(element=>{ + if(item.url == element.url){ + item.name = element.name + } + }) + return item + }) + dialogUploadVisible.value = true + dialogFormKey.value += 1 + + }) + }) } @@ -949,7 +1007,7 @@ function dialogUploadFile() { props.uploadImage(data).then((res) => { message.success('修改成功') getImage() - dialogUploadVisible.value = false + // dialogUploadVisible.value = false }) } diff --git a/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts b/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts index e2efc86..98f4e7d 100644 --- a/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts +++ b/src/views/eam/device/deviceAccounts/deviceAccounts.data.ts @@ -133,6 +133,7 @@ export const DeviceAccounts = useCrudSchemas(reactive([ field: 'factoryAreaNumber', sort: 'custom', isSearch: false, + isDetail: false, table: { width: '150', }, @@ -166,6 +167,16 @@ export const DeviceAccounts = useCrudSchemas(reactive([ }, } }, + { + label: '所属厂区', + field: 'factoryAreaNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '负责人', field: 'principal', @@ -203,6 +214,16 @@ export const DeviceAccounts = useCrudSchemas(reactive([ }, }, }, + { + label: '负责人', + field: 'principalDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '采购时间', field: 'purchaseTime', @@ -251,9 +272,13 @@ export const DeviceAccounts = useCrudSchemas(reactive([ label: '供应商', field: 'supplierNumber', sort: 'custom', + isDetail: false, table: { width: '150', }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return supplierList.find((account) => account.number == cellValue)?.name + }, form:{ component: 'Select', componentProps: { @@ -267,6 +292,16 @@ export const DeviceAccounts = useCrudSchemas(reactive([ } } }, + { + label: '供应商', + field: 'supplierNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '出厂日期', field: 'productionDate', diff --git a/src/views/eam/device/deviceAccounts/index.vue b/src/views/eam/device/deviceAccounts/index.vue index 0f44217..b5d2230 100644 --- a/src/views/eam/device/deviceAccounts/index.vue +++ b/src/views/eam/device/deviceAccounts/index.vue @@ -57,9 +57,7 @@ import * as DeviceAccountsApi from '@/api/eam/device/deviceAccounts' import * as defaultButtons from '@/utils/disposition/defaultButtons' import { DeviceLedgerTabsList } from '@/utils/disposition/tabsList' - import TableHead from '@/components/TableHead/src/TableHead.vue' - import ImportForm from '@/components/ImportForm/src/ImportForm.vue' - import DetailDeviceLedger from '@/components/Detail/src/DetailDeviceLedger.vue' + import { selectAllFactoryArea,selectAllFactoryAreaDept } from '@/api/system/dept' import { DeviceRepair } from '@/views/eam/device/deviceRepair/deviceRepair.data' import { DeviceItem } from '@/views/eam/basic/deviceItem/deviceItem.data' import * as deviceRepairApi from '@/api/eam/device/deviceRepair' @@ -69,7 +67,10 @@ import * as DeviceMaintenanceMainApi from '@/api/eam/device/deviceMaintenanceMain' import * as deviceMaintenanceDetailApi from '@/api/eam/device/deviceMaintenanceDetail' import { getAccessToken } from '@/utils/auth' - + import { dateFormatter } from '@/utils/formatTime' + import * as SupplierApi from '@/api/eam/basic/supplier' + import * as UserApi from '@/api/system/user' + import { selecUserByType } from '@/api/system/dept' import { DeviceMaintainOrderMain, DeviceMaintainOrderDetail, @@ -231,7 +232,13 @@ /** 详情操作 */ const detailRef = ref() - const openDetail = (row : any, titleName : any, titleValue : any) => { + const openDetail = async (row : any, titleName : any, titleValue : any) => { + const factoryDeptList = await selectAllFactoryAreaDept() + const userListAll = await UserApi.getSimpleUserList() + const supplierList = await SupplierApi.getSupplierNoPage({}) + row.factoryAreaNumberDetail = factoryDeptList.find((account) => account.id == row.factoryAreaNumber)?.name + row.principalDetail = userListAll.find((account) => account.id == row.maintenance)?.nickname + row.supplierNumberDetail = supplierList.find((account) => account.number == row.supplierNumber)?.name itemCodeRow.value = row.number tabsExtend.value = 1 detailRef.value.openDetail(row, titleName, titleValue, 'basicDeviceAccounts') diff --git a/src/views/eam/device/devicemaintainjob/index.vue b/src/views/eam/device/devicemaintainjob/index.vue index 8725df7..600a2e4 100644 --- a/src/views/eam/device/devicemaintainjob/index.vue +++ b/src/views/eam/device/devicemaintainjob/index.vue @@ -280,7 +280,10 @@ const openForm = (type: string, row?: any) => { /** 详情操作 */ const detailRef = ref() const openDetail =async (row: any, titleName: any, titleValue: any) => { + + const deviceListAll = await DeviceAccountsApi.getDeviceAccountsAllNoPage({}) const userListAll = await UserApi.getSimpleUserList() + row.factoryAreaNumber1 = factoryList.find((account) => account.id == row.factoryAreaNumber)?.name row.maintenanceName = userListAll.find((account) => account.id == row.maintenance)?.nickname detailRef.value.openDetail(row, titleName, titleValue,'DeviceMaintainOrderMain') } diff --git a/src/views/eam/device/devicemaintenancejob/deviceMaintenanceMain.data.ts b/src/views/eam/device/devicemaintenancejob/deviceMaintenanceMain.data.ts index 96d3c4d..92d32ad 100644 --- a/src/views/eam/device/devicemaintenancejob/deviceMaintenanceMain.data.ts +++ b/src/views/eam/device/devicemaintenancejob/deviceMaintenanceMain.data.ts @@ -61,6 +61,7 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, api: () => deviceList, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return deviceListAll.find((account) => account.number == cellValue)?.name @@ -89,6 +90,16 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ }, } }, + { + label: '设备', + field: 'deviceNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '厂区', field: 'factoryAreaNumber', @@ -129,12 +140,12 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ }, { label: '厂区', - field: 'factoryAreaNumber1', - sort: 'custom', - isDetail: true, - isSearch: false, + field: 'factoryAreaNumberDetail', + sort: 'custom',etail: true, isForm: false, + isSearch: false, isTable: false, + isTableForm: false, table: { width: 150 } @@ -181,12 +192,13 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ }, { label: '维修人', - field: 'maintenance1', + field: 'maintenanceDetail', sort: 'custom', isDetail: true, - isSearch: false, isForm: false, + isSearch: false, isTable: false, + isTableForm: false, table: { width: 150 } @@ -198,6 +210,7 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return deviceMoldTypeList.find((account) => account.value == cellValue)?.label }, @@ -228,6 +241,16 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ } }, }, + { + label: '类型', + field: 'typeDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '班次', field: 'classes', @@ -235,6 +258,7 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, isSearch: true, dictType: DICT_TYPE.MAINTENANCE_SHIFT, dictClass: 'number', @@ -249,6 +273,7 @@ export const DeviceMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, isSearch: false, dictType: DICT_TYPE.FAULT_TYPE, dictClass: 'string', @@ -384,7 +409,7 @@ export const DeviceMaintenanceDetail = useCrudSchemas(reactive([ // .map(item => item.nickname) // .join(','); // }, - isTable:false, + isTable:true, tableForm: { type: 'Select', initOptions: userListAll, @@ -418,7 +443,7 @@ export const DeviceMaintenanceDetail = useCrudSchemas(reactive([ sort: 'custom', isForm:false, isDetail:true, - isTable:true, + isTable:false, isTableForm:false }, { diff --git a/src/views/eam/device/devicemaintenancejob/index.vue b/src/views/eam/device/devicemaintenancejob/index.vue index 1794d6e..817110d 100644 --- a/src/views/eam/device/devicemaintenancejob/index.vue +++ b/src/views/eam/device/devicemaintenancejob/index.vue @@ -164,6 +164,9 @@ import { useUserStore } from '@/store/modules/user' import { selecUserByType } from '@/api/system/dept' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import * as UserApi from '@/api/system/user' +import { selectAllFactoryArea } from '@/api/system/dept' +import { ItemSearchTable } from '../../basic/item/item.data' +import * as ItemApi from '@/api/eam/basic/item' import { emit } from 'process' const deviceMoldTypeList = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE) const deviceTypeList = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE).filter(item => item.value != 'MOLD') @@ -691,10 +694,15 @@ const openFormSec = async (type: string, row?: any) => { /** 详情操作 */ const detailRef = ref() -const openDetail = (row: any, titleName: any, titleValue: any) => { - - const deviceMoldType = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE) - row.typeName = deviceMoldType.find((account) => account.value == row.type)?.label +const openDetail = async (row: any, titleName: any, titleValue: any) => { + const userListAll = await UserApi.getSimpleUserList() + const factoryList = await selectAllFactoryArea() + const moldAllList = await MoldAccountsApi.getMoldAccountsAllNoPage({}) + const deviceMoldTypeList = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE) + row.typeDetail = deviceMoldTypeList.find((account) => account.value == row.type)?.label + row.deviceNumberDetail = moldAllList.find((account) => account.number == row.deviceNumber)?.name + row.factoryAreaNumberDetail = factoryList.find((account) => account.id == row.factoryAreaNumber)?.name + row.maintenanceDetail = userListAll.find((account) => account.id == row.maintenance)?.nickname console.log(row) operatRecord.value = row; detailRef.value.openDetail(row, titleName, titleValue,'DeviceMaintenanceMain') diff --git a/src/views/eam/mold/moldAccounts/index.vue b/src/views/eam/mold/moldAccounts/index.vue index d7ca435..094a56e 100644 --- a/src/views/eam/mold/moldAccounts/index.vue +++ b/src/views/eam/mold/moldAccounts/index.vue @@ -1,483 +1,477 @@ - - - + + + diff --git a/src/views/eam/mold/moldAccounts/moldAccounts.data.ts b/src/views/eam/mold/moldAccounts/moldAccounts.data.ts index 04193b0..469c44b 100644 --- a/src/views/eam/mold/moldAccounts/moldAccounts.data.ts +++ b/src/views/eam/mold/moldAccounts/moldAccounts.data.ts @@ -1,314 +1,342 @@ -import type { CrudSchema } from '@/hooks/web/useCrudSchemas' -import { dateFormatter } from '@/utils/formatTime' -import { selectAllFactoryArea,selectAllFactoryAreaDept } from '@/api/system/dept' -import * as SupplierApi from '@/api/eam/basic/supplier' -import { validateHanset,validateNumDot, validateEmail,validateNum } from '@/utils/validator' -const factoryList = await selectAllFactoryArea() -const factoryDeptList = await selectAllFactoryAreaDept() -const supplierList = await SupplierApi.getSupplierNoPage() -// 表单校验 -export const MoldAccountsRules = reactive({ - number: [ - required, - { max: 20, message: '不得超过20个字符', trigger: 'blur' }, - ], - name: [ - required, - { max: 50, message: '不得超过50个字符', trigger: 'blur' }, - ], - factoryAreaNumber: [required], - purchaseDept: [ - { max: 100, message: '不得超过100个字符', trigger: 'blur' }, - ], - purchaser: [ - { max: 60, message: '不得超过60个字符', trigger: 'blur' }, - ], - purchasePrice: [ - { max: 20, message: '不得超过20个字符', trigger: 'blur' }, - { validator:validateNumDot, message: '请输入数字格式', trigger: 'blur'} - ], - beat:[ - { validator:validateNum, message: '请输入数字格式', trigger: 'blur'} - ] -}) - -export const MoldAccounts = useCrudSchemas(reactive([ - { - label: '模具编号', - field: 'number', - sort: 'custom', - isSearch: true, - isForm: true, - table: { - width: '150', - fixed: 'left', - }, - }, - { - label: '名称', - field: 'name', - sort: 'custom', - isSearch: true - }, - { - label: '规格型号', - field: 'specification', - sort: 'custom' - }, - { - label: '模具类型', - field: 'type', - sort: 'custom', - isSearch: false, - isForm: true, - isTable: true, - dictType: DICT_TYPE.DEVICE_MOLD_TYPE, - dictClass: 'string', - form: { - value: 'MOLD', - component: 'Select', - componentProps: { - disabled: true, - } - }, - search: { - value: 'MOLD' - } - }, - { - label: '所属厂区', - field: 'factoryAreaNumber', - sort: 'custom', - isSearch: false, - table: { - width: '150', - }, - api: () => factoryList, - formatter: (_: Recordable, __: TableColumn, cellValue: number) => { - return factoryList.find((account) => account.id == cellValue)?.name - }, - search: { - show: true, - component: 'Select', - api: () => factoryList, - componentProps: { - optionsAlias: { - labelField: 'name', - valueField: 'id' - }, - filterable: true, - } - }, - form: { - component: 'Select', - api: () => factoryList, - componentProps: { - disabled: false, - optionsAlias: { - labelField: 'name', - valueField: 'id' - }, - filterable: true, - placeholder: "请选择设备" - }, - } - }, - { - label: '采购时间', - field: 'purchaseTime', - sort: 'custom', - formatter: dateFormatter, - form: { - component: 'DatePicker', - componentProps: { - type: 'datetime', - valueFormat: 'x' - } - }, - detail: { - dateFormat: 'YYYY-MM-DD HH:mm:ss' - } - }, - { - label: '采购部门', - field: 'purchaseDept', - sort: 'custom', - isSearch: false, - isForm: true, - isTable: true, - form: { - component: 'Input', - } - }, - { - label: '采购人', - field: 'purchaser', - sort: 'custom', - form: { - component: 'Input', - } - }, - { - label: '供应商', - field: 'supplierNumber', - sort: 'custom', - table:{ - width:150 - }, - form:{ - component: 'Select', - componentProps: { - options: supplierList, - optionsAlias: { - labelField: 'name', - valueField: 'number' - }, - filterable: true, - placeholder: "请选择供应商" - } - } - }, - { - label: '出厂日期', - field: 'productionDate', - sort: 'custom', - formatter: dateFormatter, - form: { - component: 'DatePicker', - componentProps: { - type: 'datetime', - valueFormat: 'x' - } - } - }, - { - label: '购买价格', - field: 'purchasePrice', - sort: 'custom' - }, - { - label: '是否客户资产', - field: 'isClientAssets', - sort: 'custom', - form: { - component: 'Select', - }, - dictType: DICT_TYPE.TRUE_FALSE, - dictClass: 'string', - }, - { - label: '模次', - field: 'frequency', - sort: 'custom', - isForm: false, - isSearch: false, - form: { - component: 'Input', - } - }, - { - label: '节拍', - field: 'beat', - sort: 'custom', - isForm: true, - form: { - component: 'Input', - } - }, - { - label: '维修状态', - field: 'status', - sort: 'custom', - dictType: DICT_TYPE.BASIC_STATUS, - dictClass: 'string', - isSearch: true, - isForm: false, - }, - - - { - label: '操作', - field: 'action', - isForm: false, - table: { - width: 200, - fixed: 'right' - }, - isDetail: false, - } -])) -// 表单校验 -export const UpImageRules = reactive({ - filePath: [required], -}) -export const UpImage = useCrudSchemas(reactive([ - { - label: '上传图片', - field: 'filePathList', - sort: 'custom', - isForm: true, - form:{ - component:'UploadImgs', - - } - }, -])) - - -export const MoldMilestoneRules = reactive({ - number: [required], - moldNumber: [required], -}) - - -export const MoldMilestone = useCrudSchemas(reactive([ - { - label: '里程碑阶段', - field: 'milestoneStage', - sort: 'custom', - isSearch: true, - isForm: true, - form: { - component: 'Select', - componentProps: { - disabled: true, - } - }, - }, - { - label: '里程碑日期', - field: 'milestoneDate', - sort: 'custom', - formatter: dateFormatter, - isSearch: true, - isForm: true, - search: { - component: 'DatePicker', - componentProps: { - valueFormat: 'YYYY-MM-DD', - type: 'date', - } - }, - form: { - component: 'DatePicker', - componentProps: { - type: 'date', - valueFormat: 'x' - } - } - }, - { - label: '操作', - field: 'action', - isForm: false, - table: { - width: 150, - fixed: 'right' - } - } -])) - -// // 表单校验 -// export const UpFileRules = reactive({ -// filePath: [required], -// }) +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { selectAllFactoryArea,selectAllFactoryAreaDept } from '@/api/system/dept' +import * as SupplierApi from '@/api/eam/basic/supplier' +import { validateHanset,validateNumDot, validateEmail,validateNum } from '@/utils/validator' +const factoryList = await selectAllFactoryArea() +const factoryDeptList = await selectAllFactoryAreaDept() +const supplierList = await SupplierApi.getSupplierNoPage({}) +// 表单校验 +export const MoldAccountsRules = reactive({ + number: [ + required, + { max: 20, message: '不得超过20个字符', trigger: 'blur' }, + ], + name: [ + required, + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + factoryAreaNumber: [required], + purchaseDept: [ + { max: 100, message: '不得超过100个字符', trigger: 'blur' }, + ], + purchaser: [ + { max: 60, message: '不得超过60个字符', trigger: 'blur' }, + ], + purchasePrice: [ + { validator:validateNumDot, message: '请输入数字格式', trigger: 'blur'}, + { max: 20, message: '不得超过20个字符', trigger:'blur'}, + ], + beat:[ + { validator:validateNum, message: '请输入数字格式', trigger: 'blur'} + ] +}) + +export const MoldAccounts = useCrudSchemas(reactive([ + { + label: '模具编号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: true, + table: { + width: '150', + fixed: 'left', + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isSearch: true + }, + { + label: '规格型号', + field: 'specification', + sort: 'custom' + }, + { + label: '模具类型', + field: 'type', + sort: 'custom', + isSearch: false, + isForm: true, + isTable: true, + dictType: DICT_TYPE.DEVICE_MOLD_TYPE, + dictClass: 'string', + form: { + value: 'MOLD', + component: 'Select', + componentProps: { + disabled: true, + } + }, + search: { + value: 'MOLD' + } + }, + { + label: '所属厂区', + field: 'factoryAreaNumber', + sort: 'custom', + isSearch: false, + isDetail: false, + table: { + width: '150', + }, + api: () => factoryList, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return factoryList.find((account) => account.id == cellValue)?.name + }, + search: { + show: true, + component: 'Select', + api: () => factoryList, + componentProps: { + optionsAlias: { + labelField: 'name', + valueField: 'id' + }, + filterable: true, + } + }, + form: { + component: 'Select', + api: () => factoryList, + componentProps: { + disabled: false, + optionsAlias: { + labelField: 'name', + valueField: 'id' + }, + filterable: true, + placeholder: "请选择设备" + }, + } + }, + { + label: '所属厂区', + field: 'factoryAreaNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, + { + label: '采购时间', + field: 'purchaseTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + } + }, + { + label: '采购部门', + field: 'purchaseDept', + sort: 'custom', + isSearch: false, + isForm: true, + isTable: true, + form: { + component: 'Input', + } + }, + { + label: '采购人', + field: 'purchaser', + sort: 'custom', + form: { + component: 'Input', + } + }, + { + label: '供应商', + field: 'supplierNumber', + sort: 'custom', + table:{ + width:150 + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return supplierList.find((account) => account.number == cellValue)?.name + }, + form:{ + component: 'Select', + componentProps: { + options: supplierList, + optionsAlias: { + labelField: 'name', + valueField: 'number' + }, + filterable: true, + placeholder: "请选择供应商" + } + } + }, + { + label: '供应商', + field: 'supplierNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, + { + label: '出厂日期', + field: 'productionDate', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '购买价格', + field: 'purchasePrice', + sort: 'custom', + isForm: true, + form: { + component: 'Input', + } + }, + { + label: '是否客户资产', + field: 'isClientAssets', + sort: 'custom', + form: { + component: 'Select', + }, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + }, + { + label: '模次', + field: 'frequency', + sort: 'custom', + isForm: false, + isSearch: false, + form: { + component: 'Input', + } + }, + { + label: '节拍', + field: 'beat', + sort: 'custom', + isForm: true, + form: { + component: 'Input', + } + }, + { + label: '维修状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.BASIC_STATUS, + dictClass: 'string', + isSearch: true, + isForm: false, + }, + + + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 200, + fixed: 'right' + }, + isDetail: false, + } +])) +// 表单校验 +export const UpImageRules = reactive({ + filePath: [required], +}) +export const UpImage = useCrudSchemas(reactive([ + { + label: '上传图片', + field: 'filePathList', + sort: 'custom', + isForm: true, + form:{ + component:'UploadImgs', + + } + }, +])) + + +export const MoldMilestoneRules = reactive({ + number: [required], + moldNumber: [required], +}) + + +export const MoldMilestone = useCrudSchemas(reactive([ + { + label: '里程碑阶段', + field: 'milestoneStage', + sort: 'custom', + isSearch: true, + isForm: true, + form: { + component: 'Select', + componentProps: { + disabled: true, + } + }, + }, + { + label: '里程碑日期', + field: 'milestoneDate', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + isForm: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'date', + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'date', + valueFormat: 'x' + } + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +// // 表单校验 +// export const UpFileRules = reactive({ +// filePath: [required], +// }) diff --git a/src/views/eam/mold/moldmaintenancejob/index.vue b/src/views/eam/mold/moldmaintenancejob/index.vue index 47bc698..2693785 100644 --- a/src/views/eam/mold/moldmaintenancejob/index.vue +++ b/src/views/eam/mold/moldmaintenancejob/index.vue @@ -165,6 +165,7 @@ import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import * as DeviceAccountsApi from '@/api/eam/device/deviceAccounts' import * as MoldAccountsApi from '@/api/eam/mold/moldAccounts' import * as UserApi from '@/api/system/user' +import { selectAllFactoryArea } from '@/api/system/dept' const deviceMoldTypeList = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE) const moldTypeList = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE).filter(item => item.value == 'MOLD') defineOptions({ name: 'MoldMaintenanceMain' }) @@ -443,7 +444,15 @@ const openForm = async (type: string, row?: any) => { /** 详情操作 */ const detailRef = ref() -const openDetail = (row: any, titleName: any, titleValue: any) => { +const openDetail = async (row: any, titleName: any, titleValue: any) => { + const factoryList = await selectAllFactoryArea() + const userListAll = await UserApi.getSimpleUserList() + const moldListAll = await MoldAccountsApi.getMoldAccountsAllNoPage({}) + const deviceMoldType = getStrDictOptions(DICT_TYPE.APP_DEVICE_MOLD_TYPE) + row.typeDetail = deviceMoldType.find((account) => account.value == row.type)?.label + row.deviceNumberDetail = moldListAll.find((account) => account.number == row.deviceNumber)?.name + row.factoryAreaNumberDetail = factoryList.find((account) => account.id == row.factoryAreaNumber)?.name + row.maintenanceDetail = userListAll.find((account) => account.id == row.maintenance)?.nickname operatRecord.value = row; detailRef.value.openDetail(row, titleName, titleValue,'MoldMaintenanceMain') } diff --git a/src/views/eam/mold/moldmaintenancejob/moldMaintenanceMain.data.ts b/src/views/eam/mold/moldmaintenancejob/moldMaintenanceMain.data.ts index 1c7801c..d5326ae 100644 --- a/src/views/eam/mold/moldmaintenancejob/moldMaintenanceMain.data.ts +++ b/src/views/eam/mold/moldmaintenancejob/moldMaintenanceMain.data.ts @@ -61,6 +61,7 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, api: () => factoryList, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return factoryList.find((account) => account.id == cellValue)?.name @@ -93,15 +94,16 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ }, { label: '厂区', - field: 'factoryAreaNumberMO', + field: 'factoryAreaNumberDetail', sort: 'custom', table: { width: '150', }, isDetail: true, isForm: false, - isTable: false, isSearch: false, + isTable: false, + isTableForm: false, }, { label: '类型', @@ -110,6 +112,7 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return deviceMoldTypeList.find((account) => account.value == cellValue)?.label }, @@ -139,6 +142,16 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ } }, }, + { + label: '类型', + field: 'typeDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '模具', field: 'deviceNumber', @@ -147,6 +160,7 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ width: '150', }, isSearch: false, + isDetail: false, api: () => moldAllList, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return moldAllList.find((account) => account.number == cellValue)?.name @@ -174,6 +188,16 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ }, } }, + { + label: '模具', + field: 'deviceNumberDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '维修人', field: 'maintenance', @@ -181,6 +205,7 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, api: () => userListAll, formatter: (_: Recordable, __: TableColumn, cellValue: number) => { return userListAll.find((account) => account.id == cellValue)?.nickname @@ -213,7 +238,16 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ } } }, - + { + label: '维修人', + field: 'maintenanceDetail', + sort: 'custom', + isDetail: true, + isForm: false, + isSearch: false, + isTable: false, + isTableForm: false, + }, { label: '班次', field: 'classes', @@ -235,6 +269,7 @@ export const MoldMaintenanceMain = useCrudSchemas(reactive([ table: { width: '150', }, + isDetail: false, isSearch: true, dictType: DICT_TYPE.FAULT_TYPE, dictClass: 'string',