|
@@ -1,563 +1,714 @@
|
|
|
<template>
|
|
|
- <div class="p-2">
|
|
|
- <!--查询区域-->
|
|
|
- <div class="jeecg-basic-table-form-container">
|
|
|
- <a-form ref="formRef" @keyup.enter.native="reload" :model="queryParam" :label-col="{ style: 'width: 240px' }">
|
|
|
- <a-row :gutter="24">
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="billDate">
|
|
|
- <template #label><span title="发票日期(bill date)">发票日期(bill date)</span></template>
|
|
|
- <a-range-picker value-format="YYYY-MM-DD" v-model:value="queryParam.billDate" class="query-group-cust" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="project">
|
|
|
- <template #label><span title="项目(project)">项目(project)</span></template>
|
|
|
- <ApiSelect
|
|
|
- :api="ProjectOption"
|
|
|
- showSearch
|
|
|
- v-model:value="queryParam.project"
|
|
|
- :filterOption="true"
|
|
|
- resultField="records"
|
|
|
- labelField="code"
|
|
|
- valueField="id"
|
|
|
- :params="{ pageSize: -1, status: 1 }"
|
|
|
- optionFilterProp="label"
|
|
|
- />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
+ <div class="p-2">
|
|
|
+ <!--查询区域-->
|
|
|
+ <div class="jeecg-basic-table-form-container">
|
|
|
+ <a-form ref="formRef" @keyup.enter.native="reload" :model="queryParam"
|
|
|
+ :label-col="{ style: 'width: 240px' }">
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="billDate">
|
|
|
+ <template #label><span title="发票日期(bill date)">发票日期(bill date)</span></template>
|
|
|
+ <a-range-picker :format="['YYYY-MM-DD', 'YYYY-MM-DD']" v-model:value="queryParam.billDate1"
|
|
|
+ @change="onChangequotationPeriod" class="query-group-cust" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="project">
|
|
|
+ <template #label><span title="项目(project)">项目(project)</span></template>
|
|
|
+ <ApiSelect :api="ProjectOption" showSearch v-model:value="queryParam.project"
|
|
|
+ :filterOption="true" resultField="records" labelField="code" valueField="id"
|
|
|
+ :params="{ pageSize: -1, status: 1 }" optionFilterProp="label" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
|
|
|
- <template v-if="toggleSearchStatus">
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="invoiceCode">
|
|
|
- <template #label><span title="发票编号(invoice code)">发票编号(invoice code)</span></template>
|
|
|
- <JInput placeholder="请输入发票编号(invoice code)" v-model:value="queryParam.invoiceCode" allow-clear AutoComplete="off" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="16">
|
|
|
- <a-form-item name="customer">
|
|
|
- <template #label><span title="购方(buyer)">购方(buyer)</span></template>
|
|
|
- <JSelect v-model:value="queryParam.customer" :get-option-url="CustomerOption" :showField="showField" :param="{ status: 1 }" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="sourceCode">
|
|
|
- <template #label><span title="来源(sourceCode)">通知单来源(sourceCode)</span></template>
|
|
|
- <JInput placeholder="请输入" v-model:value="queryParam.sourceCode" allow-clear AutoComplete="off" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="sourceCode2">
|
|
|
- <template #label><span title="来源(sourceCode)">佣金来源(sourceCode)</span></template>
|
|
|
- <JInput placeholder="请输入" v-model:value="queryParam.sourceCode2" allow-clear AutoComplete="off" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="orderNumber">
|
|
|
- <template #label><span title="客户订单号(customer order number)">客户订单号(customer order number)</span></template>
|
|
|
- <JInput placeholder="请输入" v-model:value="queryParam.orderNumber" allow-clear AutoComplete="off" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="organize">
|
|
|
- <template #label><span title="组织(organize)">组织(organize)</span></template>
|
|
|
- <a-select v-model:value="queryParam.organize">
|
|
|
- <a-select-option value="上海">上海</a-select-option>
|
|
|
- <a-select-option value="香港">香港</a-select-option>
|
|
|
- </a-select>
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="submit">
|
|
|
- <template #label><span title="提交(submit)">提交(submit)</span></template>
|
|
|
- <JDictSelectTag v-model:value="queryParam.submit" placeholder="请选择" dictCode="yes_or_no" style="width: 100%" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- <a-col :lg="8">
|
|
|
- <a-form-item name="close">
|
|
|
- <template #label><span title="作废(nullify)">作废(nullify)</span></template>
|
|
|
- <JDictSelectTag v-model:value="queryParam.close" placeholder="请选择" dictCode="yes_or_no" style="width: 100%" />
|
|
|
- </a-form-item>
|
|
|
- </a-col>
|
|
|
- </template>
|
|
|
- <a-col :xl="6" :lg="7" :md="8" :sm="24">
|
|
|
- <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
|
|
- <a-col :lg="6">
|
|
|
- <a-button type="primary" preIcon="ant-design:search-outlined" @click="reload">查询</a-button>
|
|
|
- <a-button preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
|
|
|
- <a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
|
|
|
- {{ toggleSearchStatus ? '收起' : '展开' }}
|
|
|
- <Icon :icon="toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" />
|
|
|
- </a>
|
|
|
- </a-col>
|
|
|
- </span>
|
|
|
- </a-col>
|
|
|
- </a-row>
|
|
|
- </a-form>
|
|
|
- </div>
|
|
|
- <!--引用表格-->
|
|
|
- <BasicTable @register="registerTable" :rowSelection="rowSelection" size="small">
|
|
|
- <!--插槽:table标题-->
|
|
|
- <template #tableTitle>
|
|
|
- <a-button type="primary" v-auth="'saleCode:sale_invoice:add'" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增(add)</a-button>
|
|
|
- <a-button type="primary" v-auth="'saleCode:sale_invoice:exportXls'" preIcon="ant-design:export-outlined" @click="preProcessingExport">
|
|
|
- <!-- <a-button type="primary" v-auth="'saleCode:sale_invoice:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> -->
|
|
|
- 导出(export)</a-button
|
|
|
- >
|
|
|
- <a-button type="primary" v-auth="'saleCode:sale_invoice:submit'" @click="submit"> 提交(submit)</a-button>
|
|
|
- <a-button type="primary" v-auth="'saleCode:sale_invoice:cancelSubmit'" @click="cancelSubmit"> 取消提交(cancelSubmit)</a-button>
|
|
|
- <a-button type="primary" v-auth="'saleCode:sale_invoice:nullify'" @click="handleNullify"> 作废(nullify)</a-button>
|
|
|
- <a-dropdown v-if="selectedRowKeys.length > 0">
|
|
|
- <template #overlay>
|
|
|
- <a-menu>
|
|
|
- <a-menu-item key="1" @click="batchHandleDelete" v-auth="'saleCode:sale_invoice:deleteBatch'">
|
|
|
- <Icon icon="ant-design:delete-outlined" />
|
|
|
- 删除(delete)
|
|
|
- </a-menu-item>
|
|
|
- </a-menu>
|
|
|
- </template>
|
|
|
- <a-button v-auth="'saleCode:sale_invoice:deleteBatch'"
|
|
|
- >批量操作
|
|
|
- <Icon icon="mdi:chevron-down" />
|
|
|
- </a-button>
|
|
|
- </a-dropdown>
|
|
|
- </template>
|
|
|
- <!--操作栏-->
|
|
|
- <template #action="{ record }">
|
|
|
- <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
|
|
|
- </template>
|
|
|
- <!--字段回显插槽-->
|
|
|
- <template #bodyCell="{ column, record, index, text }"> </template>
|
|
|
+ <template v-if="toggleSearchStatus">
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="invoiceCode">
|
|
|
+ <template #label><span title="发票编号(invoice code)">发票编号(invoice code)</span></template>
|
|
|
+ <JInput placeholder="请输入发票编号(invoice code)" v-model:value="queryParam.invoiceCode"
|
|
|
+ allow-clear AutoComplete="off" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="16">
|
|
|
+ <a-form-item name="customer">
|
|
|
+ <template #label><span title="购方(buyer)">购方(buyer)</span></template>
|
|
|
+ <JSelect v-model:value="queryParam.customer" :get-option-url="CustomerOption"
|
|
|
+ :showField="showField" :param="{ status: 1 }" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="sourceCode">
|
|
|
+ <template #label><span title="来源(sourceCode)">通知单来源(sourceCode)</span></template>
|
|
|
+ <JInput placeholder="请输入" v-model:value="queryParam.sourceCode" allow-clear
|
|
|
+ AutoComplete="off" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="sourceCode2">
|
|
|
+ <template #label><span title="来源(sourceCode)">佣金来源(sourceCode)</span></template>
|
|
|
+ <JInput placeholder="请输入" v-model:value="queryParam.sourceCode2" allow-clear
|
|
|
+ AutoComplete="off" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="orderNumber">
|
|
|
+ <template #label><span title="客户订单号(customer order number)">客户订单号(customer order
|
|
|
+ number)</span></template>
|
|
|
+ <JInput placeholder="请输入" v-model:value="queryParam.orderNumber" allow-clear
|
|
|
+ AutoComplete="off" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="organize">
|
|
|
+ <template #label><span title="组织(organize)">组织(organize)</span></template>
|
|
|
+ <a-select v-model:value="queryParam.organize">
|
|
|
+ <a-select-option value="上海">上海</a-select-option>
|
|
|
+ <a-select-option value="香港">香港</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="submit">
|
|
|
+ <template #label><span title="提交(submit)">提交(submit)</span></template>
|
|
|
+ <JDictSelectTag v-model:value="queryParam.submit" placeholder="请选择" dictCode="yes_or_no"
|
|
|
+ style="width: 100%" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="8">
|
|
|
+ <a-form-item name="close">
|
|
|
+ <template #label><span title="作废(nullify)">作废(nullify)</span></template>
|
|
|
+ <JDictSelectTag v-model:value="queryParam.close" placeholder="请选择" dictCode="yes_or_no"
|
|
|
+ style="width: 100%" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </template>
|
|
|
+ <a-col :xl="6" :lg="7" :md="8" :sm="24">
|
|
|
+ <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
|
|
+ <a-col :lg="6">
|
|
|
+ <a-button type="primary" preIcon="ant-design:search-outlined"
|
|
|
+ @click="reload">查询</a-button>
|
|
|
+ <a-button preIcon="ant-design:reload-outlined" @click="searchReset"
|
|
|
+ style="margin-left: 8px">重置</a-button>
|
|
|
+ <a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
|
|
|
+ {{ toggleSearchStatus ? '收起' : '展开' }}
|
|
|
+ <Icon
|
|
|
+ :icon="toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" />
|
|
|
+ </a>
|
|
|
+ </a-col>
|
|
|
+ </span>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </a-form>
|
|
|
+ </div>
|
|
|
+ <!--引用表格-->
|
|
|
+ <BasicTable @register="registerTable" :rowSelection="rowSelection" size="small">
|
|
|
+ <!--插槽:table标题-->
|
|
|
+ <template #tableTitle>
|
|
|
+ <a-button type="primary" v-auth="'saleCode:sale_invoice:add'" @click="handleAdd"
|
|
|
+ preIcon="ant-design:plus-outlined"> 新增(add)</a-button>
|
|
|
+ <a-button type="primary" v-auth="'saleCode:sale_invoice:exportXls'" preIcon="ant-design:export-outlined"
|
|
|
+ @click="preProcessingExport">
|
|
|
+ <!-- <a-button type="primary" v-auth="'saleCode:sale_invoice:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> -->
|
|
|
+ 导出(export)</a-button>
|
|
|
+ <a-button type="primary" v-auth="'saleCode:sale_invoice:submit'" @click="submit"> 提交(submit)</a-button>
|
|
|
+ <a-button type="primary" v-auth="'saleCode:sale_invoice:cancelSubmit'" @click="cancelSubmit">
|
|
|
+ 取消提交(cancelSubmit)</a-button>
|
|
|
+ <a-button type="primary" v-auth="'saleCode:sale_invoice:nullify'" @click="handleNullify">
|
|
|
+ 作废(nullify)</a-button>
|
|
|
+ <a-dropdown v-if="selectedRowKeys.length > 0">
|
|
|
+ <template #overlay>
|
|
|
+ <a-menu>
|
|
|
+ <a-menu-item key="1" @click="batchHandleDelete"
|
|
|
+ v-auth="'saleCode:sale_invoice:deleteBatch'">
|
|
|
+ <Icon icon="ant-design:delete-outlined" />
|
|
|
+ 删除(delete)
|
|
|
+ </a-menu-item>
|
|
|
+ </a-menu>
|
|
|
+ </template>
|
|
|
+ <a-button v-auth="'saleCode:sale_invoice:deleteBatch'">批量操作
|
|
|
+ <Icon icon="mdi:chevron-down" />
|
|
|
+ </a-button>
|
|
|
+ </a-dropdown>
|
|
|
+ </template>
|
|
|
+ <!--操作栏-->
|
|
|
+ <template #action="{ record }">
|
|
|
+ <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
|
|
|
+ </template>
|
|
|
+ <!--字段回显插槽-->
|
|
|
+ <template #bodyCell="{ column, record, index, text }"> </template>
|
|
|
|
|
|
- <template #jumpToAndExport="props">
|
|
|
- <a @click="handleView(props)" v-auth="'saleCode:sale_invoice:viewOrder'">查看(view)</a>
|
|
|
- <a-divider type="vertical" />
|
|
|
- <a @click="handleRowExport(props)" v-auth="'saleCode:sale_invoice:viewOrder'">导出(export)</a>
|
|
|
- </template>
|
|
|
+ <template #jumpToAndExport="props">
|
|
|
|
|
|
- <template #jumpTo="props">
|
|
|
- <a @click="handleView(props)">查看(view)</a>
|
|
|
- </template>
|
|
|
- <template #viewFile="props">
|
|
|
- <a @click="handleViewFile(props, '1')">查看</a>
|
|
|
- </template>
|
|
|
+ <a-dropdown trigger="click">
|
|
|
+ <template #overlay>
|
|
|
+ <a-menu>
|
|
|
+ <a-menu-item title="点击单号查看详情" @click="handleViewPur(props,item)" v-for="(item, index) in item1List" :key="item">
|
|
|
+ {{ item }}
|
|
|
+ </a-menu-item>
|
|
|
+ </a-menu>
|
|
|
+ </template>
|
|
|
+ <a @click="handleView(props)" v-auth="'saleCode:sale_invoice:viewOrder'">查看(view)</a>
|
|
|
+ </a-dropdown>
|
|
|
|
|
|
- <template #signFile="props">
|
|
|
- <a @click="handleViewFile(props, '2')">查看(view)</a>
|
|
|
- </template>
|
|
|
- </BasicTable>
|
|
|
- <!-- 表单区域 -->
|
|
|
- <saleInvoiceFormModal @register="registerModal" @success="handleSuccess" />
|
|
|
- <SaleOrderFormList @register="registerModal1" @visible-change="changeVisi" />
|
|
|
- <PurchaseOrderFormList @register="registerModal2" @visible-change="changeVisi" />
|
|
|
- <ViewFileListModal ref="ViewFileListModalRef" @success="handleSuccess" />
|
|
|
- <SaleContractList @register="registerModal3" @visible-change="changeVisi" />
|
|
|
- </div>
|
|
|
+ <!-- <a @click="handleView(props)" v-auth="'saleCode:sale_invoice:viewOrder'">查看1(view)</a> -->
|
|
|
+ <a-divider type="vertical" />
|
|
|
+
|
|
|
+ <a-dropdown trigger="click">
|
|
|
+ <template #overlay>
|
|
|
+ <a-menu>
|
|
|
+ <a-menu-item title="点击单号导出" @click="handleRowExportPur(props,item)" v-for="(item, index) in item1List" :key="item">
|
|
|
+ {{ item }}
|
|
|
+ </a-menu-item>
|
|
|
+ </a-menu>
|
|
|
+ </template>
|
|
|
+ <a @click="handleRowExport(props)" v-auth="'saleCode:sale_invoice:viewOrder'">导出(export)</a>
|
|
|
+ </a-dropdown>
|
|
|
+
|
|
|
+ <!-- <a @click="handleRowExport(props)" v-auth="'saleCode:sale_invoice:viewOrder'">导出(export)</a> -->
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #jumpTo="props">
|
|
|
+ <a @click="handleView(props)">查看(view)</a>
|
|
|
+ </template>
|
|
|
+ <template #viewFile="props">
|
|
|
+ <a @click="handleViewFile(props, '1')">查看</a>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #signFile="props">
|
|
|
+ <a @click="handleViewFile(props, '2')">查看(view)</a>
|
|
|
+ </template>
|
|
|
+ </BasicTable>
|
|
|
+ <!-- 表单区域 -->
|
|
|
+ <saleInvoiceFormModal @register="registerModal" @success="handleSuccess" />
|
|
|
+ <SaleOrderFormList @register="registerModal1" @visible-change="changeVisi" />
|
|
|
+ <PurchaseOrderFormList @register="registerModal2" @visible-change="changeVisi" />
|
|
|
+ <ViewFileListModal ref="ViewFileListModalRef" @success="handleSuccess" />
|
|
|
+ <SaleContractList @register="registerModal3" @visible-change="changeVisi" />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" name="saleCode-saleInquiryForm" setup>
|
|
|
- import { ref, reactive, computed, unref, onMounted } from 'vue';
|
|
|
- import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
|
- import { useListPage } from '/@/hooks/system/useListPage';
|
|
|
- import { columns } from './salesInvoiceForm.data';
|
|
|
- import {
|
|
|
- list,
|
|
|
- deleteOne,
|
|
|
- batchDelete,
|
|
|
- getImportUrl,
|
|
|
- getExportUrl,
|
|
|
- batchSubmit,
|
|
|
- cancelBatchSubmit,
|
|
|
- batchClose,
|
|
|
- editSignSing,
|
|
|
- getListDetail,
|
|
|
- ProjectOption,
|
|
|
- CustomerOption,
|
|
|
- getExportUrlRow,
|
|
|
- getExportSaleOrderUrl,
|
|
|
- getExportPurOrderUrl,
|
|
|
- } from './salesInvoiceForm.api';
|
|
|
- import { cloneDeep } from 'lodash-es';
|
|
|
- import { defHttp } from '/@/utils/http/axios';
|
|
|
- import { JDictSelectTag, ApiSelect, JInput, JSelect } from '/@/components/Form';
|
|
|
- import saleInvoiceFormModal from './components/saleInvoiceFormModal.vue';
|
|
|
- import SaleOrderFormList from '../salesOrder/components/SaleOrderFormModal.vue';
|
|
|
- import PurchaseOrderFormList from '../../purchase/purchaseOrder/components/PurchaseOrderFormModal.vue';
|
|
|
- import SaleContractList from '../saleContract/components/SaleContractModal.vue';
|
|
|
- import ViewFileListModal from './components/ViewFileListModal.vue';
|
|
|
- import { useModal } from '/@/components/Modal';
|
|
|
- import { message } from 'ant-design-vue';
|
|
|
- import { useMethods } from '/@/hooks/system/useMethods';
|
|
|
- const { handleExportXlsx } = useMethods();
|
|
|
- const formRef = ref();
|
|
|
- var queryParam = reactive<any>({});
|
|
|
- var viewType = ref('');
|
|
|
- //注册model
|
|
|
- var [registerModal, { openModal }] = useModal();
|
|
|
- var [registerModal1, { openModal: openSaleOrder }] = useModal();
|
|
|
- var [registerModal2, { openModal: openPurOrder }] = useModal();
|
|
|
- var [registerModal3, { openModal: openSaleContract }] = useModal();
|
|
|
- var classOption = ref([]);
|
|
|
- var showField = ref('currency_dictText+name');
|
|
|
- var ViewFileListModalRef = ref();
|
|
|
- //注册table数据
|
|
|
- const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|
|
- tableProps: {
|
|
|
- title: '销售发票',
|
|
|
- api: list,
|
|
|
- columns,
|
|
|
- canResize: false,
|
|
|
- useSearchForm: false,
|
|
|
- actionColumn: {
|
|
|
- width: 300,
|
|
|
- fixed: 'right',
|
|
|
- },
|
|
|
- scroll: {
|
|
|
- x: '3500px',
|
|
|
- y: 'calc(100vh - 400px)',
|
|
|
- },
|
|
|
- beforeFetch: async (params) => {
|
|
|
- let rangerQuery = await setRangeQuery();
|
|
|
- return Object.assign(params, rangerQuery);
|
|
|
- },
|
|
|
- },
|
|
|
- exportConfig: {
|
|
|
- name: '销售发票',
|
|
|
- url: getExportUrl,
|
|
|
- params: queryParam,
|
|
|
- },
|
|
|
- importConfig: {
|
|
|
- url: getImportUrl,
|
|
|
- success: handleSuccess,
|
|
|
- },
|
|
|
- });
|
|
|
+ import { ref, reactive, computed, unref, onMounted } from 'vue';
|
|
|
+ import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
|
+ import { useListPage } from '/@/hooks/system/useListPage';
|
|
|
+ import { columns } from './salesInvoiceForm.data';
|
|
|
+ import {
|
|
|
+ list,
|
|
|
+ deleteOne,
|
|
|
+ batchDelete,
|
|
|
+ getImportUrl,
|
|
|
+ getExportUrl,
|
|
|
+ batchSubmit,
|
|
|
+ cancelBatchSubmit,
|
|
|
+ batchClose,
|
|
|
+ editSignSing,
|
|
|
+ getListDetail,
|
|
|
+ ProjectOption,
|
|
|
+ CustomerOption,
|
|
|
+ getExportUrlRow,
|
|
|
+ getExportSaleOrderUrl,
|
|
|
+ getExportPurOrderUrl,
|
|
|
+ } from './salesInvoiceForm.api';
|
|
|
+ import { cloneDeep } from 'lodash-es';
|
|
|
+ import { defHttp } from '/@/utils/http/axios';
|
|
|
+ import { JDictSelectTag, ApiSelect, JInput, JSelect } from '/@/components/Form';
|
|
|
+ import saleInvoiceFormModal from './components/saleInvoiceFormModal.vue';
|
|
|
+ import SaleOrderFormList from '../salesOrder/components/SaleOrderFormModal.vue';
|
|
|
+ import PurchaseOrderFormList from '../../purchase/purchaseOrder/components/PurchaseOrderFormModal.vue';
|
|
|
+ import SaleContractList from '../saleContract/components/SaleContractModal.vue';
|
|
|
+ import ViewFileListModal from './components/ViewFileListModal.vue';
|
|
|
+ import { useModal } from '/@/components/Modal';
|
|
|
+ import { message } from 'ant-design-vue';
|
|
|
+ import { useMethods } from '/@/hooks/system/useMethods';
|
|
|
+ const { handleExportXlsx } = useMethods();
|
|
|
+ const item1List = [];
|
|
|
+ const formRef = ref();
|
|
|
+ var queryParam = reactive<any>({});
|
|
|
+ var viewType = ref('');
|
|
|
+ //注册model
|
|
|
+ var [registerModal, { openModal }] = useModal();
|
|
|
+ var [registerModal1, { openModal: openSaleOrder }] = useModal();
|
|
|
+ var [registerModal2, { openModal: openPurOrder }] = useModal();
|
|
|
+ var [registerModal3, { openModal: openSaleContract }] = useModal();
|
|
|
+ var classOption = ref([]);
|
|
|
+ var showField = ref('currency_dictText+name');
|
|
|
+ var ViewFileListModalRef = ref();
|
|
|
+ //注册table数据
|
|
|
+ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|
|
+ tableProps: {
|
|
|
+ title: '销售发票',
|
|
|
+ api: list,
|
|
|
+ columns,
|
|
|
+ canResize: false,
|
|
|
+ useSearchForm: false,
|
|
|
+ actionColumn: {
|
|
|
+ width: 300,
|
|
|
+ fixed: 'right',
|
|
|
+ },
|
|
|
+ scroll: {
|
|
|
+ x: '3500px',
|
|
|
+ y: 'calc(100vh - 400px)',
|
|
|
+ },
|
|
|
+ beforeFetch: async (params) => {
|
|
|
+ let rangerQuery = await setRangeQuery();
|
|
|
+ return Object.assign(params, rangerQuery);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ exportConfig: {
|
|
|
+ name: '销售发票',
|
|
|
+ url: getExportUrl,
|
|
|
+ params: queryParam,
|
|
|
+ },
|
|
|
+ importConfig: {
|
|
|
+ url: getImportUrl,
|
|
|
+ success: handleSuccess,
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
|
|
|
+
|
|
|
+ // 自动请求并暴露内部方法
|
|
|
+ onMounted(() => {
|
|
|
+ getOptiom();
|
|
|
+ });
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增事件
|
|
|
+ */
|
|
|
+ function handleAdd() {
|
|
|
+ openModal(true, {
|
|
|
+ isUpdate: false,
|
|
|
+ showFooter: true,
|
|
|
+ isRevise: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 编辑事件
|
|
|
+ */
|
|
|
+ async function handleEdit(record : Recordable) {
|
|
|
+ openModal(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: true,
|
|
|
+ isRevise: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 产品分类
|
|
|
+ function getOptiom() {
|
|
|
+ defHttp
|
|
|
+ .get({ url: 'baseCode/baseProductClass/list' }, { isTransformResponse: false })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ classOption.value = [];
|
|
|
+ res.result.records.forEach((element) => {
|
|
|
+ var obj = {
|
|
|
+ label: element.name ? element.name : '无名称请维护',
|
|
|
+ value: element.id ? element.id : '',
|
|
|
+ };
|
|
|
+ classOption.value.push(obj);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ // loading.value = false;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 详情
|
|
|
+ */
|
|
|
+ function handleDetail(record : Recordable) {
|
|
|
+ openModal(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 删除事件
|
|
|
+ */
|
|
|
+ async function handleDelete(record) {
|
|
|
+ await deleteOne({ id: record.id }, handleSuccess);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 批量删除事件
|
|
|
+ */
|
|
|
+ async function batchHandleDelete() {
|
|
|
+ await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 成功回调
|
|
|
+ */
|
|
|
+ function handleSuccess() {
|
|
|
+ (selectedRowKeys.value = []) && reload();
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 操作栏
|
|
|
+ */
|
|
|
+ function getTableAction(record) {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ label: '导出(export)',
|
|
|
+ onClick: handleExportRow.bind(null, record),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '编辑(edit)',
|
|
|
+ onClick: handleEdit.bind(null, record),
|
|
|
+ auth: 'saleCode:sale_invoice:edit',
|
|
|
+ ifShow: record.submit == '0' || !record.submit,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '详情(detail)',
|
|
|
+ onClick: handleDetail.bind(null, record),
|
|
|
+ ifShow: record.submit == '1',
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 下拉操作栏
|
|
|
+ */
|
|
|
+ function getDropDownAction(record) {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ label: '详情(detail)',
|
|
|
+ onClick: handleDetail.bind(null, record),
|
|
|
+ ifShow: record.submit == '0' || !record.submit,
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ label: '下载信用证(Doenload letter of Credit)',
|
|
|
+ auth: 'saleCode:sale_inquiry_form:delete',
|
|
|
+ ifShow: record.submit == '1',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '上传盖章发票(upload stamp in invoice)',
|
|
|
+ auth: 'saleCode:sale_inquiry_form:delete',
|
|
|
+ ifShow: record.submit == '1',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '删除(delete)',
|
|
|
+ popConfirm: {
|
|
|
+ title: '是否确认删除',
|
|
|
+ confirm: handleDelete.bind(null, record),
|
|
|
+ placement: 'topLeft',
|
|
|
+ },
|
|
|
+ auth: 'saleCode:sale_invoice:delete',
|
|
|
+ ifShow: record.submit == '0' || !record.submit,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ async function handleExportRow(record) {
|
|
|
+ var obj = {
|
|
|
+ id: record.id,
|
|
|
+ };
|
|
|
+ handleExportXlsx(record.invoiceCode, getExportUrlRow, obj);
|
|
|
+ }
|
|
|
+ function submit() {
|
|
|
+ if (selectedRowKeys.value.length == 0) {
|
|
|
+ message.warning('请选择数据');
|
|
|
+ } else {
|
|
|
+ var ids = selectedRowKeys.value.join(',');
|
|
|
+ batchSubmit({ ids: ids }, handleSuccess);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function cancelSubmit() {
|
|
|
+ if (selectedRowKeys.value.length == 0) {
|
|
|
+ message.warning('请选择数据');
|
|
|
+ } else {
|
|
|
+ var ids = selectedRowKeys.value.join(',');
|
|
|
+ cancelBatchSubmit({ ids: ids }, handleSuccess);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 作废
|
|
|
+ function handleNullify() {
|
|
|
+ if (selectedRowKeys.value.length == 0) {
|
|
|
+ message.warning('请选择数据');
|
|
|
+ } else {
|
|
|
+ var ids = selectedRowKeys.value.join(',');
|
|
|
+ batchClose({ ids: ids }, handleSuccess);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
|
|
|
+ //修改报价有效期
|
|
|
+ function onChangequotationPeriod(data) {
|
|
|
|
|
|
- // 自动请求并暴露内部方法
|
|
|
- onMounted(() => {
|
|
|
- getOptiom();
|
|
|
- });
|
|
|
+ if (data == null) {
|
|
|
+ queryParam.billDate_begin = null;
|
|
|
+ queryParam.billDate_end = null;
|
|
|
+ } else {
|
|
|
+ queryParam.billDate_begin = data[0].format('YYYY-MM-DD');
|
|
|
+ queryParam.billDate_end = data[1].format('YYYY-MM-DD');
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 新增事件
|
|
|
- */
|
|
|
- function handleAdd() {
|
|
|
- openModal(true, {
|
|
|
- isUpdate: false,
|
|
|
- showFooter: true,
|
|
|
- isRevise: false,
|
|
|
- });
|
|
|
- }
|
|
|
- /**
|
|
|
- * 编辑事件
|
|
|
- */
|
|
|
- async function handleEdit(record: Recordable) {
|
|
|
- openModal(true, {
|
|
|
- record,
|
|
|
- isUpdate: true,
|
|
|
- showFooter: true,
|
|
|
- isRevise: false,
|
|
|
- });
|
|
|
- }
|
|
|
- // 产品分类
|
|
|
- function getOptiom() {
|
|
|
- defHttp
|
|
|
- .get({ url: 'baseCode/baseProductClass/list' }, { isTransformResponse: false })
|
|
|
- .then((res) => {
|
|
|
- if (res.success) {
|
|
|
- classOption.value = [];
|
|
|
- res.result.records.forEach((element) => {
|
|
|
- var obj = {
|
|
|
- label: element.name ? element.name : '无名称请维护',
|
|
|
- value: element.id ? element.id : '',
|
|
|
- };
|
|
|
- classOption.value.push(obj);
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
- .finally(() => {
|
|
|
- // loading.value = false;
|
|
|
- });
|
|
|
- }
|
|
|
- /**
|
|
|
- * 详情
|
|
|
- */
|
|
|
- function handleDetail(record: Recordable) {
|
|
|
- openModal(true, {
|
|
|
- record,
|
|
|
- isUpdate: true,
|
|
|
- showFooter: false,
|
|
|
- });
|
|
|
- }
|
|
|
- /**
|
|
|
- * 删除事件
|
|
|
- */
|
|
|
- async function handleDelete(record) {
|
|
|
- await deleteOne({ id: record.id }, handleSuccess);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 批量删除事件
|
|
|
- */
|
|
|
- async function batchHandleDelete() {
|
|
|
- await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
|
|
- }
|
|
|
- /**
|
|
|
- * 成功回调
|
|
|
- */
|
|
|
- function handleSuccess() {
|
|
|
- (selectedRowKeys.value = []) && reload();
|
|
|
- }
|
|
|
- /**
|
|
|
- * 操作栏
|
|
|
- */
|
|
|
- function getTableAction(record) {
|
|
|
- return [
|
|
|
- {
|
|
|
- label: '导出(export)',
|
|
|
- onClick: handleExportRow.bind(null, record),
|
|
|
- },
|
|
|
- {
|
|
|
- label: '编辑(edit)',
|
|
|
- onClick: handleEdit.bind(null, record),
|
|
|
- auth: 'saleCode:sale_invoice:edit',
|
|
|
- ifShow: record.submit == '0' || !record.submit,
|
|
|
- },
|
|
|
- {
|
|
|
- label: '详情(detail)',
|
|
|
- onClick: handleDetail.bind(null, record),
|
|
|
- ifShow: record.submit == '1',
|
|
|
- },
|
|
|
- ];
|
|
|
- }
|
|
|
- /**
|
|
|
- * 下拉操作栏
|
|
|
- */
|
|
|
- function getDropDownAction(record) {
|
|
|
- return [
|
|
|
- {
|
|
|
- label: '详情(detail)',
|
|
|
- onClick: handleDetail.bind(null, record),
|
|
|
- ifShow: record.submit == '0' || !record.submit,
|
|
|
- },
|
|
|
+ }
|
|
|
+ async function handleViewPur(prop,item) {
|
|
|
|
|
|
- {
|
|
|
- label: '下载信用证(Doenload letter of Credit)',
|
|
|
- auth: 'saleCode:sale_inquiry_form:delete',
|
|
|
- ifShow: record.submit == '1',
|
|
|
- },
|
|
|
- {
|
|
|
- label: '上传盖章发票(upload stamp in invoice)',
|
|
|
- auth: 'saleCode:sale_inquiry_form:delete',
|
|
|
- ifShow: record.submit == '1',
|
|
|
- },
|
|
|
- {
|
|
|
- label: '删除(delete)',
|
|
|
- popConfirm: {
|
|
|
- title: '是否确认删除',
|
|
|
- confirm: handleDelete.bind(null, record),
|
|
|
- placement: 'topLeft',
|
|
|
- },
|
|
|
- auth: 'saleCode:sale_invoice:delete',
|
|
|
- ifShow: record.submit == '0' || !record.submit,
|
|
|
- },
|
|
|
- ];
|
|
|
- }
|
|
|
- async function handleExportRow(record) {
|
|
|
- var obj = {
|
|
|
- id: record.id,
|
|
|
- };
|
|
|
- handleExportXlsx(record.invoiceCode, getExportUrlRow, obj);
|
|
|
- }
|
|
|
- function submit() {
|
|
|
- if (selectedRowKeys.value.length == 0) {
|
|
|
- message.warning('请选择数据');
|
|
|
- } else {
|
|
|
- var ids = selectedRowKeys.value.join(',');
|
|
|
- batchSubmit({ ids: ids }, handleSuccess);
|
|
|
- }
|
|
|
- }
|
|
|
- function cancelSubmit() {
|
|
|
- if (selectedRowKeys.value.length == 0) {
|
|
|
- message.warning('请选择数据');
|
|
|
- } else {
|
|
|
- var ids = selectedRowKeys.value.join(',');
|
|
|
- cancelBatchSubmit({ ids: ids }, handleSuccess);
|
|
|
- }
|
|
|
- }
|
|
|
- // 作废
|
|
|
- function handleNullify() {
|
|
|
- if (selectedRowKeys.value.length == 0) {
|
|
|
- message.warning('请选择数据');
|
|
|
- } else {
|
|
|
- var ids = selectedRowKeys.value.join(',');
|
|
|
- batchClose({ ids: ids }, handleSuccess);
|
|
|
- }
|
|
|
- }
|
|
|
- async function handleView(prop) {
|
|
|
- var param = {
|
|
|
- id: '',
|
|
|
- type: '',
|
|
|
- };
|
|
|
- if (prop.column.dataIndex == 'saleOrder') {
|
|
|
- viewType.value = 'saleOrder';
|
|
|
- param.id = prop.record.id;
|
|
|
- param.type = 'saleOrder';
|
|
|
- var record = await getListDetail(param);
|
|
|
- openSaleOrder(true, {
|
|
|
- record,
|
|
|
- isUpdate: true,
|
|
|
- showFooter: false,
|
|
|
- });
|
|
|
- } else if (prop.column.dataIndex == 'purchaseOrder') {
|
|
|
- viewType.value = 'purchaseOrder';
|
|
|
- param.id = prop.record.id;
|
|
|
- param.type = 'purchaseOrder';
|
|
|
- var record = await getListDetail(param);
|
|
|
- openPurOrder(true, {
|
|
|
- record,
|
|
|
- isUpdate: true,
|
|
|
- showFooter: false,
|
|
|
- });
|
|
|
- } else if (prop.column.dataIndex == 'saleContract') {
|
|
|
- viewType.value = 'saleContract';
|
|
|
- param.id = prop.record.id;
|
|
|
- param.type = 'saleContract';
|
|
|
- var record = await getListDetail(param);
|
|
|
- openSaleContract(true, {
|
|
|
- record,
|
|
|
- isUpdate: true,
|
|
|
- showFooter: false,
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
+ var param = {
|
|
|
+ id: '',
|
|
|
+ type: '',
|
|
|
+ };
|
|
|
+ viewType.value = 'purchaseOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'purchaseOrder';
|
|
|
+
|
|
|
+ param.pur = item;
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ openPurOrder(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: false,
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ async function handleView(prop) {
|
|
|
+
|
|
|
+ this.item1List = [];
|
|
|
+ var param = {
|
|
|
+ id: '',
|
|
|
+ type: '',
|
|
|
+ };
|
|
|
+ if (prop.column.dataIndex == 'saleOrder') {
|
|
|
+ viewType.value = 'saleOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'saleOrder';
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ openSaleOrder(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: false,
|
|
|
+ });
|
|
|
+ } else if (prop.column.dataIndex == 'purchaseOrder') {
|
|
|
+ let st = false;
|
|
|
+ viewType.value = 'purchaseOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'purchaseOrder';
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ id: prop.record.id,
|
|
|
+ pur: 'pur',
|
|
|
+ type: 'purchaseOrder'
|
|
|
+ };
|
|
|
+
|
|
|
+ await defHttp.get({ url: '/saleCode/saleInvoice/queryBySourceId', params }, { isTransformResponse: false }).then((res) => {
|
|
|
+ if (res) {
|
|
|
+ if (res.success) {
|
|
|
+ if(res.result.id == undefined || res.result.id == null){
|
|
|
+ st = true;
|
|
|
+ res.result.forEach((element) => {
|
|
|
+ this.item1List.push(element.billCode);
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(!st){
|
|
|
+
|
|
|
+ param.pur = '';
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ openPurOrder(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else if (prop.column.dataIndex == 'saleContract') {
|
|
|
+ viewType.value = 'saleContract';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'saleContract';
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ openSaleContract(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ showFooter: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- async function handleRowExport(prop) {
|
|
|
- let param = {
|
|
|
- id: '',
|
|
|
- type: '',
|
|
|
- };
|
|
|
- if (prop.column.dataIndex == 'saleOrder') {
|
|
|
- viewType.value = 'saleOrder';
|
|
|
- param.id = prop.record.id;
|
|
|
- param.type = 'saleOrder';
|
|
|
- var record = await getListDetail(param);
|
|
|
- let obj = {
|
|
|
- id: record.id,
|
|
|
- };
|
|
|
- handleExportXlsx(record.billCode, getExportSaleOrderUrl, obj);
|
|
|
- } else if (prop.column.dataIndex == 'purchaseOrder') {
|
|
|
- viewType.value = 'purchaseOrder';
|
|
|
- param.id = prop.record.id;
|
|
|
- param.type = 'purchaseOrder';
|
|
|
- var record = await getListDetail(param);
|
|
|
- let obj = {
|
|
|
- id: record.id,
|
|
|
- };
|
|
|
- handleExportXlsx(record.billCode, getExportPurOrderUrl, obj);
|
|
|
- }
|
|
|
- }
|
|
|
+ async function handleRowExportPur(prop,item) {
|
|
|
|
|
|
- function changeVisi(data) {
|
|
|
- if (!data) {
|
|
|
- viewType.value = '';
|
|
|
- }
|
|
|
- }
|
|
|
- function handleViewFile(prop, data) {
|
|
|
- if (data == '1') {
|
|
|
- ViewFileListModalRef.value.getTable(prop.record);
|
|
|
- } else {
|
|
|
- ViewFileListModalRef.value.viewFile(prop.record);
|
|
|
- }
|
|
|
- }
|
|
|
- async function preProcessingExport() {
|
|
|
- if (queryParam.billDate && queryParam.billDate.length !== 0) {
|
|
|
- var bv = Object.assign({}, queryParam);
|
|
|
- var obj = await setRangeQuery();
|
|
|
- Object.assign(queryParam, obj);
|
|
|
- delete queryParam.billDate;
|
|
|
- await onExportXls();
|
|
|
- queryParam.billDate = [bv.billDate[0], bv.billDate[1]];
|
|
|
- } else {
|
|
|
- await onExportXls();
|
|
|
- }
|
|
|
- }
|
|
|
- /* ----------------------以下为原生查询需要添加的-------------------------- */
|
|
|
- const toggleSearchStatus = ref<boolean>(false);
|
|
|
- const labelCol = reactive({
|
|
|
- xs: 24,
|
|
|
- sm: 8,
|
|
|
- });
|
|
|
- const wrapperCol = reactive({
|
|
|
- xs: 24,
|
|
|
- sm: 16,
|
|
|
- });
|
|
|
- const labelCol1 = reactive({
|
|
|
- xs: 24,
|
|
|
- sm: 11,
|
|
|
- });
|
|
|
- const wrapperCol1 = reactive({
|
|
|
- xs: 24,
|
|
|
- sm: 13,
|
|
|
- });
|
|
|
- /**
|
|
|
- * 重置
|
|
|
- */
|
|
|
- function searchReset() {
|
|
|
- formRef.value.resetFields();
|
|
|
- selectedRowKeys.value = [];
|
|
|
- //刷新数据
|
|
|
- reload();
|
|
|
- }
|
|
|
+ var param = {
|
|
|
+ id: '',
|
|
|
+ type: '',
|
|
|
+ };
|
|
|
+ viewType.value = 'purchaseOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'purchaseOrder';
|
|
|
+
|
|
|
+ param.pur = item;
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ let obj = {
|
|
|
+ id: record.id,
|
|
|
+ };
|
|
|
+ handleExportXlsx(record.billCode, getExportPurOrderUrl, obj);
|
|
|
+
|
|
|
+ }
|
|
|
+ async function handleRowExport(prop) {
|
|
|
+
|
|
|
+ this.item1List = [];
|
|
|
+ let param = {
|
|
|
+ id: '',
|
|
|
+ type: '',
|
|
|
+ };
|
|
|
+ if (prop.column.dataIndex == 'saleOrder') {
|
|
|
+ viewType.value = 'saleOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'saleOrder';
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ let obj = {
|
|
|
+ id: record.id,
|
|
|
+ };
|
|
|
+ handleExportXlsx(record.billCode, getExportSaleOrderUrl, obj);
|
|
|
+ } else if (prop.column.dataIndex == 'purchaseOrder') {
|
|
|
+
|
|
|
+ let st = false;
|
|
|
+
|
|
|
+ viewType.value = 'purchaseOrder';
|
|
|
+ param.id = prop.record.id;
|
|
|
+ param.type = 'purchaseOrder';
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ id: prop.record.id,
|
|
|
+ pur: 'pur',
|
|
|
+ type: 'purchaseOrder'
|
|
|
+ };
|
|
|
+
|
|
|
+ await defHttp.get({ url: '/saleCode/saleInvoice/queryBySourceId', params }, { isTransformResponse: false }).then((res) => {
|
|
|
+ if (res) {
|
|
|
+ if (res.success) {
|
|
|
+ if(res.result.id == undefined || res.result.id == null){
|
|
|
+ st = true;
|
|
|
+ res.result.forEach((element) => {
|
|
|
+ this.item1List.push(element.billCode);
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if(!st){
|
|
|
+
|
|
|
+ param.pur = '';
|
|
|
+
|
|
|
+ var record = await getListDetail(param);
|
|
|
+ let obj = {
|
|
|
+ id: record.id,
|
|
|
+ };
|
|
|
+ handleExportXlsx(record.billCode, getExportPurOrderUrl, obj);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- let rangeField = 'billDate,';
|
|
|
+ function changeVisi(data) {
|
|
|
+ if (!data) {
|
|
|
+ viewType.value = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function handleViewFile(prop, data) {
|
|
|
+ if (data == '1') {
|
|
|
+ ViewFileListModalRef.value.getTable(prop.record);
|
|
|
+ } else {
|
|
|
+ ViewFileListModalRef.value.viewFile(prop.record);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ async function preProcessingExport() {
|
|
|
+ if (queryParam.billDate && queryParam.billDate.length !== 0) {
|
|
|
+ var bv = Object.assign({}, queryParam);
|
|
|
+ var obj = await setRangeQuery();
|
|
|
+ Object.assign(queryParam, obj);
|
|
|
+ delete queryParam.billDate;
|
|
|
+ await onExportXls();
|
|
|
+ queryParam.billDate = [bv.billDate[0], bv.billDate[1]];
|
|
|
+ } else {
|
|
|
+ await onExportXls();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* ----------------------以下为原生查询需要添加的-------------------------- */
|
|
|
+ const toggleSearchStatus = ref<boolean>(false);
|
|
|
+ const labelCol = reactive({
|
|
|
+ xs: 24,
|
|
|
+ sm: 8,
|
|
|
+ });
|
|
|
+ const wrapperCol = reactive({
|
|
|
+ xs: 24,
|
|
|
+ sm: 16,
|
|
|
+ });
|
|
|
+ const labelCol1 = reactive({
|
|
|
+ xs: 24,
|
|
|
+ sm: 11,
|
|
|
+ });
|
|
|
+ const wrapperCol1 = reactive({
|
|
|
+ xs: 24,
|
|
|
+ sm: 13,
|
|
|
+ });
|
|
|
+ /**
|
|
|
+ * 重置
|
|
|
+ */
|
|
|
+ function searchReset() {
|
|
|
+ queryParam.billDate1 = null;
|
|
|
+ queryParam.billDate_begin = null;
|
|
|
+ queryParam.billDate_end = null;
|
|
|
+ formRef.value.resetFields();
|
|
|
+ selectedRowKeys.value = [];
|
|
|
+ //刷新数据
|
|
|
+ reload();
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 设置范围查询条件
|
|
|
- */
|
|
|
- async function setRangeQuery() {
|
|
|
- let queryParamClone = cloneDeep(queryParam);
|
|
|
+ let rangeField = 'billDate,';
|
|
|
|
|
|
- if (rangeField) {
|
|
|
- let fieldsValue = rangeField.split(',');
|
|
|
- fieldsValue.forEach((item) => {
|
|
|
- if (queryParamClone[item]) {
|
|
|
- let range = queryParamClone[item];
|
|
|
- queryParamClone[item + '_begin'] = range[0];
|
|
|
- queryParamClone[item + '_end'] = range[1];
|
|
|
- delete queryParamClone[item];
|
|
|
- } else {
|
|
|
- queryParamClone[item + '_begin'] = '';
|
|
|
- queryParamClone[item + '_end'] = '';
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- return queryParamClone;
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 设置范围查询条件
|
|
|
+ */
|
|
|
+ async function setRangeQuery() {
|
|
|
+ let queryParamClone = cloneDeep(queryParam);
|
|
|
+
|
|
|
+ // if (rangeField) {
|
|
|
+ // let fieldsValue = rangeField.split(',');
|
|
|
+ // fieldsValue.forEach((item) => {
|
|
|
+ // if (queryParamClone[item]) {
|
|
|
+ // let range = queryParamClone[item];
|
|
|
+ // queryParamClone[item + '_begin'] = range[0];
|
|
|
+ // queryParamClone[item + '_end'] = range[1];
|
|
|
+ // delete queryParamClone[item];
|
|
|
+ // } else {
|
|
|
+ // queryParamClone[item + '_begin'] = '';
|
|
|
+ // queryParamClone[item + '_end'] = '';
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ return queryParamClone;
|
|
|
+ }
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
- .jeecg-basic-table-form-container {
|
|
|
- padding: 0;
|
|
|
- .table-page-search-submitButtons {
|
|
|
- display: block;
|
|
|
- margin-bottom: 8px;
|
|
|
- white-space: nowrap;
|
|
|
- }
|
|
|
- .query-group-cust {
|
|
|
- min-width: 100px !important;
|
|
|
- }
|
|
|
- .query-group-split-cust {
|
|
|
- width: 30px;
|
|
|
- display: inline-block;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- .ant-form-item:not(.ant-form-item-with-help) {
|
|
|
- margin-bottom: 8px;
|
|
|
- height: 32px;
|
|
|
- }
|
|
|
- :deep(.ant-picker),
|
|
|
- :deep(.ant-input-number) {
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-</style>
|
|
|
+ .jeecg-basic-table-form-container {
|
|
|
+ padding: 0;
|
|
|
+
|
|
|
+ .table-page-search-submitButtons {
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+
|
|
|
+ .query-group-cust {
|
|
|
+ min-width: 100px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .query-group-split-cust {
|
|
|
+ width: 30px;
|
|
|
+ display: inline-block;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ant-form-item:not(.ant-form-item-with-help) {
|
|
|
+ margin-bottom: 8px;
|
|
|
+ height: 32px;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.ant-picker),
|
|
|
+ :deep(.ant-input-number) {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|