Browse Source

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

hella_online_20240829
gaojs 4 months ago
parent
commit
fdf774aebc
  1. 704
      src/components/BasicForm/src/BasicForm.vue
  2. 2
      src/views/qms/inspectionJob/inspectionJobMain.data.ts
  3. 17
      src/views/wms/basicDataManage/itemManage/bom/bom.data.ts
  4. 3
      src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts
  5. 1848
      src/views/wms/issueManage/issue/issueJobMain/issueJobMain.data.ts
  6. 1554
      src/views/wms/issueManage/issue/issueRecordMain/issueRecordMain.data.ts
  7. 1958
      src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts
  8. 6
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue
  9. 12
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts
  10. 98
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue
  11. 16
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts

704
src/components/BasicForm/src/BasicForm.vue

@ -7,131 +7,136 @@
:vLoading="formLoading"
@updateFullscreen="updateFullscreen"
>
<div
style="overflow-y: auto;" :style="{'max-height':formHeight}">
<Form
ref="formRef"
:rules="rules"
:schema="formSchema"
:is-col="true"
@opensearchTable="opensearchTable"
@hiddenFilterButton="hiddenSearchTableFilterButton"
@changeDialogWidth="changeDialogWidth"
@clearSearchInput="clearSearchInput"
@onChange="onChange"
@onBlur="onBlur"
@onEnter="onEnter"
>
<template #crontab="formSchema1" v-if="fromeWhere == 'countPlan'">
<crontab v-model="formSchema1.crontab" :disabled="formSchema?.find(item=>item.field == 'crontab')?.componentProps?.disabled "/>
</template>
<template #type="formSchema" v-if="fromeWhere == 'countPlan'">
<el-select
v-model="formSchema.type"
placeholder="选择盘点类型"
@change="selectChange('type', $event)"
v-if="!isDetail"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.COUNT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<el-select
v-model="formSchema.type"
placeholder="选择盘点范围类型"
@change="selectChangeDetail('type', $event,formSchema)"
v-if="isDetail"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</template>
<template #value="formSchema" v-if="fromeWhere == 'countPlan'">
<el-select
v-model="formSchema.value"
placeholder="选择盘点范围值"
multiple
v-if="isDetail&& formTypeDetail =='Select'"
>
<el-option
v-for="dict in countPlanAllList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
<div style="overflow-y: auto" :style="{ 'max-height': formHeight }">
<Form
ref="formRef"
:rules="rules"
:schema="formSchema"
:is-col="true"
@opensearchTable="opensearchTable"
@hiddenFilterButton="hiddenSearchTableFilterButton"
@changeDialogWidth="changeDialogWidth"
@clearSearchInput="clearSearchInput"
@onChange="onChange"
@onBlur="onBlur"
@onEnter="onEnter"
>
<template #crontab="formSchema1" v-if="fromeWhere == 'countPlan'">
<crontab
v-model="formSchema1.crontab"
:disabled="
formSchema?.find((item) => item.field == 'crontab')?.componentProps?.disabled
"
/>
</el-select>
<el-input v-model="formSchema.value" v-if="isDetail && formTypeDetail =='InputString'"/>
</template>
</Form>
<div class="table" v-if="isBusiness && formType == 'create' && fromeWhere != 'countPlan'">
<TableForm
ref="tableFormRef"
class="w-[100%]"
:maxHeight = "490"
:tableFields="tableAllSchemas.tableFormColumns"
:tableData="tableData"
:tableFormRules="tableFormRules"
:isShowButton="isShowButton"
:isShowReduceButton="isShowReduceButton"
:isShowReduceButtonSelection="isShowReduceButtonSelection"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@tableSelectionChange="tableSelectionChange"
@tableSelectionDelete="tableSelectionDelete"
@extendedButtonsClick="extendedButtonsClick"
@formSelectChange="formSelectChange"
@formSelectvVisibleChange="formSelectvVisibleChange"
@tableSortChange="tableSortChange"
@selectCallback="selectCallback"
@handleTableSelect="handleTableSelect"
@inpuFocus="inpuFocus"
@buttonOperationClick="buttonOperationClick"
@inputStringBlur="inputStringBlur"
@inputNumberChange="inputNumberChange"
@tableFormSelectOnBlur="tableFormSelectOnBlur"
@formFormDateChange="formFormDateChange"
@clearInput='clearInput'
</template>
<template #type="formSchema" v-if="fromeWhere == 'countPlan'">
<el-select
v-model="formSchema.type"
placeholder="选择盘点类型"
@change="selectChange('type', $event)"
v-if="!isDetail"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.COUNT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<el-select
v-model="formSchema.type"
placeholder="选择盘点范围类型"
@change="selectChangeDetail('type', $event, formSchema)"
v-if="isDetail"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</template>
<template #value="formSchema" v-if="fromeWhere == 'countPlan'">
<el-select
v-model="formSchema.value"
placeholder="选择盘点范围值"
multiple
v-if="isDetail && formTypeDetail == 'Select'"
>
<el-option
v-for="dict in countPlanAllList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<el-input v-model="formSchema.value" v-if="isDetail && formTypeDetail == 'InputString'" />
</template>
</Form>
<div class="table" v-if="isBusiness && formType == 'create' && fromeWhere != 'countPlan'">
<TableForm
ref="tableFormRef"
class="w-[100%]"
:maxHeight="490"
:tableFields="tableAllSchemas.tableFormColumns"
:tableData="tableData"
:tableFormRules="tableFormRules"
:isShowButton="isShowButton"
:isShowReduceButton="isShowReduceButton"
:isShowReduceButtonSelection="isShowReduceButtonSelection"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@tableSelectionChange="tableSelectionChange"
@tableSelectionDelete="tableSelectionDelete"
@extendedButtonsClick="extendedButtonsClick"
@formSelectChange="formSelectChange"
@formSelectvVisibleChange="formSelectvVisibleChange"
@tableSortChange="tableSortChange"
@selectCallback="selectCallback"
@handleTableSelect="handleTableSelect"
@inpuFocus="inpuFocus"
@buttonOperationClick="buttonOperationClick"
@inputStringBlur="inputStringBlur"
@inputNumberChange="inputNumberChange"
@tableFormSelectOnBlur="tableFormSelectOnBlur"
@formFormDateChange="formFormDateChange"
@clearInput="clearInput"
@batchAdd="batchAdd"
:routeName="routeName"
@visibleChange='visibleChange'
>
<template v-slot="{row}">
<slot :row="row"></slot>
</template>
</TableForm>
</div>
<div v-if="isBusiness && formType == 'create' && fromeWhere == 'countPlan'">
<TableFormCountPlan
:tableFields="tableAllSchemas.tableFormColumns"
:tableData="tableData"
:countScopeType="countScopeType"
:tableFormRules="tableFormRules"
ref="tableFormRef"
@tableFormChange="tableFormChange"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
/>
@visibleChange="visibleChange"
>
<template v-slot="{ row }">
<slot :row="row"></slot>
</template>
</TableForm>
</div>
<div v-if="isBusiness && formType == 'create' && fromeWhere == 'countPlan'">
<TableFormCountPlan
:tableFields="tableAllSchemas.tableFormColumns"
:tableData="tableData"
:countScopeType="countScopeType"
:tableFormRules="tableFormRules"
ref="tableFormRef"
@tableFormChange="tableFormChange"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
/>
</div>
</div>
</div>
<template #footer >
<template #footer>
<slot name="foorter"></slot>
<ButtonBase :Butttondata="Butttondata" @button-base-click="buttonBaseClick" />
</template>
</Dialog>
<SearchTable ref="searchTableRef" :showSearchTableQueryFields="showSearchTableQueryFields" @searchTableSuccess="searchTableSuccess" >
<SearchTable
ref="searchTableRef"
:showSearchTableQueryFields="showSearchTableQueryFields"
@searchTableSuccess="searchTableSuccess"
>
<template v-for="name in Object.keys($slots)" :key="name" #[name]>
<slot :name="name"></slot>
</template>
<slot :name="name"></slot>
</template>
</SearchTable>
</template>
<script setup lang="ts">
@ -140,9 +145,10 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import ButtonBase from '@/components/XButton/src/ButtonBase.vue'
import TableForm from '@/components/TableForm/src/TableForm.vue'
import TableFormCountPlan from '@/components/TableFormCountPlan/src/TableFormCountPlan.vue'
import {DICT_TYPE, getStrDictOptions} from '@/utils/dict'
import { tableFormBlurVer,FormBlur,getListByBottonInput } from '@/api/wms/business/business'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import { tableFormBlurVer, FormBlur, getListByBottonInput } from '@/api/wms/business/business'
import { isString } from 'min-dash'
const props = defineProps({
//
basicFormWidth: {
@ -155,9 +161,9 @@ const props = defineProps({
default: true
},
// --
isShowReduceButtonSelection:{
isShowReduceButtonSelection: {
type: Boolean,
default: false,
default: false
},
// tableForm
isShowReduceButton: {
@ -290,13 +296,13 @@ const props = defineProps({
default: null
},
//
isOpenSearchTable:{
isOpenSearchTable: {
type: Boolean,
required: false,
default: false
},
fieldTableColumn:{
fieldTableColumn: {
type: String,
required: false,
default: ''
@ -306,36 +312,32 @@ const props = defineProps({
formField:form中对应的field,
tableField:searchtable中对应的field,
}]*/
sumFormDataField:{
sumFormDataField: {
type: Array,
required: false,
default: null
},
sumFormDataByForm:{
type:Function,
sumFormDataByForm: {
type: Function,
required: false,
default: null
},
sumFormDataByTableCustom:{
type:Function,
sumFormDataByTableCustom: {
type: Function,
required: false,
default: null
},
showSearchTableQueryFields:{
showSearchTableQueryFields: {
type: Array,
required: false,
default: []
},
byCodespageApi: {
type: Function,
required: true,
default: null
}, //
byCodesParams: {
type: Object,
required: true,
default: null
} //
//
isJiaoyan: {
type: Boolean,
required: false,
default: false
}
})
const { t } = useI18n() //
@ -347,8 +349,8 @@ if (props.basicFormWidth) {
dialogWidth.value = props.isBusiness ? '60%' : '40%'
}
const formHeight = ref('60vh')
const updateFullscreen = (isFullscreen)=>{
formHeight.value = isFullscreen?'auto':'60vh'
const updateFullscreen = (isFullscreen) => {
formHeight.value = isFullscreen ? 'auto' : '60vh'
}
const dialogVisible = ref(false) //
@ -363,7 +365,7 @@ const tableFormRules = ref(props.tableFormRules)
const route = useRoute() //
const routeName = ref('')
routeName.value = route.name
const isExecute = ref(true)//true
const isExecute = ref(true) //true
// -
// const buttondata = [
@ -373,9 +375,9 @@ const isExecute = ref(true)//如果走失去焦点的方法只有为true的时
// // -
// const buttonTableClick = async (val, row) => {
// if (val == 'edit') {
// } else if (val == 'delete') {
// } else {
// }
// }
@ -396,7 +398,7 @@ const opensearchTable = (
multiple,
type,
row,
isConcatDetailSchemas=false,
isConcatDetailSchemas = false,
searchDetailSchemas: any
) => {
const _searchCondition = {}
@ -404,8 +406,8 @@ const opensearchTable = (
if (searchCondition && searchCondition.length > 0) {
//
let filters: any[] = []
for (var i=0; i< searchCondition.length; i++ ) {
// searchCondition.forEach((item) => {
for (var i = 0; i < searchCondition.length; i++) {
// searchCondition.forEach((item) => {
// row
if (searchCondition[i].isMainValue) {
_searchCondition[searchCondition[i].key] = formRef.value.formModel[searchCondition[i].value]
@ -417,19 +419,26 @@ const opensearchTable = (
: ''
//
let isNull = false
if (_searchCondition[searchCondition[i].key] == '' || _searchCondition[searchCondition[i].key] == undefined) {
if (
_searchCondition[searchCondition[i].key] == '' ||
_searchCondition[searchCondition[i].key] == undefined
) {
isNull = true
}
if (isNull) {
message.warning(searchCondition[i].message?searchCondition[i].message:'前置条件未选择!')
message.warning(
searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
)
return
}
}else if(searchCondition[i].isTableRowValue){
if(searchCondition[i].required){
if (row[searchCondition[i].value] == '' ||row[searchCondition[i].value] == undefined) {
message.warning(searchCondition[i].message?searchCondition[i].message:'前置条件未选择!')
return
}
} else if (searchCondition[i].isTableRowValue) {
if (searchCondition[i].required) {
if (row[searchCondition[i].value] == '' || row[searchCondition[i].value] == undefined) {
message.warning(
searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
)
return
}
}
row[searchCondition[i].value]
//table
@ -439,10 +448,15 @@ const opensearchTable = (
if (searchCondition[i].isSearch) {
if (searchCondition[i].isFormModel) {
//formModel
if(searchCondition[i].required){
if (formRef.value.formModel[searchCondition[i].value] == '' ||formRef.value.formModel[searchCondition[i].value] == undefined) {
message.warning(searchCondition[i].message?searchCondition[i].message:'前置条件未选择!')
return
if (searchCondition[i].required) {
if (
formRef.value.formModel[searchCondition[i].value] == '' ||
formRef.value.formModel[searchCondition[i].value] == undefined
) {
message.warning(
searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
)
return
}
}
filters.push({
@ -450,14 +464,13 @@ const opensearchTable = (
column: searchCondition[i].key,
value: formRef.value.formModel[searchCondition[i].value]
})
}else{
} else {
filters.push({
action: searchCondition[i].action,
column: searchCondition[i].key,
value: searchCondition[i].value
})
}
} else {
_searchCondition[searchCondition[i].key] = searchCondition[i].value
}
@ -488,50 +501,76 @@ const opensearchTable = (
}
// searchTable
const changeDialogWidth = (width)=>{
const changeDialogWidth = (width) => {
searchTableRef.value.changeDialogWidth(width)
}
const hiddenSearchTableFilterButton = ()=>{
const hiddenSearchTableFilterButton = () => {
searchTableRef.value.hiddenFilterButton()
}
const clearSearchInput = (field)=>{
emit('clearSearchInput',field)
const clearSearchInput = (field) => {
emit('clearSearchInput', field)
}
const sumFormDataByTable = () => {
if(props.sumFormDataField){
if (props.sumFormDataField) {
const sumObject = {}
props.sumFormDataField.forEach(sumItem=>{
sumObject[sumItem?.formField]= props.tableData.reduce((prev, item) => prev + item[sumItem?.tableField],0)
props.sumFormDataField.forEach((sumItem) => {
sumObject[sumItem?.formField] = props.tableData.reduce(
(prev, item) => prev + item[sumItem?.tableField],
0
)
})
nextTick(()=>{
nextTick(() => {
formRef.value.setValues(sumObject)
})
}
}
watch(()=>props.tableData,() => {
sumFormDataByTable()
if(props?.sumFormDataByTableCustom&&unref(formRef)?.formModel&&props.tableData){
props?.sumFormDataByTableCustom(formRef,unref(formRef)?.formModel,props.tableData)
watch(
() => props.tableData,
() => {
sumFormDataByTable()
if (props?.sumFormDataByTableCustom && unref(formRef)?.formModel && props.tableData) {
props?.sumFormDataByTableCustom(formRef, unref(formRef)?.formModel, props.tableData)
}
},
{
deep: true
}
},{
deep:true
})
)
let originFormModel = {}
const updateOriginFormModel = (data)=>{
const updateOriginFormModel = (data) => {
originFormModel = JSON.parse(JSON.stringify(data))
}
const sumFormDataHandle1 = ()=>{
emit('sumFormDataHandle',formRef,unref(formRef)?.formModel,props.tableData,formType.value,originFormModel,updateOriginFormModel)
const sumFormDataHandle1 = () => {
emit(
'sumFormDataHandle',
formRef,
unref(formRef)?.formModel,
props.tableData,
formType.value,
originFormModel,
updateOriginFormModel
)
}
watch(()=>unref(formRef)?.formModel,async () => {
if(props?.sumFormDataByForm&&unref(formRef)?.formModel){
props?.sumFormDataByForm(formRef,unref(formRef)?.formModel,props.tableData,formType.value,originFormModel,updateOriginFormModel,sumFormDataHandle1)
watch(
() => unref(formRef)?.formModel,
async () => {
if (props?.sumFormDataByForm && unref(formRef)?.formModel) {
props?.sumFormDataByForm(
formRef,
unref(formRef)?.formModel,
props.tableData,
formType.value,
originFormModel,
updateOriginFormModel,
sumFormDataHandle1
)
}
},
{
deep: true
}
},{
deep:true
})
)
//
// val row
@ -540,11 +579,17 @@ const searchTableSuccess = (formField, searchField, val, type, row) => {
}
/** 打开弹窗 */
const open = async (type: string, row?: any, masterParmas?: any, titleName?: any, alltitleName?: any) => {
const open = async (
type: string,
row?: any,
masterParmas?: any,
titleName?: any,
alltitleName?: any
) => {
dialogVisible.value = true
if(alltitleName){
if (alltitleName) {
dialogTitle.value = alltitleName
}else if (titleName) {
} else if (titleName) {
dialogTitle.value = t('action.' + titleName)
} else {
dialogTitle.value = t('action.' + type)
@ -574,22 +619,25 @@ const open = async (type: string, row?: any, masterParmas?: any, titleName?: any
}
//
const handleAddTable = () => {
if(props.isOpenSearchTable){
if (props.isOpenSearchTable) {
const tableFormKeys = {}
tableAllSchemas.value.tableFormColumns.forEach(item => {
tableAllSchemas.value.tableFormColumns.forEach((item) => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
if(props.fieldTableColumn!=''){
inpuFocus(tableAllSchemas.value.tableFormColumns.find(item=>item.field==props.fieldTableColumn),tableFormKeys,0)
if (props.fieldTableColumn != '') {
inpuFocus(
tableAllSchemas.value.tableFormColumns.find((item) => item.field == props.fieldTableColumn),
tableFormKeys,
0
)
}
}else{
} else {
emit('handleAddTable')
}
}
/** 弹窗按钮 */
let Butttondata:any = []
let Butttondata: any = []
if (props.isShowFooterButtton) {
Butttondata = [
defaultButtons.formSaveBtn(null), //
@ -604,9 +652,9 @@ if (props.footButttondata) {
const buttonBaseClick = (val) => {
//
if (props.footButttondata) {
emit('footButtonClick',val)
}
//
emit('footButtonClick', val)
}
//
else if (val == 'save') {
submitForm()
}
@ -708,15 +756,15 @@ const emit = defineEmits([
'visibleChange'
])
const visibleChange = (field, val, row, index) => {
emit('visibleChange',field, val, row, index)
emit('visibleChange', field, val, row, index)
}
//
const formSelectChange = (field, val, row) => {
emit('formSelectChange', field, val, row)
}
//
const formFormDateChange = (field, val,row, index) => {
emit('formFormDateChange', field, val,row, index)
const formFormDateChange = (field, val, row, index) => {
emit('formFormDateChange', field, val, row, index)
}
const formSelectvVisibleChange = (field, val, row) => {
emit('formSelectvVisibleChange', field, val, row)
@ -753,14 +801,11 @@ const handleTableSelect = (row, column, event) => {
//
const handleDeleteTable = (row, index) => {
emit('handleDeleteTable', row, index,formRef.value)
emit('handleDeleteTable', row, index, formRef.value)
}
//
const inpuFocus = (headerItem, row, index) => {
emit('inpuFocus', headerItem, row, index)
opensearchTable(
@ -778,7 +823,7 @@ const inpuFocus = (headerItem, row, index) => {
)
}
const clearInput = (field, row, index) => {
emit('clearInput',field, row, index)
emit('clearInput', field, row, index)
}
/**
* 监听改变事件
@ -796,48 +841,31 @@ const onChange = (field, cur) => {
*/
const onBlur = async (field, e) => {
isExecute.value = false
if (
field == 'supplierCode' ||
field == 'itemCode' ||
field == 'productItemCode' ||
field == 'componentItemCode' ||
field == 'packUnit' ||
field == 'inPackUnit' ||
field == 'fromPackingNumber'
) {
await FormBlur(
field,
e,
routeName.value,
formRef.value,
props.detailData,
formSchema.value,
(searchField, list) => {
emit('searchTableSuccess', field, searchField, list, formRef.value, 'form')
}
)
} else {
let formSchemaObj = formSchema.value.find((item) => item.field == field)
let searchCondition1 = formSchema.value.find((item) => item.field == field).componentProps
.searchCondition //data.ts
if (formSchemaObj?.componentProps?.enterSearch) {
let formSchemaObj = formSchema.value.find((item) => item.field == field)?.componentProps
if (formSchemaObj?.enterSearch) {
if (formSchemaObj.verificationPage) {
let searchCondition1 = formSchema.value.find((item) => item.field == field).componentProps
.searchCondition //data.ts
let verificationParams = formSchema.value.find((item) => item.field == field).componentProps
.verificationParams //
console.log('走新方法啦')
if (e && isString(e)) {
let setV = {}
setV[field] = ''
let obj = {}
console.log(233,searchCondition1)
let params = {}
// keyvalue
if (searchCondition1 && searchCondition1.length > 0) {
for (let i = 0; i < searchCondition1.length; i++) {
if (searchCondition1[i].isMainValue) {
obj[searchCondition1[i].key] = formRef.value.formModel[searchCondition1[i].value]
params[searchCondition1[i].key] = formRef.value.formModel[searchCondition1[i].value]
? formRef.value.formModel[searchCondition1[i].value]
: props.detailData
? props.detailData[searchCondition1[i].value]
: ''
//
let isNull = false
if (obj[searchCondition1[i].key] == '' || obj[searchCondition1[i].key] == undefined) {
if (params[searchCondition1[i].key] == '' || params[searchCondition1[i].key] == undefined) {
isNull = true
}
if (isNull) {
@ -865,120 +893,188 @@ console.log(233,searchCondition1)
}
}
}
obj[searchCondition1[i].key] = searchCondition1[i].value
params[searchCondition1[i].key] = searchCondition1[i].value
} else {
obj[searchCondition1[i].key] = searchCondition1[i].value
params[searchCondition1[i].key] = searchCondition1[i].value
}
}
}
}
if (!formSchemaObj?.componentProps.multiple && e.indexOf(',') > -1) {
// keyvalue
if (verificationParams && verificationParams.length > 0) {
for (let i = 0; i < verificationParams.length; i++) {
params[verificationParams[i].key] = e?.trim()
}
}
console.log(333,params)
if (!formSchemaObj?.multiple && e.indexOf(',') > -1) {
message.alert('该输入框只能输入一条数据')
formRef.value.setValues(setV)
return
}
if (props.byCodespageApi) {
let params = {}
if (props.byCodesParams) {
params = { ...props.byCodesParams, ...obj, codes: e }
} else {
params = { ...obj, codes: e }
await formSchemaObj.verificationPage(params).then((res) => {
let arr1 = e.split(',')
let list = ref([])
list.value = res
console.log(222, list.value)
if (list.value?.length == 0) {
message.alert('暂无数据')
formRef.value.setValues(setV)
return
}
await props.byCodespageApi(params).then((res) => {
let arr1 = e.split(',')
let list = ref([])
list.value = res
if (list.value?.length == 0) {
message.alert('暂无数据')
formRef.value.setValues(setV)
return
}
if (arr1.length != list.value.length) {
let arr2 = list.value.map((item) => item.code)
let str = [
...arr1.filter((item) => !arr2.includes(item)),
...arr2.filter((item) => !arr1.includes(item))
].join(',')
message.alert('代码' + str + '没有找到对应数据')
formRef.value.setValues(setV)
return
}
emit(
'searchTableSuccess',
field,
searchCondition1.searchField,
list,
formRef.value,
'form'
)
})
}
if (arr1.length != list.value.length) {
let arr2 = list.value.map((item) => item.code)
let str = [
...arr1.filter((item) => !arr2.includes(item)),
...arr2.filter((item) => !arr1.includes(item))
].join(',')
message.alert('代码' + str + '没有找到对应数据')
formRef.value.setValues(setV)
return
}
// emit('searchTableSuccess', formField, searchField, list.value, formRef.value, 'form')
// callback(list.value)
})
// emit(
// 'onBlur',
// field,
// e,
// formSchemaObj.componentProps.searchField,
// formSchemaObj,
// formRef.value,
// 'form',
// obj
// )
}
} else {
emit('onBlur', field, e)
if (
field == 'supplierCode' ||
field == 'itemCode' ||
field == 'productItemCode' ||
field == 'componentItemCode' ||
field == 'packUnit' ||
field == 'inPackUnit' ||
field == 'fromPackingNumber'
) {
await FormBlur(
field,
e,
routeName.value,
formRef.value,
props.detailData,
formSchema.value,
(searchField, list) => {
emit('searchTableSuccess', field, searchField, list, formRef.value, 'form')
}
)
return
}
}
} else {
emit('onBlur', field, e)
}
isExecute.value = true
emit('onBlur', field, e)
}
//
const batchAdd = async (val) => {
const row = {}
tableAllSchemas.value.tableFormColumns.forEach((item) => {
row[item.field] = item.default ? item.default : ''
})
const headerItem = tableAllSchemas.value.tableColumns.find((item) => item.field == props.fieldTableColumn)
await getListByBottonInput(headerItem, val,row,routeName.value,formRef.value,props.detailData,props.tableData,(list)=>{
emit('searchTableSuccess',headerItem.field,'itemCode',list, formRef.value,'tableForm',row)
tableAllSchemas.value.tableFormColumns.forEach((item) => {
row[item.field] = item.default ? item.default : ''
})
const headerItem = tableAllSchemas.value.tableColumns.find(
(item) => item.field == props.fieldTableColumn
)
await getListByBottonInput(
headerItem,
val,
row,
routeName.value,
formRef.value,
props.detailData,
props.tableData,
(list) => {
emit(
'searchTableSuccess',
headerItem.field,
'itemCode',
list,
formRef.value,
'tableForm',
row
)
}
)
}
const inputStringBlur = async (headerItem, val, row, index) => {
// isExecute.value = false
await tableFormBlurVer(headerItem,val,row,index,routeName.value,formRef.value,props.detailData,props.tableData,(searchField, list)=>{
emit('searchTableSuccess',headerItem.field,searchField,list, formRef.value,'tableForm',row,'blur',index)
})
await tableFormBlurVer(
headerItem,
val,
row,
index,
routeName.value,
formRef.value,
props.detailData,
props.tableData,
(searchField, list) => {
emit(
'searchTableSuccess',
headerItem.field,
searchField,
list,
formRef.value,
'tableForm',
row,
'blur',
index
)
}
)
// isExecute.value = true
}
/**
* 回车事件
* @param field 当前操作字段
* @param e
* @param e
*/
const onEnter = (field,value, e) => {
emit('onEnter', field,value, e)
}
const onEnter = (field, value, e) => {
emit('onEnter', field, value, e)
}
//
const selectChange = (field, val) => {
emit('selectChange', field, val)
}
//
const selectChangeDetail = (field, val,formSchema) => {
const selectChangeDetail = (field, val, formSchema) => {
formSchema.value = ''
emit('selectChangeDetail', field, val)
}
const tableFormChange = (field, val, row) => {
emit('tableFormChange', field, val, row)
}
const buttonOperationClick = (row, label, index)=> {
emit("buttonOperationClick", row, label, index);
const buttonOperationClick = (row, label, index) => {
emit('buttonOperationClick', row, label, index)
}
defineExpose({ open, formRef, opensearchTable, dialogVisible, formLoading ,handleAddTable,changeDialogWidth,searchTableRef,tableFormRef}) // open
defineExpose({
open,
formRef,
opensearchTable,
dialogVisible,
formLoading,
handleAddTable,
changeDialogWidth,
searchTableRef,
tableFormRef
}) // open
</script>
<style lang="scss" scoped>
.table {
@ -1007,8 +1103,8 @@ defineExpose({ open, formRef, opensearchTable, dialogVisible, formLoading ,handl
::v-deep(.el-icon) {
display: block;
}button
.button {
}
button .button {
> div {
display: flex;
align-items: center;

2
src/views/qms/inspectionJob/inspectionJobMain.data.ts

@ -444,7 +444,7 @@ export const InspectionJobMain = useCrudSchemas(
isDetail: false,
isForm: false,
table: {
width: 250,
width: 300,
fixed: 'right'
}
}

17
src/views/wms/basicDataManage/itemManage/bom/bom.data.ts

@ -32,6 +32,11 @@ export const Bom = useCrudSchemas(reactive<CrudSchema[]>([
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
searchPage: ItembasicApi.selectItembasicPageToFgAndSemibasicPage, // 查询弹窗所需分页方法
verificationPage: ItembasicApi.getItemListByCodes, // 失去焦点校验输入框的数据内容存在
verificationParams: [{
key: 'codes',
value: '',
}], // 失去焦点校验参数
}
}
},
@ -53,6 +58,11 @@ export const Bom = useCrudSchemas(reactive<CrudSchema[]>([
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
searchPage: ItembasicApi.selectTypeToItembasic, // 查询弹窗所需分页方法
verificationPage: ItembasicApi.getItemListByCodes, // 失去焦点校验输入框的数据内容存在
verificationParams: [{
key: 'codes',
value: '',
}], // 失去焦点校验参数
}
}
},
@ -105,7 +115,12 @@ export const Bom = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}],
verificationPage: ProcessApi.getProcessByCodes, // 失去焦点校验输入框的数据内容存在
verificationParams: [{
key: 'codes',
value: '',
}], // 失去焦点校验参数
}
}
},

3
src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts

@ -319,8 +319,9 @@ export const RelegateRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
}
},
tableForm:{
disabled:true,
multiple:true,
isInpuFocusShow: true,
// isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题

1848
src/views/wms/issueManage/issue/issueJobMain/issueJobMain.data.ts

File diff suppressed because it is too large

1554
src/views/wms/issueManage/issue/issueRecordMain/issueRecordMain.data.ts

File diff suppressed because it is too large

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

File diff suppressed because it is too large

6
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue

@ -78,7 +78,7 @@
fieldTableColumn="poLine"
/>
采购订单信息
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/purchase-plan-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
@ -689,6 +689,10 @@ const handleSelectionPublish = async ()=>{
if('supplierCode'==field){
//
formRef.value.opensearchTable('poNumber', 'number', '采购订单信息', PurchaseMain.allSchemas, PurchaseMainApi.getPurchaseMainPage,[{
key: 'type',
value: 'SCHEDULE',
isMainValue: false
},{
key: 'available',
value: 'TRUE',
isMainValue: false

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

@ -109,7 +109,7 @@ export const PurchasePlanMain = useCrudSchemas(reactive<CrudSchema[]>([
isSearchList: true,
searchListPlaceholder: '请选择采购订单',
searchField: 'number',
searchTitle: '采购订单信息3',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseMain.allSchemas,
searchPage: PurchaseMainApi.getPurchaseMainPage,
searchCondition: [{
@ -520,7 +520,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
isSearchList: true,
searchListPlaceholder: '请选择采购订单',
searchField: 'number',
searchTitle: '采购订单信息5',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseMain.allSchemas,
searchPage: PurchaseMainApi.getPurchaseMainPage,
searchCondition: [{
@ -554,7 +554,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
isInpuFocusShow: false,
searchListPlaceholder: '请选择订单号',
searchField: 'number',
searchTitle: '采购订单信息4',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseMain.allSchemas,
searchPage: PurchaseMainApi.getPurchaseMainPage,
searchCondition: [{
@ -580,7 +580,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
isSearchList: false,
searchListPlaceholder: '请选择订单号',
searchField: 'number',
searchTitle: '采购订单信息6',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseMain.allSchemas,
searchPage: PurchaseMainApi.getPurchaseMainPage,
searchCondition: [{
@ -635,7 +635,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
isSearchList: false,
searchListPlaceholder: '请选择订单行',
searchField: 'lineNumber',
searchTitle: '采购订单信息2',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseDetail.allSchemas,
searchPage: PurchaseDetailApi.getPurchaseDetailPagePoNumber,
searchCondition: [{
@ -656,7 +656,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive<CrudSchema[]>([
isInpuFocusShow: false,
searchListPlaceholder: '请选择订单行',
searchField: 'lineNumber',
searchTitle: '采购订单信息1',
searchTitle: '采购订单信息',
searchAllSchemas: PurchaseDetail.allSchemas,
searchPage: PurchaseDetailApi.getPurchaseDetailPagePoNumber,
searchCondition: [{

98
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue

@ -154,7 +154,6 @@
:footButttondata="footButttondata"
@footButtonClick="footButtonClick"
@formSelectChange="formSelectChangeLabel"
@visibleChange='visibleChange'
/>
<!-- 上传质量报告 -->
<BasicForm
@ -607,7 +606,7 @@ const buttonTableClick = async (val, row) => {
}
genLabelId.value = row.masterId
// await getDetailList()
await getGenerateLabelList(row)
await getGenerateLabelList(row)
formLabelRef.value.open('create', row, null, 'createLabel') // createLabel
}
})
@ -628,27 +627,33 @@ const footButttondata = ref([
defaultButtons.formCloseBtn(null) // BOM
])
//
const getGenerateLabelList=async(row)=>{
const getGenerateLabelList = async (row) => {
const params1 = {
masterId: row.masterId,
pageSize: '500',
pageNo: '1',
sort: '',
by: 'ASC'
}
await SupplierdeliverRequestDetailApi.getGenerateLabelList(params1).then((res) => {
detatableData1.value = res
detatableData1.value.forEach((item) => {
item.packUnitInitOptions = item.boxPackaging
let obj = item?.boxPackaging[0]
if (obj) {
item.packUnit= obj.packUnit
item.packQty = obj.packQty
}
item.secondPackUnit= ''
item.secondPackQty = ''
})
masterId: row.masterId,
pageSize: '500',
pageNo: '1',
sort: '',
by: 'ASC'
}
await SupplierdeliverRequestDetailApi.getGenerateLabelList(params1).then((res) => {
detatableData1.value = res
detatableData1.value.forEach((item) => {
item.packUnitInitOptions = item.boxPackaging
item.secondPackUnitInitOptions = item.palletPackaging || []
let obj = item?.boxPackaging[0]
if (obj) {
item.packUnit = obj.packUnit
item.packQty = obj.packQty
}
//
item.secondPackUnit = obj.parentPackUnit
? obj.parentPackUnit
: item?.secondPackUnitInitOptions[0]?.packUnit
item.secondPackQty = obj.parentPackUnit
? obj.parentPackQty
: item?.secondPackUnitInitOptions[0]?.packQty
})
})
}
//
const labelFormRef = ref()
@ -658,12 +663,12 @@ const footButtonClick = async (val) => {
if (!validateForm) {
return
}
let isNext = detatableData1.value.some((item)=>{
return !item.packUnit || !item.packQty
let isNext = detatableData1.value.some((item) => {
return !item.packUnit || !item.packQty
})
if(isNext){
if (isNext) {
message.warning('有数据没有选择箱规格')
return;
return
}
const data = JSON.parse(JSON.stringify(detatableData1.value))
labelFormRef.value.openLabel(data)
@ -677,12 +682,25 @@ const formSelectChangeLabel = (field, val, row) => {
let obj = row.boxPackaging.find((item) => item.packUnit == val)
if (obj) {
row.packQty = obj.packQty
//
const params1 = {
itemCode: row.itemCode,
packUnit: row.packUnit
}
SupplierdeliverRequestDetailApi.getGenerateLabelParentList(params1).then((res) => {
if (res?.length > 0) {
row.secondPackUnit = res[0].packUnit
row.secondPackQty = res[0].packQty
} else {
row.secondPackUnit = row?.secondPackUnitInitOptions[0]?.packUnit
row.secondPackQty = row?.secondPackUnitInitOptions[0]?.packQty
}
})
} else {
row.packQty = ''
row.secondPackUnit = ''
row.secondPackQty = ''
}
row.secondPackUnit = ''
row.secondPackQty = ''
}
//
if (field == 'secondPackUnit') {
@ -694,23 +712,7 @@ const formSelectChangeLabel = (field, val, row) => {
}
}
}
// tableForm
const visibleChange=(field, val, row, index)=>{
row.secondPackUnitInitOptions=[]
if(field=='secondPackUnit'){
if(val){
//
const params1 = {
itemCode: row.itemCode,
packUnit: row.packUnit
}
SupplierdeliverRequestDetailApi.getGenerateLabelParentList(params1).then((res) => {
row.secondPackUnitInitOptions = res
})
}
}
}
//
const { wsCache } = useCache()
@ -1000,10 +1002,9 @@ const { getList: getDetailList } = detatableMethods
//
const submitFormLabel = async (list) => {
try {
let data = {
subList:list
}
let data = {
subList: list
}
await message.confirm(t('ts.是否为此数据生成标签?'))
labelFormRef.value.isLoading = true
await SupplierdeliverRequestMainApi.genLabel(data)
@ -1016,7 +1017,6 @@ const submitFormLabel = async (list) => {
labelFormRef.value.formLoading = false
labelFormRef.value.dialogTableVisible = false
labelFormRef.value.isLoading = false
}
}
const clearInput = async (field, row, index) => {

16
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts

@ -82,6 +82,7 @@ export const SupplierinvoiceRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
// {
// label: '申请单号',
// field: 'requestNumber',
@ -434,6 +435,21 @@ export const SupplierinvoiceRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
}
},
},
//子表数据,仅是查询条件
{
label: '货运单号',
field: 'asnBillNum',
sort: 'custom',
table: {
width: 180,
fixed: 'left'
},
isTableForm:false,
isTable:false,
isDetail:false,
isSearch: true,
isForm: false,
},
{
label: '财务凭证号',
field: 'voucherNumber',

Loading…
Cancel
Save