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/invoiceInfo/index.vue |  352 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 213 insertions(+), 139 deletions(-)

diff --git a/ui/admin-ui3/src/views/cwgl/invoiceInfo/index.vue b/ui/admin-ui3/src/views/cwgl/invoiceInfo/index.vue
index c8180fa..0452a3c 100644
--- a/ui/admin-ui3/src/views/cwgl/invoiceInfo/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/invoiceInfo/index.vue
@@ -1,160 +1,234 @@
 <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" :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:invoiceInfo:edit']"
-            @click="handleUpdate">淇敼
+        <el-button type="primary" icon="Plus" v-hasPermi="['cwgl:invoiceInfo:add']" @click="handleAdd">鏂板
         </el-button>
-        <el-button
-            type="danger"
-            icon="Delete"
-            :disabled="pageF.multiple"
-            @click="handleDelete"
-            v-hasPermi="['cwgl:invoiceInfo:remove']"
-        >鍒犻櫎
+        <!-- <el-button type="success" icon="Edit" :disabled="pageF.single" v-hasPermi="['cwgl:invoiceInfo:edit']"
+          @click="handleUpdate">淇敼
         </el-button>
-        <el-button
-            type="warning"
-            plain
-            icon="Download"
-            @click="handleExport"
-            v-hasPermi="['cwgl:invoiceInfo:export']"
-        >瀵煎嚭
+        <el-button type="danger" icon="Delete" :disabled="pageF.multiple" @click="handleDelete"
+          v-hasPermi="['cwgl:invoiceInfo:remove']">鍒犻櫎
+        </el-button> -->
+        <el-button type="warning" plain icon="Download" @click="handleExport"
+          v-hasPermi="['cwgl:invoiceInfo:export']">瀵煎嚭
         </el-button>
+      </template>
+      <template #menu="{ size, row, index }">
+        <el-link class="link-btn" type="primary" icon="Edit" :underline="false" plain :size="size"
+          @click="handleFy(row)" v-hasPermi="['cwgl:invoiceInfo:edit']"> 缂栬緫
+        </el-link>
       </template>
     </avue-crud>
   </basicContainer>
+  <makeInvoiceCate ref="invoiceFormRef" @submit="handleFormSubmit" />
 </template>
 
 <script setup name="invoiceInfo" lang="ts">
-  import {InvoiceInfoI,addInvoiceInfo, delInvoiceInfo, exportInvoiceInfo, getInvoiceInfo, listInvoiceInfo, updateInvoiceInfo} from "@/api/cwgl/invoiceInfo";
-  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 { InvoiceInfoI, addInvoiceInfo, delInvoiceInfo, exportInvoiceInfo, getInvoiceInfo, listInvoiceInfo, updateInvoiceInfo } from "@/api/cwgl/invoiceInfo";
+import useCurrentInstance from "@/utils/useCurrentInstance";
+import { computed, reactive, ref, toRefs, nextTick } from "vue";
+import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
+import { usePagePlus } from "@/hooks/usePagePlus";
+import { hasPermission } from "@/utils/permissionUtils";
+import makeInvoiceCate from "@/components/makeInvoiceCate/index.vue";
+const { proxy } = useCurrentInstance();
+const crudRef = ref();
+const {
+  customer_type, sys_invoice_type, sys_currency, sys_account_type
+} =
+  proxy.useDict(
+    'customer_type', 'sys_invoice_type', 'sys_currency', 'sys_account_type'
+  );
 
-  const { proxy } = useCurrentInstance();
-  const crudRef = ref();
-
-  const permissionList = computed(()=>{
-    return {
-      addBtn: hasPermission(["cwgl:invoiceInfo:add"]),
-      delBtn: hasPermission(["cwgl:invoiceInfo:remove"]),
-      editBtn: hasPermission(["cwgl:invoiceInfo:edit"]),
-      viewBtn: hasPermission(["cwgl:invoiceInfo:query"]),
-    }
-  })
-
-  const data = reactive({
-    form:<InvoiceInfoI>{},
-    queryParams:<InvoiceInfoI&PageQueryInterface>{},
-    page: <PagesInterface>{
-      pageSize: 10,
-      total: 0,
-      currentPage: 1,
+const permissionList = computed(() => {
+  return {
+    addBtn: hasPermission(["cwgl:invoiceInfo:add"]),
+    delBtn: hasPermission(["cwgl:invoiceInfo:remove"]),
+    editBtn: hasPermission(["cwgl:invoiceInfo:edit"]),
+    viewBtn: hasPermission(["cwgl:invoiceInfo:query"]),
+  }
+})
+const dictFormat = (dict: any, value: any) => {
+  return proxy.selectDictLabel(dict, value);
+}
+const data = reactive({
+  form: <InvoiceInfoI>{},
+  queryParams: <InvoiceInfoI & PageQueryInterface>{},
+  page: <PagesInterface>{
+    pageSize: 10,
+    total: 0,
+    currentPage: 1,
+  },
+  selectionList: [],
+})
+const { queryParams, form, page, selectionList } = toRefs(data);
+const option = ref({
+  pageKey: 'InvoiceInfo',
+  rowKey: 'id',
+  addBtn: false,
+  editBtn: false,
+  //  viewBtn: false,
+  searchSpan: 5,
+  labelWidth: 180,
+  searchLabelWidth: 150,
+  column: {
+    // id: {
+    //   label: '涓诲缓',
+    // },
+    customerName: {
+      label: '瀹㈡埛鍚嶇О',
+      minWidth: 120,
+      search: true,
     },
-    selectionList:[],
-  })
-  const {queryParams,form,page,selectionList} = toRefs(data);
-  const option = ref({
-    pageKey: 'InvoiceInfo',
-    rowKey: 'id',
-    column: {
-                                id: {
-          label: '涓诲缓',
-                            },
-                                customerId: {
-          label: '瀹㈡埛id',
-                            },
-                                invoiceCompanyName: {
-          label: '鎶ご鍏徃',
-                            },
-                                invoiceCreditCode: {
-          label: '缁熶竴绀句細淇$敤浠g爜',
-                            },
-                                invoiceBankName: {
-          label: '寮�鎴烽摱琛屽悕绉�',
-                            },
-                                invoiceBankNo: {
-          label: '鍩烘湰寮�鎴疯处鍙�',
-                            },
-                                invoiceOperatingLicenseAddress: {
-          label: '娉ㄥ唽鍦烘墍鍦板潃',
-                            },
-                                invoiceOperatingLicensePhone: {
-          label: '娉ㄥ唽鍥哄畾鐢佃瘽',
-                            },
-                                invoiceOperatingLicenseEmail: {
-          label: '閭',
-                            },
-                                status: {
-          label: '鐘舵��',
-                            },
-                                createBy: {
-          label: '鍒涘缓浜�',
-                            },
-                                updateBy: {
-          label: '鏇存柊浜�',
-                            },
-                                createTime: {
-          label: '鍒涘缓鏃堕棿',
-                            },
-                                updateTime: {
-          label: '鏇存柊鏃堕棿',
-                            },
-                                deleted: {
-          label: '鍒犻櫎',
-                            },
-                                invoiceType: {
-          label: '鍙戠エ绫诲瀷',
-                            },
-          }
-  })
+      enterpriseType: {
+      label: '鍏宠仈浼佷笟绫诲瀷',
+      type: 'select',
+      dataType: 'string',
+      minWidth: 120,
+      viewDisplay: false,
+      dicUrl: '/system/dict/data/type/sys_affiliated_enterprises',
+      search: true,
+    },
+    invoiceCompanyName: {
+      label: '鎶ご鍏徃',
+      minWidth: 200,
+      search: true,
+    },
+    // customerId: {
+    //   label: '瀹㈡埛id',
+    // },
+    invoiceCreditCode: {
+      label: '缁熶竴绀句細淇$敤浠g爜',
+      minWidth: 140,
+      search: true,
+    },
+    invoiceType: {
+      label: '鍙戠エ绫诲瀷',
+      type: 'select',
+      dataType: 'string',
+      minWidth: 120,
+      viewDisplay: false,
+      dicUrl: '/system/dict/data/type/sys_invoice_type',
+      search: true,
+    },
+      invoiceTypeData: {
+      label: '鍙戠エ绫诲瀷',
+      minWidth: 120,
+       addDisplay: false,  // 鏂板鏃朵笉鏄剧ず
+      editDisplay: false, // 淇敼鏃朵笉鏄剧ず
+      viewDisplay: true,
+      hide: true,  
+    },
+    invoiceBankName: {
+      label: '寮�鎴烽摱琛屽悕绉�',
+      minWidth: 160,
+    },
+    invoiceBankNo: {
+      label: '鍩烘湰寮�鎴疯处鍙�',
+      minWidth: 160,
+    },
+    invoiceOperatingLicenseAddress: {
+      label: '娉ㄥ唽鍦烘墍鍦板潃',
+      minWidth: 160,
+    },
+    invoiceOperatingLicensePhone: {
+      label: '娉ㄥ唽鍥哄畾鐢佃瘽',
+      minWidth: 160,
+    },
+    invoiceOperatingLicenseEmail: {
+      label: '閭',
+      minWidth: 160,
+    },
+    // status: {
+    //   label: '鐘舵��',
+    // },
+    // createBy: {
+    //   label: '鍒涘缓浜�',
+    // },
+    // updateBy: {
+    //   label: '鏇存柊浜�',
+    // },
+    // createTime: {
+    //   label: '鍒涘缓鏃堕棿',
+    //   minWidth: 200,
+    // },
+    // updateTime: {
+    //   label: '鏇存柊鏃堕棿',
+    //   minWidth: 200,
+    // },
 
-  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:listInvoiceInfo,
-    getDetailApi:getInvoiceInfo,
-    exportApi:exportInvoiceInfo,
-    deleteApi:delInvoiceInfo,
-    addApi:addInvoiceInfo,
-    updateApi:updateInvoiceInfo,
-    handleUpdateFunc:()=>{
+
+  }
+})
+
+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: listInvoiceInfo,
+    getDetailApi: getInvoiceInfo,
+    exportApi: exportInvoiceInfo,
+    deleteApi: delInvoiceInfo,
+    addApi: addInvoiceInfo,
+    updateApi: updateInvoiceInfo,
+    handleUpdateFunc: () => {
       crudRef.value.rowEdit(selectionList.value[0]);
     },
-    handleSelectionChangeFunc:(selection:any)=>{
+    handleSelectionChangeFunc: (selection: any) => {
       selectionList.value = selection;
-    }
+    },
+    handleEndOpenFunc: (data, obj) => {
+      if (data == 'view') {
+        nextTick(() => {
+          // 寮哄埗灏� row 鐨勫師濮嬫暟鎹�(鍖呭惈'pc') 閲嶆柊鐏屽叆琛ㄥ崟
+          // 杩欒兘瑙e喅浣犳墦鍗颁俊鎭腑鏈�鍚庡嚭鐜扮殑 {} 缃┖闂
+          Object.assign(form.value, obj.data);
+          form.value.invoiceTypeData = dictFormat(sys_invoice_type.value, form.value.invoiceType);
+        });
+      }
+
+
+    },
   })
+const invoiceFormRef = ref();
+
+const handleAdd = () => {
+  invoiceFormRef.value.openDialog('');
+};
+const handleFormSubmit = (data: any) => {
+  if (data.id !== '') {
+    updateInvoiceInfo(data).then((res) => {
+      if (res.code == 200) {
+        proxy.$message.success(res.msg);
+        invoiceFormRef.value.handleClose();
+        onLoad(page.value)
+      }
+    });
+  } else {
+    addInvoiceInfo(data).then((res) => {
+      if (res.code == 200) {
+        proxy.$message.success(res.msg);
+        invoiceFormRef.value.handleClose();
+        onLoad(page.value)
+      }
+    });
+  }
 
 
+};
+const handleFy = (row: any) => {
+  getInvoiceInfo(row.id).then((res) => {
+    if (res.code == 200) {
+      invoiceFormRef.value.openDialog(res.data);
+    }
+  });
+};
 </script>

--
Gitblit v1.8.0