From 4dbd65ead93823f2e31847667e3ecf454700ab04 Mon Sep 17 00:00:00 2001 From: sen <sen@qq.com> Date: 星期一, 18 八月 2025 10:37:31 +0800 Subject: [PATCH] 增加搜索条件 --- ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue | 828 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 585 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..c8baab3 100644 --- a/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue +++ b/ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue @@ -1,268 +1,610 @@ <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, - 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:()=>{ + type: 'select', // 璁剧疆涓轰笅鎷夋绫诲瀷 + dicData: [], // 浣跨敤 selectCustomName 浣滀负鏁版嵁婧� + disabled: false // 鏍规嵁闇�瑕佽缃槸鍚︾鐢� + }, + licensePlateNumber: { + label: '杞︾墝', search: true, + minWidth: 120, + + }, + vehicleType: { + label: '杞﹀瀷', search: true, + }, + createdTime: { + label: '涓嬪崟鏃堕棿', + display: false, + search: true, + type: 'date', + format: 'YYYY-MM-DD', + searchSpan: 5, minWidth: 120, + valueFormat: 'YYYY-MM-DD', + }, + 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: 210, + }, + departureLocation: { + label: '鍑哄彂鍦�', + minWidth: 200, + }, + arrivalLocation: { + label: '鐩殑鍦�', + minWidth: 200, + + }, + + // 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; } }) +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> -- Gitblit v1.8.0