Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

hella_online_20240829
gaojs 5 months ago
parent
commit
2a4ce80df1
  1. 4
      src/api/wms/packageoverJobMain/index.ts
  2. 4
      src/components/BasicForm/src/BasicForm.vue
  3. 7
      src/components/TableForm/src/TableForm.vue
  4. 13
      src/utils/validator.ts
  5. 274
      src/views/eam/equipmentMainPart/equipmentMainPart.data.ts
  6. 44
      src/views/eam/itemAccounts/index.vue
  7. 3
      src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts
  8. 10
      src/views/eam/sparePartsApplyMain/index.vue
  9. 4
      src/views/qms/aql/aql.data.ts
  10. 1
      src/views/qms/counter/counter.data.ts
  11. 21
      src/views/qms/inspectionJob/addForm.vue
  12. 79
      src/views/qms/inspectionScheme/addForm.vue
  13. 3
      src/views/qms/inspectionScheme/index.vue
  14. 3
      src/views/qms/inspectionTemplate/addForm.vue
  15. 2
      src/views/system/user/index.vue
  16. 27
      src/views/wms/countManage/count/countJobMain/countJobMain.data.ts
  17. 35
      src/views/wms/countManage/count/countRecordMain/countRecordMain.data.ts
  18. 25
      src/views/wms/countManage/count/countRequestMain/countRequestMain.data.ts
  19. 34
      src/views/wms/countManage/countadjust/countadjustRecordMain/countadjustRecordMain.data.ts
  20. 27
      src/views/wms/countManage/countadjust/countadjustRequestMain/countadjustRequestMain.data.ts
  21. 38
      src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverJobMain/index.vue
  22. 18
      src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverJobMain/packageoverJobMain.data.ts
  23. 32
      src/views/wms/issueManage/issue/issueRequestMain/index.vue
  24. 47
      src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts
  25. 9
      src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue
  26. 20
      src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts
  27. 7
      src/views/wms/productionManage/productrepair/productrepairRequestMain/productrepairRequestMain.data.ts
  28. 21
      src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue
  29. 13
      src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts

4
src/api/wms/packageoverJobMain/index.ts

@ -69,6 +69,10 @@ export const updatePackageoverJobMain = async (data: PackageoverJobMainVO) => {
export const deletePackageoverJobMain = async (id: number) => {
return await request.delete({ url: `/wms/packageover-job-main/delete?id=` + id })
}
// 关闭翻包任务主
export const closePackageoverJobMain = async (id: number) => {
return await request.put({ url: `/wms/packageover-job-main/close?id=` + id })
}
// 导出翻包任务主 Excel
export const exportPackageoverJobMain = async (params) => {

4
src/components/BasicForm/src/BasicForm.vue

@ -615,12 +615,14 @@ const submitForm = async () => {
formLoading.value = true
if (formType.value == 'create') {
const validateForm = await tableFormRef.value.validateForm()
if (props.tableFormDataLength) {
if (!validateForm && props.tableFormDataLength) {
if (props.tableData.length == 0) {
message.warning('请填写明细信息!')
formLoading.value = false
return
}
formLoading.value = false
return
}
//
try {

7
src/components/TableForm/src/TableForm.vue

@ -62,8 +62,8 @@
:prop="headerItem.field"
:align="headerItem?.tableForm?.align || 'center'"
:sortable="headerItem?.tableForm?.sortable || false"
:width="headerItem?.tableForm?.width || '200px'"
:min-width="headerItem?.tableForm?.minWidth || 'auto'"
:width="headerItem?.tableForm?.width"
:min-width="headerItem?.tableForm?.minWidth || '200px'"
>
<el-form
ref="TableBaseForm_Ref"
@ -607,6 +607,9 @@ const TableBaseForm_Ref = ref()
const validateForm = () => {
console.log(TableBaseForm_Ref.value)
let _lists = TableBaseForm_Ref.value?.map((v) => v.validate())
if(!_lists ||_lists.length == 0){
return false
}
return Promise.all(_lists)
.then(() => {
return true

13
src/utils/validator.ts

@ -788,6 +788,19 @@ export function validatePercent(rule, value, callback){
}
}
export function validateSampleCode(rule, value, callback){
if (value) {
const orgReg =/[A-Z]/
if (orgReg.test(value)) {
callback()
} else {
callback(new Error('样本字码错误'))
}
} else {
callback()
}
}
export default {
validateCode,
validateEmail,

274
src/views/eam/equipmentMainPart/equipmentMainPart.data.ts

@ -5,148 +5,150 @@ import { dateFormatter } from '@/utils/formatTime'
export const EquipmentMainPartRules = reactive({
name: [required],
code: [required],
type: [required],
type: [required]
})
export const EquipmentMainPart = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '编码',
field: 'code',
sort: 'custom',
isSearch: true,
},
{
label: '名称',
field: 'name',
sort: 'custom',
isSearch: true,
},
{
label: '类型',
field: 'type',
sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Select'
}
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
export const EquipmentMainPart = useCrudSchemas(
reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail: false
},
{
label: '编码',
field: 'code',
sort: 'custom',
isSearch: true
},
isForm: false,
},
{
label: '部门id',
field: 'departmentCode',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: false,
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false,
},
{
label: '删除时间',
field: 'deletionTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
{
label: '名称',
field: 'name',
sort: 'custom',
isSearch: true
},
{
label: '类型',
field: 'type',
sort: 'custom',
dictType: DICT_TYPE.DEVICE_TYPE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isSearch: true,
form: {
component: 'Select'
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
isForm: false
},
{
label: '部门id',
field: 'departmentCode',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail: false
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: false
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail: false
},
{
label: '是否启用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
isTable: true,
isDetail: false,
isSearch: false,
isTableForm: false,
isForm: false
},
{
label: '删除时间',
field: 'deletionTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
isForm: false,
isDetail: false,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
}
},
},
{
label: '删除人id',
field: 'deleterId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
form: {
component: 'InputNumber',
value: 0
{
label: '删除人id',
field: 'deleterId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail: false
},
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail: false,
form: {
component: 'InputNumber',
value: 0
}
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
}
]))
])
)

44
src/views/eam/itemAccounts/index.vue

@ -31,9 +31,9 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
<template #itemNumber="{ row }">
<el-button type="primary" link @click="openDetail(row, '代码', row.itemNumber)">
<span>{{ row.itemNumber }}</span>
</el-button>
</template>
<template #action="{ row }">
@ -42,13 +42,6 @@
@button-base-click="buttonTableClick($event, row)"
/>
</template>
<!-- <template #upload="{ row }">
<ButtonBase
v-if="row.filePathList != null && row.filePathList.length != 0"
:Butttondata="butttondataView(row)"
@button-base-click="buttonTableClick($event, row)"
/>
</template> -->
</Table>
</ContentWrap>
@ -67,7 +60,20 @@
<SearchTable ref="searchTableRef" @searchTableSuccess="submitItem" />
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="ItemAccounts.allSchemas" />
<DetailLedger
ref="detailRef"
:isBasic="true"
:allSchemas="ItemAccounts.allSchemas"
:subTabs="subTabList"
:operationRecordList="operationRecordList"
@handleOperationTabsChange="handleOperationTabsChange"
:detailAllSchemas="detailAllSchemas"
:apiPage="apiPage"
:dialogApiPage="dialogApiPage"
:dialogAllSchemas="dialogAllSchemas"
:dynamicInfoFields="dynamicInfoFields"
funcCode="tool_mould_file"
/>
<!-- 导入 -->
<ImportForm
@ -309,6 +315,20 @@ const openForm = (type: string, row?: any) => {
urls.value = row.filePathList
viewKey.value += 1
} else {
if (type == 'create') {
ItemAccounts.allSchemas.formSchema.forEach((item) => {
if (item.field == 'qty') {
item.componentProps.disabled = false
}
})
} else if (type == 'update') {
ItemAccounts.allSchemas.formSchema.forEach((item) => {
if (item.field == 'qty') {
item.componentProps.disabled = true
}
})
}
basicFormRef.value.open(type, row)
}
}
@ -340,7 +360,7 @@ const formsSuccess = async (formType, data) => {
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicItemAccounts')
detailRef.value.openDetail(row, titleName, titleValue, 'ItemAccounts')
}
/** 删除按钮操作 */

3
src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts

@ -208,7 +208,7 @@ export const SparePartsApplyMain = useCrudSchemas(
isForm: false
},
{
label: '操作11',
label: '操作',
field: 'action',
isForm: false,
table: {
@ -257,7 +257,6 @@ export const SparePartsApplyDetail = useCrudSchemas(
searchListPlaceholder: '请选择备件编号', // 输入框占位文本
searchField: 'itemNumber', // 查询弹窗赋值字段
searchTitle: '备件信息', // 查询弹窗标题
searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
searchCondition: [

10
src/views/eam/sparePartsApplyMain/index.vue

@ -254,11 +254,11 @@ const butttondata = (row) => {
defaultButtons.mainListApproveBtn({
hide: isShowStatusButton(row, ['3']),
hasPermi: 'eam:spare-parts-in-location-main:approve'
}), //
defaultButtons.mainListFinishBtn({
hide: isShowStatusButton(row, ['4']),
hasPermi: 'eam:spare-parts-in-location-main:finish'
}) //
}) //
// defaultButtons.mainListFinishBtn({
// hide: isShowStatusButton(row, ['4']),
// hasPermi: 'eam:spare-parts-in-location-main:finish'
// }) //
]
}

4
src/views/qms/aql/aql.data.ts

@ -1,13 +1,13 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import { getSamplingScheme } from "@/api/qms/aql";
import { validateNum } from "@/utils/validator";
import {validateNum, validateSampleCode} from "@/utils/validator";
// 表单校验
export const AqlRules = reactive({
code: [required],
inspectionQualification: [required],
sampleCharacterCode: [required, {max: 1, message: '长度不得超过1个字符', trigger: 'blur' }],
sampleCharacterCode: [required, {max: 1, message: '长度不得超过1个字符', trigger: 'blur' }, {validator: validateSampleCode, message: '请输入1个大写字母', trigger: 'blur' }],
sampleQty: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
a0separator010: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
r0separator010: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],

1
src/views/qms/counter/counter.data.ts

@ -30,6 +30,7 @@ export const Counter = useCrudSchemas(reactive<CrudSchema[]>([
field: 'inspectionType',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.INSPECTION_TYPE,
table: {
width: 175
}

21
src/views/qms/inspectionJob/addForm.vue

@ -2,7 +2,8 @@
<div>
<Dialog :title="dialogTitle" v-model="dialogVisible" :width="dialogWidth" :close-on-click-modal="false"
:vLoading="formLoading">
<div style="max-height: 80vh; overflow-y: auto; padding: 0px 20px">
<div class="box" style="max-height: 80vh; overflow-y: auto; padding: 0px 20px" ref="mianscroll">
<el-backtop :right="40" :bottom="100" target='.box' @click="topScrollClick"/>
<Form ref="formMainRef" :rules="rules" :schema="formSchema" :is-col="true" @opensearchTable="opensearchTable" />
<div class="small-title">包装列表</div>
<div style="border:1px solid #dedede;margin-bottom:20px;display: flex;">
@ -195,7 +196,7 @@
</el-col>
<el-col :span="12" v-if="item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1">
<el-form-item label="不合格数量" required>
<el-input v-model="cur.unqualifiedQuantity" type="number" placeholder="请输入不合格数量" />
<el-input v-model="cur.unqualifiedQuantity" type="number" placeholder="请输入不合格数量"/>
</el-form-item>
</el-col>
<el-col :span="12" v-if="item.inspectionJobCharacteristicsUpdateReqVO.featureType == '0'">
@ -444,8 +445,8 @@
inspectionValue: '', //
qualitativeCode: '', //
defectLevel: '', //
qualifiedQuantity: '', //
unqualifiedQuantity: '' //
qualifiedQuantity: parseFloat((parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) * parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.samplePieceSize)).toFixed(6)), //
unqualifiedQuantity: '0' //
}
)
}
@ -1031,6 +1032,12 @@
cur.defectLevel = obj.defectLevel
cur.estimateCode = obj.estimateCode
}
const mianscroll =ref()
const topScrollClick=()=> {
nextTick(() => {
mianscroll.value.scrollTo({ top: 550, behavior: 'smooth' });
})
}
</script>
<style scoped>
.small-title {
@ -1042,11 +1049,15 @@
</style>
<style>
.el-tabs--left .el-tabs__header.is-left {
min-height: 700px !important;
padding-bottom: 5000px;
margin-bottom: -5000px;
min-width: 150px !important;
}
.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left {
min-width: 120px !important;
}
.el-backtop{
position: absolute!important;
}
</style>

79
src/views/qms/inspectionScheme/addForm.vue

@ -819,7 +819,77 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
isShowField.value = 0 //isShowField == 0aql
if (row) {
data.value = JSON.parse(JSON.stringify(row))
let list = []
//
if(formType.value == 'create'){
data.value.id = ''
data.value.code = ''
data.value.itemCode = ''
data.value.process= []
let list =[]
if (row.content) {
list = JSON.parse(row.content)
} else {
list = await InspectionProcessPageApi.getListByTempleteCode(row.programmeTemplateCode)
}
let arr = []
list.forEach((item, index) => {
editableTabsValue.value = index + 1
item.name = index + 1
console.log(item.inspectionCharacteristicsBaseVO)
let obj = {
inspectionCode:item.inspectionCode,
description:item.description,
inspectionCharCode:item.inspectionCharCode,
sequenceCode:item.sequenceCode,
name : index + 1,
inspectionCharacteristicsBaseVO:{
description:item.inspectionCharacteristicsBaseVO.description,
featureType:item.inspectionCharacteristicsBaseVO.featureType,
inspectionMethodCode:item.inspectionCharacteristicsBaseVO.inspectionMethodCode,
inspectionMethodName:item.inspectionCharacteristicsBaseVO.inspectionMethodName,
samplingProcessCode:item.inspectionCharacteristicsBaseVO.samplingProcessCode,
isCanUpdate:item.inspectionCharacteristicsBaseVO.isCanUpdate,
isDestructionInspection:item.inspectionCharacteristicsBaseVO.isDestructionInspection,
quantifyCapping:item.inspectionCharacteristicsBaseVO.quantifyCapping,
quantifyDecimal:item.inspectionCharacteristicsBaseVO.quantifyDecimal,
quantifyIsCapping:item.inspectionCharacteristicsBaseVO.quantifyIsCapping,
quantifyIsLowlimit:item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit,
quantifyIsTarget:item.inspectionCharacteristicsBaseVO.quantifyIsTarget,
quantifyLowlimit:item.inspectionCharacteristicsBaseVO.quantifyLowlimit,
quantifyQuantifyCode:item.inspectionCharacteristicsBaseVO.quantifyQuantifyCode,
quantifyQuantifyName:item.inspectionCharacteristicsBaseVO.quantifyQuantifyName,
quantifyTarget:item.inspectionCharacteristicsBaseVO.quantifyTarget,
quantifyUom:item.inspectionCharacteristicsBaseVO.quantifyUom,
resultEntryMethod:item.inspectionCharacteristicsBaseVO.resultEntryMethod,
samplingProcessCode:item.inspectionCharacteristicsBaseVO.samplingProcessCode,
samplingProcessName:item.inspectionCharacteristicsBaseVO.samplingProcessName,
}
}
//
if (item.inspectionCharacteristicsBaseVO.quantifyIsCapping) {
rules.value['inspectionCharacteristicsBaseVO.quantifyCapping'][0].required = true
} else {
rules.value['inspectionCharacteristicsBaseVO.quantifyCapping'][0].required = false
}
if (item.inspectionCharacteristicsBaseVO.quantifyIsLowlimit) {
rules.value['inspectionCharacteristicsBaseVO.quantifyLowlimit'][0].required = true
} else {
rules.value['inspectionCharacteristicsBaseVO.quantifyLowlimit'][0].required = false
}
if (item.inspectionCharacteristicsBaseVO.quantifyIsTarget) {
rules.value['inspectionCharacteristicsBaseVO.quantifyTarget'][0].required = true
} else {
rules.value['inspectionCharacteristicsBaseVO.quantifyTarget'][0].required = false
}
arr.push(obj)
})
data.value.process = arr
console.log(111, data.value)
}else{
let list = []
if (row.content) {
list = JSON.parse(row.content)
} else {
@ -858,6 +928,10 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
rules.value.aql[0].required = false
}
data.value.process = list
}
} else {
data.value = {
code: '',
@ -1323,7 +1397,8 @@ const changeIsTarget = (e, item) => {
</style>
<style>
.el-tabs--left .el-tabs__header.is-left {
min-height: 700px !important;
padding-bottom: 5000px;
margin-bottom: -5000px;
min-width: 150px !important;
}
.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left {

3
src/views/qms/inspectionScheme/index.vue

@ -139,6 +139,7 @@ const butttondata = (row) => {
defaultButtons.mainListEditBtn({hasPermi: 'qms:inspection-scheme:update'}),
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'qms:inspection-scheme:enable'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'qms:inspection-scheme:disable'}),
defaultButtons.mainCopyBtn({hasPermi:'qms:programme-template:copy'}),
]
}
@ -152,6 +153,8 @@ const buttonTableClick = async (val, row) => {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}else if (val == 'copy') {
openForm('create', row)
}
}

3
src/views/qms/inspectionTemplate/addForm.vue

@ -1027,7 +1027,8 @@ const changeIsTarget = (e,item) => {
</style>
<style>
.el-tabs--left .el-tabs__header.is-left {
min-height: 700px !important;
padding-bottom: 5000px;
margin-bottom: -5000px;
min-width: 150px !important;
}
.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left {

2
src/views/system/user/index.vue

@ -90,7 +90,7 @@
</el-row>
<!-- 添加或修改用户对话框 -->
<!-- <UserForm ref="formRef" @success="getList" /> -->
<UserForm ref="formRef" @success="getList" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/system/user/import" :updateIsDisable='true' :coverIsDisable='true' :mode='2' :importTemplateData="importTemplateData" @success="importSuccess" />

27
src/views/wms/countManage/count/countJobMain/countJobMain.data.ts

@ -27,6 +27,33 @@ export const CountJobMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '任务拆分方式',
field: 'countSplitType',
dictType: DICT_TYPE.COUNT_SPLIT_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true,
form: {
value: 'locationCode'
}
},
{
label: '任务拆分值',
field: 'countSplitCode',
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true
},
{
label: '计划单号',
field: 'planNumber',

35
src/views/wms/countManage/count/countRecordMain/countRecordMain.data.ts

@ -40,14 +40,33 @@ export const CountRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
// {
// label: '仓库代码',
// field: 'warehouseCode',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '任务拆分方式',
field: 'countSplitType',
dictType: DICT_TYPE.COUNT_SPLIT_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true,
form: {
value: 'locationCode'
}
},
{
label: '任务拆分值',
field: 'countSplitCode',
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true
},
{
label: '阶段',
field: 'stage',

25
src/views/wms/countManage/count/countRequestMain/countRequestMain.data.ts

@ -90,15 +90,22 @@ export const CountRequestMain = useCrudSchemas(<CrudSchema[]>([
},
isSearch: true,
},
// {
// label: '仓库代码',
// field: 'warehouseCode',
// sort: 'custom',
// table: {
// width: 150
// },
// isSearch: true,
// },
{
label: '任务拆分方式',
field: 'countSplitType',
dictType: DICT_TYPE.COUNT_SPLIT_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true,
form: {
value: 'locationCode'
}
},
{
label: '申请时间',
field: 'requestTime',

34
src/views/wms/countManage/countadjust/countadjustRecordMain/countadjustRecordMain.data.ts

@ -24,22 +24,32 @@ export const CountadjustRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
},
isSearch: true
},
// {
// label: '盘点记录单号',
// field: 'countRecordNumber',
// sort: 'custom',
// table: {
// width: 180
// },
// isSearch: true
// },
{
label: '仓库代码',
field: 'warehouseCode',
label: '任务拆分方式',
field: 'countSplitType',
dictType: DICT_TYPE.COUNT_SPLIT_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true,
form: {
value: 'locationCode'
}
},
{
label: '任务拆分值',
field: 'countSplitCode',
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true
},
{
label: '出库事务类型',
@ -532,4 +542,4 @@ export const CountadjustRecordDetailRules =reactive({
creator: [
{ required: true, message: '请输入创建者', trigger: 'blur' }
],
})
})

27
src/views/wms/countManage/countadjust/countadjustRequestMain/countadjustRequestMain.data.ts

@ -55,6 +55,33 @@ export const CountadjustRequestMain = useCrudSchemas(<CrudSchema[]>([
},
},
{
label: '任务拆分方式',
field: 'countSplitType',
dictType: DICT_TYPE.COUNT_SPLIT_TYPE,
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true,
form: {
value: 'locationCode'
}
},
{
label: '任务拆分值',
field: 'countSplitCode',
dictClass: 'string',
sort: 'custom',
table: {
width: 150
},
isTable:true,
isForm: true
},
// {
// label: '申请单号',
// field: 'requestNumber',

38
src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverJobMain/index.vue

@ -33,9 +33,9 @@
<span>{{ row.number }}</span>
</el-button>
</template>
<!-- <template #action="{ row,$index }">
<template #action="{ row,$index }">
<ButtonBase :Butttondata="butttondata(row,$index)" @button-base-click="buttonTableClick($event,row)" />
</template> -->
</template>
</Table>
</ContentWrap>
@ -138,16 +138,34 @@ const buttonBaseClick = (val, item) => {
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:packageover-job-main:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:packageover-job-main:delete'}), //
]
const butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
if(findIndex>-1&&findIndex<$index){
return []
}
return [
// defaultButtons.mainListEditBtn({hasPermi:'wms:packageover-job-main:update'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:packageover-job-main:close'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:packageover-job-main:delete'}), //
]
}
//
const isShowMainButton = (row, val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
if (val == 'mainClose') { //
//
await message.confirm('确认要关闭吗?')
await PackageoverJobMainApi.closePackageoverJobMain(row.masterId)
//
await getList()
}else if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.masterId)

18
src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverJobMain/packageoverJobMain.data.ts

@ -523,15 +523,15 @@ export const PackageoverJobMain = useCrudSchemas(reactive<CrudSchema[]>([
},
isTable: false
},
// {
// label: '操作',
// field: 'action',
// isForm: false,
// table: {
// width: 150,
// fixed: 'right'
// }
// }
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))
// 表单校验

32
src/views/wms/issueManage/issue/issueRequestMain/index.vue

@ -42,6 +42,8 @@
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
:isOpenSearchTable="true"
fieldTableColumn="itemCode"
@success="getList"
:rules="IssueRequestMainRules"
:formAllSchemas="IssueRequestMain.allSchemas"
@ -57,6 +59,7 @@
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@onEnter="onEnter"
/>
<!-- 详情 -->
@ -104,14 +107,39 @@ const updataTableColumns = (val) => {
tableColumns.value = val
}
const onEnter = async (field,value) => {
if (field == 'productionLineCode') {
//线
let res = await WorkstationApi.getWorkstationPage({
productionLineCode:value,
pageSize: 20,
pageNo: 1
})
if(res&&res.list&&res.list.length>0){
const setV = {}
setV['workStationCode'] = res.list[0].code
formRef.value.formRef.setValues(setV)
}
}
}
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(async() => {
if (type == 'tableForm') {
//
if (formField == 'itemCode') {
row['itemCode'] = val[0]['code']
row['uom'] = val[0]['uom']
val.forEach(item=>{
let tableForm = JSON.parse(JSON.stringify(tableFormKeys))
if (tableData.value.length > 0) {
tableForm.productionLineCode = tableData.value[0].productionLineCode
tableForm.workStationCode = tableData.value[0].workStationCode
}
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableForm,...item}))
newRow['itemCode'] = item['code']
newRow['uom'] = item['uom']
tableData.value.push(newRow)
})
} else {
row[formField] = val[0][searchField]
}

47
src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts

@ -112,6 +112,7 @@ export const IssueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch:true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
@ -161,6 +162,7 @@ export const IssueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch:true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择工位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
@ -766,6 +768,7 @@ export const IssueRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
sortSearchDefault:2,
sortTableDefault:3,
tableForm:{
multiple: true,
enterSearch:true,
isInpuFocusShow: true,
isSearchList: true, // 开启查询弹窗
@ -809,7 +812,27 @@ export const IssueRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '数量',
field: 'qty',
sort: 'custom',
table: {
width: 150
},
hiddenInMain:true,
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
},
form: {
component: 'InputNumber',
componentProps: {
min: 0,
precision: 6
}
}
},
{
label: '计量单位',
@ -991,27 +1014,7 @@ export const IssueRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
isTableForm: false,
isForm: false
},
{
label: '数量',
field: 'qty',
sort: 'custom',
table: {
width: 150
},
hiddenInMain:true,
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
},
form: {
component: 'InputNumber',
componentProps: {
min: 0,
precision: 6
}
}
},
{
label: '从货主代码',
field: 'fromOwnerCode',

9
src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue

@ -118,6 +118,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
newRow['itemCode'] = item['code']
newRow['uom'] = item['uom']
newRow['id'] = item['id']
newRow['toLocationCode'] = formRef.formModel['toLocationCode']
tableData.value.push(newRow)
})
} else {
@ -359,6 +360,7 @@ const tableData = ref([])
//
const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
}
//
const handleDeleteTable = (item, index) => {
@ -376,10 +378,11 @@ const submitForm = async (formType, submitData) => {
if(data.masterId){
data.id = data.masterId
}
tableData.value.forEach(item=>{
item.toLocationCode = data.toLocationCode
})
data.subList = tableData.value //
if( data.subList.length>1){
message.warning('明细只能选择一条数据')
return;
}
if(tableData.value.find(item => (item.qty <= 0))) {
message.warning('数量必须大于0')
formRef.value.formLoading = false

20
src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts

@ -498,6 +498,9 @@ export const RepleinshRequestMainRules = reactive({
autoExecute: [
{ required: true, message: '请选择是否自动执行', trigger: 'change' }
],
toLocationCode: [
{ required: true, message: '请输入到库位代码', trigger: ['change', 'blur']}
],
directCreateRecord: [
{ required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' }
],
@ -541,7 +544,6 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
tableForm:{
isInpuFocusShow: true,
multiple:true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '物料基础信息', // 查询弹窗标题
@ -629,6 +631,20 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '到库位代码',
field: 'toLocationCode',
sort: 'custom',
table: {
width: 150
},
hiddenInMain:true,
sortSearchDefault:1000,
isSearch: true,
sortTableDefault:1100,
// isTableForm: false,
},
// {
// label: '包装号',
@ -784,7 +800,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
sortTableDefault:2,
isTable:false,
},
{
label: '从货主代码',
field: 'fromOwnerCode',

7
src/views/wms/productionManage/productrepair/productrepairRequestMain/productrepairRequestMain.data.ts

@ -118,7 +118,7 @@ export const ProductrepairRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
sortTableDefault:4,
tableForm:{
isInpuFocusShow: true,
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchListPlaceholder: '请选择返修生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '生产线信息', // 查询弹窗标题
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
@ -138,7 +138,7 @@ export const ProductrepairRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
searchListPlaceholder: '请选择返修生产线代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '生产线信息', // 查询弹窗标题
searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
@ -501,6 +501,9 @@ export const ProductrepairRequestMainRules = reactive({
workshopCode: [
{ required: true, message: '请选择车间代码', trigger: 'change' }
],
productionLineCode: [
{ required: true, message: '请选择返修生产线', trigger: 'change' }
],
// dueTime: [
// { required: true, message: '请选择截止时间', trigger: 'change' }
// ],

21
src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue

@ -116,6 +116,7 @@ import * as ProductscrapRequestDetailApi from '@/api/wms/productscrapRequestDeta
import * as StdcostpriceApi from '@/api/wms/stdcostprice'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as BomDismantleApi from "@/api/wms/bomDismantle"
import * as BomApi from "@/api/wms/bom";
//
defineOptions({ name: 'ProductscrapRequestMain' })
@ -314,7 +315,25 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
console.log(res)
row['uom'] = res.uom
row['singlePrice'] = res.price
})
})
// BOM
console.log(formRef.formModel)
const param1 = {
productItemCode: val[0]['itemCode'],
available: 'TRUE',
pageSize: 20,
pageNo: 1,
sort: '',
by: 'ASC',
}
BomApi.getBomPage(param1).then(res => {
console.log(res)
if(res?.list?.length>0){
row['bomVersion'] = res.list[0].version
}
// row['singlePrice'] = res.price
})
}else if(formField == 'bomVersion'){
row['bomVersion'] = val[0]['version']
}

13
src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts

@ -740,7 +740,8 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150,
},
isForm: false,
isTable:true,
isTable:false,
isTableForm:false,
},
{
label: '报废数量',
@ -802,7 +803,9 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
type: 'InputNumber',
min: 0,
precision: 6
}
},
isTable:false,
isTableForm:false,
},
{
label: '金额',
@ -825,6 +828,8 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
min: 0,
precision: 6,
},
isTable:false,
isTableForm:false,
},
{
label: '来源库位',
@ -840,7 +845,9 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
componentProps:{
disabled: true
}
}
},
isTable:false,
isTableForm:false,
},
{

Loading…
Cancel
Save