diff --git a/src/api/mes/ordermonthplan/index.ts b/src/api/mes/ordermonthplan/index.ts index ba1c7eb15..daf0c42ea 100644 --- a/src/api/mes/ordermonthplan/index.ts +++ b/src/api/mes/ordermonthplan/index.ts @@ -108,8 +108,3 @@ export const updateMesOrderMonthSub = async (data: MesOrderMonthSubVO) => { export const deleteMesOrderMonthSub = async (id: number) => { return await request.delete({ url: `/plan/mes-order-month-sub/delete?id=` + id }) } - -// 导出订单月计划子 Excel -export const exportMesOrderMonthSub = async (params) => { - return await request.download({ url: `/plan/mes-order-month-sub/export-excel`, params }) -} diff --git a/src/api/qms/inspectionJob/inspectionJobMain/index.ts b/src/api/qms/inspectionJob/inspectionJobMain/index.ts index 289854b37..fe61e36c3 100644 --- a/src/api/qms/inspectionJob/inspectionJobMain/index.ts +++ b/src/api/qms/inspectionJob/inspectionJobMain/index.ts @@ -44,3 +44,8 @@ export const exportInspectionJobMain = async (params) => { export const importTemplate = () => { return request.download({ url: '/qms/inspection-job-main/get-import-template' }) } +//查询包装列表 +export const getInspectionJobPackageList = async (id: number) => { +   return await request.get({ url: `/qms/inspection-job-package/list?masterId=` + id }) +} + \ No newline at end of file diff --git a/src/api/qms/inspectionJob/inspectionJobPackage/index.ts b/src/api/qms/inspectionJob/inspectionJobPackage/index.ts deleted file mode 100644 index e4b98fd47..000000000 --- a/src/api/qms/inspectionJob/inspectionJobPackage/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import request from '@/config/axios' - -//查询检验申请列表 -export const getInspectionJobPackageList = async (id: number) => { - return await request.get({ url: `/qms/inspection-job-package/list?masterId=` + id }) -} \ No newline at end of file diff --git a/src/api/qms/inspectionPlan/index.ts b/src/api/qms/inspectionPlan/index.ts deleted file mode 100644 index e0938f648..000000000 --- a/src/api/qms/inspectionPlan/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import request from '@/config/axios' -// 新增 -export const inspectionPlanCreat = async (data) => { - return await request.post({ url: `/qms/type-template/create`,data}) -} -// 编辑 -export const inspectionPlanUpdate = async (data) => { - return await request.put({ url: `/qms/type-template/update`,data}) -} -// 删除 -export const inspectionPlanDelete = async (id) => { - return await request.delete({ url: `/qms/type-template/delete?id=`+id}) -} -// 列表 -export const inspectionPlanPage = async (params) => { - if (params.isSearch) { - delete params.isSearch - const data = {...params} - return request.post({ url: '/wms/accountcalendar/senior', data }) - } else { - return await request.get({ url: `/qms/type-template/page`, params }) - } -} \ No newline at end of file diff --git a/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts b/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts index c04557bd6..db265c38d 100644 --- a/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts +++ b/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts @@ -67,3 +67,7 @@ export const importTemplate = () => { export const publishInspectionRecordMain = async (data ) => { return await request.put({ url: `/qms/inspection-record-main/publish`, data }) } +//查询检验申请列表 +export const getInspectionRecordPackageList = async (id: number) => { + return await request.get({ url: `/qms/inspection-record-package/list?masterId=` + id }) +} \ No newline at end of file diff --git a/src/api/qms/inspectionRequest/index.ts b/src/api/qms/inspectionRequest/index.ts index 0b064dc02..c018b87ac 100644 --- a/src/api/qms/inspectionRequest/index.ts +++ b/src/api/qms/inspectionRequest/index.ts @@ -28,38 +28,72 @@ export const getInspectionMainPage = async (params) => { if (params.isSearch) { delete params.isSearch const data = {...params} - return await request.post({ url: '/inspection/inspection-main/senior', data }) + return await request.post({ url: '/qms/inspection-request-main/senior', data }) } else { - return await request.get({ url: `/inspection/inspection-main/page`, params }) + return await request.get({ url: `/qms/inspection-request-main/page`, params }) } } // 查询检验申请详情 export const getInspectionMain = async (id: number) => { - return await request.get({ url: `/inspection/inspection-main/get?id=` + id }) + return await request.get({ url: `/qms/inspection-request-main/get?id=` + id }) } // 新增检验申请 export const createInspectionMain = async (data: InspectionMainVO) => { - return await request.post({ url: `/inspection/inspection-main/create`, data }) + return await request.post({ url: `/qms/inspection-request-main/create`, data }) } // 修改检验申请 export const updateInspectionMain = async (data: InspectionMainVO) => { - return await request.put({ url: `/inspection/inspection-main/update`, data }) + return await request.put({ url: `/qms/inspection-request-main/update`, data }) } // 删除检验申请 export const deleteInspectionMain = async (id: number) => { - return await request.delete({ url: `/inspection/inspection-main/delete?id=` + id }) + return await request.delete({ url: `/qms/inspection-request-main/delete?id=` + id }) } // 导出检验申请 Excel export const exportInspectionMain = async (params) => { - return await request.download({ url: `/inspection/inspection-main/export-excel`, params }) + return await request.download({ url: `/qms/inspection-request-main/export-excel`, params }) } // 下载用户导入模板 export const importTemplate = () => { - return request.download({ url: '/inspection/inspection-main/get-import-template' }) + return request.download({ url: '/qms/inspection-request-main/get-import-template' }) } +// 关闭检验申请主 Excel +export const closeInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/close?id=` + id }) +} + +// 重新添加检验申请主 Excel +export const reAddInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/reAdd?id=` + id }) +} + +// 提交检验申请主 Excel +export const submitInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/submit?id=` + id }) +} + +// 审批通过检验申请主 Excel +export const agreeInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/agree?id=` + id }) +} + +// 审批驳回检验申请主 Excel +export const refusedInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/refused?id=` + id }) +} + +// 处理检验申请主 Excel +export const handleInspectRequestMain = async (id) => { + return await request.put({ url: `/qms/inspection-request-main/handle?id=` + id }) +} + +//查询检验申请列表 +export const getInspectionRequestPackageList = async (id: number) => { + return await request.get({ url: `/qms/inspection-request-package/list?masterId=` + id }) +} \ No newline at end of file diff --git a/src/api/qms/inspectionScheme/index.ts b/src/api/qms/inspectionScheme/index.ts new file mode 100644 index 000000000..c54e11372 --- /dev/null +++ b/src/api/qms/inspectionScheme/index.ts @@ -0,0 +1,23 @@ +import request from '@/config/axios' +// 新增 +export const InspectionSchemeCreat = async (data) => { + return await request.post({ url: `/qms/inspection-scheme/create`,data}) +} +// 编辑 +export const InspectionSchemeUpdate = async (data) => { + return await request.put({ url: `/qms/inspection-scheme/update`,data}) +} +// 删除 +export const InspectionSchemeDelete = async (id) => { + return await request.delete({ url: `/qms/inspection-scheme/delete?id=`+id}) +} +// 列表 +export const InspectionSchemePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/qms/inspection-scheme/senior', data }) + } else { + return await request.get({ url: `/qms/inspection-scheme/page`, params }) + } +} diff --git a/src/api/qms/inspectionTemplate/index.ts b/src/api/qms/inspectionTemplate/index.ts index 1c07a30d3..8443de973 100644 --- a/src/api/qms/inspectionTemplate/index.ts +++ b/src/api/qms/inspectionTemplate/index.ts @@ -23,7 +23,7 @@ export const inspectionTemplatePage = async (params) => { if (params.isSearch) { delete params.isSearch const data = {...params} - return request.post({ url: '/wms/accountcalendar/senior', data }) + return request.post({ url: '/qms/programme-template/senior', data }) } else { return await request.get({ url: `/qms/programme-template/page`, params }) } diff --git a/src/api/qms/samplingProcess/index.ts b/src/api/qms/samplingProcess/index.ts index 96404d545..9f3f57dca 100644 --- a/src/api/qms/samplingProcess/index.ts +++ b/src/api/qms/samplingProcess/index.ts @@ -51,3 +51,7 @@ export const exportSamplingProcess = async (params) => { export const importTemplate = () => { return request.download({ url: '/qms/sampling-process/get-import-template' }) } + +export const getSamplingScheme = async () => { + return await request.get({ url: `/qms/sampling-scheme/get-available-list`}) +} diff --git a/src/components/SearchTable/src/SearchTable.vue b/src/components/SearchTable/src/SearchTable.vue index 011ff68f4..cfee305e9 100644 --- a/src/components/SearchTable/src/SearchTable.vue +++ b/src/components/SearchTable/src/SearchTable.vue @@ -68,6 +68,16 @@ const rowRef = ref() const allSchemasRef = ref() const multipleBol = ref(false) const searchConditionRef = ref() + +const openData = (titleName: any, tableObject:any ,allSchemas: any,multiple: any) => { + dialogTitle.value = titleName + tableObjectRef.value = tableObject + searchDialogVisible.value = true + multipleBol.value = multiple + allSchemasRef.value = allSchemas + searchSchema.value = allSchemas.searchSchema + tableColumns.value = allSchemas.tableColumns +} const open = (titleName: any, allSchemas: any,getApiPage: any, formField: any, searchField: any,multiple: any, type: any, row: any, searchCondition:any , isCountRequestRe:any ) => { searchDialogVisible.value = true formFieldRef.value = formField @@ -137,7 +147,7 @@ const searchFormClick = (searchData) => { getListRef.value() // 刷新当前列表 } -defineExpose({ open }) // 提供 open 方法,用于打开弹窗 +defineExpose({ open,openData }) // 提供 open 方法,用于打开弹窗 // Table 组件 ref const searchTableRef = ref() diff --git a/src/components/TableForm/src/TableForm.vue b/src/components/TableForm/src/TableForm.vue index 5d25c1d81..2cf1fadea 100644 --- a/src/components/TableForm/src/TableForm.vue +++ b/src/components/TableForm/src/TableForm.vue @@ -40,7 +40,7 @@ /> - - - + @@ -76,7 +76,7 @@ - - - - - - - - - -
+
- - ([ // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '产品编码', // 输入框占位文本 + searchListPlaceholder: '请选择产品', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '产品信息', // 查询弹窗标题 + searchTitle: '请选择产品', // 查询弹窗标题 searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 isHideFilterButton:true, @@ -55,6 +55,10 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ field: 'productName', sort: 'custom', isSearch: true, + table: { + width: 200, + fixed: 'left' + }, isForm: false }, { @@ -75,13 +79,17 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ field: 'inStoreCode', sort: 'custom', isSearch: true, + table: { + width: 140, + fixed: 'left' + }, form: { // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择', // 输入框占位文本 + searchListPlaceholder: '请选择仓库', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '仓库编码', // 查询弹窗标题 + searchTitle: '请选择仓库', // 查询弹窗标题 searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类 searchPage: WorehouseApi.getWarehousePage, // 查询弹窗所需分页方法 isHideFilterButton:true, @@ -94,6 +102,38 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ } } }, + { + label: '产品批次号', + field: 'productBatchcode', + sort: 'custom', + isSearch: true, + table: { + width: 120, + fixed: 'left' + }, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 100, + fixed: 'left' + }, + }, + { + label: '是否回冲', + field: 'flagBackwash', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 120, + fixed: 'left' + }, + }, { label: '计划数量', field: 'planCount', @@ -102,6 +142,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ form: { component: 'InputNumber', value: 0 + }, + table: { + width: 120 } }, { @@ -109,40 +152,42 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ field: 'finishCount', sort: 'custom', isSearch: true, - isForm: false + isForm: false, + table: { + width: 120 + } }, { label: '合格数量', field: 'qualifiedCount', sort: 'custom', isSearch: true, - isForm: false + isForm: false, + table: { + width: 120 + } }, { label: '不合格数量', field: 'unqualifiedCount', sort: 'custom', isSearch: true, - isForm: false - }, - { - label: '是否回冲', - field: 'flagBackwash', - sort: 'custom', - isSearch: true, - isForm: false - }, - { - label: '产品批次号', - field: 'productBatchcode', - sort: 'custom', - isSearch: true + isForm: false, + table: { + width: 120 + } }, { label: '创建时间', field: 'createTime', sort: 'custom', formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, isSearch: true, + table: { + width: 180 + }, search: { component: 'DatePicker', componentProps: { @@ -162,6 +207,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { @@ -181,6 +229,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ detail: { dateFormat: 'YYYY-MM-DD HH:mm:ss' }, + table: { + width: 180 + }, form: { component: 'DatePicker', componentProps: { @@ -196,14 +247,28 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ field: 'realStart', sort: 'custom', isSearch: true, - isForm: false + isForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + } }, { label: '实际完工日期', field: 'realFinish', sort: 'custom', isSearch: true, - isForm: false + isForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + } }, { label: '备注', @@ -211,13 +276,6 @@ export const MesOrderMonthSub = useCrudSchemas(reactive([ sort: 'custom', isTable: false }, - { - label: '状态', - field: 'status', - sort: 'custom', - isSearch: true, - isForm: false - }, { label: '操作', field: 'action', diff --git a/src/views/qms/basicDataManage/inspectionPlan/addForm.vue b/src/views/qms/basicDataManage/inspectionScheme/addForm.vue similarity index 80% rename from src/views/qms/basicDataManage/inspectionPlan/addForm.vue rename to src/views/qms/basicDataManage/inspectionScheme/addForm.vue index 967a5833b..076329a63 100644 --- a/src/views/qms/basicDataManage/inspectionPlan/addForm.vue +++ b/src/views/qms/basicDataManage/inspectionScheme/addForm.vue @@ -10,7 +10,7 @@
- + @@ -18,7 +18,7 @@
- + + + + + + @@ -81,12 +86,12 @@ - +
+ + +
+ + +
+
+
@@ -177,7 +218,6 @@ +
检验工序
@@ -246,122 +322,83 @@
- -
- - -
-
-
- - -
- - -
-
-
- - -
- - -
-
-
+ +
+ + +
+
+ + + +
+ + +
+
+
@@ -523,7 +560,7 @@ { name: newTabName, inspectionCode: '', sequenceCode: '', + dynamicUpdateCode:'', inspectionCharCode: '', inspectionCharacteristicsBaseVO: { describe: '', @@ -911,6 +956,7 @@ const submitForm = async () => { return } if (formType.value == 'create') { + // 主子表——提交请求 emit('submitForm', formType.value, data.value) } else { @@ -1018,23 +1064,30 @@ const opensearchTable = ( // 弹层确定返回所选数据 // val : 弹层列表row 数据 const searchTableSuccess = async (formField, searchField, val, type, row) => { - if(type == 'features'){ + if (type == 'features') { row.inspectionCharacteristicsBaseVO[formField] = val[0].code - if(formField == 'inspectionMethodCode'){ + if (formField == 'inspectionMethodCode') { row.inspectionCharacteristicsBaseVO.inspectionMethodName = val[0].description - }else if(formField == 'dynamicUpdateCode'){ - row.inspectionCharacteristicsBaseVO.dynamicUpdateName = val[0].description - }else if(formField == 'inspectionMethod'){ - row.inspectionCharacteristicsBaseVO.inspectionName = val[0].description } - } else if(type == 'main'){ + // else if(formField == 'dynamicUpdateCode'){ + // row.inspectionCharacteristicsBaseVO.dynamicUpdateName = val[0].description + // } + else if (formField == 'samplingProcessCode') { + row.inspectionCharacteristicsBaseVO.samplingProcessName = val[0].description + } else if (formField == 'quantifyQuantifyCode') { + row.inspectionCharacteristicsBaseVO.quantifyQuantifyName = val[0].description + } + } else if (type == 'main') { data.value[formField] = val[0].code - if(formField == 'itemCode'){ + if (formField == 'itemCode') { data.value.itemName = val[0].name - }else if(formField == 'testTypeCode'){ + } else if (formField == 'testTypeCode') { data.value.testTypeName = val[0].description - }else if(formField == 'programmeTemplateCode'){ + } else if (formField == 'programmeTemplateCode') { data.value.programmeTemplateName = val[0].description + data.value['dynamicUpdateCode'] = val[0].dynamicUpdateCode + data.value.dynamicUpdateName = val[0].dynamicUpdateName + } if (formField == 'programmeTemplateCode') { let list = await InspectionProcessPageApi.getListByTempleteCode(val[0].code) @@ -1060,6 +1113,11 @@ const searchTableSuccess = async (formField, searchField, val, type, row) => { }) data.value.process = list } + + if (formField == 'dynamicUpdateCode') { + data.value[formField] = val[0].code + data.value.dynamicUpdateName = val[0].description + } } // emit('searchTableSuccess', formField, searchField, val, formRef.value, type, row) diff --git a/src/views/qms/basicDataManage/inspectionPlan/index.vue b/src/views/qms/basicDataManage/inspectionScheme/index.vue similarity index 79% rename from src/views/qms/basicDataManage/inspectionPlan/index.vue rename to src/views/qms/basicDataManage/inspectionScheme/index.vue index 787063cb2..787d11d4f 100644 --- a/src/views/qms/basicDataManage/inspectionPlan/index.vue +++ b/src/views/qms/basicDataManage/inspectionScheme/index.vue @@ -1,7 +1,7 @@ \ No newline at end of file + diff --git a/src/views/qms/basicDataManage/inspectionPlan/inspectionPlan.data.ts b/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts similarity index 91% rename from src/views/qms/basicDataManage/inspectionPlan/inspectionPlan.data.ts rename to src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts index e1e8da612..fff1c0e44 100644 --- a/src/views/qms/basicDataManage/inspectionPlan/inspectionPlan.data.ts +++ b/src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts @@ -68,7 +68,7 @@ export const InspectionTemplateRules = reactive({ { required: true, message: '请输入选择集编码', trigger: 'blur' } ], }) -export const InspectionPlanMain = useCrudSchemas(reactive([ +export const InspectionSchemeMain = useCrudSchemas(reactive([ { label: '编码', field: 'code', @@ -77,6 +77,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive([ width: 220, fixed: 'left' }, + isSearch:true, form:{ componentProps:{ disabled:true, @@ -84,13 +85,27 @@ export const InspectionPlanMain = useCrudSchemas(reactive([ } } }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + }, { label: '物料编码', field: 'itemCode', sort: 'custom', table: { width: 150 - } + }, + isSearch:true, + }, { + label: '描述', + field: 'description', + sort: 'custom', },{ label: '版本', field: 'version', @@ -101,6 +116,8 @@ export const InspectionPlanMain = useCrudSchemas(reactive([ },{ label: '检验类型编码', field: 'testTypeCode', + dictType: DICT_TYPE.INSPECTION_TYPE, + dictClass: 'string', sort: 'custom', table: { width: 150 @@ -139,6 +156,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive([ table: { width: 150 }, + isSearch:true, },{ label: '生效时间', field: 'effectiveDate', diff --git a/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue b/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue index b97f28bdd..d7479a3e0 100644 --- a/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue +++ b/src/views/qms/basicDataManage/inspectionTemplate/addForm.vue @@ -10,7 +10,7 @@ - + @@ -22,19 +22,19 @@ - +
--> - + - - + @@ -112,25 +112,25 @@ - + - - +
检验特性
- + - - + - - - + - + - + - - + - + + - + + + - + - + - + - - + - + - + - + @@ -357,7 +351,7 @@ { @@ -681,22 +686,44 @@ const validateForm = (formRef) => { return false }) } + // 判断对象数组是否有相同属性 相同:true \ 不相同:false + const hasDuplicates =(array)=>{ + return array.some((item, index) => { + return ( + array.findIndex((v, i) => { + return ( + i !== index && + JSON.stringify(v.sequenceCode) === JSON.stringify(item.sequenceCode) + ) + }) !== -1 + ) + }) + } const submitForm = async () => { try { - const validateForm1 = await validateForm(formProcessRef.value) - console.log(validateForm1) + + // 检验主表字段 + await validateForm(formProcessRef.value) await formMainRef.value.validate() + // 检验是否添加工序 if (!data.value.process || data.value.process.length == 0) { message.error(`请添加工序`) return } + if(hasDuplicates(data.value.process)){ + message.error(`检验工序顺序号不能相同`) + return + } + // 检验模板中有检验工序和检验特性未填写完全 const bol1 = await validateForm(formProcessRef.value) const bol2 = await validateForm(formFeaturesRef.value) if (!bol1 || !bol2) { message.error(`模板中有检验工序和检验特性未填写完全`) return } + + // 是否设定上线,是否设定下限,是否是定目标值至少一项为是 const arr = data.value.process.filter( (item) => !item.inspectionCharacteristicsBaseVO.quantifyIsCapping && @@ -704,10 +731,39 @@ const submitForm = async () => { !item.inspectionCharacteristicsBaseVO.quantifyIsTarget && item.inspectionCharacteristicsBaseVO.featureType == 0 ) - console.log(arr) if (arr && arr.length > 0) { const str = arr.map((item) => item.description).join(',') - message.error(`${str}是否设定上线,是否设定下限,是否是定目标值至少一项为是`) + message.error(`${str}是否设定上线,是否设定下限,是否设定目标值至少一项为是`) + return + } + // 检验上限值,下限值,目标值小数位数不可以大于小数位 + const arr1 = data.value.process.filter( + (item) => + ((item.inspectionCharacteristicsBaseVO.quantifyIsCapping && (String(item.inspectionCharacteristicsBaseVO.quantifyCapping).split('.')[1].length>Number(item.inspectionCharacteristicsBaseVO.quantifyDecimal)))|| + (item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit && (String(item.inspectionCharacteristicsBaseVO.quantifyLowlimit).split('.')[1].length>Number(item.inspectionCharacteristicsBaseVO.quantifyDecimal)))|| + (item.inspectionCharacteristicsBaseVO.quantifyIsTarget && (String(item.inspectionCharacteristicsBaseVO.quantifyTarget).split('.')[1].length>Number(item.inspectionCharacteristicsBaseVO.quantifyDecimal)))) && + item.inspectionCharacteristicsBaseVO.featureType == 0 + ) + if (arr1 && arr1.length > 0) { + const str = arr1.map((item) => item.description).join(',') + message.error(`${str}上限值,下限值,目标值小数位数不可以大于小数位`) + return + } + // 检验上限值应大目标值大于下限值 + const arr2 = data.value.process.filter( + (item) => + // 上限值存在并且下限值存在时,上限值应大于下限值 + (item.inspectionCharacteristicsBaseVO.quantifyIsCapping && item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit && (item.inspectionCharacteristicsBaseVO.quantifyCapping <=item.inspectionCharacteristicsBaseVO.quantifyLowlimit))|| + // 上限值存在并且目标值存在时,上限值应大于目标值 + (item.inspectionCharacteristicsBaseVO.quantifyIsCapping && item.inspectionCharacteristicsBaseVO.quantifyIsTarget && (item.inspectionCharacteristicsBaseVO.quantifyCapping <=item.inspectionCharacteristicsBaseVO.quantifyTarget))|| + // 下限值存在并且目标值存在时,下限值应小于目标值 + ( item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit && item.inspectionCharacteristicsBaseVO.quantifyIsTarget && (item.inspectionCharacteristicsBaseVO.quantifyLowlimit >= item.inspectionCharacteristicsBaseVO.quantifyTarget))|| + // 上限值,下限值,目标值都存在时,上限值应大于目标值大于下限值 + (item.inspectionCharacteristicsBaseVO.quantifyIsCapping && item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit && item.inspectionCharacteristicsBaseVO.quantifyIsTarget && ((item.inspectionCharacteristicsBaseVO.quantifyCapping <=item.inspectionCharacteristicsBaseVO.quantifyLowlimit)||(item.inspectionCharacteristicsBaseVO.quantifyCapping <=item.inspectionCharacteristicsBaseVO.quantifyTarget)||(item.inspectionCharacteristicsBaseVO.quantifyLowlimit >= item.inspectionCharacteristicsBaseVO.quantifyTarget))) + ) + if (arr2 && arr2.length > 0) { + const str = arr2.map((item) => item.description).join(',') + message.error(`${str}上限值应大目标值大于下限值`) return } if (formType.value == 'create') { diff --git a/src/views/qms/basicDataManage/inspectionTemplate/index.vue b/src/views/qms/basicDataManage/inspectionTemplate/index.vue index 2bf152d42..109d8a0fc 100644 --- a/src/views/qms/basicDataManage/inspectionTemplate/index.vue +++ b/src/views/qms/basicDataManage/inspectionTemplate/index.vue @@ -93,7 +93,7 @@ const { getList, setSearchParams } = tableMethods // 列表头部按钮 const HeadButttondata = [ - defaultButtons.defaultAddBtn({hasPermi:'wms:agv-locationrelation:create'}), // 新增 + defaultButtons.defaultAddBtn({hasPermi:'qms:programme-template:create'}), // 新增 // defaultButtons.defaultImportBtn({hasPermi:'wms:agv-locationrelation:import'}), // 导入 // defaultButtons.defaultExportBtn({hasPermi:'wms:agv-locationrelation:export'}), // 导出 defaultButtons.defaultFreshBtn(null), // 刷新 @@ -127,8 +127,8 @@ const buttonBaseClick = (val, item) => { // 列表-操作按钮 const butttondata = [ - defaultButtons.mainListEditBtn({hasPermi:'qms:inspectionTemplate:update'}), // 编辑 - defaultButtons.mainListDeleteBtn({hasPermi:'qms:inspectionTemplate:delete'}), // 删除 + defaultButtons.mainListEditBtn({hasPermi:'qms:programme-template:update'}), // 编辑 + defaultButtons.mainListDeleteBtn({hasPermi:'qms:programme-template:delete'}), // 删除 ] // 列表-操作按钮事件 diff --git a/src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts b/src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts index 769da9224..425576ac8 100644 --- a/src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts +++ b/src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts @@ -73,6 +73,7 @@ export const InspectionTemplateMain = useCrudSchemas(reactive([ label: '编码', field: 'code', sort: 'custom', + isSearch:true, form:{ componentProps:{ disabled:true, @@ -85,6 +86,11 @@ export const InspectionTemplateMain = useCrudSchemas(reactive([ field: 'description', sort: 'custom', },{ + label: '动态修改规则', + field: 'dynamicUpdateName', + sort: 'custom', + }, + ,{ label: '版本', field: 'version', sort: 'custom', @@ -127,7 +133,12 @@ export const InspectionTemplateProcess = useCrudSchemas(reactive([ label: '检验特性编码', field: 'inspectionCharCode', sort: 'custom', - } + }, + { + label: '动态修改规则编码', + field: 'dynamicUpdateCode', + sort: 'custom', + }, ])) export const InspectionTemplateFeatures= useCrudSchemas(reactive([ { @@ -153,10 +164,6 @@ export const InspectionTemplateFeatures= useCrudSchemas(reactive([ label: '采样过程编码', field: 'inspectionMethod', sort: 'custom', - },{ - label: '动态修改规则编码', - field: 'dynamicUpdateCode', - sort: 'custom', },{ label: '是否允许修改特征值', field: 'isCanUpdate', diff --git a/src/views/qms/inspection/inspectionJob/addForm.vue b/src/views/qms/inspection/inspectionJob/addForm.vue index d562c7be1..d1217fd2b 100644 --- a/src/views/qms/inspection/inspectionJob/addForm.vue +++ b/src/views/qms/inspection/inspectionJob/addForm.vue @@ -18,6 +18,19 @@ :is-col="true" @opensearchTable="opensearchTable" /> +
包装列表
+
+ +
@@ -240,24 +253,24 @@ :span="12" v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1" > - - + + - + - + - - + + - + - - + + { editableTabsValue.value = index + 1 item.name = index + 1 @@ -683,17 +711,26 @@ const validateForm = (formRef) => { return false }) } - +const tableFormRef = ref() const submitForm = async () => { try { console.log(data.value.subList) - // const validateForm1 = await validateForm(formMainRef.value) const elForm = unref(formMainRef)?.getElFormRef() // 校验表单 if (!elForm) return const valid = await elForm.validate() if (!valid) return - // const bol1 = await validateForm(formProcessRef.value) + // 校验包装列表 + const validateForm1 = await tableFormRef.value.validateForm() + if (!validateForm1) return + let number = 0 + data.value.packageVOList.forEach(cur=>{ + number += parseFloat(cur.sampleAmount) + }) + if(number > data.value.sampleTotalAmount){ + message.error(`采样数量之和不可以大于总数量`) + return + } const bol2 = await validateForm(formFeaturesRef.value) if (!bol2) { message.error(`模板中有检验工序和检验特性未填写完全`) @@ -753,7 +790,6 @@ const submitForm = async () => { message.error('检验特性中有开始时间大于结束时间') return; } - return; if (formType.value == 'create') { // 主子表——提交请求 emit('submitForm', formType.value, data.value) diff --git a/src/views/qms/inspection/inspectionJob/detail.vue b/src/views/qms/inspection/inspectionJob/detail.vue index 5c401950d..cb2d9d51c 100644 --- a/src/views/qms/inspection/inspectionJob/detail.vue +++ b/src/views/qms/inspection/inspectionJob/detail.vue @@ -110,11 +110,11 @@
diff --git a/src/views/qms/inspection/inspectionJob/index.vue b/src/views/qms/inspection/inspectionJob/index.vue index 6f95beb7e..509ad4f14 100644 --- a/src/views/qms/inspection/inspectionJob/index.vue +++ b/src/views/qms/inspection/inspectionJob/index.vue @@ -33,6 +33,8 @@ :formAllSchemasFeatures="InspectionTemplateFeatures.allSchemas" :formAllSchemasProcess="InspectionTemplateProcess.allSchemas" :formAllSchemasMain="InspectionTemplateMain.allSchemas" + :tableAllSchemas="InspectionJobPackage.allSchemas" + :tableFormRules="InspectionJobPackageRules" :rules="InspectionJobMainRules" :formAllSchemas="InspectionJobMain.allSchemas" @submitForm="submitForm" @@ -40,7 +42,8 @@ import download from '@/utils/download' - import { InspectionJobMain, InspectionJobMainRules, InspectionJobDetail, InspectionJobDetailRules,InspectionJobPackage} from './inspectionJobMain.data' + import { InspectionJobMain, InspectionJobMainRules, InspectionJobDetail, InspectionJobDetailRules,InspectionJobPackage,InspectionJobPackageRules} from './inspectionJobMain.data' import { InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures,InspectionTemplateRules } from '../../basicDataManage/inspectionTemplate/inspectionTemplate.data' import * as InspectionJobMainApi from '@/api/qms/inspectionJob/inspectionJobMain' import * as InspectionJobDetailApi from '@/api/qms/inspectionJob/inspectionJobDetail' - import * as InspectionJobPackageApi from '@/api/qms/inspectionJob/inspectionJobPackage' import * as defaultButtons from '@/utils/disposition/defaultButtons' import listTable from '@/components/listTable/src/listTable.vue' import TableHead from '@/components/TableHead/src/TableHead.vue' import AddForm from './addForm.vue' import Detail from './detail.vue' + console.log(InspectionJobMain) // 采购订单 defineOptions({ name: 'InspectionJobMain' }) @@ -171,7 +174,7 @@ const listTableRef = ref() if (val == 'mainJobExe') { // 执行 execute('execute', row) }else if (val == 'mainPackage') { // 包装 - const list = await InspectionJobPackageApi.getInspectionJobPackageList(row.id) + const list = await InspectionJobMainApi.getInspectionJobPackageList(row.id) listTableRef.value.openPackage(row,'包装信息',InspectionJobPackage.allSchemas.tableColumns,list) } else if (val == 'mainJobClo') { // 关闭 diff --git a/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts index eaa8c51a3..cfbacc86e 100644 --- a/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts +++ b/src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts @@ -2,6 +2,7 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter2 } from '@/utils/formatTime' import { validateHanset, validateEmail } from '@/utils/validator' import { dateFormatter } from '@/utils/formatTime' +import { validateTwoNum } from '@/utils/validator' const { t } = useI18n() // 国际化 import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' const resultEntryMethodList = getStrDictOptions(DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY) @@ -28,6 +29,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '申请单号', @@ -39,6 +43,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '供应商编码', @@ -50,6 +57,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '物料编码', @@ -61,6 +71,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '物料批次', @@ -72,10 +85,13 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { - label: '订单号', - field: 'orderCode', + label: '参考订单号', + field: 'referenceOrderCode', sort: 'custom', isSearch: false, form: { @@ -83,10 +99,13 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { - label: '订单行', - field: 'orderRow', + label: '参考订单行', + field: 'referenceOrderRow', sort: 'custom', isSearch: false, form: { @@ -96,10 +115,13 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { - label: '凭证号', - field: 'certificateCode', + label: '参考凭证号', + field: 'referenceCertificateCode', sort: 'custom', isSearch: false, form: { @@ -107,10 +129,13 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { - label: '凭证行', - field: 'certificateRow', + label: '参考凭证行', + field: 'referenceCertificateRow', sort: 'custom', isSearch: false, form: { @@ -120,6 +145,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验方案编码', @@ -131,6 +159,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, // { // label: '检验方案Json', @@ -148,6 +179,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验批数量', @@ -159,6 +193,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '采样总数量', @@ -170,6 +207,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验类型', @@ -184,6 +224,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验批来源', @@ -196,6 +239,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, { @@ -210,6 +256,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验严格性', @@ -222,6 +271,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, { @@ -233,6 +285,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, { @@ -244,6 +299,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, { @@ -268,6 +326,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '计划结束时间', @@ -291,6 +352,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ disabled:true } }, + table: { + width: 150 + } }, { label: '检验水平', @@ -303,6 +367,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, { @@ -316,6 +383,9 @@ export const InspectionJobMain = useCrudSchemas(reactive([ componentProps:{ disabled:true } + }, + table: { + width: 150 } }, // { @@ -347,7 +417,7 @@ export const InspectionJobMain = useCrudSchemas(reactive([ activeValue: 'TRUE', disabled:true } - }, + } }, { label: '操作', @@ -415,11 +485,11 @@ export const InspectionJobDetail = useCrudSchemas(reactive([ sort: 'custom', },{ label: '检验方法', - field: 'inspectionJobCharacteristicsRespVO.inspectionMethodName', + field: 'inspectionJobCharacteristicsRespVO.inspectionMethodCode', sort: 'custom', },{ label: '采样过程编码', - field: 'inspectionJobCharacteristicsRespVO.inspectionMethod', + field: 'inspectionJobCharacteristicsRespVO.samplingProcessCode', sort: 'custom', },{ label: '动态修改规则编码', @@ -467,18 +537,27 @@ export const InspectionJobPackage = useCrudSchemas(reactive([ field: 'number', sort: 'custom', isSearch: true, + tableForm:{ + disabled:true + } }, { label: '包装号', field: 'packageCode', sort: 'custom', isSearch: true, + tableForm:{ + disabled:true + } }, { label: '包装规格', field: 'packageSpecificationCode', sort: 'custom', isSearch: true, + tableForm:{ + disabled:true + } }, { label: '数量', @@ -489,11 +568,28 @@ export const InspectionJobPackage = useCrudSchemas(reactive([ component: 'InputNumber', value: 0 }, + tableForm:{ + disabled:true + } }, { label: '计量单位', field: 'measuringUnit', sort: 'custom', isSearch: true, + tableForm:{ + disabled:true + } + }, + { + label: '采样数量', + field: 'sampleAmount', + sort: 'custom', + isSearch: true, }, -])) \ No newline at end of file +])) +//表单校验 +export const InspectionJobPackageRules = reactive({ + sampleAmount: [required, + { validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}] +}) diff --git a/src/views/qms/inspection/inspectionRecord/index.vue b/src/views/qms/inspection/inspectionRecord/index.vue index ae0e3ab24..7d7cacf9c 100644 --- a/src/views/qms/inspection/inspectionRecord/index.vue +++ b/src/views/qms/inspection/inspectionRecord/index.vue @@ -62,7 +62,6 @@ import * as InspectionRecordMainApi from '@/api/qms/inspectionRecord/inspectionRecordMain' import * as InspectionRecordDetailApi from '@/api/qms/inspectionRecord/inspectionRecordDetail' import * as defaultButtons from '@/utils/disposition/defaultButtons' - import * as InspectionJobPackageApi from '@/api/qms/inspectionJob/inspectionJobPackage' import listTable from '@/components/listTable/src/listTable.vue' import TableHead from '@/components/TableHead/src/TableHead.vue' import Detail from './detail.vue' @@ -197,7 +196,7 @@ } openForm('update', row) }else if (val == 'mainPackage') { // 包装 - const list = await InspectionJobPackageApi.getInspectionJobPackageList(row.id) + const list = await InspectionRecordMainApi.getInspectionRecordPackageList(row.id) listTableRef.value.openPackage(row,'包装信息',InspectionJobPackage.allSchemas.tableColumns,list) }else if (val == 'delete') { // 删除 handleDelete(row.id) diff --git a/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts b/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts index 436752732..0264c6085 100644 --- a/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts +++ b/src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts @@ -13,105 +13,149 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ field: 'number', sort: 'custom', isSearch: true, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '申请编码', field: 'applicationCode', sort: 'custom', isSearch: true, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '任务编码', field: 'taskCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '供应商编码', field: 'supplierCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '物料编码', field: 'materialCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '批次', field: 'batch', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '检验方案编码', field: 'inspectionSchemeCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '检验方案Json', field: 'inspectionSchemeJson', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + isTable:false, + table: { + width: 150 + } }, { label: '检验批次', field: 'inspectionBatch', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '检验批数量', field: 'inspectionBatchAmount', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '采样总数量', field: 'sampleTatalAmount', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { label: '检验类型', field: 'inspectionType', + dictType: DICT_TYPE.INSPECTION_TYPE, sort: 'custom', isSearch: false, isForm:false, form: { component: 'Select' }, + table: { + width: 150 + } }, { label: '检验批来源', field: 'inspectionBatchSource', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { - label: '订单号', - field: 'orderCode', + label: '参考订单号', + field: 'referenceOrderCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { - label: '订单行', - field: 'orderRow', + label: '参考订单行', + field: 'referenceOrderRow', sort: 'custom', isSearch: false, isForm:false, @@ -119,17 +163,23 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ component: 'InputNumber', value: 0 }, + table: { + width: 150 + } }, { - label: '凭证号', - field: 'certificateCode', + label: '参考凭证号', + field: 'referenceCertificateCode', sort: 'custom', isSearch: false, - isForm:false + isForm:false, + table: { + width: 150 + } }, { - label: '凭证行', - field: 'certificateRow', + label: '参考凭证行', + field: 'referenceCertificateRow', sort: 'custom', isSearch: false, isForm:false, @@ -137,6 +187,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ component: 'InputNumber', value: 0 }, + table: { + width: 150 + } }, { label: '检验阶段', @@ -148,20 +201,20 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ component: 'InputNumber', value: 0 }, + table: { + width: 150 + } }, { label: '检验严格性', field: 'inspectionStringency', + dictType: DICT_TYPE.INSPECTION_SEVERITY, sort: 'custom', isSearch: false, isForm:false, - }, - { - label: '使用决策', - field: 'useDecision', - sort: 'custom', - isSearch: false, - isForm:false + table: { + width: 150 + } }, { label: '计划开始时间', @@ -185,6 +238,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + table: { + width: 150 + } }, { label: '计划结束时间', @@ -208,6 +264,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + table: { + width: 150 + } }, { label: '实际开始时间', @@ -231,6 +290,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + table: { + width: 150 + } }, { label: '实际结束时间', @@ -254,27 +316,42 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ valueFormat: 'x' } }, + table: { + width: 150 + } }, { label: '检验水平', field: 'inspectionLevel', + dictType: DICT_TYPE.INSPECTION_LEVEL, sort: 'custom', isSearch: false, isForm:false, + table: { + width: 150 + } }, { label: 'AQL值', field: 'aqlValue', + dictType: DICT_TYPE.BASIC_AQL, sort: 'custom', isSearch: false, isForm:false, + table: { + width: 150 + } }, { label: '是否可用', field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, sort: 'custom', isSearch: false, isForm:false, + table: { + width: 150 + } }, { label: '使用决策', @@ -282,6 +359,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ sort: 'custom', isSearch: false, dictType: DICT_TYPE.USAGE_DECISION, + table: { + width: 150 + } }, { @@ -299,6 +379,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive([ } }, isForm: false, + table: { + width: 150 + } }, { diff --git a/src/views/qms/inspection/inspectionRequest/index.vue b/src/views/qms/inspection/inspectionRequest/index.vue index 002343e54..941d6b27b 100644 --- a/src/views/qms/inspection/inspectionRequest/index.vue +++ b/src/views/qms/inspection/inspectionRequest/index.vue @@ -15,13 +15,13 @@ total: tableObject.total }" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage" v-model:sort="tableObject.sort"> - diff --git a/src/views/wms/basicDataManage/factoryModeling/location/location.data.ts b/src/views/wms/basicDataManage/factoryModeling/location/location.data.ts index 6f2fab3dc..d4662694f 100644 --- a/src/views/wms/basicDataManage/factoryModeling/location/location.data.ts +++ b/src/views/wms/basicDataManage/factoryModeling/location/location.data.ts @@ -143,6 +143,14 @@ export const Location = useCrudSchemas(reactive([ // width: 150 // }, // }, + { + label: 'QAD库位代码', + field: 'qadLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, { label: '巷道', field: 'aisle', diff --git a/src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue b/src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue index d4e869471..50ce4c375 100644 --- a/src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue +++ b/src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue @@ -232,6 +232,14 @@ /> + + + + + + + +
@@ -253,6 +261,7 @@ import { getDockList } from '@/api/wms/dock' import { getLocationList } from '@/api/wms/location' import * as RuleApi from '@/api/wms/rule' import { isString } from '@/utils/is' +import {validateHanset} from '@/utils/validator' const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -291,7 +300,11 @@ const formData = ref({ // 月台代码 DockCode: '', // 在途库位代码 - OnTheWayLocationCode: '' + OnTheWayLocationCode: '', + // 收货人 + Receiver: '', + // 联系电话 + PhoneNumber: '' } }) @@ -300,7 +313,9 @@ const rules = ref({ strategyCode: [{ required: true, message: '请输入代码', trigger: 'blur' },{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], name: [{ required: true, message: '请输入名字', trigger: 'blur' },{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], description: [{ required: true, message: '请输入描述', trigger: 'blur' },{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], - priority: [{ required: true, message: '请输入优先级', trigger: 'blur' }] + priority: [{ required: true, message: '请输入优先级', trigger: 'blur' }], + PhoneNumber: [{ max: 11, message: '不得超过11个字符', trigger: 'blur' }, + {message: '请输入联系电话', trigger: 'blur' ,validator:validateHanset}] }) // 所有的范围类型 diff --git a/src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts b/src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts index 29733915b..cea87d094 100644 --- a/src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts +++ b/src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts @@ -126,7 +126,9 @@ export const Supplier = useCrudSchemas(reactive([ form: { component: 'InputNumber', componentProps: { - min: 0 + min: 0, + max: 1, + precision: 6 } }, table: { diff --git a/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts b/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts index 2af966e54..4a0559d59 100644 --- a/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts +++ b/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts @@ -128,6 +128,7 @@ export const CountPlanMain = useCrudSchemas(reactive([ dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', isTable: true, + isForm:false, form: { component: 'Switch', value: 'TRUE', @@ -149,7 +150,7 @@ export const CountPlanMain = useCrudSchemas(reactive([ isTable: true, form: { component: 'Switch', - value: 'TRUE', + value: 'FALSE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' @@ -168,7 +169,7 @@ export const CountPlanMain = useCrudSchemas(reactive([ isTable: true, form: { component: 'Switch', - value: 'TRUE', + value: 'FALSE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' @@ -187,7 +188,7 @@ export const CountPlanMain = useCrudSchemas(reactive([ isTable: true, form: { component: 'Switch', - value: 'TRUE', + value: 'FALSE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' @@ -206,7 +207,7 @@ export const CountPlanMain = useCrudSchemas(reactive([ isTable: true, form: { component: 'Switch', - value: 'TRUE', + value: 'FALSE', componentProps: { inactiveValue: 'FALSE', activeValue: 'TRUE' diff --git a/src/views/wms/countManage/count/countPlanMain/index.vue b/src/views/wms/countManage/count/countPlanMain/index.vue index 10239dd80..e793608e4 100644 --- a/src/views/wms/countManage/count/countPlanMain/index.vue +++ b/src/views/wms/countManage/count/countPlanMain/index.vue @@ -747,7 +747,7 @@ const getItembasicAllList = async () => { allList.value.itembasicAllList = res.map((element) => { return { value: element.code, - label: element.name + label: element.name + '-'+ element.code } }) }) @@ -791,7 +791,7 @@ const getLocationAllList = async () => { allList.value.locationAllList = res.map((element) => { return { value: element.code, - label: element.name + label: element.name + '-'+ element.code } }) }) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue index 58a73593d..313501077 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue @@ -196,10 +196,10 @@ const isShowMainButton = (row,val) => { // 列表-操作按钮 const butttondata = (row) => { return [ - // defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), // 承接 - // defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-job-main:close'}), // 关闭 - // defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), // 放弃 - // defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2'])}), // 执行 + defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), // 承接 + defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-job-main:close'}), // 关闭 + defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), // 放弃 + defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2'])}), // 执行 { label: '拒收', name: 'mainJobClo', diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts index b75a66b14..0f1e1d79a 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts @@ -50,6 +50,14 @@ export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ width: 180 }, }, + { + label: 'qad采购收货记录单号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 200 + }, + }, { label: '要货计划单号', field: 'ppNumber', diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue index 8fc36f93f..01f83181a 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue @@ -63,6 +63,8 @@ @searchTableSuccess="searchTableSuccess" @submitForm="submitForm" /> + + } else { const setV = {} if(formField == 'purchaseReceiptRecordNumber'){ - isShowButton.value = false + // isShowButton.value = false setV[formField] = val[0][searchField] setV['purchaseReceiptRecordNumber'] = val[0]['number'] setV['supplierCode'] = val[0]['supplierCode'] @@ -205,6 +207,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) => // item.fromLocationCode = item.fromLocationCode // item.fromLocationGroupCode = item.fromLocationGroupCode }) + originTableData.value = JSON.parse(JSON.stringify(tableData.value)) PurchasereturnRequestMain.allSchemas.formSchema.forEach((item) => { if (item.field == 'supplierCode') { @@ -422,6 +425,7 @@ const buttonTableClick = async (val, row) => { /** 添加/修改操作 */ const formRef = ref() const openForm = async (type: string, row?: number) => { + originTableData.value = [] // 重置明细数据 tableData.value = [] // 重置明细数据 isShowButton.value = true if(type == 'create'){ @@ -564,38 +568,110 @@ PurchasereturnRequestDetail.allSchemas.tableFormColumns.forEach((item) => { tableFormKeys[item.field] = item.default ? item.default : '' }) const tableData = ref([]) +const originTableData = ref([]) + +const searchTableRef = ref() // 添加明细 const handleAddTable = () => { - tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys))) - let purchaseReceiptRecordNumber = formRef.value.formRef.formModel.purchaseReceiptRecordNumber - PurchasereturnRequestDetail.allSchemas.tableFormColumns.map((item) => { - item.tableForm.disabled = true - if (item.field == 'remark') { - item.tableForm.disabled = false - } - if (item.field == 'reason') { - item.tableForm.disabled = false - } - if (item.field == 'qty') { - item.tableForm.disabled = false - } - if(purchaseReceiptRecordNumber == ''){ - if (item.field == 'itemCode') { - item.tableForm.isInpuFocusShow = true - } - if(item.field == 'poLine'){ - item.tableForm.isInpuFocusShow = false - } - }else{ - if (item.field == 'itemCode') { - item.tableForm.isInpuFocusShow = false - } - if(item.field == 'poLine'){ - item.tableForm.isInpuFocusShow = true - } - } + + const subTableDFata = originTableData.value.filter(item=> !tableData.value.find(item1=>item1.id == item.id)) + if(subTableDFata.length==0){ + message.warning('暂无可选择数据!') + return + } + + const tableObject = { + // 当前页 + currentPage: 1, + // 导出加载中 + exportLoading: false, + // 加载中 + loading: false, + // 页数 + pageSize: subTableDFata.length, + params:null, + // 排序 + sort: { + order: '', // 排序规则 + prop: '' // 排序字段 + }, + // 总条数 + total: subTableDFata.length, + // 表格数据 + tableList: subTableDFata, + currentRow:null + } + + const tableColumns = PurchasereturnRequestDetail.allSchemas.tableFormColumns + tableColumns.forEach((item) => { + item.width = item.table?.width || 150 }) + + searchTableRef.value.openData("采购收货记录单号",tableObject,{tableColumns},true) + // searchTableRef.value.open( + // ('供应商信息', + // // _searchTableAllSchemas, + // // _searchTablePage, // 接口 + // // formField, + // // searchField, + // true,//是否多选 + // // type, + // // row, + // _searchCondition + // ) + // ) + + + // console.log(subTableDFata) + // const {tableObject, tableMethods } = useTable({ + // getListApi: getPage.value // 分页接口 + // }) + // searchTableRef.value.open( + // ('供应商信息', + // // _searchTableAllSchemas, + // // _searchTablePage, // 接口 + // // formField, + // // searchField, + // true,//是否多选 + // // type, + // // row, + // _searchCondition + // ) + // ) + // tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys))) + // let purchaseReceiptRecordNumber = formRef.value.formRef.formModel.purchaseReceiptRecordNumber + // PurchasereturnRequestDetail.allSchemas.tableFormColumns.map((item) => { + // item.tableForm.disabled = true + // if (item.field == 'remark') { + // item.tableForm.disabled = false + // } + // if (item.field == 'reason') { + // item.tableForm.disabled = false + // } + // if (item.field == 'qty') { + // item.tableForm.disabled = false + // } + // if(purchaseReceiptRecordNumber == ''){ + // if (item.field == 'itemCode') { + // item.tableForm.isInpuFocusShow = true + // } + // if(item.field == 'poLine'){ + // item.tableForm.isInpuFocusShow = false + // } + // }else{ + // if (item.field == 'itemCode') { + // item.tableForm.isInpuFocusShow = false + // } + // if(item.field == 'poLine'){ + // item.tableForm.isInpuFocusShow = true + // } + // } + // }) +} +const searchTableSuccess1 = (formField, searchField, val, formRef, type, row) => { + console.log(val) + tableData.value = [...tableData.value,...val] } // 删除明细 const handleDeleteTable = (item, index, formRef) => { diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts index 0712f2814..b3b139c05 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts @@ -271,6 +271,7 @@ export const PurchasereturnRequestMain = useCrudSchemas(reactive([ label: '部门', field: 'departmentCode', sort: 'custom', + isForm:false, table: { width: 150 }, @@ -668,8 +669,10 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive field: 'altBatch', sort: 'custom', table: { - width: 150 + width: 150 }, + isTableForm: false, + isTable: false, tableForm:{ disabled:true }, @@ -689,6 +692,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -705,6 +710,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -758,7 +765,6 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive dictType: DICT_TYPE.INVENTORY_STATUS, dictClass: 'string', isSearch: true, - isTable: true, sort: 'custom', table: { width: 150 @@ -767,6 +773,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive disabled:true, type: 'Select', }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -783,6 +791,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -799,6 +809,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -815,6 +827,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -846,7 +860,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive type: 'FormDate', dateFormat: 'YYYY-MM-DD', valueFormat: 'x', - } + }, + isTableForm: false }, { label: '生产日期', @@ -874,7 +889,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive type: 'FormDate', format: 'YYYY-MM-DD', valueFormat: 'x', - } + }, + isTableForm: false }, { label: '过期日期', @@ -897,6 +913,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive valueFormat: 'x', } }, + isTableForm: false, + isTable: false, tableForm:{ disabled:true, type: 'FormDate', @@ -933,6 +951,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true @@ -985,6 +1005,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive tableForm:{ disabled:true }, + isTableForm: false, + isTable: false, form: { componentProps:{ disabled:true diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue index d1af5fe63..81b1e8ce6 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue @@ -140,6 +140,7 @@ setV['contactName']=val[0]['contacts'] setV['contactPhone']=val[0]['phone'] setV['contactEmail']=val[0]['email'] + setV['taxRate']=val[0]['taxRate'] } formRef.setValues(setV) } diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts index 719ebdd67..e98b99bea 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts @@ -134,7 +134,9 @@ export const PurchaseMain = useCrudSchemas(reactive([ component: 'InputNumber', componentProps: { style: {width:'100%'}, - min: 0 + min: 0, + max: 1, + precision: 6, } } }, diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts index 596f7a406..b8b3a3df3 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts @@ -48,6 +48,15 @@ export const PurchasePlanMain = useCrudSchemas(reactive([ } } }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, { label: '送达日期', field: 'deliveryDate',