Browse Source

Merge branch 'master_hella' of http://dev.ccwin-in.com:3000/sfms3.0/sfms3.0-ui into master_hella

master_hella_20240701
ljlong_2630 10 months ago
parent
commit
f6d56bbe22
  1. 5
      src/api/mes/ordermonthplan/index.ts
  2. 5
      src/api/qms/inspectionJob/inspectionJobMain/index.ts
  3. 6
      src/api/qms/inspectionJob/inspectionJobPackage/index.ts
  4. 23
      src/api/qms/inspectionPlan/index.ts
  5. 4
      src/api/qms/inspectionRecord/inspectionRecordMain/index.ts
  6. 50
      src/api/qms/inspectionRequest/index.ts
  7. 23
      src/api/qms/inspectionScheme/index.ts
  8. 2
      src/api/qms/inspectionTemplate/index.ts
  9. 4
      src/api/qms/samplingProcess/index.ts
  10. 12
      src/components/SearchTable/src/SearchTable.vue
  11. 31
      src/components/TableForm/src/TableForm.vue
  12. 4
      src/components/TableFormCountPlan/src/TableFormCountPlan.vue
  13. 11
      src/utils/validator.ts
  14. 45
      src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts
  15. 116
      src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts
  16. 360
      src/views/qms/basicDataManage/inspectionScheme/addForm.vue
  17. 35
      src/views/qms/basicDataManage/inspectionScheme/index.vue
  18. 22
      src/views/qms/basicDataManage/inspectionScheme/inspectionScheme.data.ts
  19. 200
      src/views/qms/basicDataManage/inspectionTemplate/addForm.vue
  20. 6
      src/views/qms/basicDataManage/inspectionTemplate/index.vue
  21. 17
      src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts
  22. 70
      src/views/qms/inspection/inspectionJob/addForm.vue
  23. 4
      src/views/qms/inspection/inspectionJob/detail.vue
  24. 11
      src/views/qms/inspection/inspectionJob/index.vue
  25. 120
      src/views/qms/inspection/inspectionJob/inspectionJobMain.data.ts
  26. 3
      src/views/qms/inspection/inspectionRecord/index.vue
  27. 141
      src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts
  28. 145
      src/views/qms/inspection/inspectionRequest/index.vue
  29. 108
      src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts
  30. 2
      src/views/qms/inspectionMethod/inspectionMethod.data.ts
  31. 57
      src/views/qms/samplingProcess/index.vue
  32. 11
      src/views/qms/samplingProcess/samplingProcess.data.ts
  33. 2
      src/views/qms/samplingScheme/samplingScheme.data.ts
  34. 9
      src/views/system/systemInstallPackage/index.vue
  35. 5
      src/views/system/systemInstallPackage/systemInstallPackage.data.ts
  36. 261
      src/views/wms/agvManage/agvLocationrelation/index.vue
  37. 8
      src/views/wms/basicDataManage/factoryModeling/location/location.data.ts
  38. 19
      src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue
  39. 4
      src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts
  40. 9
      src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
  41. 4
      src/views/wms/countManage/count/countPlanMain/index.vue
  42. 8
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/index.vue
  43. 8
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts
  44. 134
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue
  45. 30
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts
  46. 1
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue
  47. 4
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts
  48. 9
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

5
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 })
}

5
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 })
}

6
src/api/qms/inspectionJob/inspectionJobPackage/index.ts

@ -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 })
}

23
src/api/qms/inspectionPlan/index.ts

@ -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 })
}
}

4
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 })
}

50
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 })
}

23
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 })
}
}

2
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 })
}

4
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`})
}

12
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()

31
src/components/TableForm/src/TableForm.vue

@ -40,7 +40,7 @@
/>
<el-table-column
v-slot="{ row, $index }"
v-for="(headerItem,index) in tableFields"
v-for="(headerItem) in tableFields"
:key="headerItem"
:fixed="headerItem.tableForm?.fixed"
:label="headerItem.label" :prop="headerItem.field"
@ -55,10 +55,10 @@
:rules="tableFormRules"
:class="tableFormRules ? '' : 'noRulesForm'">
<!-- 字符串输入框 -->
<el-form-item
<el-form-item
v-if="!headerItem?.tableForm?.type || headerItem?.tableForm?.type == 'InputString'"
:prop="headerItem.field" style="display: flex;align-items: center;">
<el-input
<el-input :key="headerItem.field+$index"
v-model="row[headerItem.field]"
clearable
:type="headerItem?.tableForm?.inputType"
@ -67,7 +67,7 @@
style="flex:1"
@blur="inputStringBlur(headerItem.field, $event, row)"
/>
<el-button v-if="headerItem?.tableForm?.isInpuFocusShow" @click="inpuFocus(headerItem,row,index)"><Icon icon="ep:search" size="14"/></el-button>
<el-button :key="headerItem.field+$index+'button'" v-if="headerItem?.tableForm?.isInpuFocusShow" @click="inpuFocus(headerItem,row,index)"><Icon icon="ep:search" size="14"/></el-button>
</el-form-item>
<el-form-item v-if="headerItem?.tableForm?.type == 'slot'">
<slot :row="row"></slot>
@ -76,7 +76,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'number'"
:prop="headerItem.field">
<el-input
<el-input :key="headerItem.field+$index"
v-model="row[headerItem.field]"
clearable
type="number"
@ -92,6 +92,7 @@
:prop="headerItem.field">
<el-input-number
style="width: 100%;"
:key="headerItem.field+$index"
v-model="row[headerItem.field]"
:max="headerItem?.tableForm?.max"
:min="headerItem?.tableForm?.min"
@ -104,7 +105,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'Select'"
:prop="headerItem.field">
<el-select
<el-select :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:clearable="headerItem?.tableForm.clearable || true"
:multiple="headerItem?.tableForm.multiple"
@ -130,7 +131,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'SelectGroup'"
:prop="headerItem.field">
<el-select
<el-select :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:clearable="headerItem?.tableForm.clearable || true"
:multiple="headerItem?.tableForm.multiple"
@ -163,7 +164,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'FormTime'"
:prop="headerItem.field">
<el-time-picker
<el-time-picker :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:clearable="true"
:placeholder="headerItem?.tableForm?.placeholder || '选择时间'"
@ -175,7 +176,8 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'FormDate'"
:prop="headerItem.field">
<el-date-picker
<el-date-picker
:key="headerItem.field+$index"
v-model="row[headerItem.field]"
:clearable="true"
style="width: 100%"
@ -190,6 +192,7 @@
v-if="headerItem?.tableForm?.type == 'FormDateTime'"
:prop="headerItem.field">
<el-date-picker
:key="headerItem.field+$index"
type="datetime"
:clearable="true"
v-model="row[headerItem.field]"
@ -203,7 +206,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'FormTimerange'"
:prop="headerItem.field">
<el-date-picker
<el-date-picker :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:clearable="true"
:disabled="itemIsDisabled(headerItem, row)"
@ -218,7 +221,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'Switch'"
:prop="headerItem.field">
<el-switch
<el-switch :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:disabled="itemIsDisabled(headerItem, row)"
:loading="headerItem?.tableForm?.loading"
@ -236,7 +239,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'Radio'"
:prop="headerItem.field">
<el-radio-group
<el-radio-group :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:size="headerItem?.tableForm?.size"
:disabled="itemIsDisabled(headerItem, row)"
@ -259,7 +262,7 @@
<el-form-item
v-if="headerItem?.tableForm?.type == 'Checkbox'"
:prop="headerItem.field">
<el-checkbox-group
<el-checkbox-group :key="headerItem.field+$index"
v-model="row[headerItem.field]"
:disabled="itemIsDisabled(headerItem, row)"
:size="headerItem?.tableForm?.size"
@ -284,7 +287,7 @@
</el-form-item>
<!-- table表添加操作列 -->
<!-- <el-form-item> -->
<div v-if="headerItem?.tableForm?.type == 'action'">
<div v-if="headerItem?.tableForm?.type == 'action'" :key="headerItem.field+$index">
<el-button
v-for="(itemButton, indexButton) in headerItem?.tableForm?.buttonText.split('|')"
:key="indexButton"

4
src/components/TableFormCountPlan/src/TableFormCountPlan.vue

@ -22,7 +22,7 @@
:rules="tableFormRules"
:class="tableFormRules ? '' : 'noRulesForm'">
<el-form-item :prop="tableFields[0].field">
<el-select
<el-select :key="row.id+$index"
v-model="row.type"
:placeholder="tableFields[0].placeholder || '请输入' + tableFields[0].label"
@change="tableFormChange(tableFields[0].field, $event, row)"
@ -51,7 +51,7 @@
:rules="tableFormRules"
:class="tableFormRules ? '' : 'noRulesForm'">
<el-form-item :prop="tableFields[1].field">
<el-select
<el-select :key="row.id+$index"
v-model="row.value"
:placeholder="
tableFields[1].placeholder ||

11
src/utils/validator.ts

@ -339,7 +339,15 @@ export function validateTwoNumThree(rule, value, callback) {
callback()
}
// 数字格式 数字不可以大于5
export function validateMaxNumber5(rule, value, callback) {
if (parseInt(value) <= 5) {
callback()
} else {
callback(new Error('不能大于5'))
}
}
// 数字格式 小数点后三位
export function validateThreeNum(rule, value, callback) {
if (value) {
@ -771,5 +779,6 @@ export default {
validateFamilyPhone,
validateName,
validateChargeperson,
validateYS
validateYS,
validateMaxNumber5
}

45
src/views/mes/ordermonthplan/mesOrderMonthMain.data.ts

@ -8,6 +8,14 @@ export const MesOrderMonthMainRules = reactive({
planType: [required],
factoryCode: [required]
})
export const FactoryList = useCrudSchemas(reactive<CrudSchema[]>([{
label: '工厂编码',
field: 'id'
},
{
label: '工厂名称',
field: 'name'
}]))
export const MesOrderMonthMain = useCrudSchemas(reactive<CrudSchema[]>([
@ -26,7 +34,25 @@ export const MesOrderMonthMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '工厂编码',
field: 'factoryCode',
sort: 'custom',
isTable: false
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
// }
// ]
// }
// }
},
{
label: '工厂名称',
@ -51,6 +77,13 @@ export const MesOrderMonthMain = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
isTable: false
},
{
label: '创建者用户名',
field: 'creator',
sort: 'custom',
isSearch: true,
isForm: false
},
{
label: '创建时间',
field: 'createTime',
@ -70,13 +103,6 @@ export const MesOrderMonthMain = useCrudSchemas(reactive<CrudSchema[]>([
},
isForm: false
},
{
label: '创建者用户名',
field: 'creator',
sort: 'custom',
isSearch: true,
isForm: false
},
{
label: '操作',
field: 'action',
@ -90,5 +116,4 @@ export const MesOrderMonthMain = useCrudSchemas(reactive<CrudSchema[]>([
export const TabsList = [{
label: "子计划",
prop: 'mesOrderMonthSub',
}
]
}]

116
src/views/mes/ordermonthplan/mesOrderMonthSub.data.ts

@ -27,9 +27,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
// 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<CrudSchema[]>([
field: 'productName',
sort: 'custom',
isSearch: true,
table: {
width: 200,
fixed: 'left'
},
isForm: false
},
{
@ -75,13 +79,17 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
}
}
},
{
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<CrudSchema[]>([
form: {
component: 'InputNumber',
value: 0
},
table: {
width: 120
}
},
{
@ -109,40 +152,42 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
@ -181,6 +229,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
},
form: {
component: 'DatePicker',
componentProps: {
@ -196,14 +247,28 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
sort: 'custom',
isTable: false
},
{
label: '状态',
field: 'status',
sort: 'custom',
isSearch: true,
isForm: false
},
{
label: '操作',
field: 'action',

360
src/views/qms/basicDataManage/inspectionPlan/addForm.vue → src/views/qms/basicDataManage/inspectionScheme/addForm.vue

@ -10,7 +10,7 @@
<div style="max-height: 80vh; overflow-y: auto; padding: 0px 20px">
<el-form :model="data" label-width="auto" :rules="rules" ref="formMainRef">
<el-row gutter="20">
<el-col :span="12">
<el-col :span="12" v-if="data.code">
<el-form-item label="编码" prop="code">
<el-input v-model="data.code" placeholder="根据系统生成" :disabled="true" />
</el-form-item>
@ -18,7 +18,7 @@
<el-col :span="12">
<el-form-item label="物料编码" prop="itemCode">
<div style="display: flex; width: 100%">
<el-input v-model="data.itemName" disabled placeholder="请选择物料编码" />
<el-input v-model="data.itemName" disabled placeholder="请选择物料" />
<el-button
type="info"
plain
@ -41,6 +41,11 @@
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述" prop="description">
<el-input v-model="data.description" placeholder="请填写描述" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="版本" prop="version">
<el-input v-model="data.version" placeholder="请填写版本" />
@ -81,12 +86,12 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验模板编码" prop="programmeTemplateCode">
<el-form-item label="检验模板" prop="programmeTemplateCode">
<div style="display: flex; width: 100%">
<el-input
v-model="data.programmeTemplateName"
disabled
placeholder="请选择检验模板编码"
placeholder="请选择检验模板"
/>
<el-button
type="info"
@ -96,7 +101,7 @@
opensearchTable(
'programmeTemplateCode',
null,
'检验模板编码',
'检验模板',
InspectionTemplateMain.allSchemas,
InspectionTemplateApi.inspectionTemplatePage,
null,
@ -110,6 +115,42 @@
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="动态修改规则" prop="dynamicUpdateCode">
<div style="display: flex; width: 100%">
<el-input
v-model="data.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'main',
data
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拆分规则" prop="splitRule">
<el-select v-model="data.splitRule" placeholder="请选择拆分规则">
@ -177,7 +218,6 @@
</el-form>
<el-tabs
v-model="editableTabsValue"
editable
class="demo-tabs"
@edit="handleTabsEdit"
type="border-card"
@ -190,6 +230,42 @@
:label="item.description"
:name="item.name"
>
<!-- <el-col :span="12">
<el-form-item label="动态修改规则" prop="dynamicUpdateCode">
<div style="display: flex; width: 100%">
<el-input
v-model="data.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'main',
data
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col> -->
<div class="small-title">检验工序</div>
<el-form :model="item" label-width="auto" :rules="rules" ref="formProcessRef">
<el-row :gutter="20">
@ -246,122 +322,83 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="检验方法"
prop="inspectionCharacteristicsBaseVO.inspectionMethodCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.inspectionMethodName"
disabled
placeholder="请选择检验方法"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'inspectionMethodCode',
null,
'检验方法',
InspectionMethod.allSchemas,
InspectionMethodApi.getInspectionMethodPage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="采样过程编码"
prop="inspectionCharacteristicsBaseVO.inspectionMethod"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.inspectionName"
disabled
placeholder="请选择采样过程编码"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'inspectionMethod',
null,
'采样过程编码',
SamplingProcess.allSchemas,
SamplingProcessApi.getSamplingProcessPage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="动态修改规则编码"
prop="inspectionCharacteristicsBaseVO.dynamicUpdateCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则编码"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则编码',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-form-item
label="检验方法"
prop="inspectionCharacteristicsBaseVO.inspectionMethodCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.inspectionMethodName"
disabled
placeholder="请选择检验方法"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'inspectionMethodCode',
null,
'检验方法',
InspectionMethod.allSchemas,
InspectionMethodApi.getInspectionMethodPage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="采样过程"
prop="inspectionCharacteristicsBaseVO.samplingProcessCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.samplingProcessName"
disabled
placeholder="请选择采样过程"
/>
<el-button
type="info"
plain
style="width: 40px"
@click="
opensearchTable(
'samplingProcessCode',
null,
'采样过程',
SamplingProcess.allSchemas,
SamplingProcessApi.getSamplingProcessPage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
'features',
item
)
"
><Icon icon="ep:search"
/></el-button>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否允许修改特征值"
@ -515,7 +552,7 @@
</el-col>
<el-col :span="12">
<el-form-item
label="选择集编码"
label="选择集"
prop="inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 1"
>
@ -523,7 +560,7 @@
<el-input
v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
disabled
placeholder="请选择选择集编码"
placeholder="请选择选择集"
/>
<el-button
type="info"
@ -533,16 +570,16 @@
opensearchTable(
'quantifyQuantifyCode',
null,
'选择集编码',
'选择集',
SelectedSet.allSchemas,
SelectedSetApi.getSelectedSetPage,
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
[
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
],
false,
null,
item
@ -662,6 +699,8 @@ const data = ref({
effectiveDate: '',
expirationDate: '',
available: 'TRUE',
dynamicUpdateCode: '',
description:'',
process: []
})
@ -676,11 +715,14 @@ if (props.basicFormWidth) {
dialogWidth.value = props.isBusiness ? '60%' : '40%'
}
const rules = ref({
itemCode: [{ required: true, message: '请选择物料编码', trigger: 'blur' }],
itemCode: [{ required: true, message: '请选择物料', trigger: 'blur' }],
version: [{ required: true, message: '请填写版本', trigger: 'blur' }],
testTypeCode: [{ required: true, message: '请选择检验类型编码', trigger: ['blur', 'change'] }],
testTypeCode: [{ required: true, message: '请选择检验类型', trigger: ['blur', 'change'] }],
programmeTemplateCode: [
{ required: true, message: '请选择检验模板编码', trigger: ['blur', 'change'] }
{ required: true, message: '请选择检验模板', trigger: ['blur', 'change'] }
],
description: [
{ required: true, message: '请选择描述', trigger: 'blur' }
],
splitRule: [{ required: true, message: '请选择拆分规则', trigger: ['blur', 'change'] }],
aql: [{ required: true, message: '请选择aql', trigger: ['blur', 'change'] }],
@ -691,13 +733,13 @@ const rules = ref({
{ required: true, message: '请填写描述', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.inspectionMethodCode': [
{ required: true, message: '请选择检验方法编码', trigger: 'blur' }
{ required: true, message: '请选择检验方法', trigger: 'blur' }
],
'inspectionCharacteristicsBaseVO.dynamicUpdateCode': [
{ required: true, message: '请选择采样过程编码', trigger: ['blur', 'change'] }
'inspectionCharacteristicsBaseVO.samplingProcessCode': [
{ required: true, message: '请选择采样过程', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.inspectionMethod': [
{ required: true, message: '请选择动态修改规则编码', trigger: ['blur', 'change'] }
dynamicUpdateCode: [
{ required: true, message: '请选择动态修改规则', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.resultEntryMethod': [
{ required: true, message: '请选择结果录入方式', trigger: ['blur', 'change'] }
@ -721,7 +763,7 @@ const rules = ref({
{ required: true, message: '请输入小数位', trigger: 'blur' }
],
'inspectionCharacteristicsBaseVO.quantifyQuantifyCode': [
{ required: true, message: '请输入选择集编码', trigger: 'blur' }
{ required: true, message: '请输入选择集', trigger: 'blur' }
]
})
/** 打开弹窗 */
@ -777,6 +819,8 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
effectiveDate: '',
expirationDate: '',
available: 'TRUE',
dynamicUpdateCode:'',
description:"",
process: []
}
}
@ -823,6 +867,7 @@ const buttonBaseClick1 = (val) => {
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)

35
src/views/qms/basicDataManage/inspectionPlan/index.vue → src/views/qms/basicDataManage/inspectionScheme/index.vue

@ -1,7 +1,7 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="InspectionPlanMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search :schema="InspectionSchemeMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
@ -11,7 +11,7 @@
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="InspectionPlanMain.allSchemas"
:allSchemas="InspectionSchemeMain.allSchemas"
/>
<!-- 列表 -->
@ -52,16 +52,16 @@
</template>
<script setup lang="ts">
import {InspectionPlanMain } from './inspectionPlan.data'
import {InspectionSchemeMain } from './inspectionScheme.data'
import { InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures,InspectionTemplateRules } from '../inspectionTemplate/inspectionTemplate.data'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import AddForm from './addForm.vue'
import * as InspectionPlanApi from '@/api/qms/inspectionPlan'
import * as InspectionSchemeApi from '@/api/qms/inspectionScheme'
defineOptions({ name: 'AgvLocationrelation' })
defineOptions({ name: 'InspectionScheme' })
const message = useMessage() //
const { t } = useI18n() //
@ -69,7 +69,7 @@ const { t } = useI18n() // 国际化
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(InspectionPlanMain.allSchemas.tableColumns)
const tableColumns = ref(InspectionSchemeMain.allSchemas.tableColumns)
//
const updataTableColumns = (val) => {
@ -77,7 +77,7 @@ const updataTableColumns = (val) => {
}
const { tableObject, tableMethods } = useTable({
getListApi: InspectionPlanApi.inspectionPlanPage //
getListApi: InspectionSchemeApi.InspectionSchemePage //
})
//
@ -85,7 +85,7 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:agv-locationrelation:create'}), //
defaultButtons.defaultAddBtn({hasPermi:'qms:type-template:create'}), //
// defaultButtons.defaultImportBtn({hasPermi:'wms:agv-locationrelation:import'}), //
// defaultButtons.defaultExportBtn({hasPermi:'wms:agv-locationrelation:export'}), //
defaultButtons.defaultFreshBtn(null), //
@ -119,8 +119,8 @@ const buttonBaseClick = (val, item) => {
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'qms:inspectionTemplate:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'qms:inspectionTemplate:delete'}), //
defaultButtons.mainListEditBtn({hasPermi:'qms:type-template:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'qms:type-template:delete'}), //
]
// -
@ -135,12 +135,15 @@ const buttonTableClick = async (val, row) => {
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
// if(type=='add'){//
// InspectionTemplateMain.allSchemas.formSchema.find(item => item.field == 'programmeTemplateCode').componentProps.disabled = true//
// }
basicFormRef.value.open(type, row)
}
// form
const submitForm = async (formType,data) => {
var isHave =InspectionPlanMain.allSchemas.formSchema.some(function (item) {
var isHave =InspectionSchemeMain.allSchemas.formSchema.some(function (item) {
return item.field === 'effectiveDate' || item.field === 'expirationDate';
});
if(isHave){
@ -151,7 +154,9 @@ const submitForm = async (formType,data) => {
}
const data1 = {
id: data.id,
dynamicUpdateCode:data.dynamicUpdateCode,
code: data.code,
description: data.description,
itemCode: data.itemCode,
version: data.version,
testTypeCode: data.testTypeCode,
@ -165,10 +170,10 @@ const submitForm = async (formType,data) => {
content:JSON.stringify(data.process)
}
if (formType === 'create') {
await InspectionPlanApi.inspectionPlanCreat(data1)
await InspectionSchemeApi.inspectionSchemeCreat(data1)
message.success(t('common.createSuccess'))
} else {
await InspectionPlanApi.inspectionPlanUpdate(data1)
await InspectionSchemeApi.inspectionSchemeUpdate(data1)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
@ -187,7 +192,7 @@ const handleDelete = async (id: number) => {
//
await message.delConfirm()
//
await InspectionPlanApi.inspectionPlanDelete(id)
await InspectionSchemeApi.inspectionSchemeDelete(id)
message.success(t('common.delSuccess'))
//
await getList()
@ -209,4 +214,4 @@ onMounted(async () => {
getList()
})
</script>
</script>

22
src/views/qms/basicDataManage/inspectionPlan/inspectionPlan.data.ts → 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<CrudSchema[]>([
export const InspectionSchemeMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '编码',
field: 'code',
@ -77,6 +77,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 220,
fixed: 'left'
},
isSearch:true,
form:{
componentProps:{
disabled:true,
@ -84,13 +85,27 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
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<CrudSchema[]>([
},{
label: '检验类型编码',
field: 'testTypeCode',
dictType: DICT_TYPE.INSPECTION_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
@ -139,6 +156,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
isSearch:true,
},{
label: '生效时间',
field: 'effectiveDate',

200
src/views/qms/basicDataManage/inspectionTemplate/addForm.vue

@ -10,7 +10,7 @@
<!-- <Form ref="formRefMain" :schema="formAllSchemasMain" :is-col="true" :rules="rules" /> -->
<el-form :model="data" label-width="auto" :rules="rules" ref="formMainRef">
<el-row gutter="20">
<el-col :span="12">
<el-col :span="12" v-if="data.code">
<el-form-item label="编码" prop="code">
<el-input v-model="data.code" placeholder="根据系统生成" :disabled="true" />
</el-form-item>
@ -22,19 +22,19 @@
</el-col>
<el-col :span="12">
<el-form-item label="版本" prop="version">
<el-input v-model="data.version" placeholder="请填写版本" />
<el-input v-model="data.version" placeholder="请填写版本" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="动态修改规则编码"
label="动态修改规则"
prop="dynamicUpdateCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="data.dynamicUpdateName"
disabled
placeholder="请选择动态修改规则编码"
placeholder="请选择动态修改规则"
/>
<el-button
type="info"
@ -44,7 +44,7 @@
opensearchTable(
'dynamicUpdateCode',
null,
'动态修改规则编码',
'动态修改规则',
DynamicRule.allSchemas,
DynamicRuleApi.getDynamicRulePage,
[
@ -91,20 +91,20 @@
/> -->
<el-form :model="item" label-width="auto" :rules="rules" ref="formProcessRef">
<el-row :gutter="20">
<el-col :span="12">
<el-col :span="12" v-if="item.code">
<el-form-item label="编码" prop="code">
<el-input v-model="item.code" placeholder="根据系统生成" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验方案模板编码">
<!-- <el-col :span="12">
<el-form-item label="检验方案模板">
<el-input
v-model="item.inspectionCode"
placeholder="根据系统生成"
:disabled="true"
/>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="12">
<el-form-item label="描述" prop="description">
<el-input v-model="item.description" />
@ -112,25 +112,25 @@
</el-col>
<el-col :span="12">
<el-form-item label="顺序号" prop="sequenceCode">
<el-input v-model="item.sequenceCode" />
<el-input v-model="item.sequenceCode" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验特性编码">
<!-- <el-col :span="12">
<el-form-item label="检验特性">
<el-input
v-model="item.inspectionCharCode"
placeholder="根据系统生成"
:disabled="true"
/>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
</el-form>
<div class="small-title">检验特性</div>
<el-form :model="item" label-width="auto" :rules="rules" ref="formFeaturesRef">
<el-row :gutter="20">
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.code">
<el-form-item label="编码">
<el-input
v-model="item.inspectionCharacteristicsBaseVO.code"
@ -192,7 +192,7 @@
<el-input
v-model="item.inspectionCharacteristicsBaseVO.samplingProcessName"
disabled
placeholder="请选择采样过程编码"
placeholder="请选择采样过程"
/>
<el-button
type="info"
@ -202,7 +202,7 @@
opensearchTable(
'samplingProcessCode',
null,
'采样过程编码',
'采样过程',
SamplingProcess.allSchemas,
SamplingProcessApi.getSamplingProcessPage,
[
@ -270,86 +270,80 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0">
<el-col :span="12">
<el-form-item
label="是否设定上限"
prop="inspectionCharacteristicsBaseVO.quantifyIsCapping"
label="计量单位"
prop="inspectionCharacteristicsBaseVO.quantifyUom"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
>
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsCapping" @change="changeIsCapping"/>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyUom" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="上限值"
prop="inspectionCharacteristicsBaseVO.quantifyCapping"
label="小数位"
prop="inspectionCharacteristicsBaseVO.quantifyDecimal"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyCapping" />
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyDecimal" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0">
<el-form-item
prop="inspectionCharacteristicsBaseVO.quantifyIsLowlimit"
label="是否设定下限"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
label="是否设定上限"
prop="inspectionCharacteristicsBaseVO.quantifyIsCapping"
>
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit" @change="changeLowlimit"/>
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsCapping" @change="changeIsCapping"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0">
<el-form-item
label="下限值"
prop="inspectionCharacteristicsBaseVO.quantifyLowlimit"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
prop="inspectionCharacteristicsBaseVO.quantifyIsLowlimit"
label="是否设定下限"
>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyLowlimit" />
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit" @change="changeLowlimit"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="inspectionCharacteristicsBaseVO.quantifyIsTarget"
label="是否设定目标值"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
>
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsTarget" @change="changeIsTarget"/>
<el-switch v-model="item.inspectionCharacteristicsBaseVO.quantifyIsTarget" @change="changeIsTarget" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0 && item.inspectionCharacteristicsBaseVO. quantifyIsCapping">
<el-form-item
label="目标值"
prop="inspectionCharacteristicsBaseVO.quantifyTarget"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
label="上限值"
prop="inspectionCharacteristicsBaseVO.quantifyCapping"
>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyTarget" />
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyCapping" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0 && item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit">
<el-form-item
label="计量单位"
prop="inspectionCharacteristicsBaseVO.quantifyUom"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
label="下限值"
prop="inspectionCharacteristicsBaseVO.quantifyLowlimit"
>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyUom" />
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyLowlimit" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-if="item.inspectionCharacteristicsBaseVO.featureType == 0 && item.inspectionCharacteristicsBaseVO. quantifyIsTarget">
<el-form-item
label="小数位"
prop="inspectionCharacteristicsBaseVO.quantifyDecimal"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 0"
label="目标值"
prop="inspectionCharacteristicsBaseVO.quantifyTarget"
>
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyDecimal" />
<el-input v-model="item.inspectionCharacteristicsBaseVO.quantifyTarget" type="number"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="选择集编码"
label="选择集"
prop="inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 1"
>
@ -357,7 +351,7 @@
<el-input
v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyName"
disabled
placeholder="请选择选择集编码"
placeholder="请选择选择集"
/>
<el-button
type="info"
@ -367,7 +361,7 @@
opensearchTable(
'quantifyQuantifyCode',
null,
'选择集编码',
'选择集',
SelectedSet.allSchemas,
SelectedSetApi.getSelectedSetPage,
[
@ -428,6 +422,7 @@ import * as DynamicRuleApi from '@/api/qms/dynamicRule' //动态修改规则
import { DynamicRule } from '@/views/qms/basicDataManage/dynamicRule/dynamicRule.data' //
import * as SelectedSetApi from '@/api/qms/selectedSet' //
import { SelectedSet } from '@/views/qms/basicDataManage/selectedSet/selectedSet.data' //
import { validateInteger,validateTwoNum,validateMaxNumber5 } from '@/utils/validator'
const message = useMessage() //
const props = defineProps({
@ -492,18 +487,24 @@ if (props.basicFormWidth) {
}
const rules = ref({
description: [{ required: true, message: '请填写描述', trigger: 'blur' }],
version: [{ required: true, message: '请填写版本', trigger: 'blur' }],
inspectionCode: [{ required: true, message: '请选择检验方案模板编码', trigger: 'blur' }],
sequenceCode: [{ required: true, message: '请填写顺序号', trigger: 'blur' }],
inspectionCharCode: [{ required: true, message: '请选择检验特性编码', trigger: 'blur' }],
version: [
{ required: true, message: '请填写版本', trigger: 'blur' },
{ validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}
],
inspectionCode: [{ required: true, message: '请选择检验方案模板', trigger: 'blur' }],
sequenceCode: [
{ required: true, message: '请填写顺序号', trigger: 'blur' },
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}
],
inspectionCharCode: [{ required: true, message: '请选择检验特性', trigger: 'blur' }],
'inspectionCharacteristicsBaseVO.description': [
{ required: true, message: '请填写描述', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.inspectionMethodCode': [
{ required: true, message: '请选择检验方法编码', trigger: 'blur' }
{ required: true, message: '请选择检验方法', trigger: 'blur' }
],
dynamicUpdateCode: [
{ required: true, message: '请选择动态修改规则编码', trigger: ['blur', 'change'] }
{ required: true, message: '请选择动态修改规则', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.samplingProcessCode': [
{ required: true, message: '请选择采样过程', trigger: ['blur', 'change'] }
@ -515,24 +516,28 @@ const rules = ref({
{ required: true, message: '请选择特征类型', trigger: ['blur', 'change'] }
],
'inspectionCharacteristicsBaseVO.quantifyTarget': [
{ required: true, message: '请输入目标值', trigger: 'blur' }
{ required: true, message: '请输入目标值', trigger: 'blur' },
],
'inspectionCharacteristicsBaseVO.quantifyCapping': [
{ required: true, message: '请输入上限值', trigger: 'blur' }
{ required: true, message: '请输入上限值', trigger: 'blur' },
],
'inspectionCharacteristicsBaseVO.quantifyLowlimit': [
{ required: true, message: '请输入下限值', trigger: 'blur' }
{ required: true, message: '请输入下限值', trigger: 'blur' },
],
'inspectionCharacteristicsBaseVO.quantifyUom': [
{ required: true, message: '请选择计量单位', trigger: 'blur' }
],
'inspectionCharacteristicsBaseVO.quantifyDecimal': [
{ required: true, message: '请输入小数位', trigger: 'blur' }
{ required: true, message: '请输入小数位', trigger: 'blur' },
{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'},
{ validator:validateMaxNumber5, message: '不能大于5', trigger: 'blur'}
],
'inspectionCharacteristicsBaseVO.quantifyQuantifyCode': [
{ required: true, message: '请输入选择集编码', trigger: 'blur' }
{ required: true, message: '请输入选择集', trigger: 'blur' }
]
})
/** 打开弹窗 */
let tabIndex = 1
const open = async (type: string, row?: any, masterParmas?: any, titleName?: any) => {
@ -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') {

6
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'}), //
]
// -

17
src/views/qms/basicDataManage/inspectionTemplate/inspectionTemplate.data.ts

@ -73,6 +73,7 @@ export const InspectionTemplateMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '编码',
field: 'code',
sort: 'custom',
isSearch:true,
form:{
componentProps:{
disabled:true,
@ -85,6 +86,11 @@ export const InspectionTemplateMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'description',
sort: 'custom',
},{
label: '动态修改规则',
field: 'dynamicUpdateName',
sort: 'custom',
},
,{
label: '版本',
field: 'version',
sort: 'custom',
@ -127,7 +133,12 @@ export const InspectionTemplateProcess = useCrudSchemas(reactive<CrudSchema[]>([
label: '检验特性编码',
field: 'inspectionCharCode',
sort: 'custom',
}
},
{
label: '动态修改规则编码',
field: 'dynamicUpdateCode',
sort: 'custom',
},
]))
export const InspectionTemplateFeatures= useCrudSchemas(reactive<CrudSchema[]>([
{
@ -153,10 +164,6 @@ export const InspectionTemplateFeatures= useCrudSchemas(reactive<CrudSchema[]>([
label: '采样过程编码',
field: 'inspectionMethod',
sort: 'custom',
},{
label: '动态修改规则编码',
field: 'dynamicUpdateCode',
sort: 'custom',
},{
label: '是否允许修改特征值',
field: 'isCanUpdate',

70
src/views/qms/inspection/inspectionJob/addForm.vue

@ -18,6 +18,19 @@
:is-col="true"
@opensearchTable="opensearchTable"
/>
<div class="small-title">包装列表</div>
<div style="border:1px solid #dedede;margin-bottom:20px;display: flex;">
<TableForm
ref="tableFormRef"
style="width:100%;"
:maxHeight = "490"
:tableFields="tableAllSchemas.tableFormColumns"
:tableFormRules="tableFormRules"
:tableData="data.packageVOList"
:isShowButton="false"
:isShowReduceButton="false"
/>
</div>
<el-tabs
v-model="editableTabsValue"
class="demo-tabs"
@ -114,11 +127,11 @@
<el-col :span="12">
<el-form-item
label="采样过程编码"
prop="inspectionJobCharacteristicsUpdateReqVO.inspectionMethod"
prop="inspectionJobCharacteristicsUpdateReqVO.samplingProcessCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionJobCharacteristicsUpdateReqVO.inspectionName"
v-model="item.inspectionJobCharacteristicsUpdateReqVO.samplingProcessName"
disabled
placeholder="请选择采样过程编码"
/>
@ -240,24 +253,24 @@
:span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1"
>
<el-form-item label="合格数量">
<el-input v-model="cur.qualifiedQuantity" placeholder="请输入合格数量" />
<el-form-item label="合格数量" required>
<el-input v-model="cur.qualifiedQuantity" placeholder="请输入合格数量" type="number"/>
</el-form-item>
</el-col>
<el-col
:span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1"
>
<el-form-item label="不合格数量">
<el-form-item label="不合格数量" required>
<el-input
v-model="cur.unqualifiedQuantity"
v-model="cur.unqualifiedQuantity" type="number"
placeholder="请输入不合格数量"
/>
</el-form-item>
</el-col>
<!-- 手动评估的时候显示 -->
<el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1">
<el-form-item label="评估代码">
<el-form-item label="评估代码" required>
<el-select
v-model="cur.estimateCode"
placeholder="请选择评估代码"
@ -276,15 +289,15 @@
:span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 0"
>
<el-form-item label="检验值" prop="inspectionValue">
<el-input v-model="cur.inspectionValue" placeholder="请输入检验值" />
<el-form-item label="检验值" required>
<el-input v-model="cur.inspectionValue" placeholder="请输入检验值" type="number"/>
</el-form-item>
</el-col>
<el-col
:span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 1"
>
<el-form-item label="选定集" prop="qualitativeCode">
<el-form-item label="选定集" required>
<el-select
v-model="cur.qualitativeCode"
placeholder="请选择选定集"
@ -300,8 +313,8 @@
</el-form-item>
</el-col>
<el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1">
<el-form-item label="缺陷级别">
<el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1" >
<el-form-item label="缺陷级别" required>
<el-select v-model="cur.defectLevel" placeholder="请选择缺陷级别" disabled>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DEFECT_LEVEL)"
@ -365,6 +378,7 @@ import * as DynamicRuleApi from '@/api/qms/dynamicRule' //动态修改规则
import { DynamicRule } from '@/views/qms/basicDataManage/dynamicRule/dynamicRule.data' //
import * as SelectedSetApi from '@/api/qms/selectedSet' //
import { SelectedSet } from '@/views/qms/basicDataManage/selectedSet/selectedSet.data' //
import * as InspectionJobMainApi from '@/api/qms/inspectionJob/inspectionJobMain'
const { proxy } = getCurrentInstance()
@ -411,7 +425,18 @@ const props = defineProps({
type: Object,
required: true,
default: null
}
},
//
tableAllSchemas: {
type: Array,
required: true,
default: null
},
tableFormRules: {
type: Array,
required: true,
default: null
},
})
const { t } = useI18n() //
@ -424,6 +449,8 @@ const formMainRef = ref()
const formFeaturesRef = ref()
const formProcessRef = ref()
const formSchema = ref(props.formAllSchemas?.formSchema)
const tableAllSchemas = ref(props.tableAllSchemas)
const tableFormRules = ref(props.tableFormRules)
const data = ref({
code: '',
@ -511,6 +538,7 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
console.log(data.value)
let list = []
list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id)
data.value.packageVOList = await InspectionJobMainApi.getInspectionJobPackageList(row.id)
list.forEach((item, index) => {
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)

4
src/views/qms/inspection/inspectionJob/detail.vue

@ -110,11 +110,11 @@
<el-col :span="12">
<el-form-item
label="采样过程编码"
prop="inspectionJobCharacteristicsRespVO.inspectionMethod"
prop="inspectionJobCharacteristicsRespVO.samplingProcessCode"
>
<div style="display: flex; width: 100%">
<el-input
v-model="item.inspectionJobCharacteristicsRespVO.inspectionName"
v-model="item.inspectionJobCharacteristicsRespVO.samplingProcessName"
disabled
placeholder="请选择采样过程编码"
/>

11
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 @@
<!-- 详情 -->
<Detail
ref="detailRef" :isBasic="false" :allSchemas="InspectionJobMain.allSchemas"
:detailAllSchemas="InspectionJobDetail.allSchemas" :detailAllSchemasRules="InspectionJobDetailRules"
:detailAllSchemas="InspectionJobDetail.allSchemas"
:detailAllSchemasRules="InspectionJobDetailRules"
:apiCreate="InspectionJobDetailApi.createInspectionJobDetail"
:apiUpdate="InspectionJobDetailApi.updateInspectionJobDetail"
:apiPage="InspectionJobDetailApi.getInspectionJobDetailPage"
@ -53,17 +56,17 @@
<script setup lang="ts">
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') { //

120
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<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '申请单号',
@ -39,6 +43,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '供应商编码',
@ -50,6 +57,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '物料编码',
@ -61,6 +71,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '物料批次',
@ -72,10 +85,13 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
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<CrudSchema[]>([
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<CrudSchema[]>([
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<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验方案编码',
@ -131,6 +159,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
// {
// label: '检验方案Json',
@ -148,6 +179,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验批数量',
@ -159,6 +193,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '采样总数量',
@ -170,6 +207,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验类型',
@ -184,6 +224,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验批来源',
@ -196,6 +239,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
{
@ -210,6 +256,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验严格性',
@ -222,6 +271,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
{
@ -233,6 +285,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
{
@ -244,6 +299,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
{
@ -268,6 +326,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '计划结束时间',
@ -291,6 +352,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true
}
},
table: {
width: 150
}
},
{
label: '检验水平',
@ -303,6 +367,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
{
@ -316,6 +383,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled:true
}
},
table: {
width: 150
}
},
// {
@ -347,7 +417,7 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
activeValue: 'TRUE',
disabled:true
}
},
}
},
{
label: '操作',
@ -415,11 +485,11 @@ export const InspectionJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
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<CrudSchema[]>([
component: 'InputNumber',
value: 0
},
tableForm:{
disabled:true
}
},
{
label: '计量单位',
field: 'measuringUnit',
sort: 'custom',
isSearch: true,
tableForm:{
disabled:true
}
},
{
label: '采样数量',
field: 'sampleAmount',
sort: 'custom',
isSearch: true,
},
]))
]))
//表单校验
export const InspectionJobPackageRules = reactive({
sampleAmount: [required,
{ validator:validateTwoNum, message: '小数点后最多2位', trigger: 'blur'}]
})

3
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)

141
src/views/qms/inspection/inspectionRecord/inspectionRecordMain.data.ts

@ -13,105 +13,149 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
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<CrudSchema[]>([
component: 'InputNumber',
value: 0
},
table: {
width: 150
}
},
{
label: '检验阶段',
@ -148,20 +201,20 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '计划结束时间',
@ -208,6 +264,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '实际开始时间',
@ -231,6 +290,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '实际结束时间',
@ -254,27 +316,42 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
sort: 'custom',
isSearch: false,
dictType: DICT_TYPE.USAGE_DECISION,
table: {
width: 150
}
},
{
@ -299,6 +379,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
}
},
isForm: false,
table: {
width: 150
}
},
{

145
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">
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -37,6 +37,8 @@
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/request/inspection-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" />
<!-- 包装信息 -->
<listTable ref="listTableRef" titleName="包装信息"/>
</template>
<script setup lang="ts">
@ -44,9 +46,11 @@
import { InspectionMain, InspectionMainRules } from './inspectionMain.data'
import * as InspectionMainApi from '@/api/qms/inspectionRequest'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import listTable from '@/components/listTable/src/listTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import { InspectionJobPackage} from '../inspectionJob/inspectionJobMain.data'
defineOptions({ name: 'InspectionMain' })
@ -113,25 +117,134 @@
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({ hasPermi: 'wms:inspectionMain:update' }), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:inspectionMain:delete' }), //
]
//
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListCloseBtn({ hide: isShowMainButton(row, ['1', '2', '3', '4', '6']), hasPermi: 'qms:inspection-request-main:close' }), //
// defaultButtons.mainListReAddBtn({ hide: isShowMainButton(row, ['5']), hasPermi: 'qms:inspection-request-main:reAdd' }), //
defaultButtons.mainListSubmitBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'qms:inspection-request-main:submit' }), //
defaultButtons.mainListTurnDownBtn({ hide: isShowMainButton(row, ['2']), hasPermi: 'qms:inspection-request-main:refused' }), //
defaultButtons.mainListApproveBtn({ hide: isShowMainButton(row, ['2']), hasPermi: 'qms:inspection-request-main:agree' }), //
defaultButtons.mainListHandleBtn({ hide: isShowMainButton(row, ['3']), hasPermi: 'qms:inspection-request-main:handle' }), //
defaultButtons.mainListPackageBtn(null), //
// defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-request-main:update'}), //
]
}
const listTableRef = ref()
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'mainClose') { //
handleClose(row.id)
} else if (val == 'mainReAdd') { //
handleReAdd(row.id)
} else if (val == 'mainSubmit') { //
handleSubmit(row.id)
} else if (val == 'mainTurnDown') { //
handleRefused(row.id)
} else if (val == 'mainApprove') { //
handleAgree(row.id)
} else if (val == 'mainHandle') { //
handleHandle(row.id)
} else if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'mainPackage') { //
const list = await InspectionMainApi.getInspectionRequestPackageList(row.id)
listTableRef.value.openPackage(row,'包装信息',InspectionJobPackage.allSchemas.tableColumns,list)
}
}
/** 关闭按钮操作 */
const handleClose = async (id : number) => {
try{
await message.confirm(t('common.confirmColse'))
tableObject.loading = true
await InspectionMainApi.closeInspectRequestMain(id)
message.success(t('common.closeSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 重新添加按钮操作 */
const handleReAdd = async (id : number) => {
try{
await message.confirm(t('common.confirmReAdd'))
tableObject.loading = true
await InspectionMainApi.reAddInspectRequestMain(id)
message.success(t('common.reAddSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 审批通过按钮操作 */
const handleAgree = async (id : number) => {
try{
await message.confirm(t('common.confirmAgree'))
tableObject.loading = true
await InspectionMainApi.agreeInspectRequestMain(id)
message.success(t('common.agreeSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 审批驳回按钮操作 */
const handleRefused = async (id : number) => {
try{
await message.confirm(t('common.confirmRefused'))
tableObject.loading = true
await InspectionMainApi.refusedInspectRequestMain(id)
message.success(t('common.refusedSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 处理按钮操作 */
const handleHandle = async (id : number) => {
try{
await message.confirm(t('common.confirmHandle'))
tableObject.loading = true
await InspectionMainApi.handleInspectRequestMain(id)
message.success(t('common.handleSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 提交按钮操作 */
const handleSubmit = async (id : number) => {
try{
await message.confirm(t('common.confirmSubmit'))
tableObject.loading = true
await InspectionMainApi.submitInspectRequestMain(id)
message.success(t('common.submitSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type : string, row ?: any) => {
basicFormRef.value.open(type, row)
const formRef = ref()
const openForm = async (type : string, row ?: number) => {
tableData.value = [] //
formRef.value.open(type, row)
}
// form

108
src/views/qms/inspection/inspectionRequest/inspectionMain.data.ts

@ -24,6 +24,10 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'number',
sort: 'custom',
isSearch: true,
table: {
width: 200,
fixed: 'left'
}
},
{
label: '申请日期',
@ -46,6 +50,9 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '申请时间',
@ -68,6 +75,9 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '要求开始时间',
@ -90,6 +100,9 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '要求结束时间',
@ -112,6 +125,9 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '完成时间',
@ -134,36 +150,54 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x'
}
},
table: {
width: 150
}
},
{
label: '供应商编码',
field: 'supplierCode',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '物料编码',
field: 'materialCode',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '批次',
field: 'batch',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '待检数量',
field: 'requestInspectionNum',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '参考订单号',
field: 'referenceOrderCode',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '参考订单行',
@ -174,12 +208,18 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber',
value: 0
},
table: {
width: 150
}
},
{
label: '参考凭证号',
field: 'referenceCertificateCode',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '参考凭证行',
@ -190,49 +230,109 @@ export const InspectionMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber',
value: 0
},
table: {
width: 150
}
},
{
label: '检验方案编码',
field: 'inspectionSchemeCode',
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: '检验类型',
field: 'inspectionType',
sort: 'custom',
isSearch: false,
dictType: DICT_TYPE.INSPECTION_TYPE,
dictClass: 'string',
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
}
},
{
label: '检验阶段',
field: 'inspectionStageCode',
field: 'inspectionStage',
sort: 'custom',
isSearch: false,
form: {
component: 'InputNumber',
value: 0,
componentProps: {
disabled: true
}
},
},
{
label: '检验申请包装列表',
field: 'applicationPackageCode',
label: '检验严格性',
field: 'inspectionStringency',
sort: 'custom',
isSearch: false,
dictType: DICT_TYPE.INSPECTION_SEVERITY,
dictClass: 'string',
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
}
},
// {
// label: '检验申请包装列表',
// field: 'applicationPackageCode',
// sort: 'custom',
// isSearch: false,
// table: {
// width: 150
// }
// },
{
label: '检验水平',
field: 'inspectionLevel',
dictType: DICT_TYPE.INSPECTION_LEVEL,
sort: 'custom',
isSearch: false,
table: {
width: 150
}
},
{
label: 'AQL值',
field: 'aqlValue',
sort: 'custom',
isSearch: false,
dictType: DICT_TYPE.BASIC_AQL,
table: {
width: 150
}
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: false,
dictType: DICT_TYPE.TRUE_FALSE,
table: {
width: 150
}
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
width: 200,
fixed: 'right'
}
}

2
src/views/qms/inspectionMethod/inspectionMethod.data.ts

@ -3,7 +3,6 @@ import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const InspectionMethodRules = reactive({
code: [required],
available: [required],
description: [required],
})
@ -21,6 +20,7 @@ export const InspectionMethod = useCrudSchemas(reactive<CrudSchema[]>([
field: 'code',
sort: 'custom',
isSearch: true,
isForm:false,
},
{
label: '描述',

57
src/views/qms/samplingProcess/index.vue

@ -48,6 +48,7 @@
:apiCreate="SamplingProcessApi.createSamplingProcess"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
@onChange="onChange"
/>
<!-- 详情 -->
@ -65,6 +66,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import {getSamplingScheme} from "@/api/qms/samplingProcess";
defineOptions({ name: 'SamplingProcess' })
@ -226,6 +228,61 @@ const importSuccess = () => {
getList()
}
const onChange =async (field,value)=>{
if(field == 'sampleType'&& value == '1'){
SamplingProcess.allSchemas.formSchema.forEach(item=>{
if(item.field == "sampleSize"){
item.label='样品量'
item.component = 'Input'
item.componentProps.disabled = true
}
if(item.field == "sampleProgCode"){
item.componentProps.disabled = true
}
})
}else if(field == 'sampleType'&& value == '2'){
SamplingProcess.allSchemas.formSchema.forEach(item=>{
if(item.field == "sampleSize"){
item.label='样品量(%)'
item.component = 'Input'
item.componentProps.disabled = false
}
if(item.field == "sampleProgCode"){
item.componentProps.disabled = true
}
})
}else if(field == 'sampleType'&& value == '3'){
SamplingProcess.allSchemas.formSchema.forEach(item=>{
if(item.field == "sampleSize"){
item.label='样品量'
item.component = 'Input'
item.componentProps.disabled = false
}
if(item.field == "sampleProgCode"){
item.componentProps.disabled = true
}
})
}else if(field == 'sampleType'&& value == '4'){
const data = await SamplingProcessApi.getSamplingScheme()
const options = data.map(item=>{
return{
value:item.code,
label:item.description,
}
})
SamplingProcess.allSchemas.formSchema.forEach(item=>{
if(item.field == "sampleSize"){
item.componentProps.disabled = true
}
if(item.field == "sampleProgCode"){
item.component = 'Select'
item.componentProps.disabled = false
item.componentProps.options = options
}
})
}
}
//
const searchFormClick = (searchData) => {
tableObject.params = {

11
src/views/qms/samplingProcess/samplingProcess.data.ts

@ -3,7 +3,6 @@ import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const SamplingProcessRules = reactive({
code: [required],
sampleType: [required],
evaluationMode: [required],
available: [required],
@ -23,6 +22,7 @@ export const SamplingProcess = useCrudSchemas(reactive<CrudSchema[]>([
field: 'code',
sort: 'custom',
isSearch: true,
isForm: false,
},
{
label: '描述',
@ -38,7 +38,7 @@ export const SamplingProcess = useCrudSchemas(reactive<CrudSchema[]>([
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'SelectV2'
component: 'Select'
},
},
{
@ -48,7 +48,7 @@ export const SamplingProcess = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.EVALUATION_MODE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
form: {
component: 'SelectV2'
component: 'Select'
},
},
{
@ -60,6 +60,9 @@ export const SamplingProcess = useCrudSchemas(reactive<CrudSchema[]>([
label: '采样方案编码',
field: 'sampleProgCode',
sort: 'custom',
form: {
component: 'Select'
},
},
{
label: '是否可用',
@ -68,7 +71,7 @@ export const SamplingProcess = useCrudSchemas(reactive<CrudSchema[]>([
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
form: {
component: 'SelectV2'
component: 'Select'
},
},
{

2
src/views/qms/samplingScheme/samplingScheme.data.ts

@ -3,7 +3,6 @@ import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const SamplingSchemeRules = reactive({
code: [required],
available: [required],
description: [required],
})
@ -21,6 +20,7 @@ export const SamplingScheme = useCrudSchemas(reactive<CrudSchema[]>([
field: 'code',
sort: 'custom',
isSearch: true,
isForm: false,
},
{
label: '描述',

9
src/views/system/systemInstallPackage/index.vue

@ -147,8 +147,15 @@ const openForm = (type: string, row?: any) => {
}
if(uploadFile){
uploadFile['componentProps']['upData']['tableId'] = currentTime
uploadFile['componentProps']['modelValue']= []
}
}else if(type=='update'){
const uploadFile = SystemInstallPackage.allSchemas.formSchema.find(item=>item.field=='uploadFile')
uploadFile['componentProps']['modelValue']= [{
name: row.installPackageUrl,
url: row.installPackageUrl,
}]
uploadFile['value'] = row.installPackageUrl
}
basicFormRef.value.open(type, row)
}

5
src/views/system/systemInstallPackage/systemInstallPackage.data.ts

@ -39,6 +39,7 @@ export const SystemInstallPackage = useCrudSchemas(reactive<CrudSchema[]>([
field: 'installPackageUrl',
sort: 'custom',
form: {
value:'',
componentProps: {
disabled: true
},
@ -91,14 +92,16 @@ export const SystemInstallPackage = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
form: {
component: 'UploadFile',
value:'',
componentProps: {
modelValue:'',
upData:{
tableId: '',
tableName: ''
},
limit:1,
fileType:['apk'],
fileSize:35
fileSize:100
}
},
},

261
src/views/wms/agvManage/agvLocationrelation/index.vue

@ -1,10 +1,267 @@
<template>
<ContentWrap>
11
<!-- 搜索工作栏 -->
<Search :schema="AgvLocationrelation.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
</template>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="AgvLocationrelation.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #reqCode="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.reqCode)">
<span>{{ row.reqCode }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="AgvLocationrelationRules"
:formAllSchemas="AgvLocationrelation.allSchemas"
:apiUpdate="AgvLocationrelationApi.updateAgvLocationrelation"
:apiCreate="AgvLocationrelationApi.createAgvLocationrelation"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail
ref="detailRef"
:isBasic="true"
:allSchemas="AgvLocationrelation.allSchemas"
/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/agv-locationrelation/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { AgvLocationrelation,AgvLocationrelationRules } from './agvLocationrelation.data'
import * as AgvLocationrelationApi from '@/api/wms/agvLocationrelation'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
defineOptions({ name: 'AgvLocationrelation' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(AgvLocationrelation.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: AgvLocationrelationApi.getAgvLocationrelationPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:agv-locationrelation:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:agv-locationrelation:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:agv-locationrelation:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:agv-locationrelation:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:agv-locationrelation:delete'}), //
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
if(type == "update"){
AgvLocationrelation.allSchemas.formSchema.forEach((item) => {
if (item.field == 'positionCode') {
item.componentProps.disabled = true
}
if (item.field == 'positionArea') {
item.componentProps.disabled = true
}
})
}else {
AgvLocationrelation.allSchemas.formSchema.forEach((item) => {
if (item.field == 'positionCode') {
item.componentProps.disabled = false
}
if (item.field == 'positionArea') {
item.componentProps.disabled = false
}
})
}
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =AgvLocationrelation.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await AgvLocationrelationApi.createAgvLocationrelation(data)
message.success(t('common.createSuccess'))
} else {
await AgvLocationrelationApi.updateAgvLocationrelation(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicAgvLocationrelation')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await AgvLocationrelationApi.deleteAgvLocationrelation(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await AgvLocationrelationApi.exportAgvLocationrelation(tableObject.params)
download.excel(data, 'AGV库位转换.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: 'AGV库位转换导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await AgvLocationrelationApi.importTemplate()
})
</script>

8
src/views/wms/basicDataManage/factoryModeling/location/location.data.ts

@ -143,6 +143,14 @@ export const Location = useCrudSchemas(reactive<CrudSchema[]>([
// width: 150
// },
// },
{
label: 'QAD库位代码',
field: 'qadLocationCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '巷道',
field: 'aisle',

19
src/views/wms/basicDataManage/strategySetting/strategy/supplieDeliveryStrategy/AddForm.vue

@ -232,6 +232,14 @@
/>
</el-select>
</el-form-item>
<!-- 收货人 -->
<el-form-item label="收货人" prop="Receiver">
<el-input v-model="formData.configuration.Receiver" placeholder="请输入收货人名称" clearable />
</el-form-item>
<!-- 在途库位 -->
<el-form-item label="联系电话" prop="PhoneNumber">
<el-input v-model="formData.configuration.PhoneNumber" placeholder="请输入联系电话" clearable />
</el-form-item>
</el-col>
</el-row>
</div>
@ -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}]
})
//

4
src/views/wms/basicDataManage/supplierManage/supplier/supplier.data.ts

@ -126,7 +126,9 @@ export const Supplier = useCrudSchemas(reactive<CrudSchema[]>([
form: {
component: 'InputNumber',
componentProps: {
min: 0
min: 0,
max: 1,
precision: 6
}
},
table: {

9
src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts

@ -128,6 +128,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
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<CrudSchema[]>([
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
value: 'FALSE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
@ -168,7 +169,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
value: 'FALSE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
@ -187,7 +188,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
value: 'FALSE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
@ -206,7 +207,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true,
form: {
component: 'Switch',
value: 'TRUE',
value: 'FALSE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'

4
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
}
})
})

8
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',

8
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts

@ -50,6 +50,14 @@ export const PurchasereceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 180
},
},
{
label: 'qad采购收货记录单号',
field: 'qadNumber',
sort: 'custom',
table: {
width: 200
},
},
{
label: '要货计划单号',
field: 'ppNumber',

134
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue

@ -63,6 +63,8 @@
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
/>
<!-- 添加明细采购收货记录单号 -->
<SearchTable ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
<!-- 详情 -->
<Detail
@ -181,7 +183,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
} 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) => {

30
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts

@ -271,6 +271,7 @@ export const PurchasereturnRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm:false,
table: {
width: 150
},
@ -668,8 +669,10 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
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<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -705,6 +710,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -758,7 +765,6 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
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<CrudSchema[]>
disabled:true,
type: 'Select',
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -783,6 +791,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -799,6 +809,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -815,6 +827,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -846,7 +860,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
type: 'FormDate',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
isTableForm: false
},
{
label: '生产日期',
@ -874,7 +889,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
type: 'FormDate',
format: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
isTableForm: false
},
{
label: '过期日期',
@ -897,6 +913,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
valueFormat: 'x',
}
},
isTableForm: false,
isTable: false,
tableForm:{
disabled:true,
type: 'FormDate',
@ -933,6 +951,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true
@ -985,6 +1005,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{
disabled:true
},
isTableForm: false,
isTable: false,
form: {
componentProps:{
disabled:true

1
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)
}

4
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts

@ -134,7 +134,9 @@ export const PurchaseMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber',
componentProps: {
style: {width:'100%'},
min: 0
min: 0,
max: 1,
precision: 6,
}
}
},

9
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

@ -48,6 +48,15 @@ export const PurchasePlanMain = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '订单号',
field: 'poNumber',
sort: 'custom',
table: {
width: 150
},
isForm: false,
},
{
label: '送达日期',
field: 'deliveryDate',

Loading…
Cancel
Save