zhaoxuebing
5 months ago
7 changed files with 3340 additions and 75 deletions
@ -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> |
File diff suppressed because it is too large
Loading…
Reference in new issue