Merge branch 'test'
This commit is contained in:
@@ -11,6 +11,14 @@ function createProfitExport(url, params) {
|
||||
})
|
||||
}
|
||||
|
||||
export function listProfitCustomerOptions(params) {
|
||||
return request({
|
||||
url: '/report/profit/customer-options',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function listProfitSummary(params) {
|
||||
return request({
|
||||
url: '/report/profit/summary',
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
<div class="preview-toolbar">
|
||||
<span v-if="previewSearched" class="preview-summary">可选 {{ previewTotal }} 条订单,已选 <b>{{ displaySelectedCount }}</b> 条,应收合计 <b>{{ money(displaySelectedAmount) }}</b></span>
|
||||
<span v-else class="preview-summary">请选择客户、币种和账单截止日后查询可生成的计费订单</span>
|
||||
<el-button v-if="previewSearched && previewTotal > 0" :icon="Download" :loading="previewExportLoading" :disabled="previewLoading" @click="exportPreview">导出查询结果</el-button>
|
||||
<el-button type="primary" plain :loading="previewLoading" :disabled="!bankAccount" @click="queryGeneratePreview">查询</el-button>
|
||||
</div>
|
||||
<div v-if="previewSearched" class="preview-selection-toolbar">
|
||||
@@ -147,7 +148,7 @@
|
||||
|
||||
<script setup name="GenerateBillDialog">
|
||||
import { listArBillGenerateCustomerOptions, getDefaultArBankAccount, previewArBill, previewExcludedArBill, generateArBill } from '@/api/ar/bill'
|
||||
import { Refresh, Search, Select } from '@element-plus/icons-vue'
|
||||
import { Download, Refresh, Search, Select } from '@element-plus/icons-vue'
|
||||
import { AR_BILL_SELECTION_MODE } from '@/constants/ar/enums'
|
||||
|
||||
const props = defineProps({
|
||||
@@ -166,6 +167,7 @@ const dialogOpen = computed({
|
||||
const billNameOpen = ref(false)
|
||||
const generateLoading = ref(false)
|
||||
const previewLoading = ref(false)
|
||||
const previewExportLoading = ref(false)
|
||||
const previewSearched = ref(false)
|
||||
const previewRows = ref([])
|
||||
const previewTotal = ref(0)
|
||||
@@ -350,6 +352,15 @@ function handlePreviewPageChange(page) {
|
||||
fetchPreview()
|
||||
}
|
||||
|
||||
function exportPreview() {
|
||||
if (!previewSearched.value || !previewTotal.value || !previewQuery.value || previewExportLoading.value) return
|
||||
previewExportLoading.value = true
|
||||
proxy.download('/ar/bill/generate/preview/export', { ...previewQuery.value }, `ar_bill_generate_preview_${Date.now()}.xlsx`)
|
||||
.finally(() => {
|
||||
previewExportLoading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
// 当前页变化只更新当前页 ID,selectedRowMap 因此可以跨页保留手动选择。
|
||||
function handleSelectionChange(rows) {
|
||||
if (syncingPageSelection || selectionMode.value === AR_BILL_SELECTION_MODE.ALL_MATCHED) return
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
:default-params="defaultParams"
|
||||
:search-per-row="4"
|
||||
row-key="billId"
|
||||
:auto-load="false"
|
||||
:page-sizes="[100, 200, 300, 400]"
|
||||
:page-size="100"
|
||||
selection
|
||||
|
||||
@@ -28,27 +28,14 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :lg="8">
|
||||
<el-form-item label="客户名称" class="filter-item">
|
||||
<el-input
|
||||
v-model="query.customerName"
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
resize="vertical"
|
||||
clearable
|
||||
placeholder="输入客户名称,多个值请换行"
|
||||
class="filter-control multi-line-filter"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :lg="8">
|
||||
<el-form-item label="客户代码" class="filter-item">
|
||||
<el-input
|
||||
<customer-select
|
||||
v-model="query.customerCode"
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
resize="vertical"
|
||||
clearable
|
||||
placeholder="输入客户代码,多个值请换行"
|
||||
class="filter-control multi-line-filter"
|
||||
:fetch-options="listProfitCustomerOptions"
|
||||
value-key="customerCode"
|
||||
remote-search
|
||||
:page-size="20"
|
||||
placeholder="请输入客户名称或代码搜索"
|
||||
class="filter-control"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -57,8 +44,8 @@
|
||||
<el-input
|
||||
v-model="query.orderNo"
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
resize="vertical"
|
||||
:rows="1"
|
||||
resize="none"
|
||||
clearable
|
||||
placeholder="输入订单号,多个值请换行"
|
||||
class="filter-control multi-line-filter"
|
||||
@@ -315,7 +302,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="ProfitReport">
|
||||
import { downloadProfitExport, exportProfitOrders, exportProfitProducts, listProfitExports, listProfitOrders, listProfitProducts, listProfitSummary } from '@/api/report/profit'
|
||||
import { downloadProfitExport, exportProfitOrders, exportProfitProducts, listProfitCustomerOptions, listProfitExports, listProfitOrders, listProfitProducts, listProfitSummary } from '@/api/report/profit'
|
||||
// 提成功能暂停使用:import { deleteProfitCommissionRate, listProfitCommissionRates, saveProfitCommissionRate } from '@/api/report/profit'
|
||||
import { parseTime } from '@/utils/bms'
|
||||
import { ElMessage } from 'element-plus'
|
||||
@@ -329,7 +316,6 @@ const arBillStatus = ref('')
|
||||
const query = reactive({
|
||||
orderNo: '',
|
||||
customerCode: '',
|
||||
customerName: '',
|
||||
belongSalerCode: '',
|
||||
productCode: ''
|
||||
})
|
||||
@@ -405,9 +391,7 @@ function buildQuery(paged = true, includeArBillStatus = dimension.value === 'ord
|
||||
|
||||
function validateMultiValueFilters(showMessage = true) {
|
||||
const filters = [
|
||||
['orderNo', '订单号'],
|
||||
['customerCode', '客户代码'],
|
||||
['customerName', '客户名称']
|
||||
['orderNo', '订单号']
|
||||
]
|
||||
for (const [key, label] of filters) {
|
||||
const values = new Set(String(query[key] || '').split(/[\s,,;;]+/).map(value => value.trim()).filter(Boolean))
|
||||
|
||||
Reference in New Issue
Block a user