Browse Source

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

hella_online_20240829
chenfang 4 months ago
parent
commit
0f041cd7da
  1. 2
      index.html
  2. 5
      src/api/system/user/index.ts
  3. 12
      src/api/wms/purchasereturnRecordDetail/index.ts
  4. 12
      src/api/wms/purchasereturnRequestDetail/index.ts
  5. 3
      src/api/wms/remark/index.ts
  6. BIN
      src/assets/imgs/logo_white.png
  7. BIN
      src/assets/imgs/logo_white1.png
  8. BIN
      src/assets/imgs/logo_white_blue.png
  9. BIN
      src/assets/imgs/logo_white_btn.png
  10. 2
      src/components/DetailTable/src/DetailTable.vue
  11. 12
      src/components/ImportForm/src/ImportDetailForm.vue
  12. 24
      src/components/ImportForm/src/ImportForm.vue
  13. 10
      src/components/PreviewPDF/index.vue
  14. 49
      src/components/SearchHigh/src/SearchHigh.vue
  15. 2
      src/components/TableFormCountPlan/src/TableFormCountPlan.vue
  16. 1
      src/components/TableHead/src/TableHead.vue
  17. 2
      src/layout/components/Logo/src/Logo.vue
  18. 5
      src/layout/components/UserInfo/src/UserInfo.vue
  19. 2
      src/layout/components/useRenderLayout.tsx
  20. 2
      src/locales/en-US.ts
  21. 2
      src/main.ts
  22. 22
      src/views/login/components/LoginForm.vue
  23. 8
      src/views/login/login.vue
  24. 22
      src/views/qms/aql/aql.data.ts
  25. 3
      src/views/qms/aql/index.vue
  26. 22
      src/views/qms/counter/counter.data.ts
  27. 7
      src/views/qms/counter/index.vue
  28. 4
      src/views/qms/dynamicRule/dynamicRule.data.ts
  29. 3
      src/views/qms/dynamicRule/index.vue
  30. 3
      src/views/qms/inspectionJob/index.vue
  31. 54
      src/views/qms/inspectionJob/inspectionJobMain.data.ts
  32. 3
      src/views/qms/inspectionMethod/index.vue
  33. 4
      src/views/qms/inspectionMethod/inspectionMethod.data.ts
  34. 3
      src/views/qms/inspectionRecord/index.vue
  35. 49
      src/views/qms/inspectionRecord/inspectionRecordMain.data.ts
  36. 3
      src/views/qms/inspectionRequest/index.vue
  37. 38
      src/views/qms/inspectionRequest/inspectionRequestMain.data.ts
  38. 3
      src/views/qms/inspectionScheme/index.vue
  39. 4
      src/views/qms/inspectionScheme/inspectionScheme.data.ts
  40. 3
      src/views/qms/inspectionTemplate/index.vue
  41. 4
      src/views/qms/inspectionTemplate/inspectionTemplate.data.ts
  42. 3
      src/views/qms/qualityNotice/index.vue
  43. 22
      src/views/qms/qualityNotice/qualityNoticeMain.data.ts
  44. 3
      src/views/qms/sampleCode/index.vue
  45. 4
      src/views/qms/sampleCode/sampleCode.data.ts
  46. 3
      src/views/qms/samplingProcess/index.vue
  47. 7
      src/views/qms/samplingProcess/samplingProcess.data.ts
  48. 3
      src/views/qms/samplingScheme/index.vue
  49. 4
      src/views/qms/samplingScheme/samplingScheme.data.ts
  50. 3
      src/views/qms/selectedSet/index.vue
  51. 4
      src/views/qms/selectedSet/selectedSet.data.ts
  52. 7
      src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue
  53. 32
      src/views/wms/countManage/count/countJobMain/countJobMain.data.ts
  54. 1
      src/views/wms/countManage/count/countJobMain/index.vue
  55. 2
      src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
  56. 16
      src/views/wms/countManage/count/countPlanMain/index.vue
  57. 9
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue
  58. 8
      src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue
  59. 7
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue
  60. 7
      src/views/wms/deliversettlementManage/stockup/stockupMainRequest/index.vue
  61. 1
      src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts
  62. 20
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts
  63. 8
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
  64. 7
      src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue
  65. 3
      src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts
  66. 7
      src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue
  67. 20
      src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/scrapContainerMainRequest.data.ts
  68. 7
      src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue
  69. 46
      src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverRequestMain/packageoverRequestMain.data.ts
  70. 2
      src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/index.vue
  71. 55
      src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts
  72. 2
      src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRequestMain/index.vue
  73. 6
      src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/index.vue
  74. 2
      src/views/wms/issueManage/issue/issueJobMain/index.vue
  75. 2
      src/views/wms/issueManage/issue/issueRecordMain/index.vue
  76. 2
      src/views/wms/issueManage/issue/issueRequestMain/index.vue
  77. 2
      src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue
  78. 9
      src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue
  79. 8
      src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts
  80. 2
      src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue
  81. 2
      src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue
  82. 2
      src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue
  83. 2
      src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue
  84. 2
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue
  85. 16
      src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue
  86. 2
      src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue
  87. 2
      src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue
  88. 2
      src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue
  89. 2
      src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue
  90. 22
      src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts
  91. 3
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue
  92. 7
      src/views/wms/productionManage/productionplan/productionMain/index.vue
  93. 7
      src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue
  94. 3
      src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts
  95. 4
      src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue
  96. 4
      src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue
  97. 2
      src/views/wms/productionManage/productredress/productredressRequestMain/index.vue
  98. 8
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
  99. 7
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue
  100. 7
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue

2
index.html

@ -132,7 +132,7 @@
<div class="app-loading"> <div class="app-loading">
<div class="app-loading-wrap"> <div class="app-loading-wrap">
<div class="app-loading-title"> <div class="app-loading-title">
<img src="/src/assets/imgs/logo_white.png" class="app-loading-logo" alt="Logo" /> <img src="/src/assets/imgs/logo_white_blue.png" class="app-loading-logo" alt="Logo" />
<div class="app-loading-title" id="app-loading-title">%VITE_APP_TITLE%</div> <div class="app-loading-title" id="app-loading-title">%VITE_APP_TITLE%</div>
</div> </div>
<div class="app-loading-item"> <div class="app-loading-item">

5
src/api/system/user/index.ts

@ -103,4 +103,9 @@ export const updatePassword = (data : UserVO) => {
export const getUserListByDeptIds = (data : Array<number>) => { export const getUserListByDeptIds = (data : Array<number>) => {
return request.post({ url: '/system/user/getUserListByDeptIds', data }) return request.post({ url: '/system/user/getUserListByDeptIds', data })
} }
// 获取全部用户
export const getUserListAll = () => {
return request.get({ url: '/system/user/listAll' })
}

12
src/api/wms/purchasereturnRecordDetail/index.ts

@ -48,6 +48,18 @@ export const getPurchasereturnRecordDetailPage = async (params) => {
return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params }) return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params })
} }
} }
// 查询采购退货记录子列表
export const getPurchasereturnRecordDetailPageSpare = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/purchasereturn-record-detail/seniorSpare', data })
} else {
return await request.get({ url: `/wms/purchasereturn-record-detail/pageSpare`, params })
}
}
export const getPurchasereturnRecordDetailPageSCP = async (params) => { export const getPurchasereturnRecordDetailPageSCP = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch

12
src/api/wms/purchasereturnRequestDetail/index.ts

@ -38,6 +38,18 @@ export const getPurchasereturnRequestDetailPage = async (params) => {
} }
} }
// 查询采购退货申请子列表
export const getPurchasereturnRequestDetailPageSpare = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/purchasereturn-request-detail/seniorSpare', data })
} else {
return await request.get({ url: `/wms/purchasereturn-request-detail/pageSpare`, params })
}
}
// 查询采购退货申请子详情 // 查询采购退货申请子详情
export const getPurchasereturnRequestDetail = async (id: number) => { export const getPurchasereturnRequestDetail = async (id: number) => {
return await request.get({ url: `/wms/purchasereturn-request-detail/get?id=` + id }) return await request.get({ url: `/wms/purchasereturn-request-detail/get?id=` + id })

3
src/api/wms/remark/index.ts

@ -1,6 +1,9 @@
import request from '@/config/axios' import request from '@/config/axios'
// 查询备注列表 // 查询备注列表
export const getRemarkPage = async (params) => { export const getRemarkPage = async (params) => {
if (params.tableName){
params.tableName = toSnakeCase(params.tableName)
}
return await request.get({ url: `/infra/remark/list`, params }) return await request.get({ url: `/infra/remark/list`, params })
} }

BIN
src/assets/imgs/logo_white.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
src/assets/imgs/logo_white1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
src/assets/imgs/logo_white_blue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
src/assets/imgs/logo_white_btn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

2
src/components/DetailTable/src/DetailTable.vue

@ -77,7 +77,7 @@ const forrmatter1 = (item) => {
return allList.value.itemTypeList.find((cur) => cur.value == item.value).label return allList.value.itemTypeList.find((cur) => cur.value == item.value).label
}else if(item?.type == 'ITEMS_GROUP'){ }else if(item?.type == 'ITEMS_GROUP'){
return allList.value.itemGroupList.find((cur) => cur.value == item.value).label return allList.value.itemGroupList.find((cur) => cur.value == item.value).label
}else if(item?.type == 'ITEMS_CODE'){ }else if(item?.type == 'ITEM_CODE'){
// return allList.value.itembasicAllList.find((cur) => cur.value == item.value).label // return allList.value.itembasicAllList.find((cur) => cur.value == item.value).label
}else if(item?.type == 'WAREHOUSE_CODE'){ }else if(item?.type == 'WAREHOUSE_CODE'){
// return allList.value.warehouseAllList.find((cur) => cur.value == item.value).label // return allList.value.warehouseAllList.find((cur) => cur.value == item.value).label

12
src/components/ImportForm/src/ImportDetailForm.vue

@ -90,10 +90,10 @@
<template #footer> <template #footer>
<div class="flex items-center"> <div class="flex items-center">
<div class="flex-1 text-left"> <div class="flex-1 text-left">
<!-- <el-button type="primary" plain @click="importTemplate"> <el-button type="primary" plain @click="importTemplate" v-if="isShowDownloadBtn">
<Icon icon="ep:download" /> <Icon icon="ep:download" />
{{ t('ts.下载模板') }} {{ t('ts.下载模板') }}
</el-button> --> </el-button>
</div> </div>
<el-button :disabled="formLoading" type="primary" @click="submitForm">{{ t('ts.确 ') }}</el-button> <el-button :disabled="formLoading" type="primary" @click="submitForm">{{ t('ts.确 ') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('ts.取 消') }}</el-button> <el-button @click="dialogVisible = false">{{ t('ts.取 消') }}</el-button>
@ -191,7 +191,13 @@ const props = defineProps({
type: String, type: String,
required: false, required: false,
default: '' default: ''
} },
//
isShowDownloadBtn: {
type: Boolean,
required: false,
default: false
},
}) })
const importTemplateData = ref(props.importTemplateData) const importTemplateData = ref(props.importTemplateData)
const accept = ref(props.accept) const accept = ref(props.accept)

24
src/components/ImportForm/src/ImportForm.vue

@ -43,9 +43,9 @@
<div class=""> <div class="">
<div class="radio"> <div class="radio">
<el-radio-group v-model="mode"> <el-radio-group v-model="mode">
<el-radio :label="1" :disabled="updateIsDisable">{{ t('ts.更新')}}</el-radio> <el-radio :label="1" v-show="updateIsShow" :disabled="updateIsDisable">{{ t('ts.更新')}}</el-radio>
<el-radio :label="2" :disabled="appendIsDisable">{{ t('ts.追加') }}</el-radio> <el-radio :label="2" v-show="appendIsShow" :disabled="appendIsDisable">{{ t('ts.追加') }}</el-radio>
<el-radio :label="3" :disabled="coverIsDisable">{{ t('ts.覆盖') }}</el-radio> <el-radio :label="3" v-show="coverIsShow" :disabled="coverIsDisable">{{ t('ts.覆盖') }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
@ -141,18 +141,36 @@ const props = defineProps({
required: false, required: false,
default: false default: false
}, },
//
updateIsShow: {
type: Boolean,
required: false,
default: true
},
// , // ,
appendIsDisable: { appendIsDisable: {
type: Boolean, type: Boolean,
required: false, required: false,
default: false default: false
}, },
//
appendIsShow: {
type: Boolean,
required: false,
default: true
},
// , // ,
coverIsDisable: { coverIsDisable: {
type: Boolean, type: Boolean,
required: false, required: false,
default: false default: false
}, },
//
coverIsShow: {
type: Boolean,
required: false,
default: true
},
// , // ,
updatePart: { updatePart: {
type: Boolean, type: Boolean,

10
src/components/PreviewPDF/index.vue

@ -1,9 +1,11 @@
<template> <template>
<el-dialog class="preview" v-model="showDialog" style="" @close="closeView"> <el-dialog ref="dialog" :style="{height:dialogHeight+'px'}" class="preview" :append-to-body="false" fullscreen v-model="showDialog" @close="closeView">
<iframe v-if="isPDF" ref="pdfRef" width="100%" :height="frameHeight" :src="pdfUrl" frameborder="0"></iframe> <iframe v-if="isPDF" ref="pdfRef" width="100%" :height="frameHeight" :src="pdfUrl" frameborder="0"></iframe>
<el-carousel justify="center" v-else indicator-position="outside"> <el-carousel :height="(dialogHeight-130)+'px'" justify="center" v-else indicator-position="outside">
<el-carousel-item class="carousel-item" v-for="url in imageArray" :key="url"> <el-carousel-item class="carousel-item" v-for="url in imageArray" :key="url">
<el-image style="height:100%" fit="contain" :src="url" loading="lazy" /> <div style="height:100%;overflow: auto;display: flex;justify-content: center;align-items: center;">
<el-image fit="contain" :src="url" />
</div>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</el-dialog> </el-dialog>
@ -20,6 +22,8 @@ const imageArray = ref<string[]>([]) // 图片数组
const closeView = () => { const closeView = () => {
showDialog.value = false showDialog.value = false
} }
const dialogHeight = ref(window.innerHeight)
// //
const openPreview = async (data:string[]|string)=>{ const openPreview = async (data:string[]|string)=>{
showDialog.value = true showDialog.value = true

49
src/components/SearchHigh/src/SearchHigh.vue

@ -23,8 +23,8 @@
<!-- 数字输入框 --> <!-- 数字输入框 -->
<el-input-number v-else-if="getInputType(item.column) == 'inputNumber'" v-model="item.value" :precision="getInputPrecision(item.column)" :disabled="item.disabled"/> <el-input-number v-else-if="getInputType(item.column) == 'inputNumber'" v-model="item.value" :precision="getInputPrecision(item.column)" :disabled="item.disabled"/>
<!-- 下拉框 --> <!-- 下拉框 -->
<el-select v-else-if="getInputType(item.column) == 'select'" v-model="item.value1" :placeholder="t('ts.请选择内容')" :filterable="true" clearable :disabled="item.disabled" :multiple="item.action=='in' || item.action=='notIn' ? true : false" collapse-tags collapse-tags-tooltip :key="item.action"> <el-select v-else-if="getInputType(item.column) == 'select'" v-model="item.value1" :placeholder="t('ts.请选择内容')" :filterable="getFilterable(item.column)" clearable :disabled="item.disabled" :multiple="item.action=='in' || item.action=='notIn' ? true : false" collapse-tags collapse-tags-tooltip :key="item.action">
<el-option v-for="dict in initSelectOptions(item.column)" :key="dict.value" :label="t(`ts.${dict.label}`).replace('ts.','')" <el-option v-for="dict in allDictOptions[item.column]" :key="dict.value" :label="t(`ts.${dict.label}`).replace('ts.','')"
:value="dict.value" /> :value="dict.value" />
<!-- <el-option v-for="(op, index) in initSelectOptions(item.column)" :label="op[item.optionsLabel] || op.label" <!-- <el-option v-for="(op, index) in initSelectOptions(item.column)" :label="op[item.optionsLabel] || op.label"
:value="op[item.optionsValue] || op.value" :key="index" /> --> :value="op[item.optionsValue] || op.value" :key="index" /> -->
@ -57,8 +57,19 @@
import { Minus } from '@element-plus/icons-vue' import { Minus } from '@element-plus/icons-vue'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as UserApi from '@/api/system/user'
const { t } = useI18n() const { t } = useI18n()
const userListAll = ref([])
UserApi.getUserListAll().then((res) => {
userListAll.value = res.map(item => {
return {
label: item.nickname,
value: item.id
}
})
})
const props = defineProps({ const props = defineProps({
// name // name
routeName: { routeName: {
@ -142,7 +153,7 @@ const moreListOptions = ref({
const type = searchOption_high.value.find(item => (item.field == val)) const type = searchOption_high.value.find(item => (item.field == val))
let data = 'input' let data = 'input'
if (type?.dictType) { if (type?.dictType || type?.field == 'creator') {
data = 'select' data = 'select'
} else if (type?.form?.component == 'InputNumber') { } else if (type?.form?.component == 'InputNumber') {
data = 'inputNumber' data = 'inputNumber'
@ -155,6 +166,16 @@ const moreListOptions = ref({
} }
return data return data
} }
const getFilterable = (val) => {
const type = searchOption_high.value.find(item => (item.field == val))
//
if (type?.field == 'creator') {
return false
}else{
return true
}
}
// //
const getInputPrecision = (val) => { const getInputPrecision = (val) => {
const type = searchOption_high.value.find(item => (item.field == val)) const type = searchOption_high.value.find(item => (item.field == val))
@ -231,7 +252,7 @@ const buttonBaseClick = (val) => {
let data = [] let data = []
moreListData.value.filters.forEach(item => { moreListData.value.filters.forEach(item => {
let obj = {} let obj = {}
if(item.value1&&item.value1.length>0){ if(item.value1&&item.value1.length>0 || (item.value1&&typeof item.value1 === 'number')){
obj = { obj = {
column: item.column, column: item.column,
action: item.action, action: item.action,
@ -265,6 +286,25 @@ const buttonBaseClick = (val) => {
} }
} }
watch(()=>popoverVisible.value,()=>{
if(popoverVisible.value){
getDictOptions()
}
})
const allDictOptions = ref({}) //
const getDictOptions = ()=>{
let selectList = searchOption_high.value.filter(item=>getInputType(item.field) == 'select')
selectList.forEach(item=>{
// allDictOptions.value[item.field] = getStrDictOptions(item.dictType)
if (item.dictType) {
allDictOptions.value[item.field] = getStrDictOptions(item.dictType)
} else if(item.field == 'creator'){
allDictOptions.value[item.field] = userListAll.value
}
})
console.log(888,userListAll.value)
console.log(999,allDictOptions.value)
}
// option // option
const initSelectOptions = (item) => { const initSelectOptions = (item) => {
return getStrDictOptions(searchOption_high.value.find(searchOptionItem => (searchOptionItem.field == item)).dictType) return getStrDictOptions(searchOption_high.value.find(searchOptionItem => (searchOptionItem.field == item)).dictType)
@ -290,6 +330,7 @@ const changeDateTimePicker = (e, val,from) =>{
val.value = e.join(',') val.value = e.join(',')
} }
} }
defineExpose({ defineExpose({
popoverVisible popoverVisible
}) })

2
src/components/TableFormCountPlan/src/TableFormCountPlan.vue

@ -59,7 +59,7 @@
row.type == 'OWNER' || row.type == 'OWNER' ||
row.type == 'SUPPLIER' || row.type == 'SUPPLIER' ||
row.type == 'CUSTOMER' || row.type == 'CUSTOMER' ||
row.type == 'ITEMS_CODE' || row.type == 'ITEM_CODE' ||
row.type == 'WAREHOUSE_CODE' || row.type == 'WAREHOUSE_CODE' ||
row.type == 'AREABASIC_CODE' || row.type == 'AREABASIC_CODE' ||
row.type == 'LOCATIONGROUP_CODE' || row.type == 'LOCATIONGROUP_CODE' ||

1
src/components/TableHead/src/TableHead.vue

@ -9,6 +9,7 @@
</div> </div>
<div class="tableNavRightBtns"> <div class="tableNavRightBtns">
<!-- 右侧按钮 --> <!-- 右侧按钮 -->
<slot name="rightBtn"></slot>
<ButtonBase :Butttondata="buttonsRight" @button-base-click="buttonBaseClick" @updata-table-columns="updataTableColumns" <ButtonBase :Butttondata="buttonsRight" @button-base-click="buttonBaseClick" @updata-table-columns="updataTableColumns"
:allSchemas="allSchemas" :detailAllSchemas="detailAllSchemas" ref="rowDropRef"/> :allSchemas="allSchemas" :detailAllSchemas="detailAllSchemas" ref="rowDropRef"/>
</div> </div>

2
src/layout/components/Logo/src/Logo.vue

@ -78,7 +78,7 @@ watch(
to="/" to="/"
> >
<img <img
class="h-24px w-144px h-36px" class="h-24px ml-10px mr-10px h-40px" style="border-radius: 5px;"
src="@/assets/imgs/logo_white.png" src="@/assets/imgs/logo_white.png"
/> />
<!-- <img <!-- <img

5
src/layout/components/UserInfo/src/UserInfo.vue

@ -31,7 +31,10 @@ const avatar = user.user.avatar ? user.user.avatar : avatarImg
const userName = user.user.nickname ? user.user.nickname : 'Admin' const userName = user.user.nickname ? user.user.nickname : 'Admin'
const names =[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}] const names =[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]
const tenant = names.find(item=>item.value == getTenantId()) const tenant = names.find(item=>item.value == getTenantId())
const language = wsCache.get('lang')
if('en-US'==language){
tenant.text=tenant.text.replace('长春','ChangChun').replace('成都','ChengDu')
}
const loginOut = () => { const loginOut = () => {
ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), { ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), {
confirmButtonText: t('common.ok'), confirmButtonText: t('common.ok'),

2
src/layout/components/useRenderLayout.tsx

@ -52,7 +52,7 @@ export const useRenderLayout = () => {
class={[ class={[
'h-[var(--top-category-height)]', 'h-[var(--top-category-height)]',
'bg-[var(--el-color-primary)] relative', 'bg-[var(--el-color-primary)] relative',
'w-[var(--left-menu-max-width)]',
{ {
'!pl-0': mobile.value && collapse.value, '!pl-0': mobile.value && collapse.value,
} }

2
src/locales/en-US.ts

@ -1108,7 +1108,7 @@ export default {
:'Check the quality inspection report', :'Check the quality inspection report',
:'ChangChun', :'ChangChun',
:'ChengDu', :'ChengDu',
:'HELLA Smart Factory Management Platform', :'FAWAY HELLA Smart Factory Management Platform',
:'Purchase unreceived record', :'Purchase unreceived record',
:'Please select the desired shipment tracking number', :'Please select the desired shipment tracking number',
:'Not more in size', :'Not more in size',

2
src/main.ts

@ -78,7 +78,7 @@ const setupAll = async () => {
// 多语言相关 // 多语言相关
const localeStore = useLocaleStore() const localeStore = useLocaleStore()
if(localeStore&&localeStore.currentLocale&&localeStore.currentLocale.lang.indexOf('en')>-1&&document.querySelector('#app-loading-title')){ if(localeStore&&localeStore.currentLocale&&localeStore.currentLocale.lang.indexOf('en')>-1&&document.querySelector('#app-loading-title')){
document.querySelector('#app-loading-title').innerHTML = 'HELLA Smart Factory Management Platform' // 富维海拉智慧工厂管理平台 document.querySelector('#app-loading-title').innerHTML = 'FAWAY HELLA Smart Factory Management Platform' // 富维海拉智慧工厂管理平台
} }
setupAll() setupAll()

22
src/views/login/components/LoginForm.vue

@ -15,8 +15,8 @@
<el-option <el-option
v-for="item in tenantArray" v-for="item in tenantArray"
:key="item" :key="item"
:label="t(`ts.${item}`).replace('ts.','')" :label="t(`ts.${item.aliasName}`).replace('ts.','')"
:value="item" :value="item.name"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -119,8 +119,20 @@
// //
const captchaEnabled = ref(true) const captchaEnabled = ref(true)
const codeUrl = ref("") const codeUrl = ref("")
const tenantArray = JSON.parse(getTenant()) const tenantArray = ref(JSON.parse(getTenant()))
const { wsCache } = useCache()
const language = wsCache.get('lang')
if('en-US'==language){
tenantArray.value = tenantArray.value.map(item => ({
name: item,
aliasName:item.replace('长春','ChangChun').replace('成都','ChengDu')
}));
}else{
tenantArray.value = tenantArray.value.map(item => ({
name: item,
aliasName:item
}));
}
const LoginRules = { const LoginRules = {
tenantName: [required], tenantName: [required],
username: [required], username: [required],
@ -131,7 +143,7 @@
captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE,
tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE,
loginForm: { loginForm: {
tenantName: tenantArray[0], tenantName: tenantArray.value[0].name,
username: 'admin', username: 'admin',
password: '123456', password: '123456',
captchaVerification: '', captchaVerification: '',

8
src/views/login/login.vue

@ -9,7 +9,7 @@
> >
<!-- 左上角的 logo + 系统标题 --> <!-- 左上角的 logo + 系统标题 -->
<div class="relative flex items-center "> <div class="relative flex items-center ">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white.png" /> <img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span> <span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
</div> </div>
<!-- 左边的背景图 + 欢迎语 --> <!-- 左边的背景图 + 欢迎语 -->
@ -21,9 +21,9 @@
> >
<!-- <img key="1" alt="" class="w-350px" src="@/assets/svgs/login-box-bg.svg" /> --> <!-- <img key="1" alt="" class="w-350px" src="@/assets/svgs/login-box-bg.svg" /> -->
<!-- <div key="2" class="text-3xl text-white">{{ t('login.welcome') }}</div> --> <!-- <div key="2" class="text-3xl text-white">{{ t('login.welcome') }}</div> -->
<div key="3" class="mt-5 text-14px font-normal text-white"> <!-- <div key="3" class="mt-5 text-14px font-normal text-white">
{{ t('login.message') }} {{ t('login.message') }}
</div> </div> -->
</TransitionGroup> </TransitionGroup>
</div> </div>
</div> </div>
@ -33,7 +33,7 @@
class="flex items-center justify-between at-2xl:justify-end at-xl:justify-end" class="flex items-center justify-between at-2xl:justify-end at-xl:justify-end"
> >
<div class="flex items-center at-2xl:hidden at-xl:hidden"> <div class="flex items-center at-2xl:hidden at-xl:hidden">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white.png" /> <img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span> <span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
</div> </div>
<div class="flex items-center justify-end space-x-10px"> <div class="flex items-center justify-end space-x-10px">

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

@ -536,6 +536,28 @@ export const Aql = useCrudSchemas(
width: 105 width: 105
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
isSearch: true,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

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

@ -305,6 +305,9 @@ const onChange = async (field, value, formRef) => {
}; };
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await AqlApi.importTemplate() importTemplateData.templateUrl = await AqlApi.importTemplate()
}) })

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

@ -167,6 +167,28 @@ export const Counter = useCrudSchemas(
width: 140 width: 140
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,
isSearch: true,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

7
src/views/qms/counter/index.vue

@ -151,11 +151,13 @@ const buttonTableClick = async (val, row) => {
const basicFormRef = ref() const basicFormRef = ref()
const openForm = async (type: string, row?: any) => { const openForm = async (type: string, row?: any) => {
const obj = await CounterApi.getNextStage(row.id)
for (const item of Counter.allSchemas.formSchema) { for (const item of Counter.allSchemas.formSchema) {
if (item.field === 'nextStage') { if (item.field === 'nextStage') {
item.componentProps.options = await CounterApi.getNextStage(row.id) item.componentProps.options = obj.nextStageList
} }
} }
row.available = obj.available
basicFormRef.value.open(type, row) basicFormRef.value.open(type, row)
} }
@ -244,6 +246,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await CounterApi.importTemplate() importTemplateData.templateUrl = await CounterApi.importTemplate()
}) })

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

@ -39,7 +39,11 @@ export const DynamicRule = useCrudSchemas(
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
isSearch: true,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -411,6 +411,9 @@ const validateNotRepetition = (data) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await DynamicRuleApi.importTemplate() importTemplateData.templateUrl = await DynamicRuleApi.importTemplate()
}) })

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

@ -419,6 +419,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
// importTemplateData.templateUrl = await InspectionJobMainApi.importTemplate() // importTemplateData.templateUrl = await InspectionJobMainApi.importTemplate()
}) })

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

@ -56,14 +56,14 @@ export const InspectionJobMain = useCrudSchemas(
label: '发货单号', label: '发货单号',
field: 'asnNumber', field: 'asnNumber',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: true,
form: { form: {
componentProps: { componentProps: {
disabled: true disabled: true
} }
}, },
table: { table: {
width: 150 width: 180
} }
}, },
{ {
@ -225,6 +225,21 @@ export const InspectionJobMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isDetail: true,
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
}
},
{ {
label: '检验批数量', label: '检验批数量',
field: 'inspectionBatchAmount', field: 'inspectionBatchAmount',
@ -545,6 +560,40 @@ export const InspectionJobMain = useCrudSchemas(
} }
} }
}, },
{
label: '状态',
field: 'status',
dictType: DICT_TYPE.JOB_STATUS,
dictClass: 'string',
isForm: false,
isTable: true,
sort: 'custom',
table: {
width: 150
}
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',
@ -609,6 +658,7 @@ export const InspectionJobMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',

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

@ -301,6 +301,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await InspectionMethodApi.importTemplate() importTemplateData.templateUrl = await InspectionMethodApi.importTemplate()
}) })

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

@ -55,8 +55,12 @@ export const InspectionMethod = useCrudSchemas(
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -280,6 +280,9 @@ import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
}) })
</script> </script>

49
src/views/qms/inspectionRecord/inspectionRecordMain.data.ts

@ -45,14 +45,14 @@ export const InspectionRecordMain = useCrudSchemas(
label: '发货单号', label: '发货单号',
field: 'asnNumber', field: 'asnNumber',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: true,
form: { form: {
componentProps: { componentProps: {
disabled: true disabled: true
} }
}, },
table: { table: {
width: 150 width: 180
} }
}, },
{ {
@ -120,6 +120,16 @@ export const InspectionRecordMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isForm: false,
table: {
width: 150
}
},
{ {
label: '检验方案编码', label: '检验方案编码',
field: 'inspectionSchemeCode', field: 'inspectionSchemeCode',
@ -370,6 +380,7 @@ export const InspectionRecordMain = useCrudSchemas(
sort: 'custom', sort: 'custom',
formatter: dateFormatter, formatter: dateFormatter,
isSearch: false, isSearch: false,
isForm: false,
search: { search: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -379,7 +390,6 @@ export const InspectionRecordMain = useCrudSchemas(
} }
}, },
form: { form: {
component: 'DatePicker',
componentProps: { componentProps: {
type: 'datetime', type: 'datetime',
valueFormat: 'x' valueFormat: 'x'
@ -424,6 +434,39 @@ export const InspectionRecordMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{
label: '执行结果',
field: 'estimateCode',
dictType: DICT_TYPE.EVALUATION_CODE,
sort: 'custom',
isSearch: false,
isForm: false,
table: {
width: 150
}
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

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

@ -398,6 +398,9 @@ console.log(formType,data)
} }
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await InspectionMainApi.importTemplate() importTemplateData.templateUrl = await InspectionMainApi.importTemplate()
}) })

38
src/views/qms/inspectionRequest/inspectionRequestMain.data.ts

@ -44,7 +44,7 @@ export const InspectionMain = useCrudSchemas(
label: '发货单号', label: '发货单号',
field: 'asnNumber', field: 'asnNumber',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: true,
isForm: false, isForm: false,
form: { form: {
componentProps: { componentProps: {
@ -52,7 +52,7 @@ export const InspectionMain = useCrudSchemas(
} }
}, },
table: { table: {
width: 150 width: 180
} }
}, },
{ {
@ -306,7 +306,7 @@ export const InspectionMain = useCrudSchemas(
} }
}, },
{ {
label: '批次', label: '检验批次',
field: 'batch', field: 'batch',
sort: 'custom', sort: 'custom',
isSearch: false, isSearch: false,
@ -314,6 +314,16 @@ export const InspectionMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isForm: false,
table: {
width: 150
}
},
{ {
label: '待检数量', label: '待检数量',
field: 'requestInspectionNum', field: 'requestInspectionNum',
@ -415,6 +425,28 @@ export const InspectionMain = useCrudSchemas(
width: 150 width: 150
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

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

@ -269,6 +269,9 @@ const importSuccess = () => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await InspectionSchemeApi.importTemplate() importTemplateData.templateUrl = await InspectionSchemeApi.importTemplate()
}) })

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

@ -184,8 +184,12 @@ export const InspectionSchemeMain = useCrudSchemas(
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -246,6 +246,9 @@ const importSuccess = () => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await InspectionProcessPageApi.importTemplate() importTemplateData.templateUrl = await InspectionProcessPageApi.importTemplate()
}) })

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

@ -59,8 +59,12 @@ export const InspectionTemplateMain = useCrudSchemas(
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -229,6 +229,9 @@ const handleOrderPub = async (row : object) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
}) })
</script> </script>

22
src/views/qms/qualityNotice/qualityNoticeMain.data.ts

@ -317,6 +317,28 @@ export const QualityNoticeMain = useCrudSchemas(
width: 175 width: 175
} }
}, },
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

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

@ -288,6 +288,9 @@ const onChange = async (field, value, formRef) => {
} }
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
tableObject.params = {
available: true
}
getList() getList()
importTemplateData.templateUrl = await SampleCodeApi.importTemplate() importTemplateData.templateUrl = await SampleCodeApi.importTemplate()
}) })

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

@ -102,7 +102,11 @@ export const SampleCode = useCrudSchemas(
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
isSearch: true,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -344,6 +344,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await SamplingProcessApi.importTemplate() importTemplateData.templateUrl = await SamplingProcessApi.importTemplate()
}) })

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

@ -85,7 +85,11 @@ export const SamplingProcess = useCrudSchemas(
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
isSearch: true,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',
@ -93,6 +97,9 @@ export const SamplingProcess = useCrudSchemas(
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'
} }
},
table: {
width: 110
} }
}, },
{ {

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

@ -266,6 +266,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
tableObject.params = {
available: true
}
getList() getList()
importTemplateData.templateUrl = await SamplingSchemeApi.importTemplate() importTemplateData.templateUrl = await SamplingSchemeApi.importTemplate()
}) })

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

@ -28,8 +28,12 @@ export const SamplingScheme = useCrudSchemas(
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch:true,
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE',
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

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

@ -433,6 +433,9 @@ const formSelectChange = (a,b,c,d) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList() getList()
importTemplateData.templateUrl = await SelectedSetApi.importTemplate() importTemplateData.templateUrl = await SelectedSetApi.importTemplate()
}) })

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

@ -30,8 +30,12 @@ export const SelectedSet = useCrudSchemas(
label: '是否可用', label: '是否可用',
field: 'available', field: 'available',
sort: 'custom', sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE, dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑 dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'TRUE',

7
src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/index.vue

@ -112,6 +112,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if (formField == 'itemCode') { if (formField == 'itemCode') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['itemCode']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['itemCode'] = item['itemCode'] newRow['itemCode'] = item['itemCode']

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

@ -766,22 +766,22 @@ export const CountJobDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
}, },
{ // {
label: '盘点描述', // label: '盘点描述',
field: 'countDescription', // field: 'countDescription',
sort: 'custom', // sort: 'custom',
table: { // table: {
width: 150 // width: 150
}, // },
}, // },
{ // {
label: '备注', // label: '备注',
field: 'remark', // field: 'remark',
sort: 'custom', // sort: 'custom',
table: { // table: {
width: 150 // width: 150
}, // },
}, // },
{ {
label: '创建时间', label: '创建时间',
field: 'createTime', field: 'createTime',

1
src/views/wms/countManage/count/countJobMain/index.vue

@ -74,6 +74,7 @@
:coverIsDisable="true" :coverIsDisable="true"
:mode="1" :mode="1"
:extend="rowMasterIdRef" :extend="rowMasterIdRef"
:isShowDownloadBtn="true"
/> />
</template> </template>

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

@ -128,6 +128,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
table: { table: {
width: 150 width: 150
}, },
isForm:false,
form: { form: {
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
@ -147,6 +148,7 @@ export const CountPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
table: { table: {
width: 150 width: 150
}, },
isForm: false,
form: { form: {
componentProps: { componentProps: {
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗

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

@ -57,6 +57,7 @@
:tableData="tableData" :tableData="tableData"
:apiUpdate="CountPlanMainApi.updateCountPlanMain" :apiUpdate="CountPlanMainApi.updateCountPlanMain"
:apiCreate="CountPlanMainApi.createCountPlanMain" :apiCreate="CountPlanMainApi.createCountPlanMain"
:CountPlanMain1FormAllSchemas="CountPlanMain1.allSchemas"
fromeWhere="countPlan" fromeWhere="countPlan"
:countScopeType="getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)" :countScopeType="getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)"
@handleAddTable="handleAddTable" @handleAddTable="handleAddTable"
@ -111,7 +112,8 @@ import {
CountPlanDetail, CountPlanDetail,
CountPlanDetailRules, CountPlanDetailRules,
CountPlanMain, CountPlanMain,
CountPlanMainRules CountPlanMainRules,
CountPlanMain1
} from './countPlanMain.data' } from './countPlanMain.data'
import * as CountPlanMainApi from '@/api/wms/countPlanMain' import * as CountPlanMainApi from '@/api/wms/countPlanMain'
import * as CountPlanDetailApi from '@/api/wms/countPlanDetail' import * as CountPlanDetailApi from '@/api/wms/countPlanDetail'
@ -468,7 +470,7 @@ const detailOpenForm = (type, row) => {
row.type == 'ABC' || row.type == 'ABC' ||
row.type == 'ITEMS_TYPE' || row.type == 'ITEMS_TYPE' ||
row.type == 'ITEMS_GROUP' || row.type == 'ITEMS_GROUP' ||
row.type == 'ITEMS_CODE' || row.type == 'ITEM_CODE' ||
row.type == 'WAREHOUSE_CODE' || row.type == 'WAREHOUSE_CODE' ||
row.type == 'AREABASIC_CODE' || row.type == 'AREABASIC_CODE' ||
row.type == 'LOCATIONGROUP_CODE' || row.type == 'LOCATIONGROUP_CODE' ||
@ -536,7 +538,7 @@ const detailOpenForm = (type, row) => {
} }
}) })
break break
case 'ITEMS_CODE': case 'ITEM_CODE':
CountPlanDetail.allSchemas.formSchema.forEach((item) => { CountPlanDetail.allSchemas.formSchema.forEach((item) => {
if (item.field == 'value') { if (item.field == 'value') {
item.componentProps.isInpuFocusShow = true item.componentProps.isInpuFocusShow = true
@ -788,7 +790,7 @@ const selectChangeDetail = (field, val) => {
val == 'ABC' || val == 'ABC' ||
val == 'ITEMS_TYPE' || val == 'ITEMS_TYPE' ||
val == 'ITEMS_GROUP' || val == 'ITEMS_GROUP' ||
val == 'ITEMS_CODE' || val == 'ITEM_CODE' ||
val == 'WAREHOUSE_CODE' || val == 'WAREHOUSE_CODE' ||
val == 'AREABASIC_CODE' || val == 'AREABASIC_CODE' ||
val == 'LOCATIONGROUP_CODE' || val == 'LOCATIONGROUP_CODE' ||
@ -856,7 +858,7 @@ const selectChangeDetail = (field, val) => {
} }
}) })
break break
case 'ITEMS_CODE': case 'ITEM_CODE':
CountPlanDetail.allSchemas.formSchema.forEach((item) => { CountPlanDetail.allSchemas.formSchema.forEach((item) => {
if (item.field == 'value') { if (item.field == 'value') {
item.componentProps.isSearchList = true item.componentProps.isSearchList = true
@ -925,7 +927,7 @@ const tableFormChange = async (field, val, row) => {
row.type == 'ABC' || row.type == 'ABC' ||
row.type == 'ITEMS_TYPE' || row.type == 'ITEMS_TYPE' ||
row.type == 'ITEMS_GROUP' || row.type == 'ITEMS_GROUP' ||
row.type == 'ITEMS_CODE' || row.type == 'ITEM_CODE' ||
row.type == 'WAREHOUSE_CODE' || row.type == 'WAREHOUSE_CODE' ||
row.type == 'AREABASIC_CODE' || row.type == 'AREABASIC_CODE' ||
row.type == 'LOCATIONGROUP_CODE' || row.type == 'LOCATIONGROUP_CODE' ||
@ -990,7 +992,7 @@ const tableFormChange = async (field, val, row) => {
} }
}) })
break break
case 'ITEMS_CODE': case 'ITEM_CODE':
row.searchTable = { row.searchTable = {
isInpuFocusShow: true, isInpuFocusShow: true,
searchTitle: '物品信息', searchTitle: '物品信息',

9
src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue

@ -143,6 +143,7 @@ const updataTableColumns = (val) => {
// //
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => { const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
console.log('searchTableSuccess',formField, searchField, val, formRef, type, row )
nextTick(async () => { nextTick(async () => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'itemCode') { if(formField == 'itemCode') {
@ -150,8 +151,14 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =
DeliverRequestDetail.allSchemas.tableFormColumns.forEach(item => { DeliverRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : '' tableFormKeys[item.field] = item.default ? item.default : ''
}) })
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['itemCode']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['uom'] = item['customerUom'] newRow['uom'] = item['customerUom']
newRow['id'] = item['id'] newRow['id'] = item['id']

8
src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue

@ -157,8 +157,14 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
}) })
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'itemCode') { if(formField == 'itemCode') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['itemCode']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
row[formField] = item[searchField] row[formField] = item[searchField]
newRow['uom'] = item['customerUom'] newRow['uom'] = item['customerUom']

7
src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue

@ -111,6 +111,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'soLine') { if(formField == 'soLine') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['soLine']==item['lineNumber']&&item1['soNumber']==item['number']&&item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item.itemCode))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['soLine']==item['lineNumber']&&item1['soNumber']==item['number']&&item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['soLine'] = item['lineNumber'] newRow['soLine'] = item['lineNumber']

7
src/views/wms/deliversettlementManage/stockup/stockupMainRequest/index.vue

@ -128,6 +128,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// row['uom'] = val[0]['uom'] // row['uom'] = val[0]['uom']
// } // }
if(formField == 'itemCode') { if(formField == 'itemCode') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['code']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['code']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['code']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['code'])) return if(tableData.value.find(item1=>item1['itemCode'] == item['code'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))

1
src/views/wms/deliversettlementManage/stockup/stockupMainRequest/stockupMainRequest.data.ts

@ -649,6 +649,7 @@ export const StockupDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
tableForm:{ tableForm:{
multiple:true,
isInpuFocusShow: false, // 开启查询弹窗 isInpuFocusShow: false, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', searchListPlaceholder: '请选择物料代码',
searchField: 'code', searchField: 'code',

20
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts

@ -403,22 +403,42 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
tableForm: { tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码', searchListPlaceholder: '请选择到库位代码',
searchField: 'code', searchField: 'code',
searchTitle: '库位信息', searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas, searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectBusinessTypeToLocation, searchPage: LocationApi.selectBusinessTypeToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
}, },
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码', searchListPlaceholder: '请选择到库位代码',
searchField: 'code', searchField: 'code',
searchTitle: '库位信息', searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas, searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectBusinessTypeToLocation, searchPage: LocationApi.selectBusinessTypeToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
} }
} }
}, },

8
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue

@ -157,7 +157,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'containerNumber') { if(formField == 'containerNumber') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['containerNumber']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['itemCode']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['containerNumber']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['containerNumber'] = item['itemCode'] newRow['containerNumber'] = item['itemCode']

7
src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue

@ -132,6 +132,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'containerNumber') { if(formField == 'containerNumber') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['containerNumber']==item['code']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['code']))
message.warning(`器具号${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['containerNumber']==item['code']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['containerNumber'] = item['code'] newRow['containerNumber'] = item['code']

3
src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts

@ -359,7 +359,8 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom', sort: 'custom',
tableForm:{ tableForm:{
multiple:true, multiple:true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: false, // 开启查询弹窗
disabled: true,
searchListPlaceholder: '请选择器具号', searchListPlaceholder: '请选择器具号',
searchField: 'itemCode', searchField: 'itemCode',
searchTitle: '器具信息', searchTitle: '器具信息',

7
src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue

@ -133,6 +133,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'containerNumber') { if(formField == 'containerNumber') {
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['containerNumber']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['itemCode']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['containerNumber']==item['itemCode']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['containerNumber'] = item['itemCode'] newRow['containerNumber'] = item['itemCode']

20
src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/scrapContainerMainRequest.data.ts

@ -403,22 +403,42 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
tableForm: { tableForm: {
enterSearch:true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码', searchListPlaceholder: '请选择到库位代码',
searchField: 'code', searchField: 'code',
searchTitle: '库位信息', searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas, searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectPageItemAreaToLocation, searchPage: LocationApi.selectPageItemAreaToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
}, },
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码', searchListPlaceholder: '请选择到库位代码',
searchField: 'code', searchField: 'code',
searchTitle: '库位信息', searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas, searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectPageItemAreaToLocation, searchPage: LocationApi.selectPageItemAreaToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
} }
} }
}, },

7
src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/index.vue

@ -115,6 +115,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// //
if(formField=='itemCode'){ if(formField=='itemCode'){
// //
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['code']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['code']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['code']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow[formField] = item[searchField] newRow[formField] = item[searchField]

46
src/views/wms/inventoryjobManage/packageManage/packageoverMain/packageoverRequestMain/packageoverRequestMain.data.ts

@ -112,6 +112,7 @@ export const PackageoverRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码', // 输入框占位文本 searchListPlaceholder: '请选择仓库代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
@ -122,6 +123,15 @@ export const PackageoverRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available', key: 'available',
value: 'TRUE', value: 'TRUE',
isMainValue: false isMainValue: false
}],
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}] }]
} }
} }
@ -578,6 +588,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
key: 'itemCode', key: 'itemCode',
value: 'itemCode', value: 'itemCode',
isMainValue: true isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}] }]
}, },
form: { form: {
@ -598,6 +617,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
value: 'itemCode', value: 'itemCode',
message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示 message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示
isMainValue: true isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}] }]
} }
} }
@ -628,6 +656,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
value: 'itemCode', value: 'itemCode',
message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示 message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示
isMainValue: true isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}] }]
}, },
form: { form: {
@ -647,6 +684,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
key: 'itemCode', key: 'itemCode',
value: 'itemCode', value: 'itemCode',
isMainValue: true isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}] }]
} }
} }

2
src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/index.vue

@ -114,6 +114,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') { if (type == 'tableForm') {
// //
if(formField=='itemCode'){ if(formField=='itemCode'){
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['batch']==item['batch']&&item1['packingNumber']==item['packingNumber']&&item1['fromLocationCode']==item['locationCode']&&item1['inventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
let newRow = JSON.parse(JSON.stringify(tableFormKeys)) let newRow = JSON.parse(JSON.stringify(tableFormKeys))
newRow['packingNumber'] = item['packingNumber'] newRow['packingNumber'] = item['packingNumber']

55
src/views/wms/inventoryjobManage/sparepartsrequisition/sparepartsrequisitionRequestMain/sparepartsrequisitionRequestMain.data.ts

@ -115,6 +115,7 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本 searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本
searchField: 'costcentreCode', // 查询弹窗赋值字段 searchField: 'costcentreCode', // 查询弹窗赋值字段
@ -125,7 +126,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available', key: 'available',
value: 'TRUE', value: 'TRUE',
isMainValue: false isMainValue: false
}] }],
verificationParams: [{
key: 'costcentreCode',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
} }
} }
}, },
@ -150,6 +159,7 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
tableForm: { tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择成领用原因代码', searchListPlaceholder: '请选择成领用原因代码',
searchField: 'code', searchField: 'code',
@ -165,11 +175,20 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
value: 'costCenterType', value: 'costCenterType',
message: '成本中心类型不能为空!', message: '成本中心类型不能为空!',
isMainValue: true isMainValue: true
}] }],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}, },
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本 searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
@ -185,7 +204,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
value: 'costCenterType', value: 'costCenterType',
message: '成本中心类型不能为空!', message: '成本中心类型不能为空!',
isMainValue: true isMainValue: true
}] }],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
} }
} }
}, },
@ -197,16 +224,26 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
tableForm: { tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择QAD项目信息', searchListPlaceholder: '请选择QAD项目信息',
searchField: 'projectCode', searchField: 'projectCode',
searchTitle: '领用原因代码', searchTitle: '领用原因代码',
searchAllSchemas: QadProject.allSchemas, searchAllSchemas: QadProject.allSchemas,
searchPage: QadProjectApi.getQadProjectPage searchPage: QadProjectApi.getQadProjectPage,
verificationParams: [{
key: 'projectCode',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}, },
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择QAD项目信息', // 输入框占位文本 searchListPlaceholder: '请选择QAD项目信息', // 输入框占位文本
searchField: 'projectCode', // 查询弹窗赋值字段 searchField: 'projectCode', // 查询弹窗赋值字段
@ -217,7 +254,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available', key: 'available',
value: 'TRUE', value: 'TRUE',
isMainValue: false isMainValue: false
}] }],
verificationParams: [{
key: 'projectCode',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
} }
} }
}, },

2
src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRequestMain/index.vue

@ -114,6 +114,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') { if (type == 'tableForm') {
// //
if(formField === 'itemCode'){ if(formField === 'itemCode'){
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['batch']==item['batch']&&item1['packingNumber']==item['packingNumber']&&item1['fromLocationCode']==item['locationCode']&&item1['inventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
let newRow = JSON.parse(JSON.stringify(tableFormKeys)) let newRow = JSON.parse(JSON.stringify(tableFormKeys))
newRow[formField] =item[searchField] newRow[formField] =item[searchField]

6
src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRequestMain/index.vue

@ -199,6 +199,12 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if(formField == 'toLocationCode'){ if(formField == 'toLocationCode'){
row['toLocationCode'] = val[0]['code'] row['toLocationCode'] = val[0]['code']
} else if(formField == 'itemCode'){ } else if(formField == 'itemCode'){
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['code']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item['code']))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0){ if(val.length==0){
return return
} }

2
src/views/wms/issueManage/issue/issueJobMain/index.vue

@ -288,7 +288,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"jobIssueMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/issue/issueRecordMain/index.vue

@ -144,7 +144,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"recordIssueMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

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

@ -403,7 +403,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"requestIssueMain")
} }
/** 删除按钮操作 */ /** 删除按钮操作 */

2
src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue

@ -139,7 +139,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"recordOnlinesettlementMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

9
src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue

@ -419,7 +419,7 @@ const openForm =async (type: string, row?: number) => {
/** 详情操作 */ /** 详情操作 */
const detailRef = ref() const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"planPreparetoissueMain")
} }
/** 删除按钮操作 */ /** 删除按钮操作 */
@ -489,20 +489,21 @@ const submitForm = async (formType, submitData) => {
data.subList = tableData.value // data.subList = tableData.value //
try { try {
if (formType === 'create') { if (formType === 'create') {
await PreparetoissueMainApi.createPreparetoissueMain(data).then((res) => { await PreparetoissueMainApi.createPreparetoissueMain(data).then(async (res) => {
if (res.status == '6') { if (res.status == '6') {
// //
PreparetoissueMainApi.generateIssueRequest(res.number) await PreparetoissueMainApi.generateIssueRequest(res.number)
} }
getList()
}) })
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
} else { } else {
await PreparetoissueMainApi.updatePreparetoissueMain(data) await PreparetoissueMainApi.updatePreparetoissueMain(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))
getList()
} }
formRef.value.dialogVisible = false formRef.value.dialogVisible = false
// //
getList()
} finally { } finally {
formRef.value.formLoading = false formRef.value.formLoading = false
} }

8
src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts

@ -524,8 +524,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch:true, isSearchList: false, // 开启查询弹窗
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择工位', // 输入框占位文本 searchListPlaceholder: '请选择工位', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题 searchTitle: '工位信息', // 查询弹窗标题
@ -557,16 +556,17 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
tableForm: { tableForm: {
enterSearch: true,
isShowTableFormSearch:true, isShowTableFormSearch:true,
multiple: true, multiple: true,
isInpuFocusShow: true, disabled: true,
isInpuFocusShow: false,
searchListPlaceholder: '请选择工位', // 输入框占位文本 searchListPlaceholder: '请选择工位', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段 searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题 searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
verificationPage: WorkStationApi.getWorkstationByCodes,// 失去焦点校验输入框的数据内容存在 verificationPage: WorkStationApi.getWorkstationByCodes,// 失去焦点校验输入框的数据内容存在
isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据
searchCondition: [{ searchCondition: [{
key: 'productionLineCode', key: 'productionLineCode',
value: 'prodLine', value: 'prodLine',

2
src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue

@ -288,7 +288,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"jobProductionreceiptMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue

@ -144,7 +144,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"recordProductionreceiptMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue

@ -260,7 +260,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"jobProductionreturnMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue

@ -144,7 +144,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"recordProductionreturnMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue

@ -574,7 +574,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"requestProductionreturnMain")
} }
/** 详情操作——子表表单 */ /** 详情操作——子表表单 */
const detailOpenForm = (type, row) => { const detailOpenForm = (type, row) => {

16
src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue

@ -177,19 +177,25 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') { if (type == 'tableForm') {
// //
if(formField == 'itemCode') { if(formField == 'itemCode') {
if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){
message.warning(`物料${val[0]['itemCode']}已经存在`)
return
}
const isType = await isItemType(val[0]['itemCode'], labelType.value) const isType = await isItemType(val[0]['itemCode'], labelType.value)
if(!isType){ if(!isType){
message.warning('当前物料可制造与其他数据不一致,请重新选择!') message.warning('当前物料可制造与其他数据不一致,请重新选择!')
} else { } else {
row['batch'] = val[0]['batch']==''?formatTime(new Date(), 'yyyyMMdd'):val[0]['batch'] row['batch'] = val[0]['batch']==''?formatTime(new Date(), 'yyyyMMdd'):val[0]['batch']
row['itemCode'] = val[0]['itemCode'] row['itemCode'] = val[0]['itemCode']
row['uom'] = val[0]['uom'] row['uom'] = val[0]['uom']
row['inventoryStatus'] = val[0]['inventoryStatus'] row['inventoryStatus'] = val[0]['inventoryStatus']
row['qty'] = val[0]['qty'] row['qty'] = Number(val[0]['qty'])
// tableform // tableform
ProductionreturnRequestDetail.allSchemas.tableFormColumns.map(item => { ProductionreturnRequestDetail.allSchemas.tableFormColumns.forEach(item => {
if(item.field == 'qty') { if(item.field == 'qty' && Number(val[0]['qty'])>item.tableForm.min) {
item.tableForm.max = val[0]['qty'] item.tableForm.max = Number(val[0]['qty'])
} }
if(item.field == 'batch') { if(item.field == 'batch') {
item.tableForm.disabled = false item.tableForm.disabled = false
@ -518,7 +524,7 @@ const openForm =async (type: string, row?: number) => {
/** 详情操作 */ /** 详情操作 */
const detailRef = ref() const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"requestProductionreturnMainNo")
} }
/** 删除按钮操作 */ /** 删除按钮操作 */

2
src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue

@ -316,7 +316,7 @@ const buttonTableClick = async (val, row) => {
/** 详情操作 */ /** 详情操作 */
const detailRef = ref() const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"jobRepleinshMain")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

2
src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue

@ -141,7 +141,7 @@ const buttonTableClick = async (val, row) => {
/** 详情操作 */ /** 详情操作 */
const detailRef = ref() const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"record_repleinsh_main")
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

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

@ -317,7 +317,7 @@ const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => { const openDetail = (row: any, titleName: any, titleValue: any) => {
const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
detailRef.value.openDetail(row, titleName, titleValue) detailRef.value.openDetail(row, titleName, titleValue,"requestRepleinshMain")
} }
/** 删除按钮操作 */ /** 删除按钮操作 */

2
src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue

@ -133,6 +133,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// //
row['toOwnerCode'] = val[0]['code'] row['toOwnerCode'] = val[0]['code']
}else if(formField == 'fromPackingNumber'){ }else if(formField == 'fromPackingNumber'){
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['fromBatch']==item['batch']&&item1['fromPackingNumber']==item['packingNumber']&&item1['locationCode']==item['locationCode']&&item1['fromInventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow[formField] = item[searchField] newRow[formField] = item[searchField]

22
src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts

@ -683,22 +683,40 @@ export const InventorychangeRequestDetail = useCrudSchemas(reactive<CrudSchema[]
width: 150 width: 150
}, },
tableForm: { tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗 isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择货主代码', searchListPlaceholder: '请选择货主代码',
searchField: 'code', searchField: 'code',
searchTitle: '货主信息', searchTitle: '货主信息',
searchAllSchemas: Owner.allSchemas, searchAllSchemas: Owner.allSchemas,
searchPage: OwnerApi.getOwnerPage searchPage: OwnerApi.getOwnerPage,
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
}, },
form: { form: {
// labelMessage: '信息提示说明!!!', // labelMessage: '信息提示说明!!!',
componentProps: { componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗 isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择货主代码', searchListPlaceholder: '请选择货主代码',
searchField: 'code', searchField: 'code',
searchTitle: '货主信息', searchTitle: '货主信息',
searchAllSchemas: Owner.allSchemas, searchAllSchemas: Owner.allSchemas,
searchPage: OwnerApi.getOwnerPage searchPage: OwnerApi.getOwnerPage,
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
} }
} }
}, },

3
src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue

@ -340,7 +340,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
nextTick(() => { nextTick(() => {
if (type == 'tableForm') { if (type == 'tableForm') {
if(formField == 'fromPackingNumber'){ if(formField == 'fromPackingNumber'){
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['fromBatch']==item['batch']&&item1['fromPackingNumber']==item['packingNumber']&&item1['fromLocationCode']==item['locationCode']&&item1['fromInventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['fromPackingNumber'] = item['packingNumber'] newRow['fromPackingNumber'] = item['packingNumber']

7
src/views/wms/productionManage/productionplan/productionMain/index.vue

@ -120,6 +120,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// }) // })
if(formField=='itemCode'){ if(formField=='itemCode'){
// row[formField] = val[0][searchField] // row[formField] = val[0][searchField]
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item.itemCode))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(async item=>{ val.forEach(async item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return if(tableData.value.find(item1=>item1['id'] == item['id'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))

7
src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue

@ -118,6 +118,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// console.log(err); // console.log(err);
// }) // })
if(formField == 'itemCode'){ if(formField == 'itemCode'){
let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item.itemCode))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']))
if(val.length==0) return
val.forEach(async item=>{ val.forEach(async item=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow[formField] = item[searchField] newRow[formField] = item[searchField]

3
src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts

@ -691,7 +691,8 @@ export const ProductionDetail = useCrudSchemas(reactive<CrudSchema[]>([
}, },
tableForm:{ tableForm:{
multiple: true, multiple: true,
enterSearch:true, disabled: true,
// enterSearch:true,
// isInpuFocusShow: true, // isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段 searchField: 'itemCode', // 查询弹窗赋值字段

4
src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue

@ -210,6 +210,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
row['packQty'] = val[0]['packQty'] row['packQty'] = val[0]['packQty']
row[formField] = val[0][searchField] row[formField] = val[0][searchField]
}else if (formField == 'itemCode') { }else if (formField == 'itemCode') {
if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){
message.warning(`物料${val[0]['itemCode']}已经存在`)
return
}
row['uom'] = val[0]['uom'] row['uom'] = val[0]['uom']
row['produceDate'] = dayjs().valueOf() row['produceDate'] = dayjs().valueOf()
row[formField] = val[0][searchField] row[formField] = val[0][searchField]

4
src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue

@ -211,6 +211,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
row['packQty'] = val[0]['packQty'] row['packQty'] = val[0]['packQty']
row[formField] = val[0][searchField] row[formField] = val[0][searchField]
}else if (formField == 'itemCode') { }else if (formField == 'itemCode') {
if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){
message.warning(`物料${val[0]['itemCode']}已经存在`)
return
}
row['uom'] = val[0]['uom'] row['uom'] = val[0]['uom']
row['produceDate'] = dayjs().valueOf() row['produceDate'] = dayjs().valueOf()
row[formField] = val[0][searchField] row[formField] = val[0][searchField]

2
src/views/wms/productionManage/productredress/productredressRequestMain/index.vue

@ -131,6 +131,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// //
row[formField] = val[0][searchField] row[formField] = val[0][searchField]
if (formField == 'itemCode') { if (formField == 'itemCode') {
val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['batch']==item['batch']&&item1['packingNumber']==item['packingNumber']&&item1['locationCode']==item['locationCode']&&item1['inventoryStatus']==item['inventoryStatus']))
if(val.length==0) return
val.forEach(item=>{ val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode']&&item1['batch'] == item['batch']&&item1['packingNumber'] == item['packingNumber']&&item1['toLocationCode'] == item['locationCode']&&item1['inventoryStatus'] == item['inventoryStatus'])) return if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode']&&item1['batch'] == item['batch']&&item1['packingNumber'] == item['packingNumber']&&item1['toLocationCode'] == item['locationCode']&&item1['inventoryStatus'] == item['inventoryStatus'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))

8
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue

@ -92,11 +92,11 @@
<el-dialog <el-dialog
v-model="showQualityReport" v-model="showQualityReport"
:title="t('质检明细')" :title="t('质检明细')"
width="90%" :append-to-body="false"
append-to-body
destroy-on-close destroy-on-close
fullscreen
> >
<iframe height="600px" width="100%" :src="qualityReport" frameborder="0"></iframe> <iframe :height="reportHeight" width="100%" :src="qualityReport" frameborder="0"></iframe>
</el-dialog> </el-dialog>
@ -189,10 +189,12 @@ const buttonTableClick = async (val, row) => {
} }
} }
// //
const reportHeight = ref(window.innerHeight - 120)
const showQualityReport = ref(false) const showQualityReport = ref(false)
const qualityReport = ref('') const qualityReport = ref('')
const checkQualityReport = async (row)=>{ const checkQualityReport = async (row)=>{
showQualityReport.value = true showQualityReport.value = true
// qualityReport.value = "http://localhost/purchasereceiptReport?asnNumber=ASNS20240720-0002"
qualityReport.value = `${getReportUrl()}/purchasereceiptReport?asnNumber=${row.asnNumber}` qualityReport.value = `${getReportUrl()}/purchasereceiptReport?asnNumber=${row.asnNumber}`
} }

7
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue

@ -510,6 +510,13 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r
} }
const updateTableData = (tableList)=>{ const updateTableData = (tableList)=>{
let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item.itemCode))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
if(tableList.length==0) return
tableList.forEach(row=>{ tableList.forEach(row=>{
//poNumber poLine itemCode batch //poNumber poLine itemCode batch
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))

7
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue

@ -487,6 +487,13 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r
} }
const updateTableData = (tableList)=>{ const updateTableData = (tableList)=>{
let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
if(itemCodes.length>0){
itemCodes = itemCodes.map(item=>(item.itemCode))
message.warning(`物料${itemCodes.join(',')}已经存在`)
}
tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
if(tableList.length==0) return
tableList.forEach(row=>{ tableList.forEach(row=>{
//poNumber poLine itemCode batch //poNumber poLine itemCode batch
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row})) const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save