Browse Source

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

master_hella_20240701
gaojs 3 months ago
parent
commit
cc72745c2c
  1. 4
      src/api/wms/pickJobMain/index.ts
  2. 4
      src/api/wms/pickRecordMain/index.ts
  3. 4
      src/api/wms/plansetting/index.ts
  4. 12
      src/api/wms/purchasereceiptRequestDetail/index.ts
  5. 4
      src/api/wms/scrapJobMain/index.ts
  6. 4
      src/api/wms/stockupMainJob/index.ts
  7. 2
      src/api/wms/strategy/index.ts
  8. 2
      src/components/BasicForm/src/BasicForm.vue
  9. 5
      src/components/TableForm/src/TableForm.vue
  10. 5
      src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
  11. 2
      src/views/wms/issueManage/issue/issueRequestMain/index.vue
  12. 14
      src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts
  13. 4
      src/views/wms/productionManage/productputaway/productputawayJobMain/index.vue
  14. 127
      src/views/wms/productionManage/productputawayAssemble/productputawayAssembleJobMain/index.vue
  15. 2
      src/views/wms/productionManage/productputawayAssemble/productputawayAssembleJobMain/productputawayAssembleJobMain.data.ts
  16. 2
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/purchasereceiptRequestMain.data.ts
  17. 795
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue
  18. 2479
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts
  19. 1
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue

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

@ -75,7 +75,7 @@ export const exportPickJobMain = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/pick-job-main/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/pick-job-main/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/pick-job-main/export-excel`, params }) return await request.download({ url: `/wms/pick-job-main/export-excel`, params })
} }
@ -84,4 +84,4 @@ export const exportPickJobMain = async (params) => {
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/wms/pick-job-main/get-import-template' }) return request.download({ url: '/wms/pick-job-main/get-import-template' })
} }

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

@ -62,7 +62,7 @@ export const exportPickRecordMain = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/pick-record-main/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/pick-record-main/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/pick-record-main/export-excel`, params }) return await request.download({ url: `/wms/pick-record-main/export-excel`, params })
} }
@ -71,4 +71,4 @@ export const exportPickRecordMain = async (params) => {
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/wms/pick-record-main/get-import-template' }) return request.download({ url: '/wms/pick-record-main/get-import-template' })
} }

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

@ -51,7 +51,7 @@ export const exportPlansetting = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/plansetting/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/plansetting/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/plansetting/export-excel`, params }) return await request.download({ url: `/wms/plansetting/export-excel`, params })
} }
@ -60,4 +60,4 @@ export const exportPlansetting = async (params) => {
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/wms/plansetting/get-import-template' }) return request.download({ url: '/wms/plansetting/get-import-template' })
} }

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

@ -57,6 +57,18 @@ export const getPurchasereceiptRequestDetailPageSpare = async (params) => {
} }
} }
// 查询M类型收货申请子列表
export const getPurchasereceiptRequestDetailPageOrderMType = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/purchasereceipt-request-detail/seniorOrderMType', data })
} else {
return await request.get({ url: `/wms/purchasereceipt-request-detail/pageOrderMType`, params })
}
}
// 查询采购收货申请子详情 // 查询采购收货申请子详情
export const getPurchasereceiptRequestDetail = async (id: number) => { export const getPurchasereceiptRequestDetail = async (id: number) => {
return await request.get({ url: `/wms/purchasereceipt-request-detail/get?id=` + id }) return await request.get({ url: `/wms/purchasereceipt-request-detail/get?id=` + id })

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

@ -85,7 +85,7 @@ export const exportScrapJobMain = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/scrap-job-main/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/scrap-job-main/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/scrap-job-main/export-excel`, params }) return await request.download({ url: `/wms/scrap-job-main/export-excel`, params })
} }
@ -94,4 +94,4 @@ export const exportScrapJobMain = async (params) => {
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/wms/scrap-job-main/get-import-template' }) return request.download({ url: '/wms/scrap-job-main/get-import-template' })
} }

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

@ -84,7 +84,7 @@ export const exportStockupMainJob = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/stockup-main-job/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/stockup-main-job/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/stockup-main-job/export-excel`, params }) return await request.download({ url: `/wms/stockup-main-job/export-excel`, params })
} }
@ -113,4 +113,4 @@ export const closeStockupMainJob = async (id) => {
// 执行发货任务主 // 执行发货任务主
export const executeStockupMainJob = async (data: StockupMainJobVO) => { export const executeStockupMainJob = async (data: StockupMainJobVO) => {
return await request.put({ url: `/wms/stockup-main-job/execute`, data }) return await request.put({ url: `/wms/stockup-main-job/execute`, data })
} }

2
src/api/wms/strategy/index.ts

@ -46,7 +46,7 @@ export const exportStrategy = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/strategy/export-excel-senior', data }) return await request.downloadPost({ url: '/wms/strategy/export-excel-senior', data })
} else { } else {
return await request.download({ url: `/wms/strategy/export-excel`, params }) return await request.download({ url: `/wms/strategy/export-excel`, params })
} }

2
src/components/BasicForm/src/BasicForm.vue

@ -494,7 +494,7 @@ watch(()=>props.tableData,() => {
}) })
watch(()=>unref(formRef)?.formModel,() => { watch(()=>unref(formRef)?.formModel,() => {
if(props?.sumFormDataByForm&&unref(formRef)?.formModel){ if(props?.sumFormDataByForm&&unref(formRef)?.formModel){
props?.sumFormDataByForm(formRef,unref(formRef)?.formModel) props?.sumFormDataByForm(formRef,unref(formRef)?.formModel,props.tableData)
} }
},{ },{
deep:true deep:true

5
src/components/TableForm/src/TableForm.vue

@ -316,7 +316,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- :page-sizes="[ 10,20, 30, 50, 100]" sizes--> <!-- :page-sizes="[ 10,20, 30, 50, 100]" sizes-->
<el-pagination v-show="tableData.length>5" style="margin-top:10px" <el-pagination v-show="tableData.length>10" style="margin-top:10px"
v-model:current-page="currentPage" v-model:current-page="currentPage"
v-model:page-size="pageSize" v-model:page-size="pageSize"
:small="true" :small="true"
@ -542,8 +542,7 @@ const buttonOperationClick = (row, label, index)=> {
const currentPage =ref(1) const currentPage =ref(1)
const pageSize = ref(10) const pageSize = ref(10)
const showTableData = ()=>{ const showTableData = ()=>{
console.log('props.tableData',props.tableData) if(props.tableData.length>10){
if(props.tableData.length>100){
return props.tableData.slice((currentPage.value-1)*pageSize.value,currentPage.value*pageSize.value) return props.tableData.slice((currentPage.value-1)*pageSize.value,currentPage.value*pageSize.value)
}else{ }else{
return props.tableData return props.tableData

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

@ -783,8 +783,7 @@ export const CountPlanDetailRules = reactive({
{ required: true, message: '请选择盘点范围类型', trigger: 'change' } { required: true, message: '请选择盘点范围类型', trigger: 'change' }
], ],
value: [ value: [
{ required: true, message: '请选择盘点范围值', trigger: ['blur','change'] }, { required: true, message: '请选择盘点范围值', trigger: ['blur','change'] }
{ max: 50, message: '不得超过50个字符', trigger: ['blur','change'] }
], ],
}) })
/** /**
@ -830,4 +829,4 @@ export const CountPlanMain1 = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
])) ]))

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

@ -207,7 +207,7 @@ const butttondata = (row,$index) => {
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:issue-request-main:submit'}), // defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:issue-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:issue-request-main:refused'}), // defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:issue-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:issue-request-main:handle'}), // defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']), hasPermi:'wms:issue-request-main:handle'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']), hasPermi:'wms:issue-request-main:update'}), // defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3','7']), hasPermi:'wms:issue-request-main:update'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:issue-request-main:update'}), // defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']), hasPermi:'wms:issue-request-main:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:issue-request-main:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'wms:issue-request-main:delete'}), //
] ]

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

@ -764,6 +764,7 @@ export const IssueRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{ {
label: '备注', label: '备注',
field: 'remark', field: 'remark',
@ -930,6 +931,19 @@ export const IssueRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
isTableForm: false, isTableForm: false,
isForm: false isForm: false
}, },
{
label: '未执行任务数量',
field: 'unexecutedQty',
sort: 'custom',
table: {
width: 150
},
form: {
component: 'InputNumber',
},
isTableForm:false,
hiddenInMain:true,
},
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',

4
src/views/wms/productionManage/productputaway/productputawayJobMain/index.vue

@ -227,14 +227,14 @@ const openDetail = (row: any, titleName: any, titleValue: any) => {
const BASE_URL = getJmreportBaseUrl() const BASE_URL = getJmreportBaseUrl()
const src = ref(BASE_URL + '/jmreport/view/965858364788637696?token=' + getAccessToken()) const src = ref(BASE_URL + '/jmreport/view/965858364788637696?token=' + getAccessToken())
const handleDocumentPrint = async (row) => { const handleDocumentPrint = async (row) => {
window.open(src.value+'&id='+row.masterId) window.open(src.value+'&type=predict'+'&id='+row.masterId)
} }
/** /**
* 待处理全部打印 * 待处理全部打印
*/ */
const handleDocumentPrintAll = async () => { const handleDocumentPrintAll = async () => {
window.open(src.value+'&id=printAllPending') window.open(src.value+'&type=predict'+'&id=printAllPending')
} }
/** 导出按钮操作 */ /** 导出按钮操作 */

127
src/views/wms/productionManage/productputawayAssemble/productputawayAssembleJobMain/index.vue

@ -73,6 +73,9 @@ import * as ProductputawayJobMainApi from '@/api/wms/productputawayJobMain'
import * as ProductputawayJobDetailApi from '@/api/wms/productputawayJobDetail' import * as ProductputawayJobDetailApi from '@/api/wms/productputawayJobDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache' import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import * as SwitchApi from '@/api/wms/switch'
import {getAccessToken} from "@/utils/auth";
import { getJmreportBaseUrl } from '@/utils/systemParam'
// //
defineOptions({ name: 'ProductputawayJobMain' }) defineOptions({ name: 'ProductputawayJobMain' })
@ -114,13 +117,40 @@ const { tableObject, tableMethods } = useTable({
// //
const { getList, setSearchParams } = tableMethods const { getList, setSearchParams } = tableMethods
const switchproductPutawayJobPrint = ref(false)
const getSwitchStatus = async ()=>{
let res = await SwitchApi.getSwitchPage({
pageSize: 20,
pageNo: 1,
code: 'productPutawayJobPrint'
})
console.log('getSwitchStatus',res)
if(res&&res.list){
switchproductPutawayJobPrint.value = res.list[0].effectiveSetValue == 'TRUE'
}
}
// //
const HeadButttondata = [ const HeadButttondata = computed(()=>{
return [
defaultButtons.defaultExportBtn({hasPermi:'wms:productputaway-job-main:export'}), // defaultButtons.defaultExportBtn({hasPermi:'wms:productputaway-job-main:export'}), //
{
label: '待处理状态全部打印',
name: 'printAllPending',
hide: !switchproductPutawayJobPrint.value,
type: 'primary',
icon: '',
color: '',
hasPermi: ''
},
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), // defaultButtons.defaultSetBtn(null), //
] ]})
// //
const buttonBaseClick = (val, item) => { const buttonBaseClick = (val, item) => {
@ -134,6 +164,9 @@ const buttonBaseClick = (val, item) => {
} else { } else {
getList() getList()
} }
} else if(val == 'printAllPending'){
//
handleDocumentPrintAll()
} else if (val == 'filtrate') { // } else if (val == 'filtrate') { //
} else { // } else { //
console.log('其他按钮', item) console.log('其他按钮', item)
@ -156,6 +189,7 @@ const butttondata = (row,$index) => {
return [] return []
} }
return [ return [
defaultButtons.mainListDocumentPrintBtn({hide:!switchproductPutawayJobPrint.value}), //
defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), // defaultButtons.mainListJobAccBtn({hide:isShowMainButton(row,['1'])}), //
defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1'])}), // defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1'])}), //
defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), // defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2'])}), //
@ -166,75 +200,7 @@ const butttondata = (row,$index) => {
// - // -
const buttonTableClick = async (val, row) => { const buttonTableClick = async (val, row) => {
if (val == 'mainJobExe') { // if (val == 'mainJobExe') { //
let aaa = { // ProductputawayJobMainApi.executeProductputawayMain(aaa)
"id": "1809190000111838147",
"requestNumber": "REC4620231214-0004",
"supplierCode": null,
"fromWarehouseCode": "W1",
"toWarehouseCode": null,
"fromAreaCodes": "",
"toAreaCodes": "",
"fromAreaTypes": "WIP,RAW",
"toAreaTypes": "SEMI,FG",
"completetime": 1702545291000,
"requestTime": 1702524283000,
"requestDueTime": 1689562428000,
"status": "2",
"expiredTime": null,
"updateTime": 1702545291000,
"updater": "1",
"jobStageStatus": null,
"priority": null,
"priorityIncrement": null,
"departmentCode": "103",
"acceptUserId": "1",
"acceptTime": 1702552206000,
"completeUserId": null,
"number": "JOB2220231214-0007",
"businessType": "ProductPutaway",
"remark": "111100",
"createTime": 1702545291000,
"creator": "1",
"autoComplete": "FALSE",
"allowModifyLocation": "FALSE",
"allowModifyQty": "TRUE",
"allowBiggerQty": "TRUE",
"allowSmallerQty": "TRUE",
"allowModifyInventoryStatus": "TRUE",
"allowContinuousScanning": "TRUE",
"allowPartialComplete": "TRUE",
"allowModifyBatch": "FALSE",
"allowModifyPackingNumber": "FALSE",
"inInventoryStatuses": "OK",
"outInventoryStatuses": "OK",
subList: [
{
"id": "1809190001814017359",
"packingNumber": "12",
"containerNumber": "001",
"batch": "21",
"inventoryStatus": "OK",
"poNumber": null,
"poLine": "item01",
"fromLocationCode": "H03",
"toLocationCode": "L-R-001-002-1-02",
"itemCode": "item01",
"itemName": "物料01",
"itemDesc1": "",
"itemDesc2": "",
"projectCode": "xm01",
"qty": 3,
"uom": "EA",
"number": "JOB2220231214-0007",
"remark": "00",
"createTime": 1702545291000,
"creator": "1",
"fromOwnerCode": null,
"toOwnerCode": null
}
]
}
ProductputawayJobMainApi.executeProductputawayMain(aaa)
} else if (val == 'mainJobAba') { // } else if (val == 'mainJobAba') { //
await ProductputawayJobMainApi.abandonProductputawayMain(row.masterId) await ProductputawayJobMainApi.abandonProductputawayMain(row.masterId)
getList() getList()
@ -244,8 +210,26 @@ const buttonTableClick = async (val, row) => {
} else if (val == 'mainJobAcc') { // } else if (val == 'mainJobAcc') { //
await ProductputawayJobMainApi.acceptProductputawayMain(row.masterId) await ProductputawayJobMainApi.acceptProductputawayMain(row.masterId)
getList() getList()
}else if (val == 'documentPrint') {
//
handleDocumentPrint(row)
} }
} }
const BASE_URL = getJmreportBaseUrl()
const src = ref(BASE_URL + '/jmreport/view/965858364788637696?token=' + getAccessToken())
const handleDocumentPrint = async (row) => {
window.open(src.value+'&type=assemble'+'&id='+row.masterId)
}
/**
* 待处理全部打印
*/
const handleDocumentPrintAll = async () => {
window.open(src.value+'&type=assemble'+'&id=printAllPending')
}
// //
const { wsCache } = useCache() const { wsCache } = useCache()
/** 详情操作 */ /** 详情操作 */
@ -283,6 +267,7 @@ const searchFormClick = (searchData) => {
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
await getSwitchStatus()
getList() getList()
}) })
</script> </script>

2
src/views/wms/productionManage/productputawayAssemble/productputawayAssembleJobMain/productputawayAssembleJobMain.data.ts

@ -545,7 +545,7 @@ export const ProductputawayJobMain = useCrudSchemas(reactive<CrudSchema[]>([
isDetail: false, isDetail: false,
isForm: false, isForm: false,
table: { table: {
width: 150, width: 300,
fixed: 'right' fixed: 'right'
}, },
} }

2
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/purchasereceiptRequestMain.data.ts

@ -552,7 +552,7 @@ export const PurchasereceiptRequestMain = useCrudSchemas(reactive<CrudSchema[]>(
isDetail: false, isDetail: false,
isForm: false, isForm: false,
table: { table: {
width: 300, width: 400,
fixed: 'right' fixed: 'right'
}, },
} }

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

@ -0,0 +1,795 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="[...PurchasereceiptRequestMain.allSchemas.searchSchema,...PurchasereceiptRequestDetail.allSchemas.searchSchema]" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="PurchasereceiptRequestMain.allSchemas"
:detailAllSchemas="PurchasereceiptRequestDetail.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row,$index }">
<ButtonBase :Butttondata="butttondata(row,$index)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="formRef"
@success="getList"
:isOpenSearchTable="true"
fieldTableColumn="poNumber"
:rules="PurchasereceiptRequestMainRules"
:formAllSchemas="PurchasereceiptRequestMain.allSchemas"
:tableAllSchemas="PurchasereceiptRequestDetail.allSchemas"
:tableFormRules="PurchasereceiptRequestDetailRules"
:tableData="tableData"
:apiUpdate="PurchasereceiptRequestMainApi.updatePurchasereceiptRequestMain"
:apiCreate="PurchasereceiptRequestMainApi.createPurchasereceiptRequestMain"
:isBusiness="true"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
:isShowReduceButtonSelection="true"
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@formFormDateChange="formFormDateChange"
@onEnter="onEnter"
>
<template v-slot="{row}">
<el-date-picker v-bind:modelValue="row['expireTime']?addDay(row['produceDate'],row['expireTime']):dayjs('2099-12-31').valueOf()"
:clearable="true"
style="width: 100%"
:disabled="true"
:placeholder="t('ts.选择日期')"/>
</template>
</BasicForm>
<!-- 详情 -->
<Detail
ref="detailRef"
:isBasic="false"
:allSchemas="PurchasereceiptRequestMain.allSchemas"
:detailAllSchemas="detailAllSchemas"
:detailAllSchemasRules="PurchasereceiptRequestDetailRules"
:apiCreate="PurchasereceiptRequestDetailApi.createPurchasereceiptRequestDetail"
:apiUpdate="PurchasereceiptRequestDetailApi.updatePurchasereceiptRequestDetail"
:apiPage="apiPage"
:apiDelete="PurchasereceiptRequestDetailApi.deletePurchasereceiptRequestDetail"
fromeWhere="purchasereceipt"
@searchTableSuccessDetail="searchTableSuccessDetail"
:detailButtonIsShowAdd="false"
:detailButtonIsShowEdit="false"
:detailButtonIsShowDelete="false"
:buttondataTable="buttondataTable"
@tableFormButton="tableFormButton"
/>
<!-- 导入 -->
<ImportForm
ref="importFormRef"
url="/wms/purchasereceipt-request-main/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
:updateIsDisable="true"
:coverIsDisable="true"
:mode="2"
/>
<!-- 创建标签 -->
<BasicForm
ref="formLabelRef"
@success="getList"
:tableAllSchemas="PurchasereceiptRequestDetailLabel.allSchemas"
:tableFormRules="PurchasereceiptRequestDetailRules"
:tableData="detatableData.tableList"
:isBusiness="true"
:isShowButton="false"
:isShowReduceButton="false"
@submitForm="submitFormLabel"
@searchTableSuccess="searchTableSuccessLabel"
/>
<!-- 子包装弹窗 -->
<BasicForm
ref="detailParenPackingRef"
@success="getList"
:tableAllSchemas="PurchasereceiptRequestDetailPackingNumber.allSchemas"
:tableFormRules="PurchasereceiptRequestDetailRules"
:tableData="packingDetatableData.tableList"
:isBusiness="true"
:isShowButton="false"
:isShowReduceButton="false"
:isShowFooterButtton="false"
/>
<!-- 标签打印 -->
<SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
<el-dialog
v-model="showQualityReport"
:title="t('质检明细')"
width="90%"
append-to-body
destroy-on-close
>
<iframe height="600px" width="100%" :src="qualityReport" frameborder="0"></iframe>
</el-dialog>
</template>
<script setup lang="ts">
import dayjs from 'dayjs'
import { addDay } from '@/utils/formatTime'
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import {
PurchasereceiptRequestMain,
PurchasereceiptRequestMainRules,
PurchasereceiptRequestDetail,
PurchasereceiptRequestDetailRules,
PurchasereceiptRequestDetailLabel,
PurchasereceiptRequestDetailPackingNumber
} from './purchasereceiptRequestMain.data'
import {
SupplierdeliverRequestPackage
} from '../../supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data'
import { PurchaseDetail } from '../../supplierdeliver/purchaseMain/purchaseMain.data'
import * as PackageApi from '@/api/wms/package'
import * as PurchasereceiptRequestMainApi from '@/api/wms/purchasereceiptRequestMain'
import * as PurchasereceiptRequestDetailApi from '@/api/wms/purchasereceiptRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { formatDate } from '@/utils/formatTime'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import { getAccessToken } from '@/utils/auth'
import * as PurchaseDetailApi from '@/api/wms/purchaseDetail'
import * as ItembasicApi from '@/api/wms/itembasic'
import { getJmreportBaseUrl } from '@/utils/systemParam'
import { getReportUrl } from '@/utils/systemParam'
// -M
defineOptions({ name: 'PurchasereceiptRequestOrderMTypeMain' })
const message = useMessage() //
const { t } = useI18n() //
const genLabelId = ref(); //ID
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref([...PurchasereceiptRequestMain.allSchemas.tableColumns,...PurchasereceiptRequestDetail.allSchemas.tableMainColumns])
const apiPage = ref(PurchasereceiptRequestDetailApi.getPurchasereceiptRequestDetailPageOrderMType)
const detailAllSchemas = ref(PurchasereceiptRequestDetail.allSchemas)
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
//
const searchTableSuccessLabel = (formField, searchField, val, formRef, type, row) => {
nextTick(() => {
if (type == 'tableForm') {
//
row[formField] = val[0][searchField]
if (formField == 'packUnit' || formField == 'packQty') {
row['packUnit'] = val[0]['packUnit']
row['packQty'] = val[0]['packQty']
}
if (formField == 'secondPackUnit') {
row['secondPackUnit'] = val[0]['packUnit']
row['secondPackQty'] = val[0]['packQty']
}
}
})
}
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
//console.log("formRef",formRef)
console.log("searchTableSuccess",formField, searchField, val, formRef, type, row)
nextTick(() => {
if (type == 'tableForm') {
//
//row[formField] = val[0][searchField]
if(formField == 'itemCode') {
row['itemCode'] = val[0]['code']
} else if(formField == 'poNumber') {
updateTableData(val)
// row['poNumber'] = val[0]['number']
} else if(formField == 'poLine'){
//--
val.forEach(item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))
newRow['poLine'] = item['lineNumber']
newRow['itemCode'] = item['itemCode']
newRow['uom'] = item['uom']
newRow['poNumber'] = item['number']
newRow['poLineType'] = item['poLineType']
let supplierCode = formRef.formModel.supplierCode;
let queryData = {
supplierCode:supplierCode,
itemCode: item['itemCode']
}
SupplieritemApi.getDefaultLocationCode(queryData as SupplieritemApi.SupplieritemVO).then(res =>{
newRow['defaultToLocationCode'] = res
tableData.value.push(newRow)
})
})
}else if (formField == 'packQty'){
row['packQty'] = val[0]['packQty']
row['packUnit'] = val[0]['packUnit']
}else if(formField == 'defaultToLocationCode'){
row['defaultToLocationCode'] = val[0]['code']
}
} else {
const setV = {}
if(formField == 'supplierCode'){
setV['supplierCode'] = val[0]['code']
}else if(formField == 'poNumber') {
//----
setV['supplierCode'] = val[0]['supplierCode']
setV['poNumber'] = val[0]['number']
const newRow = val[0]
newRow['poNumber'] = val[0]['number']
//
getSearchTableData(val[0]['number'])
// tableData.value = [newRow]
// formRef.handleAddTable()
}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
}
})
}
//
const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
if(formField == 'itemCode') {
setV['itemCode'] = val[0]['code']
} else {
setV['poNumber'] = val[0]['number']
setV['poLine'] = val[0]['lineNumber']
}
formRef.setValues(setV)
})
}
const { tableObject, tableMethods } = useTable({
getListApi: PurchasereceiptRequestDetailApi.getPurchasereceiptRequestDetailPageOrderMType //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn(null), //
defaultButtons.defaultImportBtn(null), //
defaultButtons.defaultExportBtn({hasPermi:'wms:purchasereceipt-request-main:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') {//
openForm('create')
} else if (val == 'import') {//
handleImport()
}else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
if (tableObject.params.filters && tableObject.params.filters.length > 0 ) {
searchFormClick({
filters: tableObject.params.filters
})
} else {
getList()
}
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
//
const isShowMainButton = (row,val) => {
if (val.indexOf(row.status) > -1) {
return false
} else {
return true
}
}
//
const isASNShowMainButton = (row,val) => {
if (val.indexOf(row.status) > -1) {
if(row.sourceType == 'ASN_ExternalReceipt'){
return false
}
} else {
return true
}
}
// -
const butttondata = (row,$index) => {
const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['masterId'] == row['masterId']):-1
if(findIndex>-1&&findIndex<$index){
return []
}
return [
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['5']),hasPermi:'wms:purchasereceipt-request-main:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-request-main:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:purchasereceipt-request-main:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:purchasereceipt-request-main:agree'}), //
// defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-request-main:update'}), //
{
label: '生成标签',
name: 'ssbq',
hide: isASNShowMainButton(row, ['3']),
type: 'primary',
icon: '',
color: '',
hasPermi: '',
link: true //
},
defaultButtons.mainListPointBtn({ hide: isASNShowMainButton(row, ['3','8']) }), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:purchasereceipt-request-main:handle'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:purchasereceipt-request-main:close'}), //
defaultButtons.mainListPlanCheckQualityReportBtn({}), //
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'mainClose') { //
handleClose(row.masterId)
} else if (val == 'mainReAdd') { //
handleReAdd(row.masterId)
} else if (val == 'mainSubmit') { //
handleSubmit(row.masterId)
} else if (val == 'mainTurnDown') { //
handleRefused(row.masterId)
} else if (val == 'mainApprove') { //
handleAgree(row.masterId)
} else if (val == 'mainHandle') { //
handleHandle(row.masterId)
} else if (val == 'edit') { //
openForm('update', row)
} else if(val == 'ssbq'){ //
//
detatableData.params = {
masterId:row.masterId
}
genLabelId.value = row.masterId
await getDetailList()
formLabelRef.value.open('create', row, null,'createLabel')// createLabel
}else if (val == 'point') {
//
labelPrint(row)
}else if(val == 'mainPlanCheckQualityReport'){
//
checkQualityReport(row)
}
}
//
const showQualityReport = ref(false)
const qualityReport = ref('')
const checkQualityReport = async (row)=>{
showQualityReport.value = true
qualityReport.value = `${getReportUrl()}/purchasereceiptReport?asnNumber=${row.asnNumber}`
}
//
const isCreateLabel = ref(false)
const formLabelRef = ref()
const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({
getListApi: PurchasereceiptRequestDetailApi.getPurchasereceiptRequestDetailPage
})
const { getList:getDetailList } = detatableMethods
//
const submitFormLabel = async (formType, submitData) => {
let data = {...submitData}
if(data.masterId){
data.id = data.masterId
}
try {
console.log("formType==",formType)
console.log("data==",data)
data.subList = detatableData.tableList
console.log("detatableData",detatableData)
await message.confirm(t('ts.是否为此数据生成标签?'))
await PurchasereceiptRequestMainApi.genLabel(data) //genLabelId.value
isCreateLabel.value = true
message.success('创建标签成功')
} finally {
formLabelRef.value.formLoading = false
formLabelRef.value.dialogVisible = false
}
}
const BASE_URL = getJmreportBaseUrl()
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
//
const searchTableRef = ref()
const labelPrint = async (row) => {
tableObject.loading = true
const defaultParams = {'moduleName':'purchasereceipt_request','recordNumber':row.asnNumber}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams,
getListApi: PackageApi.getLabelDetailPage //
})
//
const { getList:getListPrint } = tableMethods
getListPrint()
tableObject.loading = false
const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns
tableColumns.forEach((item) => {
item.width = item.table?.width || 150
})
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true)
}
// ---
const searchTableSuccess1 = async (formField, searchField, val, formRef, type, row) => {
console.log('批量打印',val)
// let rows:any = []
// val.forEach(item=>{
// rows = [...rows,...item.selectionRows.map(item1=>item1.number)]
// })
if(val.length == 0){
message.warning("请先选择要打印的数据!")
return
}
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
await PackageApi.batchPrintingLable(val.map(item1=>item1.number).join(',')).then(res => {
console.log(res)
window.open(src.value + '&asn_number=' + res)
}).catch(err => {
console.log(err)
message.error('创建标签失败')
})
}
const updateTableData = (tableList)=>{
tableList.forEach(row=>{
//poNumber poLine itemCode batch
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))
newRow['poLine'] = row['lineNumber']
newRow['itemCode'] = row['itemCode']
newRow['uom'] = row['uom']
newRow['poNumber'] =row['number']
newRow['supplierCode'] =row['supplierCode']
//
newRow['produceDate'] = dayjs().valueOf()
newRow['arriveDate'] = dayjs().valueOf()
//
newRow['batch'] = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['defaultToLocationCode'] =row['defaultLocation']
if(!tableData.value.find((item:object)=>item.poNumber == newRow.poNumber&&item.itemCode == newRow.itemCode&&item.poLine == newRow.poLine&&item.batch == newRow.batch)){
tableData.value.push(newRow)
}
})
}
const getSearchTableData = async (number,isEnter=false)=>{
const {tableObject ,tableMethods} = useTable({
defaultParams:{number},
getListApi: PurchaseDetailApi.getPurchaseDetailPageWMS //
})
//
const { getList:getList1 } = tableMethods
await getList1()
const tableColumns = PurchaseDetail.allSchemas.tableFormColumns
tableColumns.forEach((item) => {
item.width = item.table?.width || 150
})
tableData.value = []
updateTableData(tableObject.tableList)
const itemCodes = []
tableObject.tableList.forEach(row=>{
itemCodes.push(row['itemCode'])
if(isEnter){
//--
const setV = {}
setV['poNumber'] = number
setV['supplierCode'] = row.supplierCode
formRef.value.formRef.setValues(setV)
}
})
//
ItembasicApi.getItembasicPage({
code:itemCodes.join(',')
}).then((res)=>{
res.list.forEach((item,index)=>{
const findItem = tableData.value.find(item1=>item1['itemCode']==item['code'])
findItem['expireTime'] = item['expireTime']
})
})
}
/** 添加/修改操作 */
const formRef = ref()
const openForm =async (type: string, row?: number) => {
tableData.value = [] //
formRef.value.open(type, row)
}
//
const detailParenPackingRef = ref()
const { tableObject: packingDetatableData, tableMethods: packDetatableMethods } = useTable({
getListApi: PurchasereceiptRequestDetailApi.queryPurchaseceiptChildPackingNumber
})
const { getList:queryDetailList } = packDetatableMethods
//
const { wsCache } = useCache()
/** 详情操作 */
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,'requestPurchasereceiptMain')
}
// table
const buttondataTable = ref([{
label: '查看其他包装规格',
name: 'viewParentPickingNumber',
hide: false,
type: 'primary',
icon: '',
color: '',
hasPermi: '',
link: true, //
}])
//
const tableFormButton = async (val , row) => {
if (val == 'viewParentPickingNumber') { //
packingDetatableData.params = {
masterId:row.masterId,
parentPackingNumber:row.packingNumber
}
await queryDetailList()
detailParenPackingRef.value.open('create', row, null,'viewDetail')//
}
}
/** 关闭按钮操作 */
const handleClose = async (id: number) => {
try{
await message.confirm(t('common.confirmColse'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.closePurchasereceiptRequestMain(id)
message.success(t('common.closeSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 重新添加按钮操作 */
const handleReAdd = async (id: number) => {
try{
await message.confirm(t('common.confirmReAdd'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.reAddPurchasereceiptRequestMain(id)
message.success(t('common.reAddSuccess'))
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 审批通过按钮操作 */
const handleAgree = async (id: number) => {
try{
await message.confirm(t('common.confirmAgree'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.agreePurchasereceiptRequestMain(id)
message.success(t('common.agreeSuccess'))
tableObject.loading = false
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 审批驳回按钮操作 */
const handleRefused = async (id: number) => {
try{
await message.confirm(t('common.confirmRefused'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.refusedPurchasereceiptRequestMain(id)
message.success(t('common.refusedSuccess'))
tableObject.loading = false
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 处理按钮操作 */
const handleHandle = async (id: number) => {
try{
await message.confirm(t('common.confirmHandle'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.handlePurchasereceiptRequestMain(id)
message.success(t('common.handleSuccess'))
tableObject.loading = false
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 提交按钮操作 */
const handleSubmit = async (id: number) => {
try{
await message.confirm(t('common.confirmSubmit'))
tableObject.loading = true
await PurchasereceiptRequestMainApi.submitPurchasereceiptRequestMain(id)
message.success(t('common.submitSuccess'))
tableObject.loading = false
await getList()
}catch{}finally{
tableObject.loading = false
}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await PurchasereceiptRequestMainApi.exportPurchasereceiptRequestMain(tableObject.params)
download.excel(data, '采购收货申请主.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/**
* tableForm方法
*/
const tableFormKeys = {}
PurchasereceiptRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
const tableData = ref([])
//
const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
}
//
const handleDeleteTable = (item, index) => {
let itemIndex = tableData.value.indexOf(item)
if(itemIndex>-1){
tableData.value.splice(itemIndex, 1)
}
}
const tableSelectionDelete = (selection) => {
tableData.value = tableData.value.filter(item => !selection.includes(item))
}
const onEnter = async (field,value)=>{
console.log(field,value)
getSearchTableData(value,true)
}
//
const submitForm = async (formType, submitData) => {
let data = {...submitData}
if(data.masterId){
data.id = data.masterId
}
tableData.value.forEach((row, index) => {
row['expireDate'] = row['expireTime']?addDay(row['produceDate'],row['expireTime']).valueOf():dayjs('2099-12-31').valueOf()
})
data.subList = tableData.value //
try {
if (formType === 'create') {
await PurchasereceiptRequestMainApi.createPurchasereceiptRequestMain(data)
message.success(t('common.createSuccess'))
} else {
await PurchasereceiptRequestMainApi.updatePurchasereceiptRequestMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
//
getList()
} finally {
formRef.value.formLoading = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '采购收货申请主导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
// tabs
// const changeTabs = (data) =>{
// if(data.prop == 'receiptDetail'){
// apiPage.value = PurchasereceiptRequestDetailApi.getPurchasereceiptRequestDetailPage
// detailAllSchemas.value = PurchasereceiptRequestDetail.allSchemas
// }else if(data.prop == 'scarceGoodsDetail'){
// apiPage.value = PurchasereceiptRequestDetailApi.getScarceGoodsDetailPage
// detailAllSchemas.value = PurchasereceiptRequestDetail.allSchemas
// }
// }
const formFormDateChange = (field, val,row, index) => {
if(field == 'produceDate'){
let produceDateStr = formatDate(val,'YYYYMMDD');
row.batch = produceDateStr
}
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await PurchasereceiptRequestMainApi.importTemplate()
})
</script>

2479
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts

File diff suppressed because it is too large

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

@ -821,6 +821,7 @@ const formLabelRef = ref()
const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({ const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({
getListApi: SupplierdeliverRequestDetailApi.getSupplierdeliverRequestDetailPage getListApi: SupplierdeliverRequestDetailApi.getSupplierdeliverRequestDetailPage
}) })
detatableData.pageSize = 500
const { getList:getDetailList } = detatableMethods const { getList:getDetailList } = detatableMethods

Loading…
Cancel
Save