yufei_wang
2 weeks ago
12 changed files with 8066 additions and 0 deletions
@ -0,0 +1,428 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search |
|||
:schema="[ |
|||
...PurchasereceiptJobMain.allSchemas.searchSchema, |
|||
...PurchasereceiptJobDetail.allSchemas.searchSchema |
|||
]" |
|||
@search="setSearchParams" |
|||
@reset="setSearchParams" |
|||
/> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="PurchasereceiptJobMain.allSchemas" |
|||
:detailAllSchemas="PurchasereceiptJobDetail.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" |
|||
:rules="PurchasereceiptJobMainRules" |
|||
:formAllSchemas="PurchasereceiptJobMain.allSchemas" |
|||
:searchTableParams="searchTableParams" |
|||
:tableAllSchemas="PurchasereceiptJobDetail.allSchemas" |
|||
:tableFormRules="PurchasereceiptJobDetailRules" |
|||
:apiUpdate="PurchasereceiptJobMainApi.updatePurchasereceiptJobMain" |
|||
:apiCreate="PurchasereceiptJobMainApi.createPurchasereceiptJobMain" |
|||
:isBusiness="true" |
|||
@searchTableSuccess="searchTableSuccess" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="PurchasereceiptJobMain.allSchemas" |
|||
:detailAllSchemas="PurchasereceiptJobDetail.allSchemas" |
|||
:detailAllSchemasRules="PurchasereceiptJobDetailRules" |
|||
:searchTableParams="searchTableParams" |
|||
:apiPage="PurchasereceiptJobDetailApi.getToolPurchasereceiptJobDetailPage" |
|||
:detailButtonIsShowEdit="false" |
|||
:detailButtonIsShowDelete="false" |
|||
:buttondataTable="buttondataTable" |
|||
@tableFormButton="tableFormButton" |
|||
/> |
|||
|
|||
<!-- 子包装弹窗 --> |
|||
<BasicForm |
|||
ref="detailParenPackingRef" |
|||
@success="getList" |
|||
:tableAllSchemas="PurchasereceiptJobDetailPackingNumber.allSchemas" |
|||
:tableFormRules="PurchasereceiptJobDetailRules" |
|||
:tableData="packingDetatableData.tableList" |
|||
:isBusiness="true" |
|||
:isShowButton="false" |
|||
:isShowReduceButton="false" |
|||
:isShowFooterButtton="false" |
|||
/> |
|||
<el-dialog |
|||
v-model="showQualityReport" |
|||
:title="t('质检明细')" |
|||
:append-to-body="false" |
|||
destroy-on-close |
|||
fullscreen |
|||
> |
|||
<iframe :height="reportHeight" width="100%" :src="qualityReport" frameborder="0"></iframe> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { |
|||
PurchasereceiptJobMain, |
|||
PurchasereceiptJobMainRules, |
|||
PurchasereceiptJobDetail, |
|||
PurchasereceiptJobDetailRules, |
|||
PurchasereceiptJobDetailPackingNumber |
|||
} from './purchasereceiptJobMain.data' |
|||
import * as PurchasereceiptJobMainApi from '@/api/wms/purchasereceiptJobMain' |
|||
import * as PurchasereceiptJobDetailApi from '@/api/wms/purchasereceiptJobDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
import { getSwitchByCode } from '@/api/wms/switch' |
|||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache' |
|||
import { getReportUrl } from '@/utils/systemParam' |
|||
import { formatDate } from '@/utils/formatTime' |
|||
import { usePageLoading } from '@/hooks/web/usePageLoading' |
|||
const { loadStart, loadDone } = usePageLoading() |
|||
// 协定品收货任务主 |
|||
defineOptions({ name: 'ToolPurchasereceiptJobMain' }) |
|||
|
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
|
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const tableColumns = ref([ |
|||
...PurchasereceiptJobMain.allSchemas.tableColumns, |
|||
...PurchasereceiptJobDetail.allSchemas.tableMainColumns |
|||
]) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
|
|||
tableColumns.value = val |
|||
} |
|||
|
|||
// 查询列表页面参数设置 |
|||
const searchTableParams = ref([ |
|||
//{ |
|||
// formField: 'productItemCode', |
|||
// searchTableTitle: '物料信息', |
|||
// searchTableAllSchemas: Itembasic.allSchemas, |
|||
// searchTablePage: ItembasicApi.getItembasicPage |
|||
//} |
|||
]) |
|||
|
|||
// 查询页面返回 |
|||
const searchTableSuccess = (formField, searchField, val, formRef, type, row) => { |
|||
nextTick(() => { |
|||
if (type == 'tableForm') { |
|||
// 明细查询页赋值 |
|||
//row[formField] = val[0][searchField] |
|||
//row['poLine'] = val[0]['poLine'] |
|||
//row['batch'] = val[0]['toBatch'] |
|||
//row['altBatch'] = val[0]['altBatch'] |
|||
//row['itemCode'] = val[0]['itemCode'] |
|||
//row['itemName'] = val[0]['itemName'] |
|||
//row['itemDesc1'] = val[0]['itemDesc1'] |
|||
//row['itemDesc2'] = val[0]['itemDesc2'] |
|||
//row['projectCode'] = val[0]['projectCode'] |
|||
//row['qty'] = val[0]['qty'] |
|||
//row['uom'] = val[0]['uom'] |
|||
} else { |
|||
const setV = {} |
|||
setV[formField] = val[0][searchField] |
|||
//setV['ppNumber'] = val[0]['ppNumber'] |
|||
//setV['supplierCode'] = val[0]['supplierCode'] |
|||
formRef.setValues(setV) |
|||
} |
|||
}) |
|||
} |
|||
// 子表新增的时候选择表格之后需要会显得字段 |
|||
// const Echo = ['ppNumber','poLine', 'batch', 'altBatch', 'itemCode', 'itemName', 'itemDesc1', 'itemDesc2', 'projectCode', 'qty', 'uom'] |
|||
const Echo = [] |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: PurchasereceiptJobDetailApi.getToolPurchasereceiptJobDetailPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({ hasPermi: 'wms:tool-purchasereceipt-job-main:export' }), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null) // 设置 |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
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 |
|||
} |
|||
} |
|||
|
|||
// 根据收货来源判断该按钮是否显示,根据QMS开关判断该按钮是否显示(检验相关) |
|||
const EnableQms = ref(true) |
|||
const isShowSourceTypeButton = (row) => { |
|||
if (EnableQms.value) { |
|||
if (row.sourceType == 'EDI' || row.sourceType == 'ASN_ExternalReceipt') { |
|||
return true |
|||
} else { |
|||
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.mainListJobAccBtn({ hide: isShowMainButton(row, ['1']) }), // 承接 |
|||
defaultButtons.mainListJobCloBtn({ |
|||
hide: isShowMainButton(row, ['1']), |
|||
hasPermi: 'wms:tool-purchasereceipt-job-main:close' |
|||
}), // 关闭 |
|||
defaultButtons.mainListJobAbaBtn({ hide: isShowMainButton(row, ['2']) }), // 放弃 |
|||
// defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2'])}), // 执行 |
|||
{ |
|||
label: '拒收', |
|||
name: 'mainJobRefusal', |
|||
hide: isShowMainButton(row, ['2']), |
|||
type: 'primary', |
|||
icon: '', |
|||
color: '', |
|||
hasPermi: 'wms:tool-purchasereceipt-job-main:refusal', |
|||
link: true // 文本展现按钮 |
|||
}, |
|||
defaultButtons.mainListPlanCheckQualityReportBtn({ hide: isShowSourceTypeButton(row) }) // 查看质检报告 |
|||
] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
if (val == 'mainJobExe') { |
|||
// 执行 |
|||
console.log('列表-操作按钮事件-执行') |
|||
} else if (val == 'mainJobAba') { |
|||
// 放弃 |
|||
console.log('列表-操作按钮事件-放弃') |
|||
await PurchasereceiptJobMainApi.abandonPurchasereceiptJobMainSpare(row.masterId) |
|||
buttonBaseClick('refresh', null) |
|||
} else if (val == 'mainJobClo') { |
|||
// 拒收 |
|||
handleClose(row.masterId) |
|||
buttonBaseClick('refresh', null) |
|||
} else if (val == 'mainJobAcc') { |
|||
// 承接 |
|||
console.log('列表-操作按钮事件-承接') |
|||
await PurchasereceiptJobMainApi.acceptPurchasereceiptJobMain(row.masterId) |
|||
buttonBaseClick('refresh', null) |
|||
} |
|||
// else if(val == 'mainPlanCheckQualityReport'){ |
|||
// // 查看质检报告 |
|||
// checkQualityReport(row) |
|||
// } |
|||
else if (val == 'mainJobRefusal') { |
|||
// handleRefusal(row.masterId) |
|||
resonSubmit(row) |
|||
} |
|||
} |
|||
// 查看质检报告 |
|||
const showQualityReport = ref(false) |
|||
const reportHeight = ref(window.innerHeight - 120) |
|||
const qualityReport = ref('') |
|||
const checkQualityReport = async (row) => { |
|||
showQualityReport.value = true |
|||
qualityReport.value = `${getReportUrl()}/purchasereceiptReport?asnNumber=${row.asnNumber}` |
|||
} |
|||
|
|||
/** 关闭按钮操作 */ |
|||
const handleClose = async (id: number) => { |
|||
try { |
|||
await message.confirm(t('common.confirmColse')) |
|||
await PurchasereceiptJobMainApi.closePurchasereceiptJobMain(id) |
|||
message.success(t('common.closeSuccess')) |
|||
buttonBaseClick('refresh', null) |
|||
} catch {} |
|||
} |
|||
const resonSubmit = async (row) => { |
|||
ElMessageBox.prompt(t('ts.请输入拒收原因'), t('ts.提示'), { |
|||
confirmButtonText: t('common.ok'), |
|||
cancelButtonText: t('common.cancel'), |
|||
inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格 |
|||
inputErrorMessage: t(`ts.${'驳回原因不能为空,且不超过256字'}`), |
|||
inputType: 'textarea', |
|||
inputValidator: (value) => { |
|||
if (value.length > 60 || value.length == 0) { |
|||
return false |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
}) |
|||
.then(({ value }) => { |
|||
// 驳回原因 |
|||
handleRefusal(row.masterId, value) |
|||
}) |
|||
.catch(() => {}) |
|||
} |
|||
/** 拒收按钮操作 */ |
|||
const handleRefusal = async (id: number, refuseReason: string) => { |
|||
// refuseReason |
|||
try { |
|||
await PurchasereceiptJobMainApi.refusalPurchasereceiptJobMain({ id, refuseReason }) |
|||
message.success(t('common.refusalSuccess')) |
|||
buttonBaseClick('refresh', null) |
|||
} catch {} |
|||
} |
|||
|
|||
// 子包装数据 |
|||
const detailParenPackingRef = ref() |
|||
const { tableObject: packingDetatableData, tableMethods: packDetatableMethods } = useTable({ |
|||
getListApi: PurchasereceiptJobDetailApi.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, 'jobPurchasereceiptMain') |
|||
} |
|||
|
|||
// 详情 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 handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
loadStart() |
|||
const excelTitle = ref(route.meta.title) |
|||
const data = await PurchasereceiptJobMainApi.exportToolPurchasereceiptJobMain(tableObject.params) |
|||
download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) |
|||
} catch { |
|||
} finally { |
|||
loadDone() |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
getList() |
|||
await getSwitchByCode('EnableQms').then((res) => { |
|||
EnableQms.value = res == 'TRUE' ? true : false |
|||
}) |
|||
}) |
|||
</script> |
File diff suppressed because it is too large
@ -0,0 +1,475 @@ |
|||
<template> |
|||
<ContentWrap> |
|||
<!-- 搜索工作栏 --> |
|||
<Search |
|||
:schema="[ |
|||
...PurchasereceiptRecordMain.allSchemas.searchSchema, |
|||
...PurchasereceiptRecordDetail.allSchemas.searchSchema |
|||
]" |
|||
@search="searchList" |
|||
@reset="searchList" |
|||
/> |
|||
</ContentWrap> |
|||
|
|||
<!-- 列表头部 --> |
|||
<TableHead |
|||
:HeadButttondata="HeadButttondata" |
|||
@button-base-click="buttonBaseClick" |
|||
:routeName="routeName" |
|||
@updataTableColumns="updataTableColumns" |
|||
@searchFormClick="searchFormClick" |
|||
:allSchemas="PurchasereceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="PurchasereceiptRecordDetail.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" |
|||
:rules="PurchasereceiptRecordMainRules" |
|||
:formAllSchemas="PurchasereceiptRecordMain.allSchemas" |
|||
:tableAllSchemas="PurchasereceiptRecordDetail.allSchemas" |
|||
:tableFormRules="PurchasereceiptRecordDetailRules" |
|||
:isBusiness="true" |
|||
/> |
|||
|
|||
<!-- 详情 --> |
|||
<Detail |
|||
ref="detailRef" |
|||
:isBasic="false" |
|||
:allSchemas="PurchasereceiptRecordMain.allSchemas" |
|||
:detailAllSchemas="detailAllSchemas" |
|||
:detailAllSchemasRules="PurchasereceiptRecordDetailRules" |
|||
:apiPage="apiPage" |
|||
:tabs="PurchasereceiptRequestTabsList" |
|||
@changeTabs="changeTabs" |
|||
:buttondataTable="buttondataTable" |
|||
@tableFormButton="tableFormButton" |
|||
/> |
|||
|
|||
<!-- 记录子包装弹窗 --> |
|||
<BasicForm |
|||
ref="detailParenPackingRef" |
|||
@success="getList" |
|||
:tableAllSchemas="PurchasereceiptRecordDetailPackingNumber.allSchemas" |
|||
:tableFormRules="PurchasereceiptRecordDetailRules" |
|||
:tableData="packingDetatableData.tableList" |
|||
:isBusiness="true" |
|||
:isShowButton="false" |
|||
:isShowReduceButton="false" |
|||
:isShowFooterButtton="false" |
|||
/> |
|||
|
|||
<!-- 缺货子包装弹窗 --> |
|||
<BasicForm |
|||
ref="outStockDetailParenPackingRef" |
|||
@success="getList" |
|||
:tableAllSchemas="PurchasereceiptRecordDetailPackingNumber.allSchemas" |
|||
:tableFormRules="PurchasereceiptRecordDetailRules" |
|||
:tableData="outStockPackingDetatableData.tableList" |
|||
:isBusiness="true" |
|||
:isShowButton="false" |
|||
:isShowReduceButton="false" |
|||
:isShowFooterButtton="false" |
|||
/> |
|||
<el-dialog |
|||
v-model="showQualityReport" |
|||
:title="t('质检明细')" |
|||
:append-to-body="false" |
|||
destroy-on-close |
|||
fullscreen |
|||
> |
|||
<iframe :height="reportHeight" width="100%" :src="qualityReport" frameborder="0"></iframe> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import download from '@/utils/download' |
|||
import { |
|||
PurchasereceiptRecordMain, |
|||
PurchasereceiptRecordMainRules, |
|||
PurchasereceiptRecordDetail, |
|||
PurchasereceiptRecordDetailRules, |
|||
PurchasereceiptRecordDetailPackingNumber |
|||
} from './purchasereceiptRecordMain.data' |
|||
import * as PurchasereceiptRecordMainApi from '@/api/wms/purchasereceiptRecordMain' |
|||
import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' |
|||
import * as defaultButtons from '@/utils/disposition/defaultButtons' |
|||
import { getSwitchByCode } from '@/api/wms/switch' |
|||
import { PurchasereceiptRequestTabsList } from '@/utils/disposition/tabsList' |
|||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache' |
|||
import { getJmreportBaseUrl, getReportUrl } from '@/utils/systemParam' |
|||
import { formatDate } from '@/utils/formatTime' |
|||
import { usePageLoading } from '@/hooks/web/usePageLoading' |
|||
import { mainListPointBtn, mainListPrintInspectionBtn } from '@/utils/disposition/defaultButtons' |
|||
import { getAccessToken } from '@/utils/auth' |
|||
const { loadStart, loadDone } = usePageLoading() |
|||
// 采购收货记录主 |
|||
defineOptions({ name: 'PurchasereceiptRecordMain' }) |
|||
const message = useMessage() // 消息弹窗 |
|||
const { t } = useI18n() // 国际化 |
|||
const route = useRoute() // 路由信息 |
|||
const routeName = ref() |
|||
routeName.value = route.name |
|||
const apiPage = ref(PurchasereceiptRecordDetailApi.getToolPurchasereceiptRecordDetailPage |
|||
) |
|||
const tableColumns = ref([ |
|||
...PurchasereceiptRecordMain.allSchemas.tableColumns, |
|||
...PurchasereceiptRecordDetail.allSchemas.tableMainColumns |
|||
]) |
|||
const detailAllSchemas = ref(PurchasereceiptRecordDetail.allSchemas) |
|||
|
|||
// 字段设置 更新主列表字段 |
|||
const updataTableColumns = (val) => { |
|||
tableColumns.value = val |
|||
} |
|||
|
|||
const { tableObject, tableMethods } = useTable({ |
|||
getListApi: PurchasereceiptRecordDetailApi.getToolPurchasereceiptRecordDetailPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultExportBtn({ hasPermi: 'wms:tool-purchasereceipt-record-main:export' }), // 导出 |
|||
defaultButtons.defaultFreshBtn(null), // 刷新 |
|||
defaultButtons.defaultFilterBtn(null), // 筛选 |
|||
defaultButtons.defaultSetBtn(null) // 设置 |
|||
] |
|||
|
|||
// 头部按钮事件 |
|||
const buttonBaseClick = (val, item) => { |
|||
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) |
|||
} |
|||
} |
|||
|
|||
// 根据收货来源判断该按钮是否显示,根据QMS开关判断该按钮是否显示(检验相关) |
|||
const EnableQms = ref(true) |
|||
const isShowSourceTypeButton = (row) => { |
|||
if (EnableQms.value) { |
|||
if (row.sourceType == 'EDI' || row.sourceType == 'ASN_ExternalReceipt') { |
|||
return true |
|||
} else { |
|||
return false |
|||
} |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
|
|||
// 根据QMS开关判断该按钮是否显示(检验相关) |
|||
const isShowSCPAndQMSButton = () => { |
|||
if (EnableQms.value) { |
|||
return false |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
|
|||
// 根据QMS开关判断该按钮是否显示(检验相关) |
|||
const isShowputawayRequestFlagButton = (row) => { |
|||
if (EnableQms.value) { |
|||
if (row.inspectRequestFlag == 'FALSE') { |
|||
return true |
|||
} else { |
|||
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 [defaultButtons.mainListPrintInspectionBtn({ hide: isShowSCPAndQMSButton() })] |
|||
} |
|||
return [ |
|||
defaultButtons.mainInspectRequestBtn({ |
|||
hasPermi: 'wms:tool-purchasereceipt-record-main:createInspectRequest', |
|||
hide: isShowputawayRequestFlagButton(row) |
|||
}), // 生成到货检验申请 |
|||
defaultButtons.mainPutawayRequestBtn({ |
|||
hasPermi: 'wms:tool-purchasereceipt-record-main:createPutawayRequest', |
|||
hide: row.putawayRequestFlag == 'FALSE' |
|||
}), // 生成采购上架申请 |
|||
defaultButtons.mainPurchasereturnRecordBtn({ |
|||
hasPermi: 'wms:tool-purchasereceipt-record-main:createPurchasereturnRecord', |
|||
hide: row.purchasereturnRecordFlag == 'FALSE' |
|||
}), // 生成采购退后记录申请 |
|||
//defaultButtons.mainListPlanCheckQualityReportBtn({hide:row.orderTypeM == "2"}), // 查看质检报告 |
|||
defaultButtons.mainListPlanCheckQualityReportBtn({ hide: isShowSourceTypeButton(row) }), // 查看质检报告 |
|||
defaultButtons.mainListPrintInspectionBtn({ hide: isShowSCPAndQMSButton() }) |
|||
] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
const buttonTableClick = async (val, row) => { |
|||
if (val == 'putawayRequest') { |
|||
// 生成采购上架申请 |
|||
handleCreatePutawayRequest(row.number) |
|||
} else if (val == 'inspectRequest') { |
|||
//生成到货检验申请 |
|||
handleCreateInspectRequest(row.number) |
|||
} else if (val == 'purchasereturnRecord') { |
|||
//生成采购退后记录申请 |
|||
handleCreatePurchasereturnRecord(row.number) |
|||
} else if (val == 'mainPlanCheckQualityReport') { |
|||
// 查看质检报告 |
|||
checkQualityReport(row) |
|||
} else if (val == 'printInspection') { |
|||
handlePrint(row) |
|||
} |
|||
} |
|||
const searchList = (model) => { |
|||
let params = { ...model } |
|||
if (Array.isArray(params.itemType) && params.itemType.length > 0) { |
|||
params.itemTypes = params.itemType.join(',') |
|||
params.itemType = '' |
|||
} else { |
|||
params.itemTypes = '' |
|||
params.itemType = '' |
|||
} |
|||
params.orderTypeM = '1' |
|||
setSearchParams(params) |
|||
} |
|||
|
|||
// 查看质检报告 |
|||
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}` |
|||
} |
|||
|
|||
const BASE_URL = getJmreportBaseUrl() |
|||
const src = ref(BASE_URL + '/jmreport/view/986481894320525312?token=' + getAccessToken()) |
|||
const handlePrint = async (row) => { |
|||
window.open(src.value + '&jobNumber=' + row.jobNumber) |
|||
} |
|||
|
|||
/** 生成采购上架申请按钮操作 */ |
|||
const handleCreatePutawayRequest = async (number: string) => { |
|||
try { |
|||
await message.confirm(t('ts.确认生成上架申请吗?')) |
|||
tableObject.loading = true |
|||
await PurchasereceiptRecordMainApi.createPutawayRequest(number) |
|||
message.success(t('ts.上架申请生成成功')) |
|||
buttonBaseClick('refresh', null) |
|||
} catch { |
|||
} finally { |
|||
tableObject.loading = false |
|||
} |
|||
} |
|||
|
|||
/** 生成到货检验申请按钮操作 */ |
|||
const handleCreateInspectRequest = async (number: string) => { |
|||
try { |
|||
await message.confirm(t('ts.确认生成到货检验申请吗?')) |
|||
tableObject.loading = true |
|||
await PurchasereceiptRecordMainApi.createInspectRequest(number) |
|||
message.success(t('ts.到货检验申请生成成功')) |
|||
buttonBaseClick('refresh', null) |
|||
} catch { |
|||
} finally { |
|||
tableObject.loading = false |
|||
} |
|||
} |
|||
|
|||
/** 生成采购退货记录按钮操作 */ |
|||
const handleCreatePurchasereturnRecord = async (number: string) => { |
|||
try { |
|||
await message.confirm(t('ts.确认生成采购退货记录吗?')) |
|||
tableObject.loading = true |
|||
await PurchasereceiptRecordMainApi.createPurchasereturnRecord(number) |
|||
message.success(t('ts.采购退货记录生成成功')) |
|||
buttonBaseClick('refresh', null) |
|||
} catch { |
|||
} finally { |
|||
tableObject.loading = false |
|||
} |
|||
} |
|||
|
|||
// 子包装数据 |
|||
const detailParenPackingRef = ref() |
|||
const { tableObject: packingDetatableData, tableMethods: packDetatableMethods } = useTable({ |
|||
getListApi: PurchasereceiptRecordDetailApi.queryPurchaseceiptChildPackingNumber |
|||
}) |
|||
const { getList: queryDetailList } = packDetatableMethods |
|||
|
|||
// 缺货子包装数据 |
|||
const outStockDetailParenPackingRef = ref() |
|||
const { tableObject: outStockPackingDetatableData, tableMethods: outStockPackDetatableMethods } = |
|||
useTable({ |
|||
getListApi: PurchasereceiptRecordDetailApi.queryPurchaseshortageChildPackingNumber |
|||
}) |
|||
const { getList: queryOutStockDetailList } = outStockPackDetatableMethods |
|||
// 获取部门 用于详情 部门回显 |
|||
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, 'recordPurchasereceiptMain') |
|||
} |
|||
|
|||
// 详情 table 操作扩展 按钮 |
|||
const buttondataTable = ref([ |
|||
{ |
|||
label: t('ts.查看子包装'), |
|||
name: 'viewParentPickingNumber', |
|||
hide: false, |
|||
type: 'primary', |
|||
icon: '', |
|||
color: '', |
|||
hasPermi: '', |
|||
link: true // 文本展现按钮 |
|||
} |
|||
]) |
|||
|
|||
const tabeKey = ref('receiptDetail') |
|||
// 查看其他包装规格 |
|||
const tableFormButton = async (val, row) => { |
|||
if (val == 'viewParentPickingNumber' && tabeKey.value == 'receiptDetail') { |
|||
//查看其他包装规格 |
|||
packingDetatableData.params = { |
|||
masterId: row.masterId, |
|||
parentPackingNumber: row.packingNumber |
|||
} |
|||
await queryDetailList() |
|||
detailParenPackingRef.value.open('create', row, null, 'viewDetail') //查看明细数据 |
|||
} |
|||
if (val == 'viewParentPickingNumber' && tabeKey.value == 'scarceGoodsDetail') { |
|||
//查看其他包装规格 |
|||
outStockPackingDetatableData.params = { |
|||
masterId: row.masterId, |
|||
parentPackingNumber: row.packingNumber |
|||
} |
|||
await queryOutStockDetailList() |
|||
outStockDetailParenPackingRef.value.open('create', row, null, 'viewDetail') //查看明细数据 |
|||
} |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
loadStart() |
|||
const excelTitle = ref(route.meta.title) |
|||
const data = await PurchasereceiptRecordMainApi.exportToolPurchasereceiptRecordMain( |
|||
tableObject.params |
|||
) |
|||
download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) |
|||
} catch { |
|||
} finally { |
|||
loadDone() |
|||
} |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
searchData.filters.push({ |
|||
action: '==', |
|||
column: 'order_type_m', |
|||
value: '1' |
|||
}) |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
// tabs 切换事件 |
|||
const changeTabs = (data) => { |
|||
if (data.prop == 'receiptDetail') { |
|||
console.log(data) |
|||
apiPage.value = PurchasereceiptRecordDetailApi.getToolPurchasereceiptRecordDetailPage |
|||
detailAllSchemas.value = PurchasereceiptRecordDetail.allSchemas |
|||
tabeKey.value = 'receiptDetail' |
|||
} else if (data.prop == 'scarceGoodsDetail') { |
|||
apiPage.value = PurchasereceiptRecordDetailApi.getScarceGoodsDetailPage |
|||
detailAllSchemas.value = PurchasereceiptRecordDetail.allSchemas |
|||
tabeKey.value = 'scarceGoodsDetail' |
|||
} |
|||
detailAllSchemas.value.tableColumns.forEach((item) => { |
|||
if (item['field'] == 'qty') { |
|||
item['label'] = data.prop == 'scarceGoodsDetail' ? '缺货数量' : '收货数量' |
|||
} |
|||
}) |
|||
|
|||
console.log('detailAllSchemas', detailAllSchemas.value) |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
tableObject.params = { |
|||
orderTypeM: '1' |
|||
} |
|||
await getSwitchByCode('EnableQms').then((res) => { |
|||
EnableQms.value = res == 'TRUE' ? true : false |
|||
}) |
|||
getList() |
|||
}) |
|||
onActivated(() => { |
|||
tableObject.params = { |
|||
orderTypeM: '1' |
|||
} |
|||
getList() |
|||
}) |
|||
</script> |
File diff suppressed because it is too large
@ -0,0 +1,915 @@ |
|||
<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" |
|||
@formFormDateChange="onChangeLabel" |
|||
/> |
|||
|
|||
<!-- 子包装弹窗 --> |
|||
<BasicForm |
|||
ref="detailParenPackingRef" |
|||
@success="getList" |
|||
:tableAllSchemas="PurchasereceiptRequestDetailPackingNumber.allSchemas" |
|||
:tableFormRules="PurchasereceiptRequestDetailRules" |
|||
:tableData="packingDetatableData.tableList" |
|||
:isBusiness="true" |
|||
:isShowButton="false" |
|||
:isShowReduceButton="false" |
|||
:isShowFooterButtton="false" |
|||
/> |
|||
<!-- 标签打印 --> |
|||
<SearchTable width="905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" > |
|||
<template #searchQuery> |
|||
<el-form :inline="true"> |
|||
<el-form-item> |
|||
<el-input v-model="printItemCode" placeholder="请输入物料代码"></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="searchPrint"> |
|||
<Icon class="mr-5px" icon="ep:search" />查询 |
|||
</el-button> |
|||
<el-button type="primary" @click="resetPrint"> |
|||
<Icon class="mr-5px" icon="ep:refresh" />重置 |
|||
</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</template> |
|||
</SearchTable> |
|||
<el-dialog |
|||
v-model="showQualityReport" |
|||
:title="t('质检明细')" |
|||
:append-to-body="false" |
|||
destroy-on-close |
|||
fullscreen |
|||
> |
|||
<iframe :height="reportHeight" 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 { getSwitchByCode } from '@/api/wms/switch' |
|||
import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' |
|||
import * as ItembasicApi from '@/api/wms/itembasic' |
|||
import { getJmreportBaseUrl } from '@/utils/systemParam' |
|||
import { getReportUrl } from '@/utils/systemParam' |
|||
import { dateFormatter2 } from '@/utils/formatTime' |
|||
import { usePageLoading } from '@/hooks/web/usePageLoading' |
|||
const { loadStart, loadDone } = usePageLoading() |
|||
// 协定品收货申请 |
|||
defineOptions({ name: 'ToolPurchasereceiptRequestMain' }) |
|||
|
|||
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.getTOOLPurchasereceiptRequestDetailPage) |
|||
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(async () => { |
|||
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 { |
|||
row[formField] = val[0][searchField] |
|||
} |
|||
} 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'] |
|||
let res = await PurchasereceiptRequestMainApi.queryPurchasePlan({ |
|||
"poNumber": val[0]['number']//采购订单号 |
|||
}) |
|||
console.log('默认到库位res',res) |
|||
if(res&&res['toLocationCode']){ |
|||
setV['onlyDefaultToLocationCode'] = res['toLocationCode'] // 仅仅用来存储数据--用于给子表赋值 |
|||
} |
|||
|
|||
// 请求明细数据 |
|||
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.getTOOLPurchasereceiptRequestDetailPage // 分页接口 |
|||
}) |
|||
|
|||
// 获得表格的各种操作 |
|||
const { getList, setSearchParams } = tableMethods |
|||
|
|||
// 列表头部按钮 |
|||
const HeadButttondata = [ |
|||
defaultButtons.defaultAddBtn(null), // 新增 |
|||
defaultButtons.defaultImportBtn(null), // 导入 |
|||
defaultButtons.defaultExportBtn({hasPermi:'wms:tool-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 |
|||
} |
|||
} |
|||
|
|||
// 根据收货来源判断该按钮是否显示,根据QMS开关判断该按钮是否显示(检验相关) |
|||
const EnableQms = ref(true) |
|||
const isShowSourceTypeButton = (row) => { |
|||
if (EnableQms.value) { |
|||
if (row.sourceType == 'EDI' || row.sourceType == 'ASN_ExternalReceipt') { |
|||
return true |
|||
} else { |
|||
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 isASNShowMainButtonCreateLabel = (row,val) => { |
|||
if (val.indexOf(row.status) > -1) { |
|||
if(row.sourceType == 'ASN_ExternalReceipt' && row.asnOutLabel == '2'){ |
|||
return true; |
|||
}else{ |
|||
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:tool-purchasereceipt-request-main:reAdd'}), //重新添加 |
|||
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:tool-purchasereceipt-request-main:submit'}), // 提交审批 |
|||
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:tool-purchasereceipt-request-main:refused'}), // 驳回 |
|||
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:tool-purchasereceipt-request-main:agree'}), // 审批通过 |
|||
// defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-request-main:update'}), // 编辑 |
|||
{ |
|||
label: '生成标签', |
|||
name: 'ssbq', |
|||
hide: isASNShowMainButtonCreateLabel(row, ['3']), |
|||
type: 'primary', |
|||
icon: '', |
|||
color: '', |
|||
hasPermi: '', |
|||
link: true // 文本展现按钮 |
|||
}, |
|||
defaultButtons.mainListPointBtn({ hide: isASNShowMainButton(row, ['3','6','8']) }), // 标签打印 |
|||
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:tool-purchasereceipt-request-main:handle'}), // 处理 |
|||
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:tool-purchasereceipt-request-main:close'}), // 关闭 |
|||
defaultButtons.mainListPlanCheckQualityReportBtn({hide:isShowSourceTypeButton(row)}), // 查看质检报告 |
|||
] |
|||
} |
|||
|
|||
// 列表-操作按钮事件 |
|||
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 |
|||
// 数据来源是EDI默认让输入生产日期 |
|||
if (row.sourceType == 'EDI') { |
|||
PurchasereceiptRequestDetailLabel.allSchemas.tableFormColumns.forEach(item => { |
|||
if (item.field == 'produceDate') { |
|||
item.tableForm.disabled = false |
|||
} |
|||
}) |
|||
} else { |
|||
PurchasereceiptRequestDetailLabel.allSchemas.tableFormColumns.forEach(item => { |
|||
if (item.field == 'produceDate') { |
|||
item.tableForm.disabled = true |
|||
} |
|||
}) |
|||
} |
|||
await getDetailList() |
|||
formLabelRef.value.open('create', row, null,'createLabel')//创建标签页面 createLabel 标题 |
|||
}else if (val == 'point') { |
|||
// 标签打印 |
|||
labelPrint(row) |
|||
} |
|||
else if(val == 'mainPlanCheckQualityReport'){ |
|||
// 查看质检报告 |
|||
checkQualityReport(row) |
|||
} |
|||
} |
|||
// 生成标签选择 |
|||
const onChangeLabel =(field,e,row, index) => { |
|||
const arr = dateFormatter2('', '', e)?.split('-') |
|||
const str = arr[0]+arr[1]+arr[2] |
|||
row.batch = str |
|||
} |
|||
// 查看质检报告 |
|||
const showQualityReport = ref(false) |
|||
const reportHeight = ref(window.innerHeight - 120) |
|||
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.getTOOLPurchasereceiptRequestDetailPage |
|||
}) |
|||
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 |
|||
buttonBaseClick('refresh',null); |
|||
} |
|||
} |
|||
|
|||
const BASE_URL = getJmreportBaseUrl() |
|||
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken()) |
|||
|
|||
// 标签打印 |
|||
const searchTableRef = ref() |
|||
|
|||
// 本地筛选 |
|||
const printTableList = ref([]) |
|||
const printItemCode = ref('') |
|||
const searchPrint = ()=>{ |
|||
printItemCode.value = printItemCode.value.trim() |
|||
if(printItemCode.value == ''){ |
|||
searchTableRef.value.updateData(printTableList.value) |
|||
}else{ |
|||
console.log(printItemCode.value) |
|||
let printItemCodes = printItemCode.value.split(',') |
|||
console.log(printItemCodes) |
|||
let itemCodesList = printTableList.value.filter(item=>!!printItemCodes.find(item1=>item['itemCode']==item1)) |
|||
searchTableRef.value.updateData(itemCodesList) |
|||
} |
|||
|
|||
} |
|||
const resetPrint = ()=>{ |
|||
printItemCode.value = '' |
|||
searchPrint() |
|||
} |
|||
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 |
|||
await getListPrint() |
|||
tableObject.loading = false |
|||
const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns |
|||
tableColumns.forEach((item) => { |
|||
item.width = item.table?.width |
|||
}) |
|||
printItemCode.value = '' |
|||
printTableList.value = JSON.parse(JSON.stringify(tableObjectPrint.tableList)) |
|||
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)=>{ |
|||
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})) |
|||
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(!newRow['defaultToLocationCode']){ |
|||
newRow['defaultToLocationCode'] = formRef.value.formRef.formModel['onlyDefaultToLocationCode'] |
|||
} |
|||
|
|||
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 // 分页接口 |
|||
}) |
|||
tableObject.pageSize = 500 |
|||
// 获得表格的各种操作 |
|||
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')) |
|||
buttonBaseClick('refresh',null) |
|||
}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')) |
|||
buttonBaseClick('refresh',null) |
|||
}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 |
|||
buttonBaseClick('refresh',null) |
|||
}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 |
|||
buttonBaseClick('refresh',null) |
|||
}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 |
|||
buttonBaseClick('refresh',null) |
|||
}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 |
|||
buttonBaseClick('refresh',null) |
|||
}catch{}finally{ |
|||
tableObject.loading = false |
|||
} |
|||
} |
|||
|
|||
/** 导出按钮操作 */ |
|||
const handleExport = async () => { |
|||
try { |
|||
// 导出的二次确认 |
|||
await message.exportConfirm() |
|||
// 发起导出 |
|||
loadStart() |
|||
const excelTitle = ref(route.meta.title) |
|||
const data = await PurchasereceiptRequestMainApi.exportToolPurchasereceiptRequestMain(tableObject.params) |
|||
download.excel(data, `【${excelTitle.value}】【${formatDate(new Date())}】.xlsx`) |
|||
} catch { |
|||
} finally { |
|||
loadDone() |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 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() |
|||
}) |
|||
let alalQty = 0 |
|||
tableData.value.forEach(item => { |
|||
alalQty += item.qty ? parseFloat(item.qty) : 0 |
|||
}) |
|||
if (alalQty == 0) { |
|||
message.error('收货总数量不可以为0') |
|||
return |
|||
} |
|||
data.subList = tableData.value.filter(item => parseFloat(item.qty) > 0) // 拼接子表数据参数 |
|||
formRef.value.formLoading = true |
|||
try { |
|||
if (formType === 'create') { |
|||
data.orderTypeM='1'; |
|||
await PurchasereceiptRequestMainApi.createPurchasereceiptRequestMain(data) |
|||
message.success(t('common.createSuccess')) |
|||
} else { |
|||
data.orderTypeM='1'; |
|||
await PurchasereceiptRequestMainApi.updatePurchasereceiptRequestMain(data) |
|||
message.success(t('common.updateSuccess')) |
|||
} |
|||
formRef.value.dialogVisible = false |
|||
// 刷新当前列表 |
|||
if (formType === 'create') { |
|||
getList() |
|||
}else{ |
|||
buttonBaseClick('refresh',null) |
|||
} |
|||
} finally { |
|||
formRef.value.formLoading = false |
|||
} |
|||
} |
|||
|
|||
/** 导入 */ |
|||
const importFormRef = ref() |
|||
const handleImport = () => { |
|||
importFormRef.value.open() |
|||
} |
|||
|
|||
// 导入附件弹窗所需的参数 |
|||
const importTemplateData = reactive({ |
|||
templateUrl: '', |
|||
templateTitle: `【${route.meta.title}】导入模版.xlsx` |
|||
}) |
|||
|
|||
// 导入成功之后 |
|||
const importSuccess = () => { |
|||
getList() |
|||
} |
|||
|
|||
// 筛选提交 |
|||
const searchFormClick = (searchData) => { |
|||
tableObject.params = { |
|||
isSearch: true, |
|||
filters: searchData.filters |
|||
} |
|||
getList() // 刷新当前列表 |
|||
} |
|||
|
|||
|
|||
const formFormDateChange = (field, val,row, index) => { |
|||
if(field == 'produceDate'){ |
|||
let produceDateStr = formatDate(val,'YYYYMMDD'); |
|||
row.batch = produceDateStr |
|||
} |
|||
} |
|||
|
|||
/** 初始化 **/ |
|||
onMounted(async () => { |
|||
await getSwitchByCode('EnableQms').then((res) => { |
|||
EnableQms.value = res == 'TRUE' ? true : false |
|||
}) |
|||
getList() |
|||
importTemplateData.templateUrl = await PurchasereceiptRequestMainApi.importTemplate() |
|||
}) |
|||
</script> |
File diff suppressed because it is too large
Loading…
Reference in new issue