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/tms/paymentTmsFinance/index.vue |  923 +++++++++++++++++++++++---------------------------------
 1 files changed, 383 insertions(+), 540 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/paymentTmsFinance/index.vue b/ui/admin-ui3/src/views/tms/paymentTmsFinance/index.vue
index 1d64374..2e4fa0e 100644
--- a/ui/admin-ui3/src/views/tms/paymentTmsFinance/index.vue
+++ b/ui/admin-ui3/src/views/tms/paymentTmsFinance/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <basicContainer >
+  <basicContainer>
     <avue-crud
         :option="option"
         :table-loading="pageF.loading"
@@ -21,21 +21,21 @@
         @on-load="onLoad"
     >
       <template #menu-left>
-        <el-button
-            type="success"
-            icon="Edit"
-            :disabled="pageF.single"
-            v-hasPermi="['tms:tmsFinance:edit']"
-            @click="handleUpdate">淇敼
-        </el-button>
-        <el-button
-            type="danger"
-            icon="Delete"
-            :disabled="pageF.multiple"
-            @click="handleDelete"
-            v-hasPermi="['tms:tmsFinance:remove']"
-        >鍒犻櫎
-        </el-button>
+        <!--        <el-button-->
+        <!--            type="success"-->
+        <!--            icon="Edit"-->
+        <!--            :disabled="pageF.single"-->
+        <!--            v-hasPermi="['tms:tmsFinance:edit']"-->
+        <!--            @click="handleUpdate">淇敼-->
+        <!--        </el-button>-->
+        <!--        <el-button-->
+        <!--            type="danger"-->
+        <!--            icon="Delete"-->
+        <!--            :disabled="pageF.multiple"-->
+        <!--            @click="handleDelete"-->
+        <!--            v-hasPermi="['tms:tmsFinance:remove']"-->
+        <!--        >鍒犻櫎-->
+        <!--        </el-button>-->
         <el-button
             type="warning"
             plain
@@ -45,540 +45,383 @@
         >瀵煎嚭
         </el-button>
       </template>
+      <template #menu-before="{row}">
+        <el-link size="small" type="primary" v-if="row.status == 0" @click="handleConfirm(row)" class="link-btn"
+                 :underline="false" icon="el-icon-pointer">纭
+        </el-link>
+        <el-link size="small" type="primary" v-if="[0,1].includes(row.status)" @click="handleCancel(row)" class="link-btn" :underline="false"
+                 icon="el-icon-connection">浣滃簾
+        </el-link>
+        <el-link size="small" type="primary" v-if="[0,1].includes(row.status)" @click="handleAddFinanceDetail(row)" class="link-btn"
+                 :underline="false" icon="el-icon-edit-pen">璐圭敤鏄庣粏
+        </el-link>
+      </template>
     </avue-crud>
+    <el-dialog :title="pageF.title" v-model="pageF.open" class="avue-dialog avue-dialog--top" width="80%">
+      鎬昏垂鐢� <el-input-number v-model="form.totalAmount" disabled readonly></el-input-number>
+      <avue-crud style="margin-top: 10px "
+                 :option="financeTableOption"
+                 :data="boxTableData"
+                 :permission="permissionList2"
+                 @row-update="rowDetailUpdate"
+                 @row-save="rowDetailSave"
+      >
+        <template #menu="{row}">
+          <el-link size="small" type="primary" v-if="[0].includes(row.status)" @click="handleCancelDetail(row)" class="link-btn" :underline="false"
+                   icon="el-icon-connection">浣滃簾
+          </el-link>
+        </template>
+      </avue-crud>
+    </el-dialog>
+
   </basicContainer>
 </template>
 
 <script setup name="tmsFinance" lang="ts">
-  import {TmsFinanceI,addTmsFinance, delTmsFinance, exportTmsFinance, getTmsFinance, listTmsFinance, updateTmsFinance} from "@/api/tms/tmsFinance";
-  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 {
+  TmsFinanceI,
+  addTmsFinance,
+  delTmsFinance,
+  exportTmsFinance,
+  getTmsFinance,
+  listTmsFinance,
+  updateTmsFinance,confirmFinance,cancelFinance
+} from "@/api/tms/tmsFinance";
+import {addTmsFinanceDetail, listTmsFinanceDetail,
+  cancelFinanceDetail,
+  updateTmsFinanceDetail} from "@/api/tms/tmsFinanceDetail"
 
-  const { proxy } = useCurrentInstance();
-  const crudRef = ref();
+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 {ElMessage, ElMessageBox} from "element-plus";
+import {confirmOrder} from "@/api/tms/tmsDispatchOrder";
 
-  const permissionList = computed(()=>{
-    return {
-      addBtn: hasPermission(["tms:tmsFinance:add"]),
-      delBtn: hasPermission(["tms:tmsFinance:remove"]),
-      editBtn: hasPermission(["tms:tmsFinance:edit"]),
-      viewBtn: hasPermission(["tms:tmsFinance:query"]),
-    }
-  })
+const {proxy} = useCurrentInstance();
+const crudRef = ref();
 
-  const data = reactive({
-    form:<TmsFinanceI>{},
-    queryParams:<TmsFinanceI&PageQueryInterface>{},
-    page: <PagesInterface>{
-      pageSize: 10,
-      total: 0,
-      currentPage: 1,
+const permissionList = computed(() => {
+  return {
+    addBtn: hasPermission(["tms:tmsFinance:add"]),
+    delBtn: hasPermission(["tms:tmsFinance:remove"]),
+    editBtn: hasPermission(["tms:tmsFinance:edit"]),
+    viewBtn: hasPermission(["tms:tmsFinance:query"]),
+  }
+})
+
+const permissionList2 = (key: any, row: any, index: any) => {
+  if (key == 'addBtn') {
+    return true
+  }else if (key == 'editBtn') {
+    return  [0].includes(row?.status)
+  } else {
+    return true;
+  }
+};
+const data = reactive({
+  form: <TmsFinanceI>{},
+  queryParams: <TmsFinanceI & PageQueryInterface>{},
+  page: <PagesInterface>{
+    pageSize: 10,
+    total: 0,
+    currentPage: 1,
+  },
+  selectionList: [],
+  boxTableData: []
+})
+const {queryParams, form, page, selectionList,boxTableData} = toRefs(data);
+const option = ref({
+  pageKey: 'TmsFinance',
+  rowKey: 'id',
+  addBtn: false,
+  editBtn: false,
+  delBtn: false,
+  viewBtn: false,
+  column: {
+
+    systemCode: {
+      label: '绯荤粺缂栧彿',
+      hide: false,minWidth: 180,
+      search: true,
     },
-    selectionList:[],
-  })
-  const {queryParams,form,page,selectionList} = toRefs(data);
-  const option = ref({
-    pageKey: 'TmsFinance',
-    rowKey: 'id',
-    column: {
-                                id: {
-          label: '涓婚敭ID',
-                  addDisplay :true,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                  },
-                                systemCode: {
-          label: '绯荤粺缂栧彿锛屾柊澧炴椂鑷姩濉啓',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "绯荤粺缂栧彿锛屾柊澧炴椂鑷姩濉啓涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                planName: {
-          label: '搴旀敹',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "搴旀敹涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                dispatchId: {
-          label: '璋冨害鍗曞彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                dispatchNo: {
-          label: '璋冨害鍗曞彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                customerId: {
-          label: '瀹㈡埛ID',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "瀹㈡埛ID涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                customerCode: {
-          label: '瀹㈡埛缂栫爜',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                projectId: {
-          label: '鍏宠仈椤圭洰ID',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鍏宠仈椤圭洰ID涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                projectName: {
-          label: '鍏宠仈椤圭洰鍚嶇О',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鍏宠仈椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                vehicleProviderId: {
-          label: '杞﹁締鏈嶅姟鍟咺D',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杞﹁締鏈嶅姟鍟咺D涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                vehicleProviderName: {
-          label: '杞﹁締鏈嶅姟鍟嗗悕绉�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杞﹁締鏈嶅姟鍟嗗悕绉颁笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                requiredVehicleTypes: {
-          label: '瑕佹眰杞﹀瀷锛岀敱璋冨害鍗曟暟鎹敓鎴�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "瑕佹眰杞﹀瀷锛岀敱璋冨害鍗曟暟鎹敓鎴愪笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                actualVehicleType: {
-          label: '瀹為檯杞﹀瀷',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                mainDriverId: {
-          label: '鍏宠仈椹鹃┒鍛樼鐞咺D',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鍏宠仈椹鹃┒鍛樼鐞咺D涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                mainDriver: {
-          label: '涓婚┚椹跺憳锛岀敱璋冨害鍗曟暟鎹敓鎴�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "涓婚┚椹跺憳锛岀敱璋冨害鍗曟暟鎹敓鎴愪笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                assistantDriver: {
-          label: '鍓┚椹跺憳锛岀敱璋冨害鍗曟暟鎹敓鎴�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                vehicleId: {
-          label: '杞﹁締绠$悊琛↖D',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杞﹁締绠$悊琛↖D涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                licensePlate: {
-          label: '杞︾墝鍙凤紝鐢辫皟搴﹀崟鏁版嵁鐢熸垚',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杞︾墝鍙凤紝鐢辫皟搴﹀崟鏁版嵁鐢熸垚涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                totalAmount: {
-          label: '鎬婚噾棰濓紝鐢辫皟搴﹀崟鏁版嵁鐢熸垚',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鎬婚噾棰濓紝鐢辫皟搴﹀崟鏁版嵁鐢熸垚涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                transportRoute: {
-          label: '杩愯緭绾胯矾锛岀敱璋冨害鍗曟暟鎹敓鎴�',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杩愯緭绾胯矾锛岀敱璋冨害鍗曟暟鎹敓鎴愪笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                shipperId: {
-          label: '鍙戣揣浜�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鍙戣揣浜轰笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                shipperName: {
-          label: '鍙戣揣浜哄悕绉�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                shipperMobile: {
-          label: '鍙戣揣浜烘墜鏈哄彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                shipperAddress: {
-          label: '鍙戣揣浜哄湴鍧�',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                shipperRegionCode: {
-          label: '鍙戣揣琛屾斂鍖哄煙',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                receiverId: {
-          label: '鏀惰揣浜�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鏀惰揣浜轰笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                receiverName: {
-          label: '鏀惰揣浜哄悕绉�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                receiverMobile: {
-          label: '鏀惰揣浜烘墜鏈哄彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                receiverAddress: {
-          label: '鏀惰揣浜哄湴鍧�',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                receiverRegionCode: {
-          label: '鏀惰揣琛屾斂鍖哄煙',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                status: {
-          label: '鐘舵�侊紝0=寰呯‘璁わ紝1=宸茬‘璁わ紝2=浣滃簾',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鐘舵�侊紝0=寰呯‘璁わ紝1=宸茬‘璁わ紝2=浣滃簾涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                feeName: {
-          label: '璐圭敤鍚嶇О锛岀敓鎴愯垂鐢ㄦ椂鍥哄畾鐢熸垚涓�鏉¤繍璐�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璐圭敤鍚嶇О锛岀敓鎴愯垂鐢ㄦ椂鍥哄畾鐢熸垚涓�鏉¤繍璐逛笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                initialFeeAmount: {
-          label: '鍒濆璐圭敤閲戦锛岀瓑浜庡尮閰嶆姤浠锋柟妗堢殑杩愯垂鎶ヤ环锛屾柊澧炲悗涓嶅彲淇敼',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鍒濆璐圭敤閲戦锛岀瓑浜庡尮閰嶆姤浠锋柟妗堢殑杩愯垂鎶ヤ环锛屾柊澧炲悗涓嶅彲淇敼涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                actualFeeAmount: {
-          label: '瀹為檯璐圭敤閲戦锛岄粯璁ょ瓑浜庡垵濮嬭垂鐢紝鍙慨鏀�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "瀹為檯璐圭敤閲戦锛岄粯璁ょ瓑浜庡垵濮嬭垂鐢紝鍙慨鏀逛笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                feeVoucherUrl: {
-          label: '璐圭敤鍑瘉锛岃秴閾炬帴',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                feeCreateTime: {
-          label: '璐圭敤鍒涘缓鏃堕棿锛屾柊澧炴椂鑷姩濉啓',
-                      type: 'date', valueFormat: 'YYYY-MM-DD',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璐圭敤鍒涘缓鏃堕棿锛屾柊澧炴椂鑷姩濉啓涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                createBy: {
-          label: '鍒涘缓浜猴紝鏂板鏃惰嚜鍔ㄥ~鍐�',
-                  addDisplay :true,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                      rules: [
-              {
-                required: true,
-                message: "鍒涘缓浜猴紝鏂板鏃惰嚜鍔ㄥ~鍐欎笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                createTime: {
-          label: '鍒涘缓鏃堕棿锛屾柊澧炴椂鑷姩濉啓',
-                      type: 'date', valueFormat: 'YYYY-MM-DD',
-                  addDisplay :true,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                      rules: [
-              {
-                required: true,
-                message: "鍒涘缓鏃堕棿锛屾柊澧炴椂鑷姩濉啓涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                updateBy: {
-          label: '鏇存柊浜猴紝鏂板鏃惰嚜鍔ㄥ~鍐欙紝琚慨鏀规椂鑷姩鏇存柊',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                      rules: [
-              {
-                required: true,
-                message: "鏇存柊浜猴紝鏂板鏃惰嚜鍔ㄥ~鍐欙紝琚慨鏀规椂鑷姩鏇存柊涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                updateTime: {
-          label: '鏇存柊鏃堕棿锛屾柊澧炴椂鑷姩濉啓锛岃淇敼鏃惰嚜鍔ㄦ洿鏂�',
-                      type: 'date', valueFormat: 'YYYY-MM-DD',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                      rules: [
-              {
-                required: true,
-                message: "鏇存柊鏃堕棿锛屾柊澧炴椂鑷姩濉啓锛岃淇敼鏃惰嚜鍔ㄦ洿鏂颁笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                remark: {
-          label: '澶囨敞',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay : false,
-        hide :false,
-        search : false,
-                  },
-                                recordStatus: {
-          label: '璁板綍鐘舵�侊紝0=姝e父锛�1=浣滃簾',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璁板綍鐘舵�侊紝0=姝e父锛�1=浣滃簾涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                planId: {
-          label: '',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                type: {
-          label: '绫诲瀷',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-          }
-  })
-
-  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:listTmsFinance,
-    getDetailApi:getTmsFinance,
-    exportApi:exportTmsFinance,
-    deleteApi:delTmsFinance,
-    addApi:addTmsFinance,
-    updateApi:updateTmsFinance,
-    handleUpdateFunc:()=>{
-      crudRef.value.rowEdit(selectionList.value[0]);
+    dispatchNo: {
+      label: '璋冨害鍗曞彿',minWidth: 150,
+      search: true,
     },
-    handleSelectionChangeFunc:(selection:any)=>{
-      selectionList.value = selection;
-    }
-  })
+    planName: {
+      label: '搴斾粯鏂规鍚嶇О',minWidth: 150,
+      search: true,
+    },
+    customerName: {
+      label: '瀹㈡埛',minWidth: 150,
+      search: true,
+    },
+    projectName: {
+      label: '椤圭洰鍚嶇О',minWidth: 150,
+      search: true,
+    },
+    vehicleProviderName: {
+      label: '杞﹁締鏈嶅姟鍟�',minWidth: 150,
+      search: false,
+    },
+    requiredVehicleTypes: {
+      label: '瑕佹眰杞﹀瀷',minWidth: 150,
+      search: false,
+      display: true, type: 'select', dicUrl: '/system/dict/data/type/license_type', dataType: 'string',
 
+    },
+    actualVehicleType: {
+      label: '瀹為檯杞﹀瀷',minWidth: 150,
+      search: false,
+      display: true, type: 'select', dicUrl: '/system/dict/data/type/license_type', dataType: 'string',
+    },
+    mainDriverName: {
+      label: '涓婚┚椹跺憳',minWidth: 150,
+      search: false,
+    },
+
+    licensePlate: {
+      label: '杞︾墝鍙�',minWidth: 150,
+      search: false,
+    },
+
+    transportLine: {
+      label: '杩愯緭绾胯矾',minWidth: 150, overHidden: true,
+      search: false,
+    },
+
+    shipperName: {
+      label: '鍙戣揣浜哄悕绉�',minWidth: 150,
+      search: false,
+    },
+    shipperRegionLabel: {
+      label: '鍙戣揣琛屾斂鍖哄煙',minWidth: 150,
+      search: false,
+    },
+
+    receiverName: {
+      label: '鏀惰揣浜哄悕绉�',
+      search: false,minWidth: 150,
+    },
+    receiverRegionLabel: {
+      label: '鏀惰揣琛屾斂鍖哄煙',
+      search: false,minWidth: 150,
+    },
+    totalAmount: {
+      label: '鎬婚噾棰�',minWidth: 150,
+      search: false,
+    },
+    confirmBy: {
+      label: '璐圭敤纭浜�',minWidth: 150,
+      search: false,
+    },
+    confirmTime: {
+      label: '璐圭敤纭鏃堕棿',minWidth: 180,
+      search: false,
+    },
+    status: {
+      label: '鐘舵��',minWidth: 150,
+      search: false,fixed: 'right',
+      display: true, type: 'select', dicUrl: '/system/dict/data/type/finance_status', dataType: 'string',
+
+    },
+    updateBy: {
+      label: '鏇存柊浜�',
+      search: false,minWidth: 150,
+    },
+    updateTime: {
+      label: '鏇存柊鏃堕棿',
+      search: false,minWidth: 180,
+    },
+  }
+})
+
+
+const financeTableOption = ref({
+  menu: true,
+  addBtn: true,
+  header: true, selection: false,
+  viewBtn: false,
+  delBtn: false,labelWidth:150,
+  column: {
+    feeType: {
+      label: '璐圭敤鍚嶇О',minWidth: 150,
+      display: true,disabled: true,
+      value: "99",
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fee_type',
+    },
+    initialFeeAmount: {
+      label: '鍒濆鐧昏璐圭敤閲戦',minWidth: 150,
+      display: true,disabled: true,type: 'number',
+    },
+    actualFeeAmount: {
+      label: '瀹為檯璐圭敤閲戦',minWidth: 150, type: 'number',
+      display: true,
+      rules: [
+        {
+          required: true,
+          message: "瀹為檯璐圭敤閲戦涓嶈兘涓虹┖", trigger: "change"
+        }
+      ],
+    },
+    feeVoucherUrl: {
+      label: '璐圭敤鍑瘉',
+      display: true, hide:true,
+      accept:'string',dataType: 'string',
+      type: 'upload',
+      action: '/common/upload2',
+
+    },
+    feeCreateTime: {
+      label: '璐圭敤鍒涘缓鏃堕棿',minWidth: 180,
+      display: false,
+    },
+    updateBy: {
+      label: '鏇存柊浜�',minWidth: 150,
+      display: false,
+    },
+    updateTime: {
+      label: '鏇存柊鏃堕棿',minWidth: 180,
+      display: false,
+
+    },
+    status: {
+      label: '鐘舵��',minWidth: 150, fixed: 'right',
+      display: false,
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/finance_detail_status',
+    },
+  }
+})
+
+
+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: listTmsFinance,
+  getDetailApi: getTmsFinance,
+  exportApi: exportTmsFinance,
+  deleteApi: delTmsFinance,
+  addApi: addTmsFinance,
+  updateApi: updateTmsFinance,
+  handleUpdateFunc: () => {
+    crudRef.value.rowEdit(selectionList.value[0]);
+  },
+  handleSelectionChangeFunc: (selection: any) => {
+    selectionList.value = selection;
+  },
+  getBeginListFunc:()=>{
+    queryParams.value.type = 1;
+  }
+})
+
+const handleConfirm = (row: any) => {
+  ElMessageBox.confirm("鏄惁瀵硅皟搴﹀崟鍙�" + row.dispatchNo + "鐨勫簲浠樻柟妗堣繘琛岀‘璁� 锛�", '绯荤粺鎻愮ず', {
+    confirmButtonText: '纭畾',
+    cancelButtonText: '鍙栨秷',
+    type: 'warning'
+  }).then(() => {
+    return confirmFinance(row.id);
+  }).then(() => {
+    onLoad(page.value);
+    ElMessage({
+      message: "鎿嶄綔鎴愬姛锛�",
+      type: 'success'
+    })
+  });
+}
+const handleCancel = (row: any) => {
+  ElMessageBox.confirm("鏄惁瀵硅皟搴﹀崟鍙�" + row.dispatchNo + "鐨勫簲浠樻柟妗堣繘琛屼綔搴燂紵", '绯荤粺鎻愮ず', {
+    confirmButtonText: '纭畾',
+    cancelButtonText: '鍙栨秷',
+    type: 'warning'
+  }).then(() => {
+    return cancelFinance(row.id);
+  }).then(() => {
+    onLoad(page.value);
+    ElMessage({
+      message: "鎿嶄綔鎴愬姛锛�",
+      type: 'success'
+    })
+  });
+}
+
+const handleAddFinanceDetail = (row:any) => {
+
+  listTmsFinanceDetail({financeId:row.id,pageNum:1,pageSize: 9999}).then(res=>{
+    boxTableData.value = res.rows || [];
+    pageF.title = '璐圭敤鏄庣粏';
+    pageF.open = true;
+    form.value = row;
+  })
+}
+
+const rowDetailUpdate = (row:any,index:any,done:any, loading:any) => {
+  updateTmsFinanceDetail( row).then(res=>{
+    ElMessage({
+      message: "淇敼鎴愬姛锛�",
+      type: 'success'
+    })
+    handleAddFinanceDetail(res.data);
+    onLoad(page.value);
+    done();
+  }).catch(()=>{
+    loading()
+  })
+}
+const rowDetailSave = (row:any, done:any, loading:any) => {
+  row.financeId = form.value.id;
+  addTmsFinanceDetail({...row,dispatchOrderId:form.value.dispatchId,
+    type: form.value.type,financeType:form.value.type
+  }).then(res=>{
+    ElMessage({
+      message: "鏂板鎴愬姛锛�",
+      type: 'success'
+    })
+    handleAddFinanceDetail(res.data);
+    onLoad(page.value);
+    done();
+  }).catch(()=>{
+    loading()
+  })
+}
+
+const handleCancelDetail = (row: any) => {
+  ElMessageBox.confirm("鏄惁浣滃簾鎺� " + row.$feeType + "纭畾 锛�", '绯荤粺鎻愮ず', {
+    confirmButtonText: '纭畾',
+    cancelButtonText: '鍙栨秷',
+    type: 'warning'
+  }).then(() => {
+    return cancelFinanceDetail(row.id);
+  }).then(() => {
+    handleAddFinanceDetail(form.value);
+    onLoad(page.value);
+    ElMessage({
+      message: "鎿嶄綔鎴愬姛锛�",
+      type: 'success'
+    })
+  });
+}
 
 </script>

--
Gitblit v1.8.0