From 3d3fa72ebf55f841c8ede01c59347af5e44b773b Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 18 八月 2025 09:26:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master

---
 ui/admin-ui3/src/views/cwgl/estimatedReceivable/index.vue |  761 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 596 insertions(+), 165 deletions(-)

diff --git a/ui/admin-ui3/src/views/cwgl/estimatedReceivable/index.vue b/ui/admin-ui3/src/views/cwgl/estimatedReceivable/index.vue
index dee3b92..02cc9eb 100644
--- a/ui/admin-ui3/src/views/cwgl/estimatedReceivable/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/estimatedReceivable/index.vue
@@ -1,189 +1,620 @@
 <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 #dispatchNo-form="{ row, size, }">
+        <div style="cursor: pointer;">
+          <el-input v-model="form.dispatchNo" @click="handleFormSearch" readonly placeholder="璇疯緭鍏ヨ皟搴﹀崟鍙�">
+            <template #append>
+              <el-button icon="Search" style="cursor: pointer;" @click="handleFormSearch"></el-button>
+            </template>
+          </el-input>
+        </div>
+      </template>
+
+
+
       <template #menu-left>
-        <el-button
-            type="success"
-            icon="Edit"
-            :disabled="pageF.single"
-            v-hasPermi="['cwgl:estimatedReceivable:edit']"
-            @click="handleUpdate">淇敼
+        <el-button type="success" icon="Edit" :disabled="editIshow" v-hasPermi="['cwgl:estimatedReceivable:edit']"
+          @click="handleUpdate">淇敼
         </el-button>
-        <el-button
-            type="danger"
-            icon="Delete"
-            :disabled="pageF.multiple"
-            @click="handleDelete"
-            v-hasPermi="['cwgl:estimatedReceivable:remove']"
-        >鍒犻櫎
+        <el-button type="danger" icon="Delete" :disabled="removeIshow" @click="handleDelete"
+          v-hasPermi="['cwgl:estimatedReceivable:remove']">鍒犻櫎
         </el-button>
-        <el-button
-            type="warning"
-            plain
-            icon="Download"
-            @click="handleExport"
-            v-hasPermi="['cwgl:estimatedReceivable:export']"
-        >瀵煎嚭
+        <el-button type="warning" plain icon="Download" @click="handleExport"
+          v-hasPermi="['cwgl:estimatedReceivable:export']">瀵煎嚭
         </el-button>
+      </template>
+
+
+
+
+      <template #menu="{ size, row, index }">
+        <el-link class="link-btn" type="primary" :underline="false" plain :size="size"
+          @click="handleEditBtn(row, index)" v-if="[0, 1].includes(row.relatedBillStatus) && row.isConfirmed != 2"
+          v-hasPermi="['cwgl:estimatedReceivable:cancel']"> 缂栬緫
+        </el-link>
+        <el-link class="link-btn" type="primary" v-if="row.isConfirmed == 1" :underline="false" plain :size="size"
+          @click="handleCancel(row)" v-hasPermi="['cwgl:estimatedReceivable:cancel']"> 鍙栨秷纭
+        </el-link>
+        <el-link class="link-btn" type="primary" v-if="row.isConfirmed == 0 && ![2, 3].includes(row.relatedBillStatus)"
+          :underline="false" plain @click="handleAffirm(row)" v-hasPermi="['cwgl:estimatedReceivable:confirm']"> 纭
+        </el-link>
+        <el-link class="link-btn" type="primary" v-if="row.isConfirmed == 1" :underline="false" plain
+          @click="handleInvalid(row)" v-hasPermi="['cwgl:estimatedReceivable:invalid']"> 浣滃簾
+        </el-link>
+        <el-link class="link-btn" type="primary" :underline="false" plain @click="handleFlow(row)"
+          v-hasPermi="['cwgl:estimatedReceivable:flog']"> 鏃ュ織
+        </el-link>
       </template>
     </avue-crud>
   </basicContainer>
+
+  <el-dialog v-model="dialog.visible" :title="dialog.title" width="1200px">
+    <!-- <el-form ref="storagesTransferRef" :model="newForm" :rules="rules" label-width="120px">
+      <el-row :gutter="20">
+        <el-col :span="8">
+          <el-form-item label="璋冨害鍗曞彿" prop="dispatchNo">
+            <el-input v-model="newForm.dispatchNo" placeholder="璇疯緭鍏ヨ皟搴﹀崟鍙�" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
+            <el-input v-model="newForm.customerName" placeholder="璇疯緭鍏ュ鎴峰悕绉�" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="椤圭洰鍚嶇О" prop="projectName">
+            <el-input v-model="newForm.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" />
+
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="涓嬪崟鏃ユ湡" prop="createdTime">
+            <el-date-picker v-model="newForm.createdTime" type="date"  valueFormat="YYYY-MM-DD"  placeholder="璇烽�夋嫨涓嬪崟鏃ユ湡"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item>
+            <el-button type="primary" icon="Search" @click="newGetList">鎼滅储</el-button>
+            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-col>
+
+      </el-row>
+
+    </el-form>
+
+    <el-table :data="newTableData" @selection-change="handleSelectionChange" border ref="newTableRef"
+      @row-click="handleRowClick">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column fixed label="璋冨害鍗曞彿" align="center" prop="dispatchNo" show-overflow-tooltip />
+      <el-table-column label="瀹㈡埛鍚嶇О" align="center" prop="customerName" show-overflow-tooltip />
+      <el-table-column label="椤圭洰鍚嶇О" align="center" prop="projectName" show-overflow-tooltip />
+      <el-table-column label="涓嬪崟鏃ユ湡" align="center" prop="createdTime" show-overflow-tooltip />
+    </el-table> -->
+
+    <avue-crud :option="newOption" :data="newTableData" v-model:search="newForm" :page="newPageF"
+      :table-loading="itemTableLoading2" @search-change="newSearchChange" ref="newTableRef"
+      @selection-change="newSelectionChange" @search-reset="newRsetChange"
+      @current-change="handleAttachmentCurrentChange" @size-change="handleAttachmentSizeChange" @on-load="newOnLoad">
+    </avue-crud>
+
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </template>
+
+  </el-dialog>
+
+  <flowLog ref="flowLogIshow" :flowParams="flowParams"></flowLog>
 </template>
 
 <script setup name="estimatedReceivable" lang="ts">
-  import {EstimatedReceivableI,addEstimatedReceivable, delEstimatedReceivable, exportEstimatedReceivable, getEstimatedReceivable, listEstimatedReceivable, updateEstimatedReceivable} from "@/api/cwgl/estimatedReceivable";
-  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 {
+  EstimatedReceivableI, addEstimatedReceivable, delEstimatedReceivable, exportEstimatedReceivable, getEstimatedReceivable, listEstimatedReceivable, updateEstimatedReceivable,
+  getEstimatedReceivableConfirm, getCwglEstimatedReceivableCancel, getEstimatedReceivableInvalid
+} from "@/api/cwgl/estimatedReceivable";
+import { listEstimatedReceivableLog } from "@/api/cwgl/estimatedReceivableLog";
+import { listEstimatedReceivableBillLog } from "@/api/cwgl/estimatedReceivableBillLog";
+import {
+  getSelectCustomNam,
+} from "@/api/cwgl/pendingSettlementBusiness";
+import {
+  listPendingSettlementBusiness,
+} 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 { ElMessage, ElMessageBox } from "element-plus";
 
-  const { proxy } = useCurrentInstance();
-  const crudRef = ref();
+const { proxy } = useCurrentInstance();
+const crudRef = ref();
 
-  const permissionList = computed(()=>{
-    return {
-      addBtn: hasPermission(["cwgl:estimatedReceivable:add"]),
-      delBtn: hasPermission(["cwgl:estimatedReceivable:remove"]),
-      editBtn: hasPermission(["cwgl:estimatedReceivable:edit"]),
-      viewBtn: hasPermission(["cwgl:estimatedReceivable:query"]),
-    }
-  })
+const permissionList = computed(() => {
+  return {
+    addBtn: hasPermission(["cwgl:estimatedReceivable:add"]),
+    delBtn: hasPermission(["cwgl:estimatedReceivable:remove"]),
+    editBtn: hasPermission(["cwgl:estimatedReceivable:edit"]),
+    viewBtn: hasPermission(["cwgl:estimatedReceivable:query"]),
+  }
+})
 
-  const data = reactive({
-    form:<EstimatedReceivableI>{},
-    queryParams:<EstimatedReceivableI&PageQueryInterface>{},
-    page: <PagesInterface>{
-      pageSize: 10,
-      total: 0,
-      currentPage: 1,
+const data = reactive({
+  form: <EstimatedReceivableI>{},
+  newTableData: [],
+  removeIshow: true,
+  editIshow: true,
+  newForm: <EstimatedReceivableI>{
+    pageNum: 1,
+    pageSize: 10
+  },
+  queryParams: <EstimatedReceivableI & PageQueryInterface>{
+    feeType: 0
+  },
+  page: <PagesInterface>{
+    pageSize: 10,
+    total: 0,
+    currentPage: 1,
+  },
+  selectionList: [],
+  newSelectionList: [],
+  itemTableLoading1: false,
+  itemTableLoading2: false,
+})
+const { queryParams, form, page, selectionList, newForm, newTableData, newSelectionList, itemTableLoading1, itemTableLoading2, removeIshow, editIshow } = toRefs(data);
+const option = ref({
+  pageKey: 'EstimatedReceivable',
+  rowKey: 'id',
+  searchSpan: 5,
+  editDisplay: false,
+
+  addBtn: true,
+  editBtn: false,
+  editBtnIcon: ' ',
+
+  delBtn: false,
+  viewBtn: false,
+
+  searchLabelWidth: 100,
+  labelWidth: 120,
+  column: {
+    // id: {
+    //   label: 'ID',
+    // },
+    feeSystemNo: {
+      label: '璐圭敤绯荤粺缂栧彿',
+      rules: [
+        {
+          required: true,
+          message: "璐圭敤绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+        }
+      ],
+      search: true,
+      addDisplay: false,
+      editDisplay: false,
     },
-    selectionList:[],
-  })
-  const {queryParams,form,page,selectionList} = toRefs(data);
-  const option = ref({
-    pageKey: 'EstimatedReceivable',
-    rowKey: 'id',
-    column: {
-                                id: {
-          label: 'ID',
-                            },
-                                feeSystemNo: {
-          label: '璐圭敤绯荤粺缂栧彿',
-                                rules: [
-              {
-                required: true,
-                message: "璐圭敤绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                dispatchNo: {
-          label: '璋冨害鍗曞彿',
-                                rules: [
-              {
-                required: true,
-                message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                customerName: {
-          label: '瀹㈡埛鍚嶇О',
-                                rules: [
-              {
-                required: true,
-                message: "瀹㈡埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                projectName: {
-          label: '椤圭洰鍚嶇О',
-                            },
-                                orderDate: {
-          label: '涓嬪崟鏃ユ湡',
-                            },
-                                feeName: {
-          label: '璐圭敤鍚嶇О',
-                                rules: [
-              {
-                required: true,
-                message: "璐圭敤鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                estimatedAmount: {
-          label: '棰勪及璐圭敤閲戦',
-                            },
-                                currency: {
-          label: '甯佸埗',
-                            },
-                                relatedBillName: {
-          label: '鍏宠仈璐﹀崟鍚嶇О',
-                            },
-                                relatedBillStatus: {
-          label: '鍏宠仈璐﹀崟鐘舵��',
-                            },
-                                isConfirmed: {
-          label: '鏄惁纭(0:鏈‘璁�;1:宸茬‘璁�)',
-                            },
-                                confirmBy: {
-          label: '纭浜�',
-                            },
-                                confirmTime: {
-          label: '纭鏃堕棿',
-                            },
-                                remark: {
-          label: '澶囨敞',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                            },
-                                createBy: {
-          label: '鍒涘缓浜�',
-                            },
-                                updateBy: {
-          label: '鏇存柊浜�',
-                            },
-                                createTime: {
-          label: '鍒涘缓鏃堕棿',
-                            },
-                                updateTime: {
-          label: '鏇存柊鏃堕棿',
-                            },
-                                deleted: {
-          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
-                            },
-          }
-  })
+    dispatchNo: {
+      label: '璋冨害鍗曞彿',
+      rules: [
+        {
+          required: true,
+          message: "璋冨害鍗曞彿涓嶈兘涓虹┖", trigger: "blur"
+        }
+      ],
+      search: true,
+    },
+    // customerName: {
+    //   label: '瀹㈡埛鍚嶇О',
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "瀹㈡埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
+    //     }
+    //   ],
+    //   search: true,
+    //   disabled: true,
+    // },
+    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:listEstimatedReceivable,
-    getDetailApi:getEstimatedReceivable,
-    exportApi:exportEstimatedReceivable,
-    deleteApi:delEstimatedReceivable,
-    addApi:addEstimatedReceivable,
-    updateApi:updateEstimatedReceivable,
-    handleUpdateFunc:()=>{
+      type: 'select',           // 璁剧疆涓轰笅鎷夋绫诲瀷
+      dicData: [], // 浣跨敤 selectCustomName 浣滀负鏁版嵁婧�
+      disabled: false  // 鏍规嵁闇�瑕佽缃槸鍚︾鐢�
+    },
+    projectName: {
+      label: '椤圭洰鍚嶇О',
+      search: true,
+      disabled: true,
+    },
+    orderDate: {
+      label: '涓嬪崟鏃ユ湡',
+      search: true,
+      type: 'datetime',  // 鏀逛负 datetime 绫诲瀷
+      format: 'YYYY-MM-DD HH:mm:ss',
+      valueFormat: 'YYYY-MM-DD HH:mm:ss',
+    },
+    feeName: {
+      label: '璐圭敤鍚嶇О',
+      rules: [
+        {
+          required: true,
+          message: "璐圭敤鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
+        }
+      ],
+      search: true,
+    },
+
+    estimatedAmount: {
+      label: '璐圭敤閲戦',
+      rules: [
+        {
+          required: true,
+          message: "璐圭敤閲戦涓嶈兘涓虹┖", trigger: "blur"
+        }
+      ],
+    },
+    currency: {
+      label: '甯佸埗',
+      disabled: true,
+    },
+    relatedBillName: {
+      label: '鍏宠仈璐﹀崟鍚嶇О',
+      addDisplay: false,  // 鏂板鏃朵笉鏄剧ず
+      editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+    },
+    relatedBillStatus: {
+      label: '鍏宠仈璐﹀崟鐘舵��',
+      search: true,
+      dataType: 'string',
+      type: 'select',
+      addDisplay: false,  // 鏂板鏃朵笉鏄剧ず
+      editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+      dicUrl: '/system/dict/data/type/sys_related_status',
+      //    formatter: (row, value) => {
+      // // 鑷畾涔夋牸寮忓寲閫昏緫锛堝鏋滈渶瑕侊級
+      //   return value;
+      //  }
+    },
+    isConfirmed: {
+      label: '鏄惁纭',
+      dataType: 'string',
+      addDisplay: false,  // 鏂板鏃朵笉鏄剧ず
+      editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+      search: true,
+      type: 'select',
+      dicUrl: '/system/dict/data/type/sys_affirm_status',
+    },
+    remark: {
+      label: '澶囨敞',
+      type: 'textarea', minRows: 3, maxRows: 5,
+    },
+
+
+
+    // confirmBy: {
+    //   label: '纭浜�',
+    // },
+    // confirmTime: {
+    //   label: '纭鏃堕棿',
+    // },
+
+    // createBy: {
+    //   label: '鍒涘缓浜�',
+    // },
+    // updateBy: {
+    //   label: '鏇存柊浜�',
+    // },
+    // createTime: {
+    //   label: '鍒涘缓鏃堕棿',
+    // },
+    // updateTime: {
+    //   label: '鏇存柊鏃堕棿',
+    // },
+    // deleted: {
+    //   label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+    // },
+  }
+})
+
+const newOption = ref({
+  pageKey: 'PendingSettlementBusiness',
+  rowKey: 'id',
+  searchSpan: 5,
+  selectionType: 'single',
+  selectType: 'radio',
+  editDisplay: false,
+  addBtn: false,
+  editBtn: false,
+  menu: false,
+  delBtn: false,
+  viewBtn: false,
+  searchLabelWidth: 100,
+  labelWidth: 120,
+  indexLabel: '搴忓彿',
+  column: {
+    dispatchNo: {
+      label: '璋冨害鍗曞彿',
+      search: true,
+    },
+    customerName: {
+      label: '瀹㈡埛鍚嶇О',
+      search: true,
+    },
+    projectName: {
+      label: '椤圭洰鍚嶇О',
+      search: true,
+    },
+    createdTime: {
+      label: '涓嬪崟鏃ユ湡',
+      search: true,
+      type: 'date',
+      format: 'YYYY-MM-DD',
+      valueFormat: 'YYYY-MM-DD',
+    }
+  }
+})
+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: listEstimatedReceivable,
+    getDetailApi: getEstimatedReceivable,
+    exportApi: exportEstimatedReceivable,
+    deleteApi: delEstimatedReceivable,
+    addApi: addEstimatedReceivable,
+    updateApi: updateEstimatedReceivable,
+    handleUpdateFunc: () => {
       crudRef.value.rowEdit(selectionList.value[0]);
     },
-    handleSelectionChangeFunc:(selection:any)=>{
+    handleSelectionChangeFunc: (selection: any) => {
       selectionList.value = selection;
+      console.log(selection);
+
+      // 鏍规嵁閫変腑椤规暟閲忓拰鐘舵�佽缃紪杈戞寜閽槸鍚﹀彲鐢�
+      if (selection.length === 1 && [0, 1].includes(selection[0].relatedBillStatus)) {
+        editIshow.value = false;
+      } else {
+        editIshow.value = true;
+      }
+
+      if (selection.length === 1 && [0].includes(selection[0].isConfirmed)) {
+        removeIshow.value = false;
+      } else {
+        removeIshow.value = true;
+      }
+
+    },
+    getBeginListFunc: (params = {}) => {
+      params.feeType = 0;
+      return params
+
+    }
+
+  })
+const dialog = reactive({
+  visible: false,
+  title: '',
+})
+const newPageF = ref<PagesInterface>({
+  total: 0,
+  pageSize: 10
+})
+const storagesTransferRef = ref<FormInstance>()
+const handleFormSearch = () => {
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      dialog.visible = true;
+      dialog.title = '閫夋嫨璋冨害鍗曞彿';
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+      console.log(newPageF.value.totale);
+
     }
   })
+}
+const newGetList = () => {
+  console.log(newForm.value);
+
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+    }
+  })
+}
 
 
+
+const newTableRef = ref();
+const newSelectionChange = (selection: any) => {
+
+  // 鍙繚鐣欐渶鍚庝竴涓�変腑鐨勯」
+  if (selection.length > 1) {
+    const nowVal = selection.shift();
+    // newTableRef.value.clearSelection([]);
+    newTableRef.value.toggleRowSelection(nowVal, false);
+
+  } else {
+    console.log("newSelectionChange", selection);
+
+    newSelectionList.value = selection
+  }
+}
+
+const resetQuery = () => {
+  newForm.value = {
+    pageNum: 1,
+    pageSize: 10
+  }
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+    }
+  })
+}
+const submitForm = () => {
+  if (newSelectionList.value.length === 0) {
+    proxy.$modal.msgWarning("璇烽�夋嫨璋冨害鍗曞彿");
+    return;
+  }
+  const selectedDispatchNo = newSelectionList.value[0]
+  // option.value.column = selectedDispatchNo;
+  // 灏嗛�変腑琛岀殑鏁版嵁璧嬪�肩粰琛ㄥ崟
+  form.value.dispatchNo = selectedDispatchNo.dispatchNo;
+  form.value.customerName = selectedDispatchNo.customerName;
+  form.value.projectName = selectedDispatchNo.projectName;
+  form.value.currency = '浜烘皯甯�';
+  dialog.visible = false;
+}
+
+/*  */
+// 澶勭悊闄勪欢鍒嗛〉椤电爜鍙樺寲
+const handleAttachmentCurrentChange = (currentPage: number) => {
+  newForm.value.pageNum = currentPage;
+  getEstimatedReceivableCancel();
+}
+// 澶勭悊闄勪欢鍒嗛〉澶у皬鍙樺寲
+const handleAttachmentSizeChange = (pageSize: number) => {
+  newForm.value.pageSize = pageSize;
+  getEstimatedReceivableCancel();
+}
+const newOnLoad = (newPageF) => {
+  getEstimatedReceivableCancel(newPageF)
+}
+// 鍔犺浇闄勪欢鏁版嵁鐨勫嚱鏁�
+const loadAttachmentData = () => {
+  itemTableLoading2.value = true;
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      dialog.visible = true;
+      dialog.title = '閫夋嫨璋冨害鍗曞彿';
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+    }
+    itemTableLoading2.value = false;
+  })
+
+}
+const getEstimatedReceivableCancel = () => {
+  itemTableLoading2.value = true;
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+    }
+    itemTableLoading2.value = false;
+  })
+}
+const newSearchChange = (params, done) => {
+  itemTableLoading2.value = true;
+  listPendingSettlementBusiness(newForm.value).then((res) => {
+    if (res.code === 200) {
+      done()
+      newTableData.value = res.rows || [];
+      newPageF.value.total = res.total || 0;
+    }
+    itemTableLoading2.value = false;
+  })
+}
+const newRsetChange = (done) => {
+  getEstimatedReceivableCancel()
+}
+// 闄勪欢琛ㄦ牸鍔犺浇浜嬩欢
+const attachmentChange = () => {
+  // loadAttachmentData();
+}
+/*  */
+const cancel = () => {
+  dialog.visible = false;
+  newForm.value = {
+    pageNum: 1,
+    pageSize: 10
+  }
+  newTableData.value = [];
+}
+const handleCancel = (row: any) => {
+
+  proxy.$modal.confirm(`鏄惁鍙栨秷纭璇ヨ皟搴﹀崟鍙� 锛�${row.dispatchNo}?`).then(function () {
+    return getCwglEstimatedReceivableCancel(row.id);
+  }).then((res) => {
+    if (res.code == 200) {
+      console.log(res);
+
+      onLoad(page.value);
+      proxy.$modal.msgSuccess(res.msg);
+    }
+  })
+}
+const handleAffirm = (row: any) => {
+  proxy.$modal.confirm(`鏄惁纭璇ヨ皟搴﹀崟鍙� 锛�${row.dispatchNo}?`).then(function () {
+    return getEstimatedReceivableConfirm(row.id);
+  }).then((res) => {
+    onLoad(page.value);
+
+    proxy.$modal.msgSuccess(res.msg);
+  })
+
+}
+
+const handleInvalid = (row: any) => {
+  proxy.$modal.confirm(`鏄惁浣滃簾璇ヨ皟搴﹀崟鍙� 锛�${row.dispatchNo}?`).then(function () {
+    return getEstimatedReceivableInvalid(row.id);
+  }).then((res) => {
+    onLoad(page.value);
+
+    proxy.$modal.msgSuccess(res.msg);
+  })
+
+}
+
+
+
+const flowLogIshow = ref()
+const flowParams = ref([])
+
+const handleFlow = (row: string) => {
+  let data = {
+    estimatedId: row.id,
+  }
+  listEstimatedReceivableLog(data).then((res) => {
+    flowParams.value = res.rows
+    flowLogIshow.value.openModel()
+
+  })
+}
+const handleEditBtn = (row, index) => {
+  crudRef.value.rowEdit(row, index)
+  // option.value.editBtn = true;
+}
+
+/*  */
+const selectCustomName = ref([]);
+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()
 </script>

--
Gitblit v1.8.0