diff --git a/src/api/mes/orderDay/index.ts b/src/api/mes/orderDay/index.ts index 0b88e4782..852c8f0e3 100644 --- a/src/api/mes/orderDay/index.ts +++ b/src/api/mes/orderDay/index.ts @@ -83,6 +83,11 @@ export const getProcessroutesDetail = async (code) => { export const getPlanBom = async (params) => { return await request.get({ url: `/mes/orderday/getBomInfo`,params }) } + +// 根据获取计划BOM信息 +export const getBomInfoTree = async (params) => { + return await request.get({ url: `/mes/orderday/getBomInfoTree`,params }) +} // 根据计划的车间、产线、计划时间 查询已经配置的人员 export const getPlanWorks = async (params) => { return await request.get({ url: `/mes/orderday/getWorkGroup`,params }) diff --git a/src/api/mes/processroute/index.ts b/src/api/mes/processroute/index.ts index be6648c4f..f80f4aab1 100644 --- a/src/api/mes/processroute/index.ts +++ b/src/api/mes/processroute/index.ts @@ -75,6 +75,7 @@ export const getProductInfo =async (code:String) => { // 获取设备列表-参数为工序编码 export const getDeviceList =async (code:String) => { //return request.get({ url: `/wms/itembasic/getProduct?code=`+code}) + return request.get({ url: `/wms/itembasic/getProduct?code=`+code}) return {code:0,data:[{name:"冲压设备1",code:"CY0001"},{name:"冲压设备2",code:"CY0002"}]} } // 获取工作人员信息--参数为工序编码 diff --git a/src/api/mes/workstation/index.ts b/src/api/mes/workstation/index.ts index 336c9714a..a3dfde12d 100644 --- a/src/api/mes/workstation/index.ts +++ b/src/api/mes/workstation/index.ts @@ -40,16 +40,6 @@ export const deleteWorkstation = async (id: number) => { return await request.delete({ url: `/mes/workstation/delete?id=` + id }) } -// 导出工位 Excel -export const exportWorkstation = async (params) => { - return await request.download({ url: `/mes/workstation/export-excel`, params }) -} - -// 下载用户导入模板 -export const importTemplate = () => { - return request.download({ url: '/mes/workstation/get-import-template' }) -} - export const getEquipmentPage = async (params) => { params.workstationCode = goalParams.workstationCode if (params.isSearch) { diff --git a/src/views/mes/orderDay/components/orderDetail.vue b/src/views/mes/orderDay/components/orderDetail.vue index 9f7d56984..b2901483c 100644 --- a/src/views/mes/orderDay/components/orderDetail.vue +++ b/src/views/mes/orderDay/components/orderDetail.vue @@ -80,12 +80,13 @@ :data="bomInfoSchemaData" style="width: 100%" > - - - - - - + + + + + + @@ -111,11 +112,10 @@ const props = defineProps({ }) const detailData = ref(props.allSchemas) - const bomInfoSchemaData = ref( [{productItemCode:'----', - componentItemCode:'----', - componentUom:'----', - componentQty:'----', - version:'----'}]) + const bomInfoSchemaData = ref( [{srcMaterialCode:'----', + srcMaterialModel:'----', + srcMaterialCounts:'----', + processCode:'----',id:0}]) const processRouteInfoSchema = ref({ processrouteInfo: { processrouteCode: '', processName: '', routeVersion: '' }, @@ -158,6 +158,12 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: titleNameRef.value = titleName titleValueRef.value = titleValue isShowDrawer.value = true + processRouteInfoSchema.value={ processrouteInfo: { processrouteCode: '', processName: '', routeVersion: '' }, processrouteNodeDetailList: [] } + bomInfoSchemaData.value = [{srcMaterialCode:'', + srcMaterialModel:'', + srcMaterialCounts:'', + processCode:'',id:0}] + if (row) { detailLoading.value = true try { @@ -171,9 +177,11 @@ const openDetail = async (row: any, titleName: any, titleValue: any, tableName: defineExpose({ openDetail, formRef }) // 提供 open 方法,用于打开弹窗 const getDetailData = async (row: any) => { processRouteInfoSchema.value = await OrderDayApi.getProcessroutesDetail(row.processrouteCode) - let pam={code:row.standardBom.slice(0,row.standardBom.lastIndexOf('-')),version:row.standardBom.slice(row.standardBom.lastIndexOf('-')+1)} + + let pam={planDayCode:row.planNoDay,productCode:row.productCode,planBatchCode:row.batchCode} //console.log(pam) bomInfoSchemaData.value = await OrderDayApi.getPlanBom(pam) + nodeData.value = processRouteInfoSchema.value.processrouteNodeDetailList } diff --git a/src/views/mes/orderDay/components/schedule.vue b/src/views/mes/orderDay/components/schedule.vue index be797d612..b32596eb5 100644 --- a/src/views/mes/orderDay/components/schedule.vue +++ b/src/views/mes/orderDay/components/schedule.vue @@ -50,28 +50,32 @@ > - + + - + + - + + @@ -97,7 +101,7 @@ import { getNewNode } from '@/views/mes/processroute/components/graphbase.data' import * as ProcessrouteApi from '@/api/mes/processroute' -import {ProcessSearch} from './processSearch.data' +import {ProcessSearch} from '../../publicUtil/processSearch.data' import * as ProcessApi from '@/api/wms/process' import { SearchTable } from '@/components/SearchTable' import { Graph } from '@antv/x6' @@ -143,86 +147,6 @@ const dialogWidth = ref() const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 let graphJson = { - cells: [ - { - position: { - x: 40, - y: 40 - }, - size: { - width: 100, - height: 40 - }, - attrs: { - text: { - text: 'Hello' - }, - body: { - stroke: '#8f8f8f', - strokeWidth: 1, - fill: '#fff', - rx: 6, - ry: 6 - } - }, - visible: true, - shape: 'rect', - id: 'adbc20c6-96e4-4792-9e5b-42df6066cff0', - zIndex: 1 - }, - { - position: { - x: 240, - y: 180 - }, - size: { - width: 100, - height: 40 - }, - attrs: { - text: { - text: 'World' - }, - body: { - stroke: '#8f8f8f', - strokeWidth: 1, - fill: '#fff', - rx: 6, - ry: 6 - } - }, - visible: true, - shape: 'ellipse', - id: '9b1f1e94-a01f-4902-bfae-4e6e81029261', - zIndex: 2 - }, - { - shape: 'edge', - attrs: { - line: { - stroke: '#8f8f8f', - strokeWidth: 1 - } - }, - id: '8fd50f13-22ba-41ff-b54a-eb6d8553c3d7', - source: { - cell: 'adbc20c6-96e4-4792-9e5b-42df6066cff0' - }, - target: { - cell: '9b1f1e94-a01f-4902-bfae-4e6e81029261' - }, - labels: [ - { - attrs: { - label: { - text: 'X6' - } - } - } - ], - zIndex: 3 - } - ] } /** 打开弹窗 */ const open = async (type: string, row?: any, titleName?: any) => { @@ -230,7 +154,7 @@ const open = async (type: string, row?: any, titleName?: any) => { detailData.value = row dialogWidth.value = props.basicFormWidth + '%' //获取配置的 - getProcessroute('001') + await ProcessrouteApi.getProcessroute(row.processrouteCode) if (titleName) { dialogTitle.value = t('action.' + titleName) } else { @@ -280,7 +204,7 @@ const searchTableRef = ref() const opensearchTable = ( ) => { - console.log("opensearchTable") + //console.log("opensearchTable") const _searchCondition = {} const _searchTableTitle = "工序查询" const _searchTableAllSchemas = ProcessSearch.allSchemas @@ -310,8 +234,6 @@ const searchTableSuccess = (formField, searchField, val, type, row) => { processData.value.push({code:item.code,name:item.name})} }) } - - //emit('searchTableSuccess', formField, searchField, val, undefined, type, row) } const deleteNode=(row)=>{ diff --git a/src/views/mes/orderDay/index.vue b/src/views/mes/orderDay/index.vue index d258dbcbd..a241bf85b 100644 --- a/src/views/mes/orderDay/index.vue +++ b/src/views/mes/orderDay/index.vue @@ -81,7 +81,8 @@ import TableHead from '@/components/TableHead/src/TableHead.vue' import ImportForm from '@/components/ImportForm/src/ImportForm.vue' import orderDetail from './components/orderDetail.vue' import scheduleDetail from './components/schedule.vue' -import { disabledTimeListsProps } from 'node_modules/element-plus/es/components/time-picker/src/props/shared' +import { Loading } from 'node_modules/element-plus/es/components/loading/src/service' +import { loadavg } from 'os' defineOptions({ name: 'MesOrderDay' }) const message = useMessage() // 消息弹窗 @@ -93,14 +94,14 @@ routeName.value = route.name const tableColumns = ref(OrderDay.allSchemas.tableColumns) const lineOptions=ref([]) const processRouteOptions=ref([]) -const bomOptions=ref([]) + //**获取 产品工艺路由列表 */ const getProcessroutes = async (code: String) => { processRouteOptions.value = await OrderDayApi.getProcessroutes(code) OrderDay.allSchemas.formSchema.forEach(item => { if (item.field == 'processrouteCode') { - console.log('processrouteCode',item.field) + //console.log('processrouteCode',item.field) item.componentProps.options = processRouteOptions.value } }) @@ -114,14 +115,15 @@ const getProductlines = async (code: String) => { } }) } -const getBoms = async (code: String) => { - bomOptions.value = await OrderDayApi.getBoms(code) - OrderDay.allSchemas.formSchema.forEach(item => { - if (item.field == 'standardBom') { - item.componentProps.options = bomOptions.value - } - }) -} +//跟现在情况需要填写BOM版本号即可,其他跟随产品编码 +// const getBoms = async (code: String) => { +// bomOptions.value = await OrderDayApi.getBoms(code) +// OrderDay.allSchemas.formSchema.forEach(item => { +// if (item.field == 'standardBom') { +// item.componentProps.options = bomOptions.value +// } +// }) +// } // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef) => { nextTick(() => { @@ -131,7 +133,7 @@ const searchTableSuccess = (formField, searchField, val, formRef) => { if(formField=='productCode'){ //formRef.setValues({standardBom:'bomddd'}) getProcessroutes(val[0][searchField]) - getBoms(val[0][searchField]) + //getBoms(val[0][searchField]) } if(formField=='workroomCode'){ getProductlines(val[0][searchField]) @@ -253,6 +255,7 @@ const openForm = (type: string, row?: any) => { // form表单提交 const formsSuccess = async (formType,data) => { + var isHave =OrderDay.allSchemas.formSchema.some(function (item) { return item.field === 'activeTime' || item.field === 'expireTime'; }); @@ -264,6 +267,7 @@ const formsSuccess = async (formType,data) => { } if(data.activeTime==0)data.activeTime = null; if(data.expireTime==0)data.expireTime = null; + if (formType === 'create') { await OrderDayApi.createOrderDay(data) message.success(t('common.createSuccess')) @@ -271,6 +275,7 @@ const formsSuccess = async (formType,data) => { await OrderDayApi.updateOrderDay(data) message.success(t('common.updateSuccess')) } + basicFormRef.value.dialogVisible = false getList() } diff --git a/src/views/mes/orderDay/orderDay.data.ts b/src/views/mes/orderDay/orderDay.data.ts index a110b4bae..e7d0f5653 100644 --- a/src/views/mes/orderDay/orderDay.data.ts +++ b/src/views/mes/orderDay/orderDay.data.ts @@ -8,7 +8,7 @@ import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/w // 表单校验 export const OrderDayRules = reactive({ - // planNoDay: [ + // batchCode: [ // { required: false, message: '请输入一个日计划编号', trigger: 'blur' } // ], planNoMonth: [ @@ -85,6 +85,13 @@ export const OrderDay = useCrudSchemas(reactive([ } }, }, + { + label: '产品批次码', + field: 'batchCode', + sort: 'custom', + isSearch: true, + required: true, + }, { label: '月计划单号', field: 'planNoMonth', diff --git a/src/views/mes/ordermonthplan/index.vue b/src/views/mes/ordermonthplan/index.vue index 8e5c97e9d..32805630a 100644 --- a/src/views/mes/ordermonthplan/index.vue +++ b/src/views/mes/ordermonthplan/index.vue @@ -44,9 +44,10 @@ @success="formsSuccess" :rules="MesOrderMonthMainRules" :formAllSchemas="MesOrderMonthMain.allSchemas" - :apiUpdate="MesOrderMonthApi.updateMesOrderMonthMain" - :apiCreate="MesOrderMonthApi.createMesOrderMonthMain" + :apiUpdate="updateMesOrderMonthMain" + :apiCreate="createMesOrderMonthMain" :apiDelete="MesOrderMonthApi.deleteMesOrderMonthMain" + @searchTableSuccess="searchTableSuccess" :isBusiness="false" /> @@ -106,7 +107,11 @@ import { MesOrderMonthSubRules } from "@/views/mes/ordermonthplan/mesOrderMonthSub.data"; import * as OrderDayApi from "@/api/mes/orderDay"; -import {breakdown, MesOrderMonthSubVO} from "@/api/mes/ordermonthplan"; +import { + breakdown, + MesOrderMonthMainVO, + MesOrderMonthSubVO +} from "@/api/mes/ordermonthplan"; defineOptions({ name: 'MesOrderMonthMain' }) @@ -198,6 +203,7 @@ const formsSuccess = async (formType,data) => { } if(data.activeTime==0)data.activeTime = null; if(data.expireTime==0)data.expireTime = null; + data.factoryName = factoryName if (formType === 'create') { await MesOrderMonthApi.createMesOrderMonthMain(data) message.success(t('common.createSuccess')) @@ -208,7 +214,6 @@ const formsSuccess = async (formType,data) => { basicFormRef.value.dialogVisible = false getList() } - /** 详情操作 */ const detailRef = ref() let mainPlanId @@ -278,8 +283,10 @@ onMounted(async () => { const detailAllSchemas = ref(MesOrderMonthSub.allSchemas) // 查询页面返回 let productName +let factoryName const searchTableSuccess = (formField, searchField, val, formRef) => { nextTick(() => { + const setV = {} setV[formField] = val[0][searchField] formRef.setValues(setV) @@ -289,6 +296,10 @@ const searchTableSuccess = (formField, searchField, val, formRef) => { productName = val[0].name getBoms(val[0][searchField]) } + if(formField=='factoryCode'){ + factoryName = val[0].name + formRef.setValues({factoryCode:val[0]['id']}) + } // if(formField=='workroomCode'){ // getProductlines(val[0][searchField]) // } @@ -304,6 +315,8 @@ const getBoms = async (code: String) => { } }) } + + const createMesOrderMonthSub = async (data: MesOrderMonthSubVO) => { data.productName = productName return await MesOrderMonthApi.createMesOrderMonthSub(data) @@ -314,7 +327,6 @@ const updateMesOrderMonthSub = async (data: MesOrderMonthSubVO) => { } // 详情--头部按钮事件 const detailButtonBaseClick = async (val, item) => { - debugger try { // 二次确认 await message.confirm('确定要拆解成日计划吗?') diff --git a/src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts b/src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts index 422b79c07..908906fb6 100644 --- a/src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts +++ b/src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts @@ -1,5 +1,6 @@ import type {CrudSchema} from '@/hooks/web/useCrudSchemas' import {dateFormatter} from '@/utils/formatTime' +import * as TenantApi from '@/api/system/tenant' // 表单校验 export const MesOrderMonthMainRules = reactive({ @@ -35,24 +36,24 @@ export const MesOrderMonthMain = useCrudSchemas(reactive([ field: 'factoryCode', sort: 'custom', isTable: false, - // form: { - // // labelMessage: '信息提示说明!!!', - // componentProps: { - // isSearchList: true, // 开启查询弹窗 - // searchListPlaceholder: '请选择工厂', // 输入框占位文本 - // searchField: 'id', // 查询弹窗赋值字段 - // searchTitle: '请选择工厂', // 查询弹窗标题 - // searchAllSchemas: FactoryList.allSchemas, // 查询弹窗所需类 - // searchPage: TenantApi.getTenantPage, // 查询弹窗所需分页方法 - // isHideFilterButton: true, - // searchCondition: [{ - // key: 'available', - // value: 'TRUE', - // isMainValue: false - // } - // ] - // } - // } + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择工厂', // 输入框占位文本 + searchField: 'factoryCode', // 查询弹窗赋值字段 + searchTitle: '请选择工厂', // 查询弹窗标题 + searchAllSchemas: FactoryList.allSchemas, // 查询弹窗所需类 + searchPage: TenantApi.getTenantPage, // 查询弹窗所需分页方法 + isHideFilterButton: true, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + } }, { label: '工厂名称', diff --git a/src/views/mes/processroute/components/configDialog.vue b/src/views/mes/processroute/components/configDialog.vue index 931ac8f1b..0b89f8423 100644 --- a/src/views/mes/processroute/components/configDialog.vue +++ b/src/views/mes/processroute/components/configDialog.vue @@ -26,22 +26,29 @@ - - @@ -130,11 +138,14 @@ import Annex from '@/components/Annex/src/Annex.vue' import Remarks from '@/components/Remarks/src/Remarks.vue' import ChangeRecord from '@/components/ChangeRecord/src/ChangeRecord.vue' +import * as ProcessApi from '@/api/wms/process' import * as RemarkApi from '@/api/wms/remark' import * as FileApi from '@/api/wms/file' -import { start_node, end_node, createGraph, registerNodes, getNewNode } from './graphbase.data' +import { start_node, end_node, createGraph, getNewNode } from './graphbase.data' +import {ProcessSearch} from '../../publicUtil/processSearch.data' import * as ProcessrouteApi from '@/api/mes/processroute' import { Graph } from '@antv/x6' +import { get } from 'http' const graphContainer = ref(null) defineOptions({ name: 'ProcessRouteConfig' }) const isShowDrawer = ref(false) @@ -167,10 +178,47 @@ const remarksData = reactive({ data: {} }) const routeVersion=ref() +///工序查询选择 +const searchTableRef = ref() +const opensearchTable = ( +) => { + //console.log("opensearchTable") + const _searchCondition = {} + const _searchTableTitle = "工序查询" + const _searchTableAllSchemas = ProcessSearch.allSchemas + const _searchTablePage = ProcessApi.getProcessPage + searchTableRef.value.open( + _searchTableTitle, + _searchTableAllSchemas, + _searchTablePage, + undefined, + undefined, + true, + undefined, + undefined, + _searchCondition, + false, + true + ) +} +//查询工序 +const searchTableSuccess = (formField, searchField, val, type, row) => { + if(val.length>0){ + val.forEach(item=>{ + if(processData.value.find(obj=>obj.code==item.code)==undefined){ + processData.value.push({code:item.code,name:item.name})} + }) + } +} +const deleteNode=(row)=>{ + processData.value.splice(processData.value.indexOf(row),1) + graph.value.removeNode(row.code) + } //初始化图形组件 const graph = ref() -const openDetail = async (rowData: any) => { +const openDetail = (rowData: any) => { rowData.value = rowData + console.log('rowData',rowData.value) titleNameRef.value = rowData.value.processrouteCode titleValueRef.value = rowData.value.processName processRouteId.value = rowData.value.id @@ -305,7 +353,7 @@ const saveResult = async () => { return } if (graph.value.getNodes().length < 3) { - message.info('除了开始结束节点外至少需要设置一个节点!') + message.info('工艺至少配置一道工序!') return } let gdata = { @@ -372,6 +420,7 @@ const deleteAnnexSuccess = async () => { // 验证图形 onUnmounted(() => {}) const emit = defineEmits(['close']) + \ No newline at end of file + diff --git a/src/views/qms/inspection/inspectionJob/detail.vue b/src/views/qms/inspection/inspectionJob/detail.vue index cb2d9d51c..1a2673a19 100644 --- a/src/views/qms/inspection/inspectionJob/detail.vue +++ b/src/views/qms/inspection/inspectionJob/detail.vue @@ -46,18 +46,9 @@ - - - - - - + @@ -65,15 +56,6 @@ - - - - -
检验特性
@@ -121,20 +103,6 @@ - - - - - - - - - - - diff --git a/src/views/qms/inspection/inspectionJob/index.vue b/src/views/qms/inspection/inspectionJob/index.vue index 0413a48aa..680aa7eb7 100644 --- a/src/views/qms/inspection/inspectionJob/index.vue +++ b/src/views/qms/inspection/inspectionJob/index.vue @@ -161,10 +161,10 @@ // 列表-操作按钮 const butttondata = (row) => { return [ - defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:accept'}), // 承接 + // defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:accept'}), // 承接 defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:close'}), // 关闭 - defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:abandon'}), // 放弃 - defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:execute'}), // 执行 + // defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:abandon'}), // 放弃 + defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['1','2']),hasPermi:'qms:inspection-job-main:execute'}), // 执行 defaultButtons.mainListPackageBtn(null), // 包装 ] } diff --git a/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts index f73d21094..c66932fea 100644 --- a/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts +++ b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts @@ -30,7 +30,7 @@ export const InspectionJobMain = useCrudSchemas(reactive([ } }, table: { - width: 150, + width: 165, fixed: 'left' } }, @@ -320,6 +320,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -346,6 +349,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } diff --git a/src/views/qms/inspection/inspectionRecord/index.vue b/src/views/qms/inspection/inspectionRecord/index.vue index cf2fd6be1..09b9009f3 100644 --- a/src/views/qms/inspection/inspectionRecord/index.vue +++ b/src/views/qms/inspection/inspectionRecord/index.vue @@ -112,15 +112,11 @@ } // 根据状态返回该按钮是否显示 - const isShowMainButton = (row, val) => { - if(val){ - if(row.useDecision){ - return false - }else{ - return true - } - }else{ - return !row.isPublished + const isShowPublishedButton = (row, val) => { + if(row.useDecision) { + return row.isPublished + } else { + return true } } @@ -128,9 +124,9 @@ const butttondata = (row) => { return [ // defaultButtons.mainListOrderCOMPLETEBtn({ hide: isShowMainButton(row, ['INCOMPLETE']) }), // 完成 - defaultButtons.mainApplyDecisionBtn({ hide: isShowMainButton(row, null),hasPermi:'qms:inspection-recode-main:edit'}), // 使用决策 + defaultButtons.mainApplyDecisionBtn({ hide: row.isPublished, hasPermi:'qms:inspection-recode-main:edit'}), // 使用决策 // defaultButtons.mainListDeleteBtn(null), // 删除 - defaultButtons.mainListOrderPubBtn({ hide: isShowMainButton(row,'pub'),hasPermi:'qms:inspection-recode-main:pub'}), // 发布 + defaultButtons.mainListOrderPubBtn({ hide: isShowPublishedButton(row,'pub'), hasPermi:'qms:inspection-recode-main:pub'}), // 发布 defaultButtons.mainListPackageBtn(null), // 包装 ] } diff --git a/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts b/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts index c7e617e88..54cfb535e 100644 --- a/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts +++ b/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts @@ -16,7 +16,7 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ isSearch: true, isForm:false, table: { - width: 150, + width: 165, fixed: 'left' } }, @@ -254,6 +254,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -280,6 +283,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -306,6 +312,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -332,6 +341,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -358,17 +370,6 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ width: 150 } }, - // { - // label: '是否可用', - // field: 'available', - // dictType: DICT_TYPE.TRUE_FALSE, - // sort: 'custom', - // isSearch: false, - // isForm:false, - // table: { - // width: 150 - // } - // }, { label: '使用决策', field: 'useDecision', @@ -395,8 +396,11 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ } }, isForm: false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { - width: 150 + width: 170 } }, diff --git a/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts b/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts index 91b2828d0..d42f387df 100644 --- a/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts +++ b/src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts @@ -75,6 +75,9 @@ export const InspectionMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -100,6 +103,9 @@ export const InspectionMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -125,6 +131,9 @@ export const InspectionMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } @@ -150,6 +159,9 @@ export const InspectionMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, table: { width: 150 } diff --git a/src/views/qms/sampleCode/index.vue b/src/views/qms/sampleCode/index.vue index 2f7dae698..faa6d874c 100644 --- a/src/views/qms/sampleCode/index.vue +++ b/src/views/qms/sampleCode/index.vue @@ -156,6 +156,11 @@ const openForm = (type: string, row?: any) => { // form表单提交 const formsSuccess = async (formType,data) => { + if(data.batchLowLimiting >= data.batchUpperLimiting){ + message.alertWarning('批量上限须大于批量下限') + basicFormRef.value.formLoading = false + return + } var isHave =SampleCode.allSchemas.formSchema.some(function (item) { return item.field === 'activeTime' || item.field === 'expireTime'; }); diff --git a/src/views/qms/samplingProcess/samplingProcess.data.ts b/src/views/qms/samplingProcess/samplingProcess.data.ts index 955a0e91d..8ee0c907c 100644 --- a/src/views/qms/samplingProcess/samplingProcess.data.ts +++ b/src/views/qms/samplingProcess/samplingProcess.data.ts @@ -1,12 +1,14 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import {getSamplingScheme} from "@/api/qms/samplingProcess"; +import { validateInteger } from '@/utils/validator' // 表单校验 export const SamplingProcessRules = reactive({ sampleType: [required], evaluationMode: [required], description: [required], + inspectionQty: [required, {validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}] }) const samplingSchemeList = await getSamplingScheme() export const SamplingProcess = useCrudSchemas(reactive([ @@ -30,12 +32,12 @@ export const SamplingProcess = useCrudSchemas(reactive([ label: '取样类型', field: 'sampleType', sort: 'custom', - dictType: DICT_TYPE.SAMPLING_TYPE, - dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + dictType: DICT_TYPE.SAMPLING_TYPE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 isSearch: true, - form: { - component: 'Select' - }, + form: { + component: 'Select' + }, }, { label: '评估模式', @@ -43,15 +45,20 @@ export const SamplingProcess = useCrudSchemas(reactive([ sort: 'custom', dictType: DICT_TYPE.EVALUATION_MODE, dictClass: 'string', // 默认都是字符串类型其他暂不考虑 - form: { - component: 'Select' - }, + form: { + component: 'Select' + }, }, { label: '样品量', field: 'sampleSize', sort: 'custom', }, + { + label: '检验次数', + field: 'inspectionQty', + sort: 'custom', + }, { label: '采样方案编码', field: 'sampleProgCode', diff --git a/src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts b/src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts index efd4d96c3..147cfe544 100644 --- a/src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts +++ b/src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts @@ -62,6 +62,9 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive([ { label: '申请时间', field: 'requestTime', + isForm:false, + isTable:false, + isTableForm:false, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' @@ -83,6 +86,9 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive([ { label: '截止时间', field: 'dueTime', + isForm:false, + isTable:false, + isTableForm:false, formatter: dateFormatter, detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' @@ -266,6 +272,9 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive([ { label: '备注', field: 'remark', + isForm:false, + isTable:false, + isTableForm:false, sort: 'custom', table: { width: 150