You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1622 lines
50 KiB

<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search
:schema="SupplierinvoiceRequestMain.allSchemas.searchSchema"
@search="searchList"
@reset="searchList"
/>
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SupplierinvoiceRequestMain.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
ref="tableRef"
:selection="true"
:selectionColor="true"
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"
@getSelectionRows="getSelectionRows"
>
<template #number="{ row }">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #differencePrice="{ row }">
<span :class="{ 'red-text': row.differencePrice != 0 }">{{
Number(row.differencePrice).toFixed(5)
}}</span>
</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="poLine"
:showSearchTableQueryFields="['poLine']"
:rules="SupplierinvoiceRequestMainRules"
:formAllSchemas="SupplierinvoiceRequestMain.allSchemas"
:searchTableParams="searchTableParams"
:tableAllSchemas="SupplierinvoiceRequestDetail.allSchemas"
:tableFormRules="SupplierinvoiceRequestDetailRules"
:tableData="tableData"
:sumFormDataByForm="
(
formRef,
formModel,
tableData,
formType,
originFormModel,
updateOriginFormModel,
sumFormDataHandle1
) => {
const {
taxRate = 0,
amount = 0,
taxAmount = 0,
beforeTaxAmount = 0,
totalTaxAmount = 0,
discountAmount1 = 0,
beforeTaxDiffAmount = 0,
taxAmountDiff = 0,
rebateTax=0
} = formModel
// 2、系统税额:每条数据的合同价格X可开票数量,计算结果取两位小数之后*税率的计算结果,再保留2位。所有子表数据再求和
if (formType == 'update') {
// 编辑
console.log('taxRate', taxRate)
console.log('originFormModel', originFormModel.taxRate)
console.log('taxAmount', taxAmount)
if (taxRate != originFormModel.taxRate) {
if (originFormModel) {
sumFormDataHandle1()
}
updateOriginFormModel(formModel)
}
formRef.value.setValues({
afterTaxAmount: amount + taxAmount, // 3、系统价税合计:系统未税金额+系统税额
adTaxAmount: beforeTaxAmount + totalTaxAmount, //6、价税合计金额:未税金额+税额
beforeTaxDiffAmount: beforeTaxAmount - amount, //未税差额:未税金额-系统未税金额
taxAmountDiff: totalTaxAmount - taxAmount, // 税额差异:税额-系统税额
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff, // 价税合计差额=未税差额+税额差异
rebateTax:Number(Number(discountAmount1*taxRate*0.01).toFixed(2)),
rebateTotal:rebateTax+discountAmount1
})
} else if (formType == 'create') {
// 新增
let taxAmount_ = taxAmount
if (taxRate != originFormModel.taxRate) {
taxAmount_ = tableData.reduce(
(prev, item) =>
prev +
Number(
Number(
taxRate *
0.01 *
Number(Number(item['singlePrice'] * item['invoicableQuantity']).toFixed(2))
).toFixed(2)
),
0
)
updateOriginFormModel(formModel)
}
formRef.value.setValues({
taxAmount: taxAmount_,
afterTaxAmount: amount + taxAmount, // 3、系统价税合计:系统未税金额+系统税额
adTaxAmount: beforeTaxAmount + totalTaxAmount, //6、价税合计金额:未税金额+税额
beforeTaxDiffAmount: beforeTaxAmount - amount, //未税差额:未税金额-系统未税金额
taxAmountDiff: totalTaxAmount - taxAmount, // 税额差异:税额-系统税额
totalTaxDiffAmount: beforeTaxDiffAmount + taxAmountDiff, // 价税合计差额=未税差额+税额差异
rebateTax:Number(Number(discountAmount1*taxRate*0.01).toFixed(2)),
rebateTotal:rebateTax+discountAmount1
})
}
}
"
:sumFormDataByTableCustom="
(formRef, formModel, tableData) => {
// 1、系统未税金额: 合同价格X可开票数量。每条数据的合同价格X可开票数量,计算结果取两位小数之后,求和
const { taxRate = 0 } = formModel
const sumObject = {
amount: tableData.reduce(
(prev, item) =>
prev + Number(Number(item['singlePrice'] * item['invoicableQuantity']).toFixed(2)),
0
),
taxAmount: tableData.reduce(
(prev, item) =>
prev +
Number(
Number(
taxRate *
0.01 *
Number(Number(item['singlePrice'] * item['invoicableQuantity']).toFixed(2))
).toFixed(2)
),
0
)
}
formRef.value.setValues(sumObject)
}
"
:apiUpdate="SupplierinvoiceRequestMainApi.updateSupplierinvoiceRequestMain"
:apiCreate="SupplierinvoiceRequestMainApi.createSupplierinvoiceRequestMain"
:isBusiness="true"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
:isShowReduceButtonSelection="true"
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
@sumFormDataHandle="sumFormDataHandle"
@onChange="onChange"
@inputNumberChange="inputNumberChange"
>
<template #selectionsActionspoLine="{ selections }">
<div style="text-align: left; margin-right: 10px">
{{t('ts.系统未税金额')}}:{{
Number(
selections.reduce(
(prev, item) =>
prev +
Number(
Number(
Number(Number(item['purchasePrice']).toFixed(5)) * item['invoicableQuantity']
).toFixed(2)
),
0
)
).toFixed(2)
}}
</div>
</template>
<!-- <template #foorter>
<div style="text-align: left">
{{ basicFormFooter }}
</div>
</template> -->
<template v-slot="{ row }">
<el-input
:disabled="true"
:class="{ 'is-red': row['singlePrice'] - row['purchasePrice'] > 0 }"
:modelValue="(row['singlePrice'] - row['purchasePrice']).toFixed(5)"
/>
</template>
</BasicForm>
<!-- 财务通过窗口 finance_mainPlanSub -->
<BasicForm
ref="formFinanceRef"
:rules="SupplierinvoiceRequestFinanceRules"
:formAllSchemas="SupplierinvoiceRequestFinance.allSchemas"
:isBusiness="false"
:footButttondata="undefined"
@success="submitFormFinance"
/>
<!-- 采购通过窗口-->
<BasicForm
ref="formPurchasePassRef"
:rules="PurchasePassRules"
:formAllSchemas="PurchasePass.allSchemas"
:isBusiness="false"
:footButttondata="undefined"
@success="submitPurchasePass"
@onChange="onChangePurchasePass"
/>
<!-- 详情 -->
<!-- :apiUpdate="SupplierinvoiceRequestDetailApi.updateSupplierinvoiceRequestDetail" -->
<Detail
ref="detailRef"
:isOpenSearchTable="true"
fieldTableColumn="poLine"
:annexTable="detailAnnexTable"
direction="horizontal"
:column="3"
:annexAlias="{
hidden: true,
label: t('ts.其他附件')
}"
:otherHeadButttonData="[
{
label: t('ts.打印明细'),
name: 'printing',
hide: false,
type: 'primary',
// icon: 'ep:operation',
color: '',
float: 'left',
hasPermi: ''
},
{
label: t('ts.打印全部发货单'),
name: 'printing-all',
hide: false,
type: 'primary',
// icon: 'ep:operation',
color: '',
float: 'left',
hasPermi: ''
},
{
label: t('ts.导出明细'),
name: 'export-detail',
hide: false,
type: 'primary',
// icon: 'ep:operation',
color: '',
float: 'left',
hasPermi: ''
}
]"
:buttondataTable="[
{
label: t('ts.打印'),
name: 'print',
hide: true,
type: 'primary',
// icon: 'ep:operation',
color: '',
float: 'left',
link: true, // 文本展现按钮
hasPermi: ''
}
]"
:sumFormDataByForm="
(formRef, formModel) => {
const { singlePrice = 0, purchasePrice = 0 } = formModel
formRef.value.setValues({
differencePrice: Number((Number(singlePrice) - Number(purchasePrice)).toFixed(5))
})
}
"
:isBasic="false"
:allSchemas="SupplierinvoiceRequestDetailMain.allSchemas"
:detailAllSchemas="SupplierinvoiceRequestDetail.allSchemas"
:detailAllSchemasRules="SupplierinvoiceRequestDetailRules"
:searchTableParams="searchTableParams"
:apiCreate="SupplierinvoiceRequestDetailApi.createSupplierinvoiceRequestDetail"
:apiPage="SupplierinvoiceRequestDetailApi.getSupplierinvoiceRequestDetailPage"
:apiDelete="SupplierinvoiceRequestDetailApi.deleteSupplierinvoiceRequestDetail"
:Echo="Echo"
:detailButtonIsShowEdit="true"
:detailButtonIsShowAddStatusArray="detailButtonIsShowAddStatusArray"
:detailButtonIsShowDelete="true"
:detailButtonIsShowAdd="true"
@buttonBaseClick="detailButtonBaseClick"
@tableFormButton="tableFormButton"
:mainSubmitCreateApi="true"
@searchTableSuccessDetail="searchTableSuccessDetail"
@handleMainFefresh="handleMainFefresh"
@detailOpenForm="detailOpenForm"
@detailBasicFormOnChange="detailBasicFormOnChange"
@handleSubmitForm="handleDetailSubmitForm"
>
<!-- 价税合计尾差 -->
<template #Descriptions_totalTaxDiffAmount="{ row }">
<span>{{row['totalTaxDiffAmount']}}<span class="red-text"> ({{t('ts.含返利合计')}}:{{ row['rebateTotal'] }})</span></span>
</template>
<!-- 未税尾差 -->
<template #Descriptions_beforeTaxDiffAmount="{ row }">
<span>{{row['beforeTaxDiffAmount']}}<span class="red-text"> ({{t('ts.含返利未税')}}:{{ row['discountAmount1'] }})</span></span>
</template>
<!-- 税额尾差 -->
<template #Descriptions_taxAmountDiff="{ row }">
<span>{{row['taxAmountDiff']}}<span class="red-text"> ({{t('ts.含返利税额')}}:{{ row['rebateTax'] }})</span></span>
</template>
<template #differencePrice="{ row }">
<span :class="{ 'red-text': row.differencePrice != 0 }">{{ row.differencePrice }}</span>
</template>
</Detail>
<!-- 导入 -->
<ImportForm
ref="importFormRef"
url="/wms/supplierinvoice-request-main/import"
:importTemplateData="importTemplateData"
@success="importSuccess"
:updateIsDisable="true"
:coverIsDisable="true"
:mode="2"
/>
</template>
<script setup lang="ts">
import dayjs from 'dayjs'
// 供应商发票申请
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import {
SupplierinvoiceRequestMain,
SupplierinvoiceRequestMainRules,
SupplierinvoiceRequestDetail,
SupplierinvoiceRequestDetailRules,
SupplierinvoiceRequestFinance,
SupplierinvoiceRequestFinanceRules,
PurchasePass,
PurchasePassRules,
SupplierinvoiceRequestDetailMain
} from './supplierinvoiceRequestMain.data'
import * as SupplierinvoiceRequestMainApi from '@/api/wms/supplierinvoiceRequestMain'
import * as SupplierinvoiceRequestDetailApi from '@/api/wms/supplierinvoiceRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as SupplierApi from '@/api/wms/supplier'
import { Supplier } from '../../../basicDataManage/supplierManage/supplier/supplier.data'
import { getAccessToken } from '@/utils/auth'
import { ElMessageBox } from 'element-plus'
import { getJmreportBaseUrl } from '@/utils/systemParam'
import { accountantFormart } from '@/utils/formatter'
import { formatDate } from '@/utils/formatTime'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
defineOptions({ name: 'SupplierinvoiceRequestMain' })
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const route = useRoute() // 路由信息
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(SupplierinvoiceRequestMain.allSchemas.tableColumns)
// 字段设置 更新主列表字段
const updataTableColumns = (val) => {
tableColumns.value = val
}
// 查询列表页面参数设置
const searchTableParams = ref([
{
formField: 'supplierCode',
searchTableTitle: t('ts.供应商信息'),
searchTableAllSchemas: Supplier.allSchemas,
searchTablePage: SupplierApi.getSupplierPage
}
])
const formPurchasePassRef = ref()
const searchList = (model) => {
selectionRows.value = []
let model1 = {
...model,
statuss: model.status.join(',') ? model.status.join(',') : ''
}
delete model1.status
setSearchParams(model1)
}
const selectionRows = ref<any>([])
const tableRef = ref()
const getSelectionRows = (currentPage, currentPageSelectionRows) => {
console.log('getSelectionRows', currentPage, currentPageSelectionRows)
const currentRows = selectionRows.value.find((item) => item.currentPage == currentPage)
if (currentRows) {
currentRows.selectionRows = currentPageSelectionRows
} else {
selectionRows.value.push({
currentPage,
selectionRows: currentPageSelectionRows
})
}
}
const handleMainFefresh = () => {
getList()
}
const searchTableSuccessDetail = async (
formField,
searchField,
val,
formRef,
searchTableFormModel
) => {
console.log('详情', formField, searchField, val, formRef, searchTableFormModel)
val.forEach((item) => {
item.deliveryDate = item['prhRcpDate']
item.arrivalQty = item['prhRcvd']
})
await SupplierinvoiceRequestDetailApi.createSupplierinvoiceRequestDetail({
masterId: searchTableFormModel.masterId,
subList: val
})
detailRef.value.updateList()
getList()
}
// const basicFormFooter = computed(()=>{
// let formModel = formRef.value?.formRef?.formModel
// if(formModel){
// let price1 = formModel.amount+formModel.discountAmount+formModel.discountAmount1
// let price2 = formModel.taxAmount+formModel.adjustingTaxAmount
// return `合计金额:未税金额=${accountantFormart(undefined,undefined,price1)};税额=${accountantFormart(undefined,undefined,price2)};价税合计金额=${accountantFormart(undefined,undefined,price1+price2)};`
// }
// return `合计金额`
// })
const detailData = ref()
const detailOpenForm = (type, row)=>{
detailData.value = row
}
const detailBasicFormOnChange = (field, cur) => {
console.log('detailBasicFormOnChange',field, cur)
if (field == 'invoicableQuantity') {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
if(detailData.value.maxInvoicableQuantity){
if(detailData.value.maxInvoicableQuantity>0){
if(cur<0||cur>detailData.value.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:0~${detailData.value.maxInvoicableQuantity}`)
}
}else{
if(cur>0||cur<detailData.value.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:${detailData.value.maxInvoicableQuantity}~0`)
}
}
}
}
}
const handleDetailSubmitForm = async (formType, data) => {
if (formType === 'update') {
console.log('handleDetailSubmitForm',data)
if(data.invoicableQuantity==0){
message.error(t('ts.可开票数量不能为0'))
return
}else if(data.maxInvoicableQuantity>0){
if(data.invoicableQuantity<0||data.invoicableQuantity>data.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:0~${data.maxInvoicableQuantity}`)
return
}
}else{
if(data.invoicableQuantity>0||data.invoicableQuantity<data.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:${data.maxInvoicableQuantity}~0`)
return
}
}
await SupplierinvoiceRequestDetailApi.updateSupplierinvoiceRequestDetail(data)
message.success(t('common.updateSuccess'))
}
detailRef.value.submitUpdateList()
}
const inputNumberChange = (field, index, row, val) => {
if (field == 'invoicableQuantity') {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
console.log('inputNumberChange',field, index, row, val)
if(row.maxInvoicableQuantity>0){
if(row.invoicableQuantity<0||row.invoicableQuantity>row.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:0~${row.maxInvoicableQuantity}`)
}
}else{
if(row.invoicableQuantity>0||row.invoicableQuantity<row.maxInvoicableQuantity){
message.error(t('ts.可开票数量范围是')+`:${row.maxInvoicableQuantity}~0`)
}
}
}
}
const onChange = (field, cur) => {
console.log('onChange',field)
if(field=='orderType'){
tableData.value = []
}
}
// 查询页面返回
const searchTableSuccess = (formField, searchField, val, searchFormRef, type, row) => {
nextTick(() => {
if (type == 'tableForm') {
// 明细查询页赋值
val.forEach((item) => {
if (
tableData.value.find(
(item1) =>
item1['recvBillNum'] == item['recvBillNum'] && item1['poLine'] == item['poLine']
)
)
return
const newRow = { ...row }
newRow[formField] = item[searchField]
if (formField == 'poLine') {
newRow['id'] = item['id']
newRow['poNumber'] = item['poNumber']
newRow['poLine'] = item['poLine']
newRow['tax'] = item['tax']
newRow['projectCode'] = item['projectCode']
newRow['billType'] = item['billType']
newRow['recvBillNum'] = item['recvBillNum']
newRow['asnBillNum'] = item['asnBillNum']
newRow['supplierCode'] = item['supplierCode']
newRow['singlePrice'] = item['purchasePrice'] //单价默认值 = 采购价格
newRow['purchasePrice'] = item['purchasePrice']
newRow['maxInvoicableQuantity'] = item['invoicableQuantity']
newRow['invoicableQuantity'] = item['invoicableQuantity']
newRow['itemCode'] = item['itemCode']
newRow['deliveryDate'] = item['prhRcpDate']
newRow['arrivalQty'] = item['prhRcvd']
newRow['id'] = item['id']
newRow['currency'] = item['currency']
}
tableData.value.push(newRow)
})
} else {
// 切换供应商代码
if (
formField == 'supplierCode' &&
val[0][searchField] != searchFormRef.formModel.supplierCode
) {
tableData.value = []
}
// 切换订单类型
if (formField == 'orderType' && val[0][searchField] != searchFormRef.formModel.orderType) {
tableData.value = []
}
const setV = {}
setV[formField] = val[0][searchField]
searchFormRef.setValues(setV)
}
})
}
const Echo = []
const { tableObject, tableMethods } = useTable({
getListApi: SupplierinvoiceRequestMainApi.getSupplierinvoiceRequestMainPage // 分页接口
})
// 获得表格的各种操作
const { getList, setSearchParams } = tableMethods
// 列表头部按钮
const HeadButttondata = [
defaultButtons.defaultAddBtn({ hasPermi: 'wms:supplierinvoice-request-main:create' }), // 新增
defaultButtons.defaultImportBtn({ hasPermi: 'wms:supplierinvoice-request-main:import' }), // 导入
defaultButtons.defaultExportBtn({ hasPermi: 'wms:supplierinvoice-request-main:export' }), // 导出
defaultButtons.mainLisSelectiontPointBtn(null), // 批量打印
defaultButtons.defaultFreshBtn(null), // 刷新
defaultButtons.defaultFilterBtn(null), // 筛选
defaultButtons.defaultSetBtn(null) // 设置
// {
// label: '自定义扩展按钮',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
// 头部按钮事件
const buttonBaseClick = (val, item) => {
if (val == 'add') {
// 新增
openForm('create')
} else if (val == 'import') {
// 导入
handleImport()
} else if (val == 'export') {
// 导出
handleExport()
} else if (val == 'selection_point') {
// 批量打印
handleSelectionPoint()
} 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 butttondata = (row, $index) => {
return [
// defaultButtons.mainListPurchasePlanOpeBtn({ hide: isShowMainButton(row, ['9']) ,hasPermi: 'wms:supplierinvoice-request-main:open'}), // 打开
defaultButtons.mainListPlanSubBtn({
hide: isShowMainButton(row, ['1', '6']),
hasPermi: 'wms:supplierinvoice-request-main:sub'
}), // 提交审批
{
label: t('ts.查看明细'),
name: 'open_detail',
type: 'primary',
icon: '',
color: '',
hasPermi: '',
link: true // 文本展现按钮
},
{
label: t('ts.采购通过'),
name: 'purchase_mainPlanSub',
hide: !(!isShowMainButton(row, ['2']) && row.currentIsProcurementCreator == true),
type: 'primary',
icon: '',
color: '',
hasPermi: 'wms:supplierinvoice-request-main:app',
link: true // 文本展现按钮
},
{
label: t('ts.采购驳回'),
name: 'purchase_mainPlanTur',
hide: !(!isShowMainButton(row, ['2']) && row.currentIsProcurementCreator == true),
type: 'danger',
color: '',
link: true, // 文本展现按钮
hasPermi: 'wms:supplierinvoice-request-main:rej'
},
{
label: t('ts.供应商确认'),
name: 'invoice_sent_out',
hide: isShowMainButton(row, ['3', '7']),
type: 'danger',
color: '',
link: true, // 文本展现按钮
hasPermi: 'wms:supplierinvoice-request-main:invoiceSentOut'
},
{
label: t('ts.财务通过'),
name: 'finance_mainPlanSub',
hide: isShowMainButton(row, ['4']),
type: 'primary',
icon: '',
color: '',
hasPermi: 'wms:supplierinvoice-request-main:financeApp',
link: true // 文本展现按钮
},
{
label: t('ts.财务驳回'),
name: 'finance_mainPlanTur',
hide: isShowMainButton(row, ['4']),
type: 'danger',
color: '',
link: true, // 文本展现按钮
hasPermi: 'wms:supplierinvoice-request-main:financeRej'
},
defaultButtons.mainListEditBtn({
hasPermi: 'wms:supplierinvoice-request-main:update',
hide: isShowMainButton(row, ['1', '3', '6', '7'])
}), // 编辑
// defaultButtons.mainListPurchasePlanCloBtn({ hasPermi: 'wms:supplierinvoice-request-main:close' ,hide: isShowMainButton(row, ['1','3','6','7']) }), // 关闭
{
label: t('ts.作废'),
name: 'repeal',
hide: isShowMainButton(row, ['1', '3', '6', '7']),
type: 'danger',
color: '',
link: true, // 文本展现按钮
hasPermi: 'wms:supplierinvoice-request-main:repeal'
},
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplierinvoice-request-main:delete'}), // 删除
{
label: t('ts.打印'),
name: 'mian_print',
hide: !(roleList.value.indexOf('financial_accounting') > -1 && row.status == 5),
type: 'primary',
color: '',
link: true, // 文本展现按钮
hasPermi: ''
}
]
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
// 列表-操作按钮事件
const buttonTableClick = async (val, row) => {
if (val == 'mainPurPlanOpe') {
// 打开
handleOpe(row.id)
} else if (val == 'mainPurPlanClo') {
// 关闭
handleClo(row.id)
} else if (val == 'mainPlanSub') {
// 提交审批
handleSub(row.id)
} else if (val == 'open_detail') {
// 查看明细
openDetail(row, '单据号', row.number)
} else if (val == 'purchase_mainPlanSub') {
// 采购审批通过
// handleApp(row.id)
// 校验是否可以开票
const res = await checkInvoicingCalendar()
if (res?.flag) {
message.alertWarning(res.msg)
return
}
if (row.balanceStatementStatus) {
formPurchasePassRef.value.open('update', row, null, t('ts.采购审批通过'), t('ts.采购审批通过'))
} else {
submitPurchasePass(row.id)
}
} else if (val == 'purchase_mainPlanTur') {
// 采购驳回按钮
resonSubmit(val, row)
// handleTur(row.id)
} else if (val == 'invoice_sent_out') {
// 发票寄出确认
handleInvoiceSentOut(row.id)
} else if (val == 'finance_mainPlanSub') {
// 财务审批通过
handleFinanceApp(row)
} else if (val == 'finance_mainPlanTur') {
//财务审批拒绝
resonSubmit(val, row)
// handleFinaceTur(row.masterId)
} else if (val == 'genRecords') {
// 处理
genRecords(row.id)
} else if (val == 'edit') {
// 编辑
openForm('update', row)
} else if (val == 'delete') {
// 删除
handleDelete(row.id)
} else if (val == 'mian_print') {
// 打印
handleDocumentPrint(row.id)
} else if (val == 'repeal') {
// 作废
handleRepeal(row.id)
}
}
// const procurementCreators = ref([])
// SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({
// roleCode: 'purchase',
// pageSize: 1000,
// pageNo: 1,
// sort: '',
// by: 'ASC'
// }).then((res) => {
// procurementCreators.value = res.list
// })
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type: string, row?: any) => {
// 合同金额 采购金额 总差额 :只在详情里展示
SupplierinvoiceRequestDetail.allSchemas.tableFormColumns =
SupplierinvoiceRequestDetail.allSchemas.tableFormColumns.filter(
(item) =>
item.field != 'contractAmountTotal' &&
item.field != 'purchaseAmontTotal' &&
item.field != 'differencePriceTotal'
)
if (type == 'update') {
//编辑
SupplierinvoiceRequestMain.allSchemas.formSchema.forEach((item) => {
// 供应商代码
if (item.field == 'supplierCode') {
item.componentProps.isSearchList = false
item.componentProps.disabled = true
}
// 订单类型
if (item.field == 'orderType') {
item.componentProps.disabled = true
}
// 编辑---taxRate税率\beforeTaxAmount未税金额\totalTaxAmount税额\goldenTaxInvoiceNumber金税票号\invoiceTime发票日期
if (
item.field == 'taxRate' ||
item.field == 'beforeTaxAmount' ||
item.field == 'totalTaxAmount' ||
item.field == 'goldenTaxInvoiceNumber' ||
item.field == 'invoiceTime'
) {
if (row.status == '1' || row.status == '3' || row.status == '6' || row.status == '7') {
item.componentProps.disabled = false
} else {
item.componentProps.disabled = true
}
}
// 编辑---procurementCreator采购审批人、discountAmount1折扣金额
if (item.field == 'procurementCreator' || item.field == 'discountAmount1') {
if (row.status == '1' || row.status == '6') {
item.componentProps.disabled = false
} else {
item.componentProps.disabled = true
}
}
})
} else {
// 新增
SupplierinvoiceRequestMain.allSchemas.formSchema.forEach((item) => {
// 供应商代码
if (item.field == 'supplierCode') {
//默认供应商代码
item.value = defaultSupplierCode.value
item.componentProps.isSearchList = true
item.componentProps.disabled = false
}
// 订单类型
if (item.field == 'orderType') {
item.componentProps.disabled = false
}
// 税率 \采购价格审批人 \未税金额 \税额\金税票号\开票日期\折扣金额
if (
item.field == 'taxRate' ||
item.field == 'procurementCreator' ||
item.field == 'beforeTaxAmount' ||
item.field == 'totalTaxAmount' ||
item.field == 'goldenTaxInvoiceNumber' ||
item.field == 'invoiceTime' ||
item.field == 'discountAmount1'
) {
item.componentProps.disabled = false
}
// if (item.field == 'procurementCreator') {
// item.componentProps.options = procurementCreators.value
// }
})
}
if (row && (row.status == '3' || row.status == '7')) {
SupplierinvoiceRequestMainRules.beforeTaxAmount[0].required = true //未税金额
SupplierinvoiceRequestMainRules.totalTaxAmount[0].required = true //税额
SupplierinvoiceRequestMainRules.goldenTaxInvoiceNumber[0].required = true //金税票号
SupplierinvoiceRequestMainRules.invoiceTime[0].required = true
} else {
SupplierinvoiceRequestMainRules.beforeTaxAmount[0].required = false //未税金额
SupplierinvoiceRequestMainRules.totalTaxAmount[0].required = false //税额
SupplierinvoiceRequestMainRules.goldenTaxInvoiceNumber[0].required = false //金税票号
SupplierinvoiceRequestMainRules.invoiceTime[0].required = false
}
if (row && row.procurementCreator) row.procurementCreator = Number(row.procurementCreator)
// 校验是否可以开票
const res = await checkInvoicingCalendar()
if (res?.flag) {
message.alertWarning(res.msg)
return
}
tableData.value = [] // 重置明细数据
formRef.value.open(type, row)
}
// 校验是否可以开票
const checkInvoicingCalendar = async () => {
let resData = ''
await SupplierinvoiceRequestMainApi.checkInvoicingCalendar({}).then((res) => {
resData = res
})
return resData
}
const defaultSupplierCode = ref('')
const getDefaultSupplier = async () => {
let supplier = await SupplierApi.getSupplierPageSCP({ isSearch: false })
if (supplier.list && supplier.list.length > 0) {
defaultSupplierCode.value = supplier.list[0]['code']
} else {
defaultSupplierCode.value = ''
}
console.log('defaultSupplierCode', defaultSupplierCode)
}
// 获取部门 用于详情 部门回显
const { wsCache } = useCache()
/** 详情操作 */
const detailRef = ref()
const clicKRowId = ref()
const detailAnnexTable = ref([
{
label: t('ts.合同附件'),
prop: 'Annex',
tableName: 'contract',
hiddenDelete: false,
showPreview: true,
showDownload:true,
hiddenUpload: false,
fileSize: 20
},
{
label: t('ts.发票附件'),
prop: 'Annex',
tableName: 'invoice',
hiddenDelete: false,
hiddenUpload: false,
showPreview: true,
showDownload:true,
fileSize: 20,
maxLength:1,
limit:1,
fileType:['pdf']
},
{
label: t('ts.货运单附件'),
prop: 'Annex',
tableName: 'waybill',
fileSize: 20
},
{
label: t('ts.其他附件'),
prop: 'Annex',
tableName: 'invoiceOther',
fileSize: 20
}
])
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))
clicKRowId.value = row.id
// 合同附件
if (
(roleList.value.indexOf('purchase') > -1 && row.status == '2') ||
(roleList.value.indexOf('supplier_operator') > -1 && (row.status == '1' || row.status == '6'))
) {
detailAnnexTable.value[0].hiddenDelete = false
detailAnnexTable.value[0].hiddenUpload = false
} else {
detailAnnexTable.value[0].hiddenDelete = true
detailAnnexTable.value[0].hiddenUpload = true
}
// 发票附件
if (
roleList.value.indexOf('supplier_operator') > -1 &&
(row.status == '3' || row.status == '7')
) {
detailAnnexTable.value[1].hiddenDelete = false
detailAnnexTable.value[1].hiddenUpload = false
} else {
detailAnnexTable.value[1].hiddenDelete = true
detailAnnexTable.value[1].hiddenUpload = true
}
detailRef.value.openDetail(row, titleName, titleValue, 'requestSupplierinvoiceMain')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
// 删除的二次确认
await message.delConfirm()
tableObject.loading = true
// 发起删除
await SupplierinvoiceRequestMainApi.deleteSupplierinvoiceRequestMain(id)
message.success(t('common.delSuccess'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 关闭按钮操作 */
const handleClo = async (id: number) => {
try {
// 关闭的二次确认
await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true
// 发起关闭
await SupplierinvoiceRequestMainApi.cloSupplierinvoiceRequestMain(id)
message.success(t('ts.关闭成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 关闭按钮操作 */
const handleRepeal = async (id: number) => {
try {
// 关闭的二次确认
await message.confirm(t('ts.是否作废所选中数据?'))
tableObject.loading = true
// 发起关闭
await SupplierinvoiceRequestMainApi.repealSupplierinvoiceRequestMain(id)
message.success(t('ts.作废成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 打开按钮操作 */
const handleOpe = async (id: number) => {
try {
// 打开的二次确认
await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true
// 发起打开
await SupplierinvoiceRequestMainApi.opeSupplierinvoiceRequestMain(id)
message.success(t('ts.打开成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 提交审批按钮操作 */
const handleSub = async (id: number) => {
try {
// 校验是否可以开票
const res = await checkInvoicingCalendar()
if (res?.flag) {
message.alertWarning(res.msg)
return
}
// 提交审批的二次确认
await message.confirm(t('ts.是否提交审批所选中数据?'))
tableObject.loading = true
// 发起提交审批
await SupplierinvoiceRequestMainApi.subSupplierinvoiceRequestMain(id)
message.success(t('ts.提交审批成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
const onChangePurchasePass = (field, cur, formRef)=>{
console.log('onChangePurchasePass',field, cur, formRef)
if(field=='balanceStatement'){
formRef.value.setValues({
'balanceStatement':cur.trim()
})
}
}
/** 采购审批通过按钮操作 */
const submitPurchasePass = async (id, submitData) => {
console.log(submitData)
if(submitData&&!submitData.balanceStatement.trim()){
message.error(t('ts.请输入价差通过说明'))
return
}
const id1 = submitData?.id || id
console.log(id1)
try {
// 审批通过的二次确认
await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true
// 发起审批通过
await SupplierinvoiceRequestMainApi.appSupplierinvoiceRequestMain(
id1,
submitData?.balanceStatement
)
message.success(t('ts.审批通过成功!'))
tableObject.loading = false
formPurchasePassRef.value.dialogVisible = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 审批通过按钮操作 finance_mainPlanSub */
const formFinanceRef = ref()
const handleFinanceApp = async (row) => {
row.postingDate = dayjs().valueOf()
row.voucherNumberRemark = `${row.supplierName?row.supplierName.slice(0,6):''}发票${row.goldenTaxInvoiceNumber?row.goldenTaxInvoiceNumber.length>6?row.goldenTaxInvoiceNumber.slice(row.goldenTaxInvoiceNumber.length-6):row.goldenTaxInvoiceNumber:''}`
formFinanceRef.value.open('update', row, null, t('ts.财务通过'), t('ts.财务通过'))
}
const submitFormFinance = async (formType, submitData) => {
let data = { ...submitData }
console.log('submitFormFinance', data)
formFinanceRef.value.formLoading = true
try {
await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain({
id: data.id,
postingDate: data.postingDate,
voucherNumberRemark: data.voucherNumberRemark
})
formFinanceRef.value.dialogVisible = false
formFinanceRef.value.formLoading = false
getList()
} catch {
formFinanceRef.value.formLoading = false
}
// try {
// // 审批通过的二次确认
// await message.confirm(t('ts.是否审批通过所选中数据?'))
// tableObject.loading = true
// // 发起审批通过
// await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain(id)
// message.success(t('ts.审批通过成功!'))
// tableObject.loading = false
// // 刷新列表
// await getList()
// } catch { }finally{
// tableObject.loading = false
// }
}
/** 驳回按钮操作 */
const handleTur = async (id: number, cause: string) => {
try {
// 驳回的二次确认
// await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true
// 发起驳回
await SupplierinvoiceRequestMainApi.rejSupplierinvoiceRequestMain({
id,
cause
})
message.success(t('ts.驳回成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 发票寄出确认按钮操作 */
const handleInvoiceSentOut = async (id: number) => {
try {
// 校验是否可以开票
const res = await checkInvoicingCalendar()
if (res?.flag) {
message.alertWarning(res.msg)
return
}
// 驳回的二次确认
await message.confirm(t('ts.是否确认发票寄出选中数据?'))
tableObject.loading = true
// 发起驳回
await SupplierinvoiceRequestMainApi.invoiceSentOutSupplierinvoiceRequestMain(id)
message.success(t('ts.发票寄出成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
const resonSubmit = async (val, row) => {
ElMessageBox.prompt(t('ts.请输入驳回原因'), t('ts.提示'), {
confirmButtonText: t('common.ok'),
cancelButtonText: t('common.cancel'),
inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格
inputErrorMessage: t(`ts.${'驳回原因不能为空,且不超过60字'}`),
inputType: 'textarea',
inputValidator: (value) => {
if (value.length > 60 || value.length == 0) {
return false
} else {
return true
}
}
})
.then(({ value }) => {
// 驳回原因
if (val == 'purchase_mainPlanTur') {
// 采购驳回按钮
handleTur(row.id, value)
} else if (val == 'finance_mainPlanTur') {
//财务审批拒绝
handleFinaceTur(row.id, value)
}
})
.catch(() => {})
}
/** 驳回按钮操作 */
const handleFinaceTur = async (id: number, cause: string) => {
try {
// 驳回的二次确认
// await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true
// 发起驳回
await SupplierinvoiceRequestMainApi.financerejSupplierinvoiceRequestMain({
id,
cause
})
message.success(t('ts.驳回成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 处理按钮操作 */
const genRecords = async (id: number) => {
try {
// 处理的二次确认
await message.confirm(t('ts.是否处理所选中数据?'))
tableObject.loading = true
// 发起处理
await SupplierinvoiceRequestMainApi.genRecordsSupplierinvoiceRequestMain(id)
message.success(t('ts.处理成功!'))
tableObject.loading = false
// 刷新列表
await getList()
} catch {
} finally {
tableObject.loading = false
}
}
/** 导出按钮操作 */
const handleExport = async () => {
console.log(111)
let rows: any = []
selectionRows.value.forEach((item) => {
rows = [...rows, ...item.selectionRows.map((item1) => item1.number)]
})
let paramsData = JSON.parse(JSON.stringify(tableObject.params))
if (tableObject.params && tableObject.params.isSearch == true) {
paramsData.filters.push({
action: 'in',
column: 'number',
value: rows.join(',')
})
} else {
paramsData = { ...paramsData, checkNums: rows }
}
if (!paramsData.createTime || (paramsData.createTime && paramsData.createTime.length == 0)) {
delete paramsData.createTime
}
try {
// 导出的二次确认
await message.exportConfirm()
// 发起导出
loadStart()
const excelTitle = ref(route.meta.title)
const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestMain(paramsData)
download.excel(data, `${excelTitle.value}】【${formatDate(new Date())}】.xlsx`)
} catch {
} finally {
loadDone()
}
}
/**
* tableForm方法
*/
const tableFormKeys = {}
SupplierinvoiceRequestDetail.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 sumFormDataHandle = async (
formRef1,
formModel,
tableData,
formType,
originFormModel,
updateOriginFormModel
) => {
if (formType == 'update') {
if (formModel && formModel.id && formModel.taxRate && originFormModel) {
let res = await SupplierinvoiceRequestMainApi.getTaxAmount({
id: formModel.id,
taxRate: formModel.taxRate
})
console.log('更新taxAmount', res)
formRef1.value.setValues({
taxAmount: res
})
}
}
}
// 主子数据 提交
const submitForm = async (formType, submitData) => {
console.log('submitForm',tableData.value)
let data = { ...submitData }
tableData.value.forEach((item) => {
item.differencePrice = Number(
(Number(item?.singlePrice) - Number(item?.purchasePrice)).toFixed(5)
)
})
let flagInvoicableQuantity = false
tableData.value.forEach(item => {
// 负数:默认默认开票数~0
// 正数:0~默认开票数
if(item.invoicableQuantity==0){
flagInvoicableQuantity = true
message.error(`${item.itemCode}`+t('ts.可开票数量不能为0'))
}else if(item.maxInvoicableQuantity){
if(item.maxInvoicableQuantity>0){
if(item.invoicableQuantity<0||item.invoicableQuantity>item.maxInvoicableQuantity){
flagInvoicableQuantity = true
message.error(`${item.itemCode}`+t('ts.可开票数量范围是')+`:0~${item.maxInvoicableQuantity}`)
}
}else{
if(item.invoicableQuantity>0||item.invoicableQuantity<item.maxInvoicableQuantity){
flagInvoicableQuantity = true
message.error(`${item.itemCode}`+t('ts.可开票数量范围是')+`:${item.maxInvoicableQuantity}~0`)
}
}
}
});
if(flagInvoicableQuantity){
return
}
data.subList = tableData.value // 拼接子表数据参数
console.log('data', data)
try {
if (formType === 'create') {
if (data.subList.length == 0) {
message.warning(t('ts.请添明细数据'))
return
}
if (data.subList.length > 20000) {
message.warning(t('ts.明细数据条数已超过最大数量限制【20000条】'))
return
}
if(data.discountAmount1>0){
await ElMessageBox.alert(
t(`ts.${'请确认该申请中是否包含返利金额,请注意填写的返利金额应为负数'}`),
t('ts.重要提示'),
{
showCancelButton: true
}
)
}
formRef.value.formLoading = true
await SupplierinvoiceRequestMainApi.createSupplierinvoiceRequestMain(data)
message.success(t('common.createSuccess'))
} else {
if(data.discountAmount1>0){
await ElMessageBox.alert(
t(`ts.${'请确认该申请中是否包含返利金额,请注意填写的返利金额应为负数'}`),
t('ts.重要提示'),
{
showCancelButton: true
}
)
}
formRef.value.formLoading = true
data.masterId = data.id
await SupplierinvoiceRequestMainApi.updateSupplierinvoiceRequestMain(data)
message.success(t('common.updateSuccess'))
}
formRef.value.dialogVisible = false
// 刷新当前列表
getList()
} finally {
formRef.value.formLoading = false
}
}
// 导入附件弹窗所需的参数
const importTemplateData = reactive({
templateUrl: '',
templateTitle: `${route.meta.title}】导入模版.xlsx`
})
// 导入成功之后
const importSuccess = () => {
getList()
}
// 筛选提交
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() // 刷新当前列表
}
// 详情--头部按钮事件
const detailButtonBaseClick = (val, item) => {
console.log('点击的按钮', val)
if (val == 'printing') {
// 单据打印
handleDocumentPrint(clicKRowId.value)
} else if (val === 'printing-all') {
//打印全部发货单
handlePrintAll(clicKRowId.value)
} else if (val === 'export-detail') {
console.log('导出明细:', clicKRowId.value)
handleDetailExport(clicKRowId.value)
}
}
const tableFormButton = (val, item) => {
console.log('点击的按钮', val)
if (val == 'print') {
// 打印
SupplierinvoiceRequestMainApi.printSupplierRecord(item.asnBillNum).then((res) => {
if (res) {
handleSupplierdeliverRecordPrint(res)
}
})
}
}
/** 导出明细按钮操作 */
const exportLoadingDetail = ref(false) // 导出的加载中
const handleDetailExport = async (masterId) => {
try {
// 导出的二次确认
await message.exportConfirm()
// 发起导出导出明细
exportLoadingDetail.value = true
let params = {
masterId: masterId
}
const excelTitle = ref(route.meta.title)
const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestDetail(params)
download.excel(data, `${excelTitle.value}明细】【${formatDate(new Date())}】.xlsx`)
} catch {
} finally {
exportLoadingDetail.value = false
}
}
const BASE_URL = getJmreportBaseUrl()
//供应商发货单打印
const documentSupplierdeliverRecordSrc = ref(
BASE_URL + '/jmreport/view/932556833517789184?token=' + getAccessToken()
)
const handleSupplierdeliverRecordPrint = async (id) => {
window.open(documentSupplierdeliverRecordSrc.value + '&id=' + id)
}
// 单据打印
const documentSrc = ref(BASE_URL + '/jmreport/view/936875675614240768?token=' + getAccessToken())
const handleDocumentPrint = async (id) => {
window.open(documentSrc.value + '&id=' + id)
}
const srcPoint = ref(BASE_URL + '/jmreport/view/972723426543935488?token=' + getAccessToken())
const handleSelectionPoint = async () => {
let rows: any = []
selectionRows.value.forEach((item) => {
rows = [...rows, ...item.selectionRows.map((item1) => item1.id)]
})
if (rows.length == 0) {
message.warning(t(`ts.${'至少选择一条数据!'}`))
return
}
console.log('批量打印', rows.join(','))
window.open(srcPoint.value + '&ids=' + rows.join(','))
}
const handlePrintAll = async (masterId) => {
// 打印
SupplierinvoiceRequestMainApi.printSupplierRecordByMasterId(masterId).then((res) => {
if (res && res.length > 0) {
for (let i = 0; i < res.length; i++) {
let id = res[i]
handleSupplierdeliverRecordPrint(id)
}
} else {
message.warning(t('ts.非SCP订单无法打印'))
return
}
})
}
const detailButtonIsShowAddStatusArray = ref<any>([])
const roleList = ref<string[]>([])
const getLoginUserRoleList = async () => {
let res = await SupplierinvoiceRequestMainApi.getLoginUserRoleList()
console.log('roleList', res)
if (res && res.length > 0) {
roleList.value = res
} else {
roleList.value = []
}
if (roleList.value.indexOf('supplier_operator') > -1) {
detailButtonIsShowAddStatusArray.value = ['1', '6']
} else {
detailButtonIsShowAddStatusArray.value = []
}
}
/** 初始化 **/
onMounted(async () => {
SupplierinvoiceRequestMain.allSchemas.formSchema.forEach(async (item) => {
if (item.field == 'procurementCreator') {
//采购审批人
const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({
roleCode: 'purchase',
pageSize: 1000,
pageNo: 1,
sort: '',
by: 'ASC'
})
item.componentProps.options = procurementCreators.list
}
})
getList()
getDefaultSupplier()
getLoginUserRoleList()
importTemplateData.templateUrl = await SupplierinvoiceRequestMainApi.importTemplate()
})
</script>
<style lang="scss" scoped>
.is-red {
border-radius: var(--el-border-radius-base);
border: 1px solid var(--el-color-danger);
box-shadow: 0 0 0 1px var(--el-color-danger) inset;
}
.red-text {
color: var(--el-color-danger);
font-weight: 700;
}
</style>