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

2
index.html

@ -132,7 +132,7 @@
<div class="app-loading">
<div class="app-loading-wrap">
<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>
<div class="app-loading-item">

2
src/api/qms/samplingScheme/index.ts

@ -11,7 +11,7 @@ export interface SamplingSchemeVO {
export const getSamplingSchemePage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
const data = { ...params }
return await request.post({ url: '/qms/sampling-scheme/senior', data })
} else {
return await request.get({ url: `/qms/sampling-scheme/page`, params })

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

@ -103,4 +103,9 @@ export const updatePassword = (data : UserVO) => {
export const getUserListByDeptIds = (data : Array<number>) => {
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 })
}
}
// 查询采购退货记录子列表
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) => {
if (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) => {
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'
// 查询备注列表
export const getRemarkPage = async (params) => {
if (params.tableName){
params.tableName = toSnakeCase(params.tableName)
}
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
}else if(item?.type == 'ITEMS_GROUP'){
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
}else if(item?.type == 'WAREHOUSE_CODE'){
// return allList.value.warehouseAllList.find((cur) => cur.value == item.value).label

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

@ -90,10 +90,10 @@
<template #footer>
<div class="flex items-center">
<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" />
{{ t('ts.下载模板') }}
</el-button> -->
</el-button>
</div>
<el-button :disabled="formLoading" type="primary" @click="submitForm">{{ t('ts.确 ') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('ts.取 消') }}</el-button>
@ -191,7 +191,13 @@ const props = defineProps({
type: String,
required: false,
default: ''
}
},
//
isShowDownloadBtn: {
type: Boolean,
required: false,
default: false
},
})
const importTemplateData = ref(props.importTemplateData)
const accept = ref(props.accept)

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

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

10
src/components/PreviewPDF/index.vue

@ -1,9 +1,11 @@
<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>
<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-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>
</el-dialog>
@ -20,6 +22,8 @@ const imageArray = ref<string[]>([]) // 图片数组
const closeView = () => {
showDialog.value = false
}
const dialogHeight = ref(window.innerHeight)
//
const openPreview = async (data:string[]|string)=>{
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-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-option v-for="dict in initSelectOptions(item.column)" :key="dict.value" :label="t(`ts.${dict.label}`).replace('ts.','')"
<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 allDictOptions[item.column]" :key="dict.value" :label="t(`ts.${dict.label}`).replace('ts.','')"
:value="dict.value" />
<!-- <el-option v-for="(op, index) in initSelectOptions(item.column)" :label="op[item.optionsLabel] || op.label"
:value="op[item.optionsValue] || op.value" :key="index" /> -->
@ -57,8 +57,19 @@
import { Minus } from '@element-plus/icons-vue'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as UserApi from '@/api/system/user'
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({
// name
routeName: {
@ -142,7 +153,7 @@ const moreListOptions = ref({
const type = searchOption_high.value.find(item => (item.field == val))
let data = 'input'
if (type?.dictType) {
if (type?.dictType || type?.field == 'creator') {
data = 'select'
} else if (type?.form?.component == 'InputNumber') {
data = 'inputNumber'
@ -155,6 +166,16 @@ const moreListOptions = ref({
}
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 type = searchOption_high.value.find(item => (item.field == val))
@ -231,7 +252,7 @@ const buttonBaseClick = (val) => {
let data = []
moreListData.value.filters.forEach(item => {
let obj = {}
if(item.value1&&item.value1.length>0){
if(item.value1&&item.value1.length>0 || (item.value1&&typeof item.value1 === 'number')){
obj = {
column: item.column,
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
const initSelectOptions = (item) => {
return getStrDictOptions(searchOption_high.value.find(searchOptionItem => (searchOptionItem.field == item)).dictType)
@ -290,6 +330,7 @@ const changeDateTimePicker = (e, val,from) =>{
val.value = e.join(',')
}
}
defineExpose({
popoverVisible
})

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

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

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

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

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

@ -78,7 +78,7 @@ watch(
to="/"
>
<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"
/>
<!-- <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 names =[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]
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 = () => {
ElMessageBox.confirm(t('common.loginOutMessage'), t('common.reminder'), {
confirmButtonText: t('common.ok'),

4
src/layout/components/useRenderLayout.tsx

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

2
src/locales/en-US.ts

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

2
src/main.ts

@ -78,7 +78,7 @@ const setupAll = async () => {
// 多语言相关
const localeStore = useLocaleStore()
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()

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

@ -15,8 +15,8 @@
<el-option
v-for="item in tenantArray"
:key="item"
:label="t(`ts.${item}`).replace('ts.','')"
:value="item"
:label="t(`ts.${item.aliasName}`).replace('ts.','')"
:value="item.name"
/>
</el-select>
</el-form-item>
@ -119,8 +119,20 @@
//
const captchaEnabled = ref(true)
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 = {
tenantName: [required],
username: [required],
@ -131,7 +143,7 @@
captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE,
tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE,
loginForm: {
tenantName: tenantArray[0],
tenantName: tenantArray.value[0].name,
username: 'admin',
password: '123456',
captchaVerification: '',

8
src/views/login/login.vue

@ -9,7 +9,7 @@
>
<!-- 左上角的 logo + 系统标题 -->
<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>
</div>
<!-- 左边的背景图 + 欢迎语 -->
@ -21,9 +21,9 @@
>
<!-- <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="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') }}
</div>
</div> -->
</TransitionGroup>
</div>
</div>
@ -33,7 +33,7 @@
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">
<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>
</div>
<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
}
},
{
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: '创建时间',
field: 'createTime',

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

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

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

@ -153,10 +153,10 @@ export const Counter = useCrudSchemas(
field: 'nextStage',
sort: 'custom',
isSearch: false,
form:{
form: {
component: 'Select',
componentProps: {
options:[],
options: [],
optionsAlias: {
labelField: 'stage',
valueField: 'stage'
@ -167,6 +167,28 @@ export const Counter = useCrudSchemas(
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: '创建时间',
field: 'createTime',

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

@ -151,11 +151,13 @@ const buttonTableClick = async (val, row) => {
const basicFormRef = ref()
const openForm = async (type: string, row?: any) => {
const obj = await CounterApi.getNextStage(row.id)
for (const item of Counter.allSchemas.formSchema) {
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)
}
@ -244,6 +246,9 @@ const searchFormClick = (searchData) => {
/** 初始化 **/
onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList()
importTemplateData.templateUrl = await CounterApi.importTemplate()
})

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

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

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

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

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

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

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

@ -56,14 +56,14 @@ export const InspectionJobMain = useCrudSchemas(
label: '发货单号',
field: 'asnNumber',
sort: 'custom',
isSearch: false,
isSearch: true,
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
width: 180
}
},
{
@ -225,6 +225,21 @@ export const InspectionJobMain = useCrudSchemas(
width: 150
}
},
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isDetail: true,
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
}
},
{
label: '检验批数量',
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: '创建时间',
field: 'createTime',
@ -609,6 +658,7 @@ export const InspectionJobMain = useCrudSchemas(
width: 150
}
},
{
label: '操作',
field: 'action',

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

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

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

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

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

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

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

@ -45,14 +45,14 @@ export const InspectionRecordMain = useCrudSchemas(
label: '发货单号',
field: 'asnNumber',
sort: 'custom',
isSearch: false,
isSearch: true,
form: {
componentProps: {
disabled: true
}
},
table: {
width: 150
width: 180
}
},
{
@ -120,6 +120,16 @@ export const InspectionRecordMain = useCrudSchemas(
width: 150
}
},
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isForm: false,
table: {
width: 150
}
},
{
label: '检验方案编码',
field: 'inspectionSchemeCode',
@ -370,6 +380,7 @@ export const InspectionRecordMain = useCrudSchemas(
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isForm: false,
search: {
component: 'DatePicker',
componentProps: {
@ -379,7 +390,6 @@ export const InspectionRecordMain = useCrudSchemas(
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
@ -424,6 +434,39 @@ export const InspectionRecordMain = useCrudSchemas(
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: '创建时间',
field: 'createTime',

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

@ -397,7 +397,10 @@ console.log(formType,data)
list.value = await InspectionRequestPackageApi.getInspectionRequestPackageList(data.masterId)
}
/** 初始化 **/
onMounted(async () => {
onMounted(async () => {
  tableObject.params = {
    available: true
  }
getList()
importTemplateData.templateUrl = await InspectionMainApi.importTemplate()
})

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

@ -44,7 +44,7 @@ export const InspectionMain = useCrudSchemas(
label: '发货单号',
field: 'asnNumber',
sort: 'custom',
isSearch: false,
isSearch: true,
isForm: false,
form: {
componentProps: {
@ -52,7 +52,7 @@ export const InspectionMain = useCrudSchemas(
}
},
table: {
width: 150
width: 180
}
},
{
@ -306,7 +306,7 @@ export const InspectionMain = useCrudSchemas(
}
},
{
label: '批次',
label: '检验批次',
field: 'batch',
sort: 'custom',
isSearch: false,
@ -314,6 +314,16 @@ export const InspectionMain = useCrudSchemas(
width: 150
}
},
{
label: '供应商批次',
field: 'supplierBatch',
sort: 'custom',
isSearch: false,
isForm: false,
table: {
width: 150
}
},
{
label: '待检数量',
field: 'requestInspectionNum',
@ -415,6 +425,28 @@ export const InspectionMain = useCrudSchemas(
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: '创建时间',
field: 'createTime',

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

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

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

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

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

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

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

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

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

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

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

@ -317,6 +317,28 @@ export const QualityNoticeMain = useCrudSchemas(
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: '创建时间',
field: 'createTime',

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -30,8 +30,12 @@ export const SelectedSet = useCrudSchemas(
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE'
},
form: {
component: 'Switch',
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(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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
},
},
{
label: '盘点描述',
field: 'countDescription',
sort: 'custom',
table: {
width: 150
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
table: {
width: 150
},
},
// {
// label: '盘点描述',
// field: 'countDescription',
// sort: 'custom',
// table: {
// width: 150
// },
// },
// {
// label: '备注',
// field: 'remark',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '创建时间',
field: 'createTime',

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

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

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

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

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

@ -57,6 +57,7 @@
:tableData="tableData"
:apiUpdate="CountPlanMainApi.updateCountPlanMain"
:apiCreate="CountPlanMainApi.createCountPlanMain"
:CountPlanMain1FormAllSchemas="CountPlanMain1.allSchemas"
fromeWhere="countPlan"
:countScopeType="getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)"
@handleAddTable="handleAddTable"
@ -111,7 +112,8 @@ import {
CountPlanDetail,
CountPlanDetailRules,
CountPlanMain,
CountPlanMainRules
CountPlanMainRules,
CountPlanMain1
} from './countPlanMain.data'
import * as CountPlanMainApi from '@/api/wms/countPlanMain'
import * as CountPlanDetailApi from '@/api/wms/countPlanDetail'
@ -468,7 +470,7 @@ const detailOpenForm = (type, row) => {
row.type == 'ABC' ||
row.type == 'ITEMS_TYPE' ||
row.type == 'ITEMS_GROUP' ||
row.type == 'ITEMS_CODE' ||
row.type == 'ITEM_CODE' ||
row.type == 'WAREHOUSE_CODE' ||
row.type == 'AREABASIC_CODE' ||
row.type == 'LOCATIONGROUP_CODE' ||
@ -536,7 +538,7 @@ const detailOpenForm = (type, row) => {
}
})
break
case 'ITEMS_CODE':
case 'ITEM_CODE':
CountPlanDetail.allSchemas.formSchema.forEach((item) => {
if (item.field == 'value') {
item.componentProps.isInpuFocusShow = true
@ -788,7 +790,7 @@ const selectChangeDetail = (field, val) => {
val == 'ABC' ||
val == 'ITEMS_TYPE' ||
val == 'ITEMS_GROUP' ||
val == 'ITEMS_CODE' ||
val == 'ITEM_CODE' ||
val == 'WAREHOUSE_CODE' ||
val == 'AREABASIC_CODE' ||
val == 'LOCATIONGROUP_CODE' ||
@ -856,7 +858,7 @@ const selectChangeDetail = (field, val) => {
}
})
break
case 'ITEMS_CODE':
case 'ITEM_CODE':
CountPlanDetail.allSchemas.formSchema.forEach((item) => {
if (item.field == 'value') {
item.componentProps.isSearchList = true
@ -925,7 +927,7 @@ const tableFormChange = async (field, val, row) => {
row.type == 'ABC' ||
row.type == 'ITEMS_TYPE' ||
row.type == 'ITEMS_GROUP' ||
row.type == 'ITEMS_CODE' ||
row.type == 'ITEM_CODE' ||
row.type == 'WAREHOUSE_CODE' ||
row.type == 'AREABASIC_CODE' ||
row.type == 'LOCATIONGROUP_CODE' ||
@ -990,7 +992,7 @@ const tableFormChange = async (field, val, row) => {
}
})
break
case 'ITEMS_CODE':
case 'ITEM_CODE':
row.searchTable = {
isInpuFocusShow: true,
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 ) => {
console.log('searchTableSuccess',formField, searchField, val, formRef, type, row )
nextTick(async () => {
if (type == 'tableForm') {
if(formField == 'itemCode') {
@ -150,8 +151,14 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =
DeliverRequestDetail.allSchemas.tableFormColumns.forEach(item => {
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=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['uom'] = item['customerUom']
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(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=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
row[formField] = item[searchField]
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(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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']
// }
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=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['code'])) return
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
},
tableForm:{
multiple:true,
isInpuFocusShow: false, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码',
searchField: 'code',

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

@ -402,23 +402,43 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
tableForm:{
tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码',
searchField: 'code',
searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectBusinessTypeToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码',
searchField: 'code',
searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas,
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(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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',
tableForm:{
multiple:true,
isInpuFocusShow: true, // 开启查询弹窗
isInpuFocusShow: false, // 开启查询弹窗
disabled: true,
searchListPlaceholder: '请选择器具号',
searchField: 'itemCode',
searchTitle: '器具信息',

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

@ -133,6 +133,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
nextTick(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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
},
tableForm: {
enterSearch:true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码',
searchField: 'code',
searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectPageItemAreaToLocation,
// 失去焦点校验参数
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择到库位代码',
searchField: 'code',
searchTitle: '库位信息',
searchAllSchemas: Location.allSchemas,
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'){
//
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择仓库代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
@ -122,6 +123,15 @@ export const PackageoverRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available',
value: 'TRUE',
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',
value: 'itemCode',
isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
},
form: {
@ -598,6 +617,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
value: 'itemCode',
message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示
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',
message: '请先选择物料代码!', // 当前置条件为空时 弹出信息提示
isMainValue: true
}],
// 失去焦点校验参数
verificationParams: [{
key: 'packUnit',
action: '==',
value: '',
isMainValue: false,
isSearch: 'true',
isFormModel: true,
}]
},
form: {
@ -647,6 +684,15 @@ export const PackageoverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
key: 'itemCode',
value: 'itemCode',
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(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=>{
let newRow = JSON.parse(JSON.stringify(tableFormKeys))
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: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本
searchField: 'costcentreCode', // 查询弹窗赋值字段
@ -125,7 +126,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available',
value: 'TRUE',
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
},
tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择成领用原因代码',
searchField: 'code',
@ -165,11 +175,20 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
value: 'costCenterType',
message: '成本中心类型不能为空!',
isMainValue: true
}]
}],
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
@ -185,7 +204,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
value: 'costCenterType',
message: '成本中心类型不能为空!',
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
},
tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择QAD项目信息',
searchField: 'projectCode',
searchTitle: '领用原因代码',
searchAllSchemas: QadProject.allSchemas,
searchPage: QadProjectApi.getQadProjectPage
searchPage: QadProjectApi.getQadProjectPage,
verificationParams: [{
key: 'projectCode',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择QAD项目信息', // 输入框占位文本
searchField: 'projectCode', // 查询弹窗赋值字段
@ -217,7 +254,15 @@ export const UnplannedissueRequestMain = useCrudSchemas(reactive<CrudSchema[]>([
key: 'available',
value: 'TRUE',
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(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=>{
let newRow = JSON.parse(JSON.stringify(tableFormKeys))
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'){
row['toLocationCode'] = val[0]['code']
} 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){
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 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 //
try {
if (formType === 'create') {
await PreparetoissueMainApi.createPreparetoissueMain(data).then((res) => {
await PreparetoissueMainApi.createPreparetoissueMain(data).then(async (res) => {
if (res.status == '6') {
//
PreparetoissueMainApi.generateIssueRequest(res.number)
await PreparetoissueMainApi.generateIssueRequest(res.number)
}
getList()
})
message.success(t('common.createSuccess'))
} else {
await PreparetoissueMainApi.updatePreparetoissueMain(data)
message.success(t('common.updateSuccess'))
getList()
}
formRef.value.dialogVisible = false
//
getList()
} finally {
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: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch:true,
isSearchList: true, // 开启查询弹窗
isSearchList: false, // 开启查询弹窗
searchListPlaceholder: '请选择工位', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
@ -557,16 +556,17 @@ export const PreparetoissueDetail = useCrudSchemas(reactive<CrudSchema[]>([
}
},
tableForm: {
enterSearch: true,
isShowTableFormSearch:true,
multiple: true,
isInpuFocusShow: true,
disabled: true,
isInpuFocusShow: false,
searchListPlaceholder: '请选择工位', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '工位信息', // 查询弹窗标题
searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
verificationPage: WorkStationApi.getWorkstationByCodes,// 失去焦点校验输入框的数据内容存在
isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据
searchCondition: [{
key: 'productionLineCode',
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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) => {

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

@ -177,24 +177,30 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') {
//
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)
if(!isType){
message.warning('当前物料可制造与其他数据不一致,请重新选择!')
} else {
row['batch'] = val[0]['batch']==''?formatTime(new Date(), 'yyyyMMdd'):val[0]['batch']
row['itemCode'] = val[0]['itemCode']
row['uom'] = val[0]['uom']
row['inventoryStatus'] = val[0]['inventoryStatus']
row['qty'] = val[0]['qty']
row['qty'] = Number(val[0]['qty'])
// tableform
ProductionreturnRequestDetail.allSchemas.tableFormColumns.map(item => {
if(item.field == 'qty') {
item.tableForm.max = val[0]['qty']
}
if(item.field == 'batch') {
item.tableForm.disabled = false
}
})
ProductionreturnRequestDetail.allSchemas.tableFormColumns.forEach(item => {
if(item.field == 'qty' && Number(val[0]['qty'])>item.tableForm.min) {
item.tableForm.max = Number(val[0]['qty'])
}
if(item.field == 'batch') {
item.tableForm.disabled = false
}
})
}
} else if(formField == 'workStationCode') {
val.forEach(item=>{
@ -518,7 +524,7 @@ const openForm =async (type: string, row?: number) => {
/** 详情操作 */
const detailRef = ref()
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 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 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 departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name
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']
}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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow[formField] = item[searchField]

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

@ -682,23 +682,41 @@ export const InventorychangeRequestDetail = useCrudSchemas(reactive<CrudSchema[]
table: {
width: 150
},
tableForm:{
tableForm: {
enterSearch: true,
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择货主代码',
searchField: 'code',
searchTitle: '货主信息',
searchAllSchemas: Owner.allSchemas,
searchPage: OwnerApi.getOwnerPage
searchPage: OwnerApi.getOwnerPage,
verificationParams: [{
key: 'code',
action: '==',
value: '',
isMainValue: false,
isSearch: true,
isFormModel: true,
}], // 失去焦点校验参数
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
enterSearch: true,
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择货主代码',
searchField: 'code',
searchTitle: '货主信息',
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(() => {
if (type == 'tableForm') {
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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'){
// 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=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
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);
// })
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=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
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:{
multiple: true,
enterSearch:true,
disabled: true,
// enterSearch:true,
// isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
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[formField] = val[0][searchField]
}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['produceDate'] = dayjs().valueOf()
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[formField] = val[0][searchField]
}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['produceDate'] = dayjs().valueOf()
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]
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=>{
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}))

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

@ -92,11 +92,11 @@
<el-dialog
v-model="showQualityReport"
:title="t('质检明细')"
width="90%"
append-to-body
:append-to-body="false"
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>
@ -189,10 +189,12 @@ const buttonTableClick = async (val, row) => {
}
}
//
const reportHeight = ref(window.innerHeight - 120)
const showQualityReport = ref(false)
const qualityReport = ref('')
const checkQualityReport = async (row)=>{
showQualityReport.value = true
// qualityReport.value = "http://localhost/purchasereceiptReport?asnNumber=ASNS20240720-0002"
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)=>{
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=>{
//poNumber poLine itemCode batch
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))

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

Loading…
Cancel
Save