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. 27
      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. 204
      src/views/qms/basicDataManage/inspectionScheme/addForm.vue
  17. 33
      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. 118
      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. 141
      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. 259
      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. 132
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue
  45. 28
      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) => { export const deleteMesOrderMonthSub = async (id: number) => {
return await request.delete({ url: `/plan/mes-order-month-sub/delete?id=` + id }) 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 = () => { export const importTemplate = () => {
return request.download({ url: '/qms/inspection-job-main/get-import-template' }) 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 ) => { export const publishInspectionRecordMain = async (data ) => {
return await request.put({ url: `/qms/inspection-record-main/publish`, 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) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} 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 { } 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) => { 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) => { 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) => { 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) => { 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 // 导出检验申请 Excel
export const exportInspectionMain = async (params) => { 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 = () => { 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) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return request.post({ url: '/wms/accountcalendar/senior', data }) return request.post({ url: '/qms/programme-template/senior', data })
} else { } else {
return await request.get({ url: `/qms/programme-template/page`, params }) 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 = () => { export const importTemplate = () => {
return request.download({ url: '/qms/sampling-process/get-import-template' }) 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 allSchemasRef = ref()
const multipleBol = ref(false) const multipleBol = ref(false)
const searchConditionRef = ref() 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 ) => { 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 searchDialogVisible.value = true
formFieldRef.value = formField formFieldRef.value = formField
@ -137,7 +147,7 @@ const searchFormClick = (searchData) => {
getListRef.value() // getListRef.value() //
} }
defineExpose({ open }) // open defineExpose({ open,openData }) // open
// Table ref // Table ref
const searchTableRef = ref() const searchTableRef = ref()

27
src/components/TableForm/src/TableForm.vue

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

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

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

11
src/utils/validator.ts

@ -339,7 +339,15 @@ export function validateTwoNumThree(rule, value, callback) {
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) { export function validateThreeNum(rule, value, callback) {
if (value) { if (value) {
@ -771,5 +779,6 @@ export default {
validateFamilyPhone, validateFamilyPhone,
validateName, validateName,
validateChargeperson, validateChargeperson,
validateYS validateYS,
validateMaxNumber5
} }

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

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

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

@ -27,9 +27,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '产品编码', // 输入框占位文本 searchListPlaceholder: '请选择产品', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '产品信息', // 查询弹窗标题 searchTitle: '请选择产品', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法
isHideFilterButton:true, isHideFilterButton:true,
@ -55,6 +55,10 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
field: 'productName', field: 'productName',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
table: {
width: 200,
fixed: 'left'
},
isForm: false isForm: false
}, },
{ {
@ -75,13 +79,17 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
field: 'inStoreCode', field: 'inStoreCode',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
table: {
width: 140,
fixed: 'left'
},
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择', // 输入框占位文本 searchListPlaceholder: '请选择仓库', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '仓库编码', // 查询弹窗标题 searchTitle: '请选择仓库', // 查询弹窗标题
searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类 searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类
searchPage: WorehouseApi.getWarehousePage, // 查询弹窗所需分页方法 searchPage: WorehouseApi.getWarehousePage, // 查询弹窗所需分页方法
isHideFilterButton:true, 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: '计划数量', label: '计划数量',
field: 'planCount', field: 'planCount',
@ -102,6 +142,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
form: { form: {
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
},
table: {
width: 120
} }
}, },
{ {
@ -109,40 +152,42 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
field: 'finishCount', field: 'finishCount',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
table: {
width: 120
}
}, },
{ {
label: '合格数量', label: '合格数量',
field: 'qualifiedCount', field: 'qualifiedCount',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
table: {
width: 120
}
}, },
{ {
label: '不合格数量', label: '不合格数量',
field: 'unqualifiedCount', field: 'unqualifiedCount',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
}, table: {
{ width: 120
label: '是否回冲', }
field: 'flagBackwash',
sort: 'custom',
isSearch: true,
isForm: false
},
{
label: '产品批次号',
field: 'productBatchcode',
sort: 'custom',
isSearch: true
}, { }, {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',
sort: 'custom', sort: 'custom',
formatter: dateFormatter, formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
isSearch: true, isSearch: true,
table: {
width: 180
},
search: { search: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -162,6 +207,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
detail: { detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss' dateFormat: 'YYYY-MM-DD HH:mm:ss'
}, },
table: {
width: 180
},
form: { form: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -181,6 +229,9 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
detail: { detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss' dateFormat: 'YYYY-MM-DD HH:mm:ss'
}, },
table: {
width: 180
},
form: { form: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -196,14 +247,28 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
field: 'realStart', field: 'realStart',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
}
}, },
{ {
label: '实际完工日期', label: '实际完工日期',
field: 'realFinish', field: 'realFinish',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm: false isForm: false,
formatter: dateFormatter,
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
table: {
width: 180
}
}, },
{ {
label: '备注', label: '备注',
@ -211,13 +276,6 @@ export const MesOrderMonthSub = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom', sort: 'custom',
isTable: false isTable: false
}, },
{
label: '状态',
field: 'status',
sort: 'custom',
isSearch: true,
isForm: false
},
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',

204
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"> <div style="max-height: 80vh; overflow-y: auto; padding: 0px 20px">
<el-form :model="data" label-width="auto" :rules="rules" ref="formMainRef"> <el-form :model="data" label-width="auto" :rules="rules" ref="formMainRef">
<el-row gutter="20"> <el-row gutter="20">
<el-col :span="12"> <el-col :span="12" v-if="data.code">
<el-form-item label="编码" prop="code"> <el-form-item label="编码" prop="code">
<el-input v-model="data.code" placeholder="根据系统生成" :disabled="true" /> <el-input v-model="data.code" placeholder="根据系统生成" :disabled="true" />
</el-form-item> </el-form-item>
@ -18,7 +18,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="物料编码" prop="itemCode"> <el-form-item label="物料编码" prop="itemCode">
<div style="display: flex; width: 100%"> <div style="display: flex; width: 100%">
<el-input v-model="data.itemName" disabled placeholder="请选择物料编码" /> <el-input v-model="data.itemName" disabled placeholder="请选择物料" />
<el-button <el-button
type="info" type="info"
plain plain
@ -40,6 +40,11 @@
</el-button> </el-button>
</div> </div>
</el-form-item> </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>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="版本" prop="version"> <el-form-item label="版本" prop="version">
@ -81,12 +86,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="检验模板编码" prop="programmeTemplateCode"> <el-form-item label="检验模板" prop="programmeTemplateCode">
<div style="display: flex; width: 100%"> <div style="display: flex; width: 100%">
<el-input <el-input
v-model="data.programmeTemplateName" v-model="data.programmeTemplateName"
disabled disabled
placeholder="请选择检验模板编码" placeholder="请选择检验模板"
/> />
<el-button <el-button
type="info" type="info"
@ -96,7 +101,7 @@
opensearchTable( opensearchTable(
'programmeTemplateCode', 'programmeTemplateCode',
null, null,
'检验模板编码', '检验模板',
InspectionTemplateMain.allSchemas, InspectionTemplateMain.allSchemas,
InspectionTemplateApi.inspectionTemplatePage, InspectionTemplateApi.inspectionTemplatePage,
null, null,
@ -110,6 +115,42 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </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-col :span="12">
<el-form-item label="拆分规则" prop="splitRule"> <el-form-item label="拆分规则" prop="splitRule">
<el-select v-model="data.splitRule" placeholder="请选择拆分规则"> <el-select v-model="data.splitRule" placeholder="请选择拆分规则">
@ -177,7 +218,6 @@
</el-form> </el-form>
<el-tabs <el-tabs
v-model="editableTabsValue" v-model="editableTabsValue"
editable
class="demo-tabs" class="demo-tabs"
@edit="handleTabsEdit" @edit="handleTabsEdit"
type="border-card" type="border-card"
@ -190,6 +230,42 @@
:label="item.description" :label="item.description"
:name="item.name" :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> <div class="small-title">检验工序</div>
<el-form :model="item" label-width="auto" :rules="rules" ref="formProcessRef"> <el-form :model="item" label-width="auto" :rules="rules" ref="formProcessRef">
<el-row :gutter="20"> <el-row :gutter="20">
@ -286,14 +362,14 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="采样过程编码" label="采样过程"
prop="inspectionCharacteristicsBaseVO.inspectionMethod" prop="inspectionCharacteristicsBaseVO.samplingProcessCode"
> >
<div style="display: flex; width: 100%"> <div style="display: flex; width: 100%">
<el-input <el-input
v-model="item.inspectionCharacteristicsBaseVO.inspectionName" v-model="item.inspectionCharacteristicsBaseVO.samplingProcessName"
disabled disabled
placeholder="请选择采样过程编码" placeholder="请选择采样过程"
/> />
<el-button <el-button
type="info" type="info"
@ -301,9 +377,9 @@
style="width: 40px" style="width: 40px"
@click=" @click="
opensearchTable( opensearchTable(
'inspectionMethod', 'samplingProcessCode',
null, null,
'采样过程编码', '采样过程',
SamplingProcess.allSchemas, SamplingProcess.allSchemas,
SamplingProcessApi.getSamplingProcessPage, SamplingProcessApi.getSamplingProcessPage,
[ [
@ -322,45 +398,6 @@
/></el-button> /></el-button>
</div> </div>
</el-form-item> </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-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
@ -515,7 +552,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="选择集编码" label="选择集"
prop="inspectionCharacteristicsBaseVO.quantifyQuantifyCode" prop="inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
v-if="item.inspectionCharacteristicsBaseVO.featureType == 1" v-if="item.inspectionCharacteristicsBaseVO.featureType == 1"
> >
@ -523,7 +560,7 @@
<el-input <el-input
v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyCode" v-model="item.inspectionCharacteristicsBaseVO.quantifyQuantifyCode"
disabled disabled
placeholder="请选择选择集编码" placeholder="请选择选择集"
/> />
<el-button <el-button
type="info" type="info"
@ -533,7 +570,7 @@
opensearchTable( opensearchTable(
'quantifyQuantifyCode', 'quantifyQuantifyCode',
null, null,
'选择集编码', '选择集',
SelectedSet.allSchemas, SelectedSet.allSchemas,
SelectedSetApi.getSelectedSetPage, SelectedSetApi.getSelectedSetPage,
[ [
@ -662,6 +699,8 @@ const data = ref({
effectiveDate: '', effectiveDate: '',
expirationDate: '', expirationDate: '',
available: 'TRUE', available: 'TRUE',
dynamicUpdateCode: '',
description:'',
process: [] process: []
}) })
@ -676,11 +715,14 @@ if (props.basicFormWidth) {
dialogWidth.value = props.isBusiness ? '60%' : '40%' dialogWidth.value = props.isBusiness ? '60%' : '40%'
} }
const rules = ref({ const rules = ref({
itemCode: [{ required: true, message: '请选择物料编码', trigger: 'blur' }], itemCode: [{ required: true, message: '请选择物料', trigger: 'blur' }],
version: [{ 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: [ 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'] }], splitRule: [{ required: true, message: '请选择拆分规则', trigger: ['blur', 'change'] }],
aql: [{ required: true, message: '请选择aql', trigger: ['blur', 'change'] }], aql: [{ required: true, message: '请选择aql', trigger: ['blur', 'change'] }],
@ -691,13 +733,13 @@ const rules = ref({
{ required: true, message: '请填写描述', trigger: ['blur', 'change'] } { required: true, message: '请填写描述', trigger: ['blur', 'change'] }
], ],
'inspectionCharacteristicsBaseVO.inspectionMethodCode': [ 'inspectionCharacteristicsBaseVO.inspectionMethodCode': [
{ required: true, message: '请选择检验方法编码', trigger: 'blur' } { required: true, message: '请选择检验方法', trigger: 'blur' }
], ],
'inspectionCharacteristicsBaseVO.dynamicUpdateCode': [ 'inspectionCharacteristicsBaseVO.samplingProcessCode': [
{ required: true, message: '请选择采样过程编码', trigger: ['blur', 'change'] } { required: true, message: '请选择采样过程', trigger: ['blur', 'change'] }
], ],
'inspectionCharacteristicsBaseVO.inspectionMethod': [ dynamicUpdateCode: [
{ required: true, message: '请选择动态修改规则编码', trigger: ['blur', 'change'] } { required: true, message: '请选择动态修改规则', trigger: ['blur', 'change'] }
], ],
'inspectionCharacteristicsBaseVO.resultEntryMethod': [ 'inspectionCharacteristicsBaseVO.resultEntryMethod': [
{ required: true, message: '请选择结果录入方式', trigger: ['blur', 'change'] } { required: true, message: '请选择结果录入方式', trigger: ['blur', 'change'] }
@ -721,7 +763,7 @@ const rules = ref({
{ required: true, message: '请输入小数位', trigger: 'blur' } { required: true, message: '请输入小数位', trigger: 'blur' }
], ],
'inspectionCharacteristicsBaseVO.quantifyQuantifyCode': [ '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: '', effectiveDate: '',
expirationDate: '', expirationDate: '',
available: 'TRUE', available: 'TRUE',
dynamicUpdateCode:'',
description:"",
process: [] process: []
} }
} }
@ -823,6 +867,7 @@ const buttonBaseClick1 = (val) => {
name: newTabName, name: newTabName,
inspectionCode: '', inspectionCode: '',
sequenceCode: '', sequenceCode: '',
dynamicUpdateCode:'',
inspectionCharCode: '', inspectionCharCode: '',
inspectionCharacteristicsBaseVO: { inspectionCharacteristicsBaseVO: {
describe: '', describe: '',
@ -911,6 +956,7 @@ const submitForm = async () => {
return return
} }
if (formType.value == 'create') { if (formType.value == 'create') {
// //
emit('submitForm', formType.value, data.value) emit('submitForm', formType.value, data.value)
} else { } else {
@ -1018,23 +1064,30 @@ const opensearchTable = (
// //
// val row // val row
const searchTableSuccess = async (formField, searchField, val, type, row) => { const searchTableSuccess = async (formField, searchField, val, type, row) => {
if(type == 'features'){ if (type == 'features') {
row.inspectionCharacteristicsBaseVO[formField] = val[0].code row.inspectionCharacteristicsBaseVO[formField] = val[0].code
if(formField == 'inspectionMethodCode'){ if (formField == 'inspectionMethodCode') {
row.inspectionCharacteristicsBaseVO.inspectionMethodName = val[0].description 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 data.value[formField] = val[0].code
if(formField == 'itemCode'){ if (formField == 'itemCode') {
data.value.itemName = val[0].name data.value.itemName = val[0].name
}else if(formField == 'testTypeCode'){ } else if (formField == 'testTypeCode') {
data.value.testTypeName = val[0].description data.value.testTypeName = val[0].description
}else if(formField == 'programmeTemplateCode'){ } else if (formField == 'programmeTemplateCode') {
data.value.programmeTemplateName = val[0].description data.value.programmeTemplateName = val[0].description
data.value['dynamicUpdateCode'] = val[0].dynamicUpdateCode
data.value.dynamicUpdateName = val[0].dynamicUpdateName
} }
if (formField == 'programmeTemplateCode') { if (formField == 'programmeTemplateCode') {
let list = await InspectionProcessPageApi.getListByTempleteCode(val[0].code) let list = await InspectionProcessPageApi.getListByTempleteCode(val[0].code)
@ -1060,6 +1113,11 @@ const searchTableSuccess = async (formField, searchField, val, type, row) => {
}) })
data.value.process = list 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) // emit('searchTableSuccess', formField, searchField, val, formRef.value, type, row)

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

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

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' } { required: true, message: '请输入选择集编码', trigger: 'blur' }
], ],
}) })
export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([ export const InspectionSchemeMain = useCrudSchemas(reactive<CrudSchema[]>([
{ {
label: '编码', label: '编码',
field: 'code', field: 'code',
@ -77,6 +77,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 220, width: 220,
fixed: 'left' fixed: 'left'
}, },
isSearch:true,
form:{ form:{
componentProps:{ componentProps:{
disabled:true, disabled:true,
@ -84,13 +85,27 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '物料名称',
field: 'itemName',
sort: 'custom',
table: {
width: 150
},
isSearch:true,
},
{ {
label: '物料编码', label: '物料编码',
field: 'itemCode', field: 'itemCode',
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150
} },
isSearch:true,
}, {
label: '描述',
field: 'description',
sort: 'custom',
},{ },{
label: '版本', label: '版本',
field: 'version', field: 'version',
@ -101,6 +116,8 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
},{ },{
label: '检验类型编码', label: '检验类型编码',
field: 'testTypeCode', field: 'testTypeCode',
dictType: DICT_TYPE.INSPECTION_TYPE,
dictClass: 'string',
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150
@ -139,6 +156,7 @@ export const InspectionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
table: { table: {
width: 150 width: 150
}, },
isSearch:true,
},{ },{
label: '生效时间', label: '生效时间',
field: 'effectiveDate', field: 'effectiveDate',

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

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

6
src/views/qms/basicDataManage/inspectionTemplate/index.vue

@ -93,7 +93,7 @@ const { getList, setSearchParams } = tableMethods
// //
const HeadButttondata = [ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:agv-locationrelation:create'}), // defaultButtons.defaultAddBtn({hasPermi:'qms:programme-template:create'}), //
// defaultButtons.defaultImportBtn({hasPermi:'wms:agv-locationrelation:import'}), // // defaultButtons.defaultImportBtn({hasPermi:'wms:agv-locationrelation:import'}), //
// defaultButtons.defaultExportBtn({hasPermi:'wms:agv-locationrelation:export'}), // // defaultButtons.defaultExportBtn({hasPermi:'wms:agv-locationrelation:export'}), //
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
@ -127,8 +127,8 @@ const buttonBaseClick = (val, item) => {
// - // -
const butttondata = [ const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'qms:inspectionTemplate:update'}), // defaultButtons.mainListEditBtn({hasPermi:'qms:programme-template:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'qms:inspectionTemplate:delete'}), // 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: '编码', label: '编码',
field: 'code', field: 'code',
sort: 'custom', sort: 'custom',
isSearch:true,
form:{ form:{
componentProps:{ componentProps:{
disabled:true, disabled:true,
@ -85,6 +86,11 @@ export const InspectionTemplateMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'description', field: 'description',
sort: 'custom', sort: 'custom',
},{ },{
label: '动态修改规则',
field: 'dynamicUpdateName',
sort: 'custom',
},
,{
label: '版本', label: '版本',
field: 'version', field: 'version',
sort: 'custom', sort: 'custom',
@ -127,7 +133,12 @@ export const InspectionTemplateProcess = useCrudSchemas(reactive<CrudSchema[]>([
label: '检验特性编码', label: '检验特性编码',
field: 'inspectionCharCode', field: 'inspectionCharCode',
sort: 'custom', sort: 'custom',
} },
{
label: '动态修改规则编码',
field: 'dynamicUpdateCode',
sort: 'custom',
},
])) ]))
export const InspectionTemplateFeatures= useCrudSchemas(reactive<CrudSchema[]>([ export const InspectionTemplateFeatures= useCrudSchemas(reactive<CrudSchema[]>([
{ {
@ -153,10 +164,6 @@ export const InspectionTemplateFeatures= useCrudSchemas(reactive<CrudSchema[]>([
label: '采样过程编码', label: '采样过程编码',
field: 'inspectionMethod', field: 'inspectionMethod',
sort: 'custom', sort: 'custom',
},{
label: '动态修改规则编码',
field: 'dynamicUpdateCode',
sort: 'custom',
},{ },{
label: '是否允许修改特征值', label: '是否允许修改特征值',
field: 'isCanUpdate', field: 'isCanUpdate',

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

@ -18,6 +18,19 @@
:is-col="true" :is-col="true"
@opensearchTable="opensearchTable" @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 <el-tabs
v-model="editableTabsValue" v-model="editableTabsValue"
class="demo-tabs" class="demo-tabs"
@ -114,11 +127,11 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="采样过程编码" label="采样过程编码"
prop="inspectionJobCharacteristicsUpdateReqVO.inspectionMethod" prop="inspectionJobCharacteristicsUpdateReqVO.samplingProcessCode"
> >
<div style="display: flex; width: 100%"> <div style="display: flex; width: 100%">
<el-input <el-input
v-model="item.inspectionJobCharacteristicsUpdateReqVO.inspectionName" v-model="item.inspectionJobCharacteristicsUpdateReqVO.samplingProcessName"
disabled disabled
placeholder="请选择采样过程编码" placeholder="请选择采样过程编码"
/> />
@ -240,24 +253,24 @@
:span="12" :span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1" v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1"
> >
<el-form-item label="合格数量"> <el-form-item label="合格数量" required>
<el-input v-model="cur.qualifiedQuantity" placeholder="请输入合格数量" /> <el-input v-model="cur.qualifiedQuantity" placeholder="请输入合格数量" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col <el-col
:span="12" :span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1" v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1"
> >
<el-form-item label="不合格数量"> <el-form-item label="不合格数量" required>
<el-input <el-input
v-model="cur.unqualifiedQuantity" v-model="cur.unqualifiedQuantity" type="number"
placeholder="请输入不合格数量" placeholder="请输入不合格数量"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 手动评估的时候显示 --> <!-- 手动评估的时候显示 -->
<el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1"> <el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1">
<el-form-item label="评估代码"> <el-form-item label="评估代码" required>
<el-select <el-select
v-model="cur.estimateCode" v-model="cur.estimateCode"
placeholder="请选择评估代码" placeholder="请选择评估代码"
@ -276,15 +289,15 @@
:span="12" :span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 0" v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 0"
> >
<el-form-item label="检验值" prop="inspectionValue"> <el-form-item label="检验值" required>
<el-input v-model="cur.inspectionValue" placeholder="请输入检验值" /> <el-input v-model="cur.inspectionValue" placeholder="请输入检验值" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col <el-col
:span="12" :span="12"
v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 1" v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == 1"
> >
<el-form-item label="选定集" prop="qualitativeCode"> <el-form-item label="选定集" required>
<el-select <el-select
v-model="cur.qualitativeCode" v-model="cur.qualitativeCode"
placeholder="请选择选定集" placeholder="请选择选定集"
@ -300,8 +313,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1"> <el-col :span="12" v-if="item.samplingProcessRespVO.evaluationMode == 1" >
<el-form-item label="缺陷级别"> <el-form-item label="缺陷级别" required>
<el-select v-model="cur.defectLevel" placeholder="请选择缺陷级别" disabled> <el-select v-model="cur.defectLevel" placeholder="请选择缺陷级别" disabled>
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DEFECT_LEVEL)" 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 { DynamicRule } from '@/views/qms/basicDataManage/dynamicRule/dynamicRule.data' //
import * as SelectedSetApi from '@/api/qms/selectedSet' // import * as SelectedSetApi from '@/api/qms/selectedSet' //
import { SelectedSet } from '@/views/qms/basicDataManage/selectedSet/selectedSet.data' // import { SelectedSet } from '@/views/qms/basicDataManage/selectedSet/selectedSet.data' //
import * as InspectionJobMainApi from '@/api/qms/inspectionJob/inspectionJobMain'
const { proxy } = getCurrentInstance() const { proxy } = getCurrentInstance()
@ -411,7 +425,18 @@ const props = defineProps({
type: Object, type: Object,
required: true, required: true,
default: null default: null
} },
//
tableAllSchemas: {
type: Array,
required: true,
default: null
},
tableFormRules: {
type: Array,
required: true,
default: null
},
}) })
const { t } = useI18n() // const { t } = useI18n() //
@ -424,6 +449,8 @@ const formMainRef = ref()
const formFeaturesRef = ref() const formFeaturesRef = ref()
const formProcessRef = ref() const formProcessRef = ref()
const formSchema = ref(props.formAllSchemas?.formSchema) const formSchema = ref(props.formAllSchemas?.formSchema)
const tableAllSchemas = ref(props.tableAllSchemas)
const tableFormRules = ref(props.tableFormRules)
const data = ref({ const data = ref({
code: '', code: '',
@ -511,6 +538,7 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
console.log(data.value) console.log(data.value)
let list = [] let list = []
list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id) list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id)
data.value.packageVOList = await InspectionJobMainApi.getInspectionJobPackageList(row.id)
list.forEach((item, index) => { list.forEach((item, index) => {
editableTabsValue.value = index + 1 editableTabsValue.value = index + 1
item.name = index + 1 item.name = index + 1
@ -683,17 +711,26 @@ const validateForm = (formRef) => {
return false return false
}) })
} }
const tableFormRef = ref()
const submitForm = async () => { const submitForm = async () => {
try { try {
console.log(data.value.subList) console.log(data.value.subList)
// const validateForm1 = await validateForm(formMainRef.value)
const elForm = unref(formMainRef)?.getElFormRef() const elForm = unref(formMainRef)?.getElFormRef()
// //
if (!elForm) return if (!elForm) return
const valid = await elForm.validate() const valid = await elForm.validate()
if (!valid) return 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) const bol2 = await validateForm(formFeaturesRef.value)
if (!bol2) { if (!bol2) {
message.error(`模板中有检验工序和检验特性未填写完全`) message.error(`模板中有检验工序和检验特性未填写完全`)
@ -753,7 +790,6 @@ const submitForm = async () => {
message.error('检验特性中有开始时间大于结束时间') message.error('检验特性中有开始时间大于结束时间')
return; return;
} }
return;
if (formType.value == 'create') { if (formType.value == 'create') {
// //
emit('submitForm', formType.value, data.value) emit('submitForm', formType.value, data.value)

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

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

11
src/views/qms/inspection/inspectionJob/index.vue

@ -33,6 +33,8 @@
:formAllSchemasFeatures="InspectionTemplateFeatures.allSchemas" :formAllSchemasFeatures="InspectionTemplateFeatures.allSchemas"
:formAllSchemasProcess="InspectionTemplateProcess.allSchemas" :formAllSchemasProcess="InspectionTemplateProcess.allSchemas"
:formAllSchemasMain="InspectionTemplateMain.allSchemas" :formAllSchemasMain="InspectionTemplateMain.allSchemas"
:tableAllSchemas="InspectionJobPackage.allSchemas"
:tableFormRules="InspectionJobPackageRules"
:rules="InspectionJobMainRules" :rules="InspectionJobMainRules"
:formAllSchemas="InspectionJobMain.allSchemas" :formAllSchemas="InspectionJobMain.allSchemas"
@submitForm="submitForm" @submitForm="submitForm"
@ -40,7 +42,8 @@
<!-- 详情 --> <!-- 详情 -->
<Detail <Detail
ref="detailRef" :isBasic="false" :allSchemas="InspectionJobMain.allSchemas" ref="detailRef" :isBasic="false" :allSchemas="InspectionJobMain.allSchemas"
:detailAllSchemas="InspectionJobDetail.allSchemas" :detailAllSchemasRules="InspectionJobDetailRules" :detailAllSchemas="InspectionJobDetail.allSchemas"
:detailAllSchemasRules="InspectionJobDetailRules"
:apiCreate="InspectionJobDetailApi.createInspectionJobDetail" :apiCreate="InspectionJobDetailApi.createInspectionJobDetail"
:apiUpdate="InspectionJobDetailApi.updateInspectionJobDetail" :apiUpdate="InspectionJobDetailApi.updateInspectionJobDetail"
:apiPage="InspectionJobDetailApi.getInspectionJobDetailPage" :apiPage="InspectionJobDetailApi.getInspectionJobDetailPage"
@ -53,17 +56,17 @@
<script setup lang="ts"> <script setup lang="ts">
import download from '@/utils/download' 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 { InspectionTemplateMain,InspectionTemplateProcess,InspectionTemplateFeatures,InspectionTemplateRules } from '../../basicDataManage/inspectionTemplate/inspectionTemplate.data'
import * as InspectionJobMainApi from '@/api/qms/inspectionJob/inspectionJobMain' import * as InspectionJobMainApi from '@/api/qms/inspectionJob/inspectionJobMain'
import * as InspectionJobDetailApi from '@/api/qms/inspectionJob/inspectionJobDetail' import * as InspectionJobDetailApi from '@/api/qms/inspectionJob/inspectionJobDetail'
import * as InspectionJobPackageApi from '@/api/qms/inspectionJob/inspectionJobPackage'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import listTable from '@/components/listTable/src/listTable.vue' import listTable from '@/components/listTable/src/listTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import AddForm from './addForm.vue' import AddForm from './addForm.vue'
import Detail from './detail.vue' import Detail from './detail.vue'
console.log(InspectionJobMain)
// //
defineOptions({ name: 'InspectionJobMain' }) defineOptions({ name: 'InspectionJobMain' })
@ -171,7 +174,7 @@ const listTableRef = ref()
if (val == 'mainJobExe') { // if (val == 'mainJobExe') { //
execute('execute', row) execute('execute', row)
}else if (val == 'mainPackage') { // }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) listTableRef.value.openPackage(row,'包装信息',InspectionJobPackage.allSchemas.tableColumns,list)
} }
else if (val == 'mainJobClo') { // else if (val == 'mainJobClo') { //

118
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 { dateFormatter2 } from '@/utils/formatTime'
import { validateHanset, validateEmail } from '@/utils/validator' import { validateHanset, validateEmail } from '@/utils/validator'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import { validateTwoNum } from '@/utils/validator'
const { t } = useI18n() // 国际化 const { t } = useI18n() // 国际化
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
const resultEntryMethodList = getStrDictOptions(DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY) const resultEntryMethodList = getStrDictOptions(DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY)
@ -28,6 +29,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '申请单号', label: '申请单号',
@ -39,6 +43,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '供应商编码', label: '供应商编码',
@ -50,6 +57,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '物料编码', label: '物料编码',
@ -61,6 +71,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '物料批次', label: '物料批次',
@ -72,10 +85,13 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '订单号', label: '参考订单号',
field: 'orderCode', field: 'referenceOrderCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
form: { form: {
@ -83,10 +99,13 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '订单行', label: '参考订单行',
field: 'orderRow', field: 'referenceOrderRow',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
form: { form: {
@ -96,10 +115,13 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '凭证号', label: '参考凭证号',
field: 'certificateCode', field: 'referenceCertificateCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
form: { form: {
@ -107,10 +129,13 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '凭证行', label: '参考凭证行',
field: 'certificateRow', field: 'referenceCertificateRow',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
form: { form: {
@ -120,6 +145,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验方案编码', label: '检验方案编码',
@ -131,6 +159,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
// { // {
// label: '检验方案Json', // label: '检验方案Json',
@ -148,6 +179,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验批数量', label: '检验批数量',
@ -159,6 +193,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '采样总数量', label: '采样总数量',
@ -170,6 +207,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验类型', label: '检验类型',
@ -184,6 +224,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验批来源', label: '检验批来源',
@ -196,6 +239,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
{ {
@ -210,6 +256,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验严格性', label: '检验严格性',
@ -222,6 +271,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
{ {
@ -233,6 +285,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
{ {
@ -244,6 +299,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
{ {
@ -268,6 +326,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '计划结束时间', label: '计划结束时间',
@ -291,6 +352,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
disabled:true disabled:true
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验水平', label: '检验水平',
@ -303,6 +367,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
{ {
@ -316,6 +383,9 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{ componentProps:{
disabled:true disabled:true
} }
},
table: {
width: 150
} }
}, },
// { // {
@ -347,7 +417,7 @@ export const InspectionJobMain = useCrudSchemas(reactive<CrudSchema[]>([
activeValue: 'TRUE', activeValue: 'TRUE',
disabled:true disabled:true
} }
}, }
}, },
{ {
label: '操作', label: '操作',
@ -415,11 +485,11 @@ export const InspectionJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom', sort: 'custom',
},{ },{
label: '检验方法', label: '检验方法',
field: 'inspectionJobCharacteristicsRespVO.inspectionMethodName', field: 'inspectionJobCharacteristicsRespVO.inspectionMethodCode',
sort: 'custom', sort: 'custom',
},{ },{
label: '采样过程编码', label: '采样过程编码',
field: 'inspectionJobCharacteristicsRespVO.inspectionMethod', field: 'inspectionJobCharacteristicsRespVO.samplingProcessCode',
sort: 'custom', sort: 'custom',
},{ },{
label: '动态修改规则编码', label: '动态修改规则编码',
@ -467,18 +537,27 @@ export const InspectionJobPackage = useCrudSchemas(reactive<CrudSchema[]>([
field: 'number', field: 'number',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
tableForm:{
disabled:true
}
}, },
{ {
label: '包装号', label: '包装号',
field: 'packageCode', field: 'packageCode',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
tableForm:{
disabled:true
}
}, },
{ {
label: '包装规格', label: '包装规格',
field: 'packageSpecificationCode', field: 'packageSpecificationCode',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
tableForm:{
disabled:true
}
}, },
{ {
label: '数量', label: '数量',
@ -489,11 +568,28 @@ export const InspectionJobPackage = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
}, },
tableForm:{
disabled:true
}
}, },
{ {
label: '计量单位', label: '计量单位',
field: 'measuringUnit', field: 'measuringUnit',
sort: 'custom', sort: 'custom',
isSearch: true, 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 InspectionRecordMainApi from '@/api/qms/inspectionRecord/inspectionRecordMain'
import * as InspectionRecordDetailApi from '@/api/qms/inspectionRecord/inspectionRecordDetail' import * as InspectionRecordDetailApi from '@/api/qms/inspectionRecord/inspectionRecordDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as InspectionJobPackageApi from '@/api/qms/inspectionJob/inspectionJobPackage'
import listTable from '@/components/listTable/src/listTable.vue' import listTable from '@/components/listTable/src/listTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import Detail from './detail.vue' import Detail from './detail.vue'
@ -197,7 +196,7 @@
} }
openForm('update', row) openForm('update', row)
}else if (val == 'mainPackage') { // }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) listTableRef.value.openPackage(row,'包装信息',InspectionJobPackage.allSchemas.tableColumns,list)
}else if (val == 'delete') { // }else if (val == 'delete') { //
handleDelete(row.id) handleDelete(row.id)

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

@ -13,105 +13,149 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'number', field: 'number',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '申请编码', label: '申请编码',
field: 'applicationCode', field: 'applicationCode',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '任务编码', label: '任务编码',
field: 'taskCode', field: 'taskCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '供应商编码', label: '供应商编码',
field: 'supplierCode', field: 'supplierCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '物料编码', label: '物料编码',
field: 'materialCode', field: 'materialCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '批次', label: '批次',
field: 'batch', field: 'batch',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '检验方案编码', label: '检验方案编码',
field: 'inspectionSchemeCode', field: 'inspectionSchemeCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '检验方案Json', label: '检验方案Json',
field: 'inspectionSchemeJson', field: 'inspectionSchemeJson',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
isTable:false,
table: {
width: 150
}
}, },
{ {
label: '检验批次', label: '检验批次',
field: 'inspectionBatch', field: 'inspectionBatch',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '检验批数量', label: '检验批数量',
field: 'inspectionBatchAmount', field: 'inspectionBatchAmount',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '采样总数量', label: '采样总数量',
field: 'sampleTatalAmount', field: 'sampleTatalAmount',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '检验类型', label: '检验类型',
field: 'inspectionType', field: 'inspectionType',
dictType: DICT_TYPE.INSPECTION_TYPE,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
form: { form: {
component: 'Select' component: 'Select'
}, },
table: {
width: 150
}
}, },
{ {
label: '检验批来源', label: '检验批来源',
field: 'inspectionBatchSource', field: 'inspectionBatchSource',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '订单号', label: '参考订单号',
field: 'orderCode', field: 'referenceOrderCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '订单行', label: '参考订单行',
field: 'orderRow', field: 'referenceOrderRow',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
@ -119,17 +163,23 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
}, },
table: {
width: 150
}
}, },
{ {
label: '凭证号', label: '参考凭证号',
field: 'certificateCode', field: 'referenceCertificateCode',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false isForm:false,
table: {
width: 150
}
}, },
{ {
label: '凭证行', label: '参考凭证行',
field: 'certificateRow', field: 'referenceCertificateRow',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
@ -137,6 +187,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
}, },
table: {
width: 150
}
}, },
{ {
label: '检验阶段', label: '检验阶段',
@ -148,20 +201,20 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
component: 'InputNumber', component: 'InputNumber',
value: 0 value: 0
}, },
table: {
width: 150
}
}, },
{ {
label: '检验严格性', label: '检验严格性',
field: 'inspectionStringency', field: 'inspectionStringency',
dictType: DICT_TYPE.INSPECTION_SEVERITY,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
}, table: {
{ width: 150
label: '使用决策', }
field: 'useDecision',
sort: 'custom',
isSearch: false,
isForm:false
}, },
{ {
label: '计划开始时间', label: '计划开始时间',
@ -185,6 +238,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x' valueFormat: 'x'
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '计划结束时间', label: '计划结束时间',
@ -208,6 +264,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x' valueFormat: 'x'
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '实际开始时间', label: '实际开始时间',
@ -231,6 +290,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x' valueFormat: 'x'
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '实际结束时间', label: '实际结束时间',
@ -254,27 +316,42 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'x' valueFormat: 'x'
} }
}, },
table: {
width: 150
}
}, },
{ {
label: '检验水平', label: '检验水平',
field: 'inspectionLevel', field: 'inspectionLevel',
dictType: DICT_TYPE.INSPECTION_LEVEL,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
table: {
width: 150
}
}, },
{ {
label: 'AQL值', label: 'AQL值',
field: 'aqlValue', field: 'aqlValue',
dictType: DICT_TYPE.BASIC_AQL,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
table: {
width: 150
}
}, },
{ {
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
dictType: DICT_TYPE.TRUE_FALSE,
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
isForm:false, isForm:false,
table: {
width: 150
}
}, },
{ {
label: '使用决策', label: '使用决策',
@ -282,6 +359,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
dictType: DICT_TYPE.USAGE_DECISION, dictType: DICT_TYPE.USAGE_DECISION,
table: {
width: 150
}
}, },
{ {
@ -299,6 +379,9 @@ export const InspectionRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
isForm: false, isForm: false,
table: {
width: 150
}
}, },
{ {

141
src/views/qms/inspection/inspectionRequest/index.vue

@ -15,13 +15,13 @@
total: tableObject.total total: tableObject.total
}" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage" }" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"> v-model:sort="tableObject.sort">
<template #code="{row}"> <template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)"> <el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.code }}</span> <span>{{ row.number }}</span>
</el-button> </el-button>
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" /> <ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template> </template>
</Table> </Table>
</ContentWrap> </ContentWrap>
@ -37,6 +37,8 @@
<!-- 导入 --> <!-- 导入 -->
<ImportForm ref="importFormRef" url="/request/inspection-main/import" :importTemplateData="importTemplateData" <ImportForm ref="importFormRef" url="/request/inspection-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" /> @success="importSuccess" />
<!-- 包装信息 -->
<listTable ref="listTableRef" titleName="包装信息"/>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -44,9 +46,11 @@
import { InspectionMain, InspectionMainRules } from './inspectionMain.data' import { InspectionMain, InspectionMainRules } from './inspectionMain.data'
import * as InspectionMainApi from '@/api/qms/inspectionRequest' import * as InspectionMainApi from '@/api/qms/inspectionRequest'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import listTable from '@/components/listTable/src/listTable.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue' import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue' import Detail from '@/components/Detail/src/Detail.vue'
import { InspectionJobPackage} from '../inspectionJob/inspectionJobMain.data'
defineOptions({ name: 'InspectionMain' }) defineOptions({ name: 'InspectionMain' })
@ -113,25 +117,134 @@
} }
} }
//
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// - // -
const butttondata = [ const butttondata = (row) => {
defaultButtons.mainListEditBtn({ hasPermi: 'wms:inspectionMain:update' }), // return [
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:inspectionMain:delete' }), // 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) => { 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) openForm('update', row)
} else if (val == 'delete') { // }else if (val == 'mainPackage') { //
handleDelete(row.id) 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 formRef = ref()
const openForm = (type : string, row ?: any) => { const openForm = async (type : string, row ?: number) => {
basicFormRef.value.open(type, row) tableData.value = [] //
formRef.value.open(type, row)
} }
// form // form

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

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

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

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

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

@ -48,6 +48,7 @@
:apiCreate="SamplingProcessApi.createSamplingProcess" :apiCreate="SamplingProcessApi.createSamplingProcess"
@searchTableSuccess="searchTableSuccess" @searchTableSuccess="searchTableSuccess"
:isBusiness="false" :isBusiness="false"
@onChange="onChange"
/> />
<!-- 详情 --> <!-- 详情 -->
@ -65,6 +66,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue' import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue' import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue' import Detail from '@/components/Detail/src/Detail.vue'
import {getSamplingScheme} from "@/api/qms/samplingProcess";
defineOptions({ name: 'SamplingProcess' }) defineOptions({ name: 'SamplingProcess' })
@ -226,6 +228,61 @@ const importSuccess = () => {
getList() 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) => { const searchFormClick = (searchData) => {
tableObject.params = { tableObject.params = {

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

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

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

@ -147,8 +147,15 @@ const openForm = (type: string, row?: any) => {
} }
if(uploadFile){ if(uploadFile){
uploadFile['componentProps']['upData']['tableId'] = currentTime 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) 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', field: 'installPackageUrl',
sort: 'custom', sort: 'custom',
form: { form: {
value:'',
componentProps: { componentProps: {
disabled: true disabled: true
}, },
@ -91,14 +92,16 @@ export const SystemInstallPackage = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom', sort: 'custom',
form: { form: {
component: 'UploadFile', component: 'UploadFile',
value:'',
componentProps: { componentProps: {
modelValue:'',
upData:{ upData:{
tableId: '', tableId: '',
tableName: '' tableName: ''
}, },
limit:1, limit:1,
fileType:['apk'], fileType:['apk'],
fileSize:35 fileSize:100
} }
}, },
}, },

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

@ -1,10 +1,267 @@
<template> <template>
<ContentWrap> <ContentWrap>
11 <!-- 搜索工作栏 -->
<Search :schema="AgvLocationrelation.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap> </ContentWrap>
<!-- 列表头部 -->
<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>
<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"> <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> </script>

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

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

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

@ -232,6 +232,14 @@
/> />
</el-select> </el-select>
</el-form-item> </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-col>
</el-row> </el-row>
</div> </div>
@ -253,6 +261,7 @@ import { getDockList } from '@/api/wms/dock'
import { getLocationList } from '@/api/wms/location' import { getLocationList } from '@/api/wms/location'
import * as RuleApi from '@/api/wms/rule' import * as RuleApi from '@/api/wms/rule'
import { isString } from '@/utils/is' import { isString } from '@/utils/is'
import {validateHanset} from '@/utils/validator'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -291,7 +300,11 @@ const formData = ref({
// //
DockCode: '', DockCode: '',
// //
OnTheWayLocationCode: '' OnTheWayLocationCode: '',
//
Receiver: '',
//
PhoneNumber: ''
} }
}) })
@ -300,7 +313,9 @@ const rules = ref({
strategyCode: [{ required: true, message: '请输入代码', trigger: 'blur' },{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], strategyCode: [{ required: true, message: '请输入代码', trigger: 'blur' },{ max: 50, message: '不得超过50个字符', trigger: 'blur' }],
name: [{ 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' }], 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: { form: {
component: 'InputNumber', component: 'InputNumber',
componentProps: { componentProps: {
min: 0 min: 0,
max: 1,
precision: 6
} }
}, },
table: { 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, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', dictClass: 'string',
isTable: true, isTable: true,
isForm:false,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',
@ -149,7 +150,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true, isTable: true,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'
@ -168,7 +169,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true, isTable: true,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'
@ -187,7 +188,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true, isTable: true,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'
@ -206,7 +207,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isTable: true, isTable: true,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'

4
src/views/wms/countManage/count/countPlanMain/index.vue

@ -747,7 +747,7 @@ const getItembasicAllList = async () => {
allList.value.itembasicAllList = res.map((element) => { allList.value.itembasicAllList = res.map((element) => {
return { return {
value: element.code, value: element.code,
label: element.name label: element.name + '-'+ element.code
} }
}) })
}) })
@ -791,7 +791,7 @@ const getLocationAllList = async () => {
allList.value.locationAllList = res.map((element) => { allList.value.locationAllList = res.map((element) => {
return { return {
value: element.code, 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) => { const butttondata = (row) => {
return [ return [
// defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), // defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), //
// defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-job-main:close'}), // defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-job-main:close'}), //
// defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), // defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), //
// defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2'])}), // defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2'])}), //
{ {
label: '拒收', label: '拒收',
name: 'mainJobClo', name: 'mainJobClo',

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

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

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

@ -63,6 +63,8 @@
@searchTableSuccess="searchTableSuccess" @searchTableSuccess="searchTableSuccess"
@submitForm="submitForm" @submitForm="submitForm"
/> />
<!-- 添加明细采购收货记录单号 -->
<SearchTable ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
<!-- 详情 --> <!-- 详情 -->
<Detail <Detail
@ -181,7 +183,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
} else { } else {
const setV = {} const setV = {}
if(formField == 'purchaseReceiptRecordNumber'){ if(formField == 'purchaseReceiptRecordNumber'){
isShowButton.value = false // isShowButton.value = false
setV[formField] = val[0][searchField] setV[formField] = val[0][searchField]
setV['purchaseReceiptRecordNumber'] = val[0]['number'] setV['purchaseReceiptRecordNumber'] = val[0]['number']
setV['supplierCode'] = val[0]['supplierCode'] setV['supplierCode'] = val[0]['supplierCode']
@ -205,6 +207,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
// item.fromLocationCode = item.fromLocationCode // item.fromLocationCode = item.fromLocationCode
// item.fromLocationGroupCode = item.fromLocationGroupCode // item.fromLocationGroupCode = item.fromLocationGroupCode
}) })
originTableData.value = JSON.parse(JSON.stringify(tableData.value))
PurchasereturnRequestMain.allSchemas.formSchema.forEach((item) => { PurchasereturnRequestMain.allSchemas.formSchema.forEach((item) => {
if (item.field == 'supplierCode') { if (item.field == 'supplierCode') {
@ -422,6 +425,7 @@ const buttonTableClick = async (val, row) => {
/** 添加/修改操作 */ /** 添加/修改操作 */
const formRef = ref() const formRef = ref()
const openForm = async (type: string, row?: number) => { const openForm = async (type: string, row?: number) => {
originTableData.value = [] //
tableData.value = [] // tableData.value = [] //
isShowButton.value = true isShowButton.value = true
if(type == 'create'){ if(type == 'create'){
@ -564,38 +568,110 @@ PurchasereturnRequestDetail.allSchemas.tableFormColumns.forEach((item) => {
tableFormKeys[item.field] = item.default ? item.default : '' tableFormKeys[item.field] = item.default ? item.default : ''
}) })
const tableData = ref([]) const tableData = ref([])
const originTableData = ref([])
const searchTableRef = ref()
// //
const handleAddTable = () => { const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
let purchaseReceiptRecordNumber = formRef.value.formRef.formModel.purchaseReceiptRecordNumber const subTableDFata = originTableData.value.filter(item=> !tableData.value.find(item1=>item1.id == item.id))
PurchasereturnRequestDetail.allSchemas.tableFormColumns.map((item) => { if(subTableDFata.length==0){
item.tableForm.disabled = true message.warning('暂无可选择数据!')
if (item.field == 'remark') { return
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 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) => { const handleDeleteTable = (item, index, formRef) => {

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

@ -271,6 +271,7 @@ export const PurchasereturnRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '部门', label: '部门',
field: 'departmentCode', field: 'departmentCode',
sort: 'custom', sort: 'custom',
isForm:false,
table: { table: {
width: 150 width: 150
}, },
@ -670,6 +671,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
table: { table: {
width: 150 width: 150
}, },
isTableForm: false,
isTable: false,
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
@ -689,6 +692,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -705,6 +710,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -758,7 +765,6 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
dictType: DICT_TYPE.INVENTORY_STATUS, dictType: DICT_TYPE.INVENTORY_STATUS,
dictClass: 'string', dictClass: 'string',
isSearch: true, isSearch: true,
isTable: true,
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150
@ -767,6 +773,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
disabled:true, disabled:true,
type: 'Select', type: 'Select',
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -783,6 +791,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -799,6 +809,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -815,6 +827,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -846,7 +860,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
type: 'FormDate', type: 'FormDate',
dateFormat: 'YYYY-MM-DD', dateFormat: 'YYYY-MM-DD',
valueFormat: 'x', valueFormat: 'x',
} },
isTableForm: false
}, },
{ {
label: '生产日期', label: '生产日期',
@ -874,7 +889,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
type: 'FormDate', type: 'FormDate',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'x', valueFormat: 'x',
} },
isTableForm: false
}, },
{ {
label: '过期日期', label: '过期日期',
@ -897,6 +913,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
valueFormat: 'x', valueFormat: 'x',
} }
}, },
isTableForm: false,
isTable: false,
tableForm:{ tableForm:{
disabled:true, disabled:true,
type: 'FormDate', type: 'FormDate',
@ -933,6 +951,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true
@ -985,6 +1005,8 @@ export const PurchasereturnRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
tableForm:{ tableForm:{
disabled:true disabled:true
}, },
isTableForm: false,
isTable: false,
form: { form: {
componentProps:{ componentProps:{
disabled:true disabled:true

1
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue

@ -140,6 +140,7 @@
setV['contactName']=val[0]['contacts'] setV['contactName']=val[0]['contacts']
setV['contactPhone']=val[0]['phone'] setV['contactPhone']=val[0]['phone']
setV['contactEmail']=val[0]['email'] setV['contactEmail']=val[0]['email']
setV['taxRate']=val[0]['taxRate']
} }
formRef.setValues(setV) 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', component: 'InputNumber',
componentProps: { componentProps: {
style: {width:'100%'}, 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: '送达日期', label: '送达日期',
field: 'deliveryDate', field: 'deliveryDate',

Loading…
Cancel
Save