From 89fd2cf7202c321512c2ea699a3a220a7138ed44 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期四, 09 四月 2026 10:40:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/cwxt_master' into cwxt_master
---
ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue | 865 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 622 insertions(+), 243 deletions(-)
diff --git a/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue b/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue
index 5951eda..c9a840a 100644
--- a/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue
@@ -1,268 +1,647 @@
<template>
- <basicContainer >
- <avue-crud
- :option="option"
- :table-loading="pageF.loading"
- :data="tableData"
- :page="page"
- :permission="permissionList"
- :before-open="beforeOpen"
- v-model="form"
- ref="crudRef"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @refresh-change="refreshChange"
- @row-del="rowDel"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @on-load="onLoad"
- >
+ <basicContainer>
+ <avue-crud :option="option" v-model:search="queryParams" :table-loading="pageF.loading" :data="tableData"
+ :page="page" :permission="permissionList" :before-open="beforeOpen" v-model="form" ref="crudRef"
+ @row-update="rowUpdate" @row-save="rowSave" @refresh-change="refreshChange" @row-del="rowDel"
+ @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+ @current-change="currentChange" @size-change="sizeChange" @on-load="onLoad">
+
<template #menu-left>
- <el-button
- type="success"
- icon="Edit"
- :disabled="pageF.single"
- v-hasPermi="['cwgl:pendingSettlementBusiness:edit']"
- @click="handleUpdate">淇敼
+ <el-button type="success" :disabled="generateDisabled" @click="handleGenerate"
+ v-hasPermi="['cwgl:pendingSettlementBusiness:add']">鐢熸垚璐﹀崟
</el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="pageF.multiple"
- @click="handleDelete"
- v-hasPermi="['cwgl:pendingSettlementBusiness:remove']"
- >鍒犻櫎
+ <!-- <el-button type="success" icon="Edit" :disabled="pageF.single"
+ v-hasPermi="['cwgl:pendingSettlementBusiness:edit']" @click="handleUpdate">淇敼
+ </el-button> -->
+ <!-- <el-button type="danger" icon="Delete" :disabled="pageF.multiple" @click="handleDelete"
+ v-hasPermi="['cwgl:pendingSettlementBusiness:remove']">鍒犻櫎
+ </el-button> -->
+ <el-button type="warning" plain icon="Download" @click="handleExport"
+ v-hasPermi="['cwgl:pendingSettlementBusiness:export']">瀵煎嚭
</el-button>
- <el-button
- type="warning"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['cwgl:pendingSettlementBusiness:export']"
- >瀵煎嚭
- </el-button>
+
+ </template>
+ <template #menu="{ size, row, index }">
+ <el-link class="link-btn" type="primary" :underline="false" plain :size="size" @click="handleFy(row)"
+ v-hasPermi="['cwgl:pendingSettlementBusiness:query']"> 璐圭敤鏄庣粏
+ </el-link>
</template>
</avue-crud>
+
+ <el-dialog v-model="dialog.visible" :title="dialog.title" width="1000px">
+ <el-form ref="storagesTransferRef" :model="form" :rules="rules" label-width="120px">
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="璐﹀崟鍚嶇О" prop="billName">
+ <el-input v-model="form.billName" placeholder="璇疯緭鍏ヨ处鍗曞悕绉�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
+ <el-input v-model="form.customerName" disabled placeholder="璇疯緭鍏ュ鎴峰悕绉�" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璋冨害鍗曟暟閲�" prop="count">
+ <el-input-number v-model="form.count" disabled :min="0" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="缁撶畻閲戦" prop="price">
+ <el-input-number v-model="form.price" disabled :min="0" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </template>
+
+ </el-dialog>
+
+
+ <el-dialog v-model="dialog.detail" :title="dialog.title" width="1000px">
+ <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+ <el-tab-pane label="鎴愭湰" name="first"></el-tab-pane>
+ <el-tab-pane label="鏀跺叆" name="second"></el-tab-pane>
+ </el-tabs>
+ <el-table :data="tableDataList" show-summary :summary-method="getSummaries" style="width: 100%">
+ <el-table-column prop="feeName" label="璐圭敤鍚嶇О" />
+ <el-table-column prop="estimatedAmount" label="璐圭敤閲戦" />
+ <el-table-column prop="currency" label="璐圭敤甯佸埗" />
+ </el-table>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ </div>
+ </template>
+
+ </el-dialog>
+
+
+
+
</basicContainer>
</template>
<script setup name="pendingSettlementBusiness" lang="ts">
- import {PendingSettlementBusinessI,addPendingSettlementBusiness, delPendingSettlementBusiness, exportPendingSettlementBusiness, getPendingSettlementBusiness, listPendingSettlementBusiness, updatePendingSettlementBusiness} from "@/api/cwgl/pendingSettlementBusiness";
- import useCurrentInstance from "@/utils/useCurrentInstance";
- import {computed,reactive, ref, toRefs} from "vue";
- import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
- import {usePagePlus} from "@/hooks/usePagePlus";
- import {hasPermission} from "@/utils/permissionUtils";
+import {
+ PendingSettlementBusinessI, addPendingSettlementBusiness, delPendingSettlementBusiness, exportPendingSettlementBusiness, getPendingSettlementBusiness, listPendingSettlementBusiness, updatePendingSettlementBusiness,
+ getPendingSettlementBusinessBill, getCwglPendingSettlementBusinessBillList, getSelectCustomNam, cwglPendingSettlementBusinessCreateBill, pendingSettlementBusinessCreateBillList
+} from "@/api/cwgl/pendingSettlementBusiness";
+import { listEstimatedReceivable } from "@/api/cwgl/estimatedReceivable";
- const { proxy } = useCurrentInstance();
- const crudRef = ref();
- const permissionList = computed(()=>{
- return {
- addBtn: hasPermission(["cwgl:pendingSettlementBusiness:add"]),
- delBtn: hasPermission(["cwgl:pendingSettlementBusiness:remove"]),
- editBtn: hasPermission(["cwgl:pendingSettlementBusiness:edit"]),
- viewBtn: hasPermission(["cwgl:pendingSettlementBusiness:query"]),
+import useCurrentInstance from "@/utils/useCurrentInstance";
+import { computed, reactive, ref, toRefs } from "vue";
+import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
+import { usePagePlus } from "@/hooks/usePagePlus";
+import { hasPermission } from "@/utils/permissionUtils";
+
+const { proxy } = useCurrentInstance();
+const crudRef = ref();
+
+const permissionList = computed(() => {
+ return {
+ addBtn: hasPermission(["cwgl:pendingSettlementBusiness:add"]),
+ delBtn: hasPermission(["cwgl:pendingSettlementBusiness:remove"]),
+ editBtn: hasPermission(["cwgl:pendingSettlementBusiness:edit"]),
+ viewBtn: hasPermission(["cwgl:pendingSettlementBusiness:query"]),
+ generate: hasPermission(["cwgl:pendingSettlementBusiness:generate"]),
+
+ }
+})
+
+const data = reactive({
+ form: <PendingSettlementBusinessI & any>{
+ billName: '',
+ customerNa: '',
+ count: 0,
+ price: 0
+ },
+ selectCustomName: [],
+ queryParams: <PendingSettlementBusinessI & PageQueryInterface>{},
+ page: <PagesInterface>{
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ },
+ selectionList: [],
+ tableDataList: [],
+ rules: {
+ billName: [
+ { required: true, message: '璐﹀崟鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+ ],
+ },
+ generateDisabled: false, // 鎺у埗鐢熸垚璐﹀崟鎸夐挳鐨勭鐢ㄧ姸鎬�
+})
+const { queryParams, form, page, selectionList, generateDisabled, rules, tableDataList,
+ selectCustomName
+} = toRefs(data);
+const getSelectCustomName = () => {
+ getSelectCustomNam().then((res) => {
+ if (res.code === 200) {
+ // selectCustomName.value = res.data;
+ selectCustomName.value = res.data.map(item => ({
+ dictLabel: item,
+ dictValue: item
+ }));
+ option.value.column.customerName.dicData = selectCustomName.value || [];
}
})
+}
+getSelectCustomName()
+const option = ref({
+ pageKey: 'PendingSettlementBusiness',
+ rowKey: 'id',
+ addBtn: false,
+ generateDisabled: true,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ selection: true,
+ generate: false,
+ searchSpan: 5,
+ searchLabelWidth: 100,
+ column: {
+ // id: {
+ // label: 'ID',
+ // },
+ projectName: {
+ fixed: 'left',
+ label: '椤圭洰鍚嶇О', search: true,
+ minWidth: 150,
- const data = reactive({
- form:<PendingSettlementBusinessI>{},
- queryParams:<PendingSettlementBusinessI&PageQueryInterface>{},
- page: <PagesInterface>{
- pageSize: 10,
- total: 0,
- currentPage: 1,
},
- selectionList:[],
- })
- const {queryParams,form,page,selectionList} = toRefs(data);
- const option = ref({
- pageKey: 'PendingSettlementBusiness',
- rowKey: 'id',
- column: {
- id: {
- label: 'ID',
- },
- bookingNo: {
- label: '瀹㈡埛璁㈠崟鍙�',
- },
- customerId: {
- label: '瀹㈡埛id',
- },
- carrierId: {
- label: '鎵胯繍鍟唅d',
- },
- projectName: {
- label: '椤圭洰鍚嶇О',
- },
- dispatchNo: {
- label: '璋冨害鍗曞彿',
- rules: [
- {
- required: true,
- message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur" }
- ], },
- createdTime: {
- label: '涓嬪崟鏃堕棿',
- },
- transportMode: {
- label: '杩愯緭鏂瑰紡',
- },
- productId: {
- label: '鏈嶅姟浜у搧',
- },
- customerName: {
- label: '瀹㈡埛鍚嶇О',
- },
- operationMode: {
- label: '杩愯惀妯″紡',
- },
- carrierName: {
- label: '鎵胯繍鍟�',
- },
- departureLocation: {
- label: '鍑哄彂鍦�',
- },
- arrivalLocation: {
- label: '鐩殑鍦�',
- },
- vehicleId: {
- label: '杩愯緭宸ュ叿ID',
- },
- licensePlateNumber: {
- label: '杞︾墝',
- },
- vehicleType: {
- label: '杞﹀瀷',
- },
- mainDriver: {
- label: '涓婚┚椹跺憳',
- },
- assistantDriver: {
- label: '鍓┚椹跺憳',
- },
- pointNum: {
- label: '鎻愰�佽揣鐐规暟',
- },
- businessContact: {
- label: '涓氬姟鑱旂郴浜�',
- },
- estimatedTotalIncome: {
- label: '棰勪及鎬绘敹鍏�',
- },
- estimatedTotalCost: {
- label: '棰勪及鎬绘垚鏈�',
- },
- estimatedProfit: {
- label: '棰勪及鍒╂鼎',
- },
- electronicLock: {
- label: '鐢靛瓙閿�',
- },
- reWeighingWeight: {
- label: '澶嶇閲嶉噺',
- },
- quantity: {
- label: '浠舵暟',
- },
- actualDepartureTime: {
- label: '瀹為檯鍑哄彂鏃堕棿',
- },
- requiredArrivalTime: {
- label: '瑕佹眰鍒拌揪鏃堕棿',
- },
- actualArrivalTime: {
- label: '瀹為檯鍒拌揪鏃堕棿',
- },
- beReturn: {
- label: '鏄惁鍥炵▼',
- },
- dispatchQuantity: {
- label: '瀹炲彂浠舵暟',
- },
- dispatchWeight: {
- label: '瀹炲彂閲嶉噺',
- },
- dispatchVolume: {
- label: '瀹炲彂浣撶Н(绔嬫柟锛�',
- },
- emptyMileage: {
- label: '绌鸿浇閲岀▼',
- },
- emptyFuel: {
- label: '绌鸿浇娌硅��',
- },
- heavyMileage: {
- label: '閲嶈浇閲岀▼',
- },
- heavyFuel: {
- label: '閲嶈浇娌硅��',
- },
- beScheduled: {
- label: '鏄惁鎸夌彮娆�',
- },
- trackingNo: {
- label: '蹇�掑崟鍙�',
- },
- sealNo: {
- label: '閾呭皝鍙�',
- },
- scheduleNo: {
- label: '鐝鍙�',
- },
- transportStatus: {
- label: '杩愯緭鐘舵��',
- },
- estimatedBillId: {
- label: '棰勪及璐﹀崟ID',
- },
- settlementBillId: {
- label: '缁撶畻璐﹀崟ID',
- },
- settlementStatus: {
- label: '缁撶畻鐘舵��',
- },
- createTime: {
- label: '鍒涘缓鏃堕棿',
- rules: [
- {
- required: true,
- message: "鍒涘缓鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
- ], },
- updateTime: {
- label: '鏇存柊鏃堕棿',
- rules: [
- {
- required: true,
- message: "鏇存柊鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
- ] },
- }
- })
+ dispatchNo: {
+ label: '璋冨害鍗曞彿',
+ minWidth: 150,
+ search: true,
+ rules: [
+ {
+ required: true,
+ message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur"
+ }
+ ],
+ },
+ customerName: {
+ label: '瀹㈡埛鍚嶇О',
+ search: true,
+ minWidth: 220,
+ showOverflowTooltip: true,
+ type: 'select', // 璁剧疆涓轰笅鎷夋绫诲瀷
+ dicData: [], // 浣跨敤 selectCustomName 浣滀负鏁版嵁婧�
+ disabled: false // 鏍规嵁闇�瑕佽缃槸鍚︾鐢�
+ },
+ licensePlateNumber: {
+ label: '杞︾墝', search: true,
+ minWidth: 120,
- const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
- searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
- form:form,
- option:option,
- queryParams:queryParams,
- idKey:'id',
- page:page.value,
- getListApi:listPendingSettlementBusiness,
- getDetailApi:getPendingSettlementBusiness,
- exportApi:exportPendingSettlementBusiness,
- deleteApi:delPendingSettlementBusiness,
- addApi:addPendingSettlementBusiness,
- updateApi:updatePendingSettlementBusiness,
- handleUpdateFunc:()=>{
+ },
+ vehicleType: {
+ label: '杞﹀瀷', search: true,
+ },
+ // createdTime: {
+ // label: '涓嬪崟鏃堕棿',
+ // display: false,
+ // search: true,
+ // type: 'date',
+ // format: 'YYYY-MM-DD',
+ // searchSpan: 5, minWidth: 120,
+ // valueFormat: 'YYYY-MM-DD',
+ // },
+ createdTimeArray: {
+ label: '涓嬪崟鏃堕棿',
+ search: true,
+ searchRange: true,
+ type: 'daterange',
+ startPlaceholder: '寮�濮嬫棩鏈�',
+ endPlaceholder: '缁撴潫鏃ユ湡',
+ valueFormat: 'YYYY-MM-DD',
+ hide: true
+ },
+ createdTime: {
+ label: '涓嬪崟鏃堕棿',
+ minWidth: 180,
+ },
+ operationMode: {
+ label: '杩愯惀妯″紡',
+ },
+ createTime: {
+ label: '鍒涘缓鏃堕棿', display: false, hide: true, type: 'date',
+ format: 'YYYY-MM-DD', searchSpan: 5, minWidth: 100, searchLabelWidth: 110,
+ valueFormat: 'YYYY-MM-DD',
+ },
+ // bookingNo: {
+ // label: '瀹㈡埛璁㈠崟鍙�', showOverflowTooltip: true,
+ // },
+
+ // customerId: {
+ // label: '瀹㈡埛id',
+ // },
+ // carrierId: {
+ // label: '鎵胯繍鍟唅d',
+ // },
+
+
+ // createdTime: {
+ // label: '涓嬪崟鏃堕棿',
+ // },
+ transportMode: {
+ label: '杩愯緭鏂瑰紡', hide: true,
+ },
+ productId: {
+ label: '鏈嶅姟浜у搧', hide: true,
+ },
+
+
+ carrierName: {
+ label: '鎵胯繍鍟�',
+ minWidth: 220,
+ showOverflowTooltip: true,
+ },
+ departureLocation: {
+ label: '鍑哄彂鍦�',
+ minWidth: 220,
+ showOverflowTooltip: true,
+ },
+ arrivalLocation: {
+ label: '鐩殑鍦�',
+ minWidth: 220,
+ showOverflowTooltip: true,
+
+ },
+
+ // vehicleId: {
+ // label: '杩愯緭宸ュ叿ID',hide: true,
+ // },
+
+
+ mainDriver: {
+ label: '涓婚┚椹跺憳',
+ minWidth: 120,
+
+ },
+ assistantDriver: {
+ label: '鍓┚椹跺憳',
+ minWidth: 120,
+
+ },
+ pointNum: {
+ label: '鎻愰�佽揣鐐规暟',
+ minWidth: 100,
+
+ },
+ businessContact: {
+ label: '涓氬姟鑱旂郴浜�',
+ minWidth: 120,
+ },
+ estimatedTotalIncome: {
+ label: '棰勪及鎬绘敹鍏�',
+ minWidth: 120,
+
+ },
+ estimatedTotalCost: {
+ label: '棰勪及鎬绘垚鏈�',
+ minWidth: 120,
+
+ },
+ estimatedProfit: {
+ label: '棰勪及鍒╂鼎',
+ minWidth: 120,
+
+ },
+
+ confirmedTotalIncome: {
+ label: '纭鎬绘敹鍏�',
+ minWidth: 120,
+
+ },
+ confirmedTotalCost: {
+ label: '纭鎬绘垚鏈�',
+ minWidth: 120,
+
+ },
+ isCreate: {
+ label: '鏄惁宸插叆璐�', dataType: 'string',
+ type: 'select',
+ fixed: 'right',
+ minWidth: 120,
+ search: true,
+ dicUrl: '/system/dict/data/type/sys_whether_type',
+ },
+ billName: {
+ label: '鍏宠仈璐﹀崟鍚嶇О',
+ fixed: 'right',
+ minWidth: 120,
+ search: true,
+ },
+ isIncomeMatched: {
+ label: '鏄惁鍖归厤鏀跺叆',
+ type: 'select',
+ dataType: 'string',
+ minWidth: 120,
+
+ dicUrl: '/system/dict/data/type/sys_matching_status',
+ },
+ isCostMatched: {
+ label: '鏄惁鍖归厤鎴愭湰',
+ type: 'select',
+ dataType: 'string',
+ minWidth: 120,
+ dicUrl: '/system/dict/data/type/sys_matching_status',
+ },
+
+
+ relatedBillStatus: {
+ minWidth: 120,
+ label: '鍏宠仈璐﹀崟鐘舵��',
+ dataType: 'string',
+ type: 'select',
+ dicUrl: '/system/dict/data/type/sys_related_status',
+ // formatter: (row, value) => {
+ // // 鑷畾涔夋牸寮忓寲閫昏緫锛堝鏋滈渶瑕侊級
+ // return value;
+ // }
+ },
+ // electronicLock: {
+ // label: '鐢靛瓙閿�',
+ // },
+ // reWeighingWeight: {
+ // label: '澶嶇閲嶉噺',
+ // },
+ // quantity: {
+ // label: '浠舵暟',
+ // },
+ // actualDepartureTime: {
+ // label: '瀹為檯鍑哄彂鏃堕棿',
+ // },
+ // requiredArrivalTime: {
+ // label: '瑕佹眰鍒拌揪鏃堕棿',
+ // },
+ // actualArrivalTime: {
+ // label: '瀹為檯鍒拌揪鏃堕棿',
+ // },
+ // beReturn: {
+ // label: '鏄惁鍥炵▼',
+ // },
+ // dispatchQuantity: {
+ // label: '瀹炲彂浠舵暟',
+ // },
+ // dispatchWeight: {
+ // label: '瀹炲彂閲嶉噺',
+ // },
+ // dispatchVolume: {
+ // label: '瀹炲彂浣撶Н(绔嬫柟锛�',
+ // },
+ // emptyMileage: {
+ // label: '绌鸿浇閲岀▼',
+ // },
+ // emptyFuel: {
+ // label: '绌鸿浇娌硅��',
+ // },
+ // heavyMileage: {
+ // label: '閲嶈浇閲岀▼',
+ // },
+ // heavyFuel: {
+ // label: '閲嶈浇娌硅��',
+ // },
+ // beScheduled: {
+ // label: '鏄惁鎸夌彮娆�',
+ // },
+ // trackingNo: {
+ // label: '蹇�掑崟鍙�',
+ // },
+ // sealNo: {
+ // label: '閾呭皝鍙�',
+ // },
+ // scheduleNo: {
+ // label: '鐝鍙�',
+ // },
+ // transportStatus: {
+ // label: '杩愯緭鐘舵��',
+ // },
+ // estimatedBillId: {
+ // label: '棰勪及璐﹀崟ID',
+ // },
+ // settlementBillId: {
+ // label: '缁撶畻璐﹀崟ID',
+ // },
+ // settlementStatus: {
+ // label: '缁撶畻鐘舵��',
+ // },
+ // updateTime: {
+ // label: '鏇存柊鏃堕棿',
+ // rules: [
+ // {
+ // required: true,
+ // message: "鏇存柊鏃堕棿涓嶈兘涓虹┖", trigger: "blur"
+ // }
+ // ]
+ // },
+ }
+})
+
+const { tableData, pageF, rowSave, rowUpdate, rowDel, beforeOpen, searchChange,
+ searchReset, selectionChange, onLoad, currentChange, sizeChange, handleDelete, handleExport, handleUpdate, refreshChange } = usePagePlus({
+ form: form,
+ option: option,
+ queryParams: queryParams,
+ idKey: 'id',
+ page: page.value,
+ getListApi: listPendingSettlementBusiness,
+ getDetailApi: getPendingSettlementBusiness,
+ exportApi: exportPendingSettlementBusiness,
+ deleteApi: delPendingSettlementBusiness,
+ addApi: addPendingSettlementBusiness,
+ updateApi: updatePendingSettlementBusiness,
+ handleUpdateFunc: () => {
crudRef.value.rowEdit(selectionList.value[0]);
},
- handleSelectionChangeFunc:(selection:any)=>{
+ handleSelectionChangeFunc: (selection: any) => {
+ if (selection.length > 0) {
+ // 妫�鏌ユ槸鍚︽墍鏈夎褰曢兘鏄湭鍏ヨ处鐘舵��(isCreate == '0')
+ const allNotCreated = selection.every((item: any) => item.isCreate == '0');
+ // 妫�鏌ユ槸鍚︽墍鏈夎褰曠殑瀹㈡埛鍚嶇О閮界浉鍚�
+ const sameCustomer = selection.every((item: any) => item.customerName === selection[0].customerName);
+
+ if (allNotCreated && sameCustomer) {
+ generateDisabled.value = false;
+ } else {
+ generateDisabled.value = true;
+ if (!allNotCreated) {
+ proxy.$message.warning('璇烽�夋嫨鏈叆璐︾殑璁板綍');
+ } else if (!sameCustomer) {
+ proxy.$message.warning('璇烽�夋嫨鐩稿悓瀹㈡埛鍚嶇О鐨勮褰�');
+ }
+ }
+ } else {
+ generateDisabled.value = false;
+ }
selectionList.value = selection;
+ },
+ getBeginListFunc: (params = {}) => {
+ // 鍒涘缓鏂板弬鏁板璞�
+ let newParams = { ...params };
+
+ newParams = proxy.addDateRangeNew(newParams, newParams?.createdTimeArray, 'createdTime') || [];
+ delete newParams.createdTimeArray;
+ queryParams.value = newParams;
+ return newParams;
+ }
+
+ })
+const dialog = reactive({
+ visible: false,
+ detail: false,
+ title: '',
+})
+const selectedIds = ref<string>('');
+const handleGenerate = () => {
+ form.value = {};
+ dialog.title = '鐢熸垚璐﹀崟';
+ if (selectionList.value.length > 0) {
+ selectedIds.value = selectionList.value.map(item => item.id).join(',');
+ }
+ if (selectionList.value.length === 0) {
+ if (queryParams.value.customerName == '') {
+ proxy.$message.warning('璇烽�夋嫨瀹㈡埛鍚嶇О');
+ return;
+ }
+ getCwglPendingSettlementBusinessBillList({ customerName: queryParams.value.customerName }).then((res) => {
+ if (res.code === 200) {
+ form.value = res.data;
+ // option.value.generate = true;
+ dialog.visible = true;
+ }
+ })
+ } else {
+ getPendingSettlementBusinessBill(selectedIds.value).then((res) => {
+ if (res.code === 200) {
+ form.value = res.data;
+ // option.value.generate = true;
+ dialog.visible = true;
+ }
+ })
+ }
+
+
+}
+
+const storagesTransferRef = ref<FormInstance>()
+const submitForm = () => {
+ storagesTransferRef.value!.validate(valid => {
+ if (valid) {
+ if (selectionList.value.length == 0) {
+ pendingSettlementBusinessCreateBillList(form.value).then((res) => {
+ if (res.code === 200) {
+ proxy.$message.success(res.msg);
+ dialog.visible = false;
+ onLoad(page.value)
+ }
+
+ });
+ } else {
+
+ cwglPendingSettlementBusinessCreateBill(form.value, selectedIds.value).then((res) => {
+ if (res.code === 200) {
+ proxy.$message.success(res.msg);
+ dialog.visible = false;
+ onLoad(page.value)
+
+
+ }
+ });
+ }
}
})
+}
+const cancel = () => {
+ form.value = {};
+ dialog.visible = false;
+ dialog.detail = false;
+ proxy.resetForm(storagesTransferRef.value)
+ option.value.generate = false;
+}
+const activeName = ref('first')
+const dispatchNo = ref('');
+const handleClick = (tab: TabsPaneContext, event: Event) => {
+ if (tab.props.name == 'first') {
+ getListVable(dispatchNo.value, 1);
+ } else if (tab.props.name == 'second') {
+ getListVable(dispatchNo.value, 0);
+ }
+}
+const handleFy = (row: any) => {
+ dispatchNo.value = row.dispatchNo;
+ dialog.title = '璐圭敤鏄庣粏';
+ if (activeName.value == 'first') {
+ listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1, isConfirmed: 1 }).then((res) => {
+ if (res.code === 200) {
+ dialog.detail = true;
+ tableDataList.value = res.rows || [];
+ }
+ })
+ } else if (activeName.value == 'second') {
+ // 杩欓噷鍙互娣诲姞鏌ヨ鏀跺叆鐩稿叧鐨勯�昏緫
+ listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0, isConfirmed: 1 }).then((res) => {
+ if (res.code === 200) {
+ dialog.detail = true;
+ tableDataList.value = res.rows || [];
+ }
+ })
+ }
+}
+const getListVable = (dispatchNo, feeType) => {
+ listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType, isConfirmed: 1 }).then((res) => {
+ if (res.code === 200) {
+ tableDataList.value = res.rows || [];
+ }
+ })
+}
+// 娣诲姞鍚堣鏂规硶
+const getSummaries = (param) => {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣';
+ return;
+ }
+ if (column.property === 'estimatedAmount') {
+ const values = data.map(item => Number(item.estimatedAmount));
+ if (!values.every(value => Number.isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!Number.isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0);
+ sums[index] = sums[index].toFixed(2);
+ } else {
+ sums[index] = 'N/A';
+ }
+ } else {
+ sums[index] = '';
+ }
+ });
+ return sums;
+}
</script>
+
+<style>
+:deep(.avue-crud__table) {
+ overflow-y: auto;
+}
+
+:deep(.el-scrollbar__bar.is-horizontal) {
+ pointer-events: auto;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.8.0