From 35bc26ac5c83da943fd476235192abddb826eba4 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期二, 23 十二月 2025 17:04:41 +0800
Subject: [PATCH] 应收费用管理和应收账单管理

---
 ui/admin-ui3/src/components/bankCardCate/index.vue |  140 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 107 insertions(+), 33 deletions(-)

diff --git a/ui/admin-ui3/src/components/bankCardCate/index.vue b/ui/admin-ui3/src/components/bankCardCate/index.vue
index c0ff190..237186f 100644
--- a/ui/admin-ui3/src/components/bankCardCate/index.vue
+++ b/ui/admin-ui3/src/components/bankCardCate/index.vue
@@ -6,14 +6,37 @@
         <el-form ref="formRef" :model="form" :rules="formRules" label-width="140px" size="default"
             class="form-container">
             <!-- 鍏宠仈瀹㈡埛锛堝甫鎼滅储鍥炬爣锛� -->
-            <el-form-item label="鍏宠仈瀹㈡埛" prop="customerName">
-                <el-input v-model="form.customerName" placeholder="璇烽�夋嫨鍏宠仈瀹㈡埛" readonly suffix-icon="Search"
-                    @click="openCustomerSelectDialog" class="search-input" />
+            <el-form-item label="鍏宠仈瀹㈡埛" v-if="ishowBank" prop="customerName">
+                <!-- <el-input v-model="form.customerName" placeholder="璇烽�夋嫨鍏宠仈瀹㈡埛" readonly suffix-icon="Search"
+                    @click="openCustomerSelectDialog" class="search-input" /> -->
+                   <el-input v-model="form.customerName" placeholder="璇烽�夋嫨鍏宠仈瀹㈡埛" readonly class="search-input"
+                    @click="openCustomerSelectDialog">
+                    <template #suffix>
+                        <el-icon class="el-input__icon" style="cursor: pointer;" @click="openCustomerSelectDialog">
+                            <Search />
+                        </el-icon>
+                    </template>
+                </el-input>    
+            </el-form-item>
+
+            <el-form-item label="鍏宠仈涓讳綋" v-if="!ishowBank" prop="customerName">
+                <el-input v-model="form.customerName" placeholder="璇烽�夋嫨鍏宠仈涓讳綋" readonly class="search-input"
+                    @click="subjectPerationSelectDialog">
+                    <template #suffix>
+                        <el-icon class="el-input__icon" style="cursor: pointer;" @click="subjectPerationSelectDialog">
+                            <Search />
+                        </el-icon>
+                    </template>
+                </el-input>
             </el-form-item>
 
             <!-- 鎶ご鍏徃 -->
-            <el-form-item label="璐﹀彿缂栧彿" prop="accountNo">
+            <el-form-item label="璐﹀彿缂栧彿" v-if="ishowBank" prop="accountNo">
                 <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙风紪鍙�" />
+            </el-form-item>
+
+            <el-form-item label="閾惰璐﹀彿" v-if="!ishowBank" prop="accountNo">
+                <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ラ摱琛岃处鍙�" />
             </el-form-item>
 
             <!-- 缁熶竴绀句細淇$敤浠g爜 -->
@@ -21,7 +44,7 @@
                 <el-input v-model="form.accountName" placeholder="璇疯緭鍏ユ埛鍚�" maxlength="18" />
             </el-form-item>
 
-                 <!-- 寮�鎴烽摱琛屽悕绉� -->
+            <!-- 寮�鎴烽摱琛屽悕绉� -->
             <el-form-item label="閾惰鍚嶇О" prop="bankName">
                 <el-input v-model="form.bankName" placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽悕绉�" />
             </el-form-item>
@@ -30,33 +53,39 @@
                 <el-input v-model="form.branchName" placeholder="璇疯緭鍏ユ敮琛屽悕绉�" />
             </el-form-item>
 
-            <el-form-item label="璐﹀彿绫诲瀷" prop="accountType">
+            <el-form-item label="璐﹀彿绫诲瀷" v-if="ishowBank" prop="accountType">
                 <el-select v-model="form.accountType" placeholder="璇烽�夎处鍙风被鍨�" clearable>
                     <el-option v-for="dict in sys_invoice_type" :key="dict.value" :label="dict.label"
                         :value="dict.value" />
                 </el-select>
             </el-form-item>
 
-                  <el-form-item label="甯佺" prop="currency">
-                <el-select v-model="form.currency" placeholder="璇烽�夊竵绉�" clearable>
-                    <el-option v-for="dict in sys_currency" :key="dict.value" :label="dict.label"
+              <el-form-item label="璐﹀彿绫诲瀷" v-if="!ishowBank" prop="accountType">
+                <el-select v-model="form.accountType" placeholder="璇烽�夎处鍙风被鍨�" clearable>
+                    <el-option v-for="dict in sys_internal_type" :key="dict.value" :label="dict.label"
                         :value="dict.value" />
                 </el-select>
             </el-form-item>
 
+            <el-form-item label="甯佺" prop="currency">
+                <el-select v-model="form.currency" placeholder="璇烽�夊竵绉�" clearable>
+                    <el-option v-for="dict in sys_currency" :key="dict.value" :label="dict.label" :value="dict.value" />
+                </el-select>
+            </el-form-item>
 
-                     <el-form-item label="璐︽埛鐘舵��" prop="status">
+
+            <el-form-item label="璐︽埛鐘舵��" prop="status">
                 <el-select v-model="form.status" placeholder="璇烽�夎处鎴风姸鎬�" clearable>
                     <el-option v-for="dict in sys_bank_type" :key="dict.value" :label="dict.label"
                         :value="dict.value" />
                 </el-select>
             </el-form-item>
 
-       
 
-          
 
-         
+
+
+
         </el-form>
 
         <!-- 搴曢儴鎸夐挳 -->
@@ -69,12 +98,10 @@
     </el-dialog>
 
     <!-- 鍏宠仈瀹㈡埛閫夋嫨寮圭獥 -->
-    <CustomerSelectDialog
-        :visible="isCustomerSelectVisibleIshow"
-        :default-selected-id="form.customerId"
-        @confirm="handleCustomerSelect"
-        @close="isCustomerSelectVisibleIshow = false"
-    />
+    <CustomerSelectDialog :visible="isCustomerSelectVisibleIshow" :default-selected-id="form.customerId"
+        @confirm="handleCustomerSelect" @close="isCustomerSelectVisibleIshow = false" />
+    <subjectPeration :visible="subjectPerationShow" :default-selected-id="form.customerId"
+        @confirm="subjectPerationSelect" @close="subjectPerationShow = false" />
 </template>
 
 <script setup lang="ts">
@@ -83,11 +110,21 @@
 import { ElMessage } from 'element-plus';
 // 寮曞叆瀹㈡埛閫夋嫨寮圭獥缁勪欢
 import CustomerSelectDialog from '../CustomerSelectDialog/index';
+import subjectPeration from '../subjectPeration/index';
+
 
 import useCurrentInstance from "@/utils/useCurrentInstance";
 const { proxy } = useCurrentInstance();
-const { sys_invoice_type,sys_currency,sys_bank_type } = proxy.useDict('sys_invoice_type','sys_currency','sys_bank_type');
+const { sys_invoice_type, sys_currency, sys_bank_type,sys_internal_type } = proxy.useDict('sys_invoice_type', 'sys_currency', 'sys_bank_type',
+    'sys_internal_type'
+);
+const props = defineProps({
+    ishowBank: {
+        type: Boolean,
+        default: true
+    },
 
+});
 // 瀹氫箟琛ㄥ崟鏁版嵁绫诲瀷锛堟柊澧瀋ustomerId瀛楁锛岄伩鍏嶈祴鍊兼椂鎶ラ敊锛�
 interface InvoiceForm {
     customerId?: string | number; // 鏂板锛氬鎴稩D锛堢敤浜庡洖鏄鹃�変腑锛�
@@ -120,12 +157,12 @@
     accountType: '',
     bankName: '',
     branchName: '',
-     id:'',
+    id: '',
     invoiceOperatingLicenseAddress: '',
     invoiceOperatingLicensePhone: '',
     invoiceOperatingLicenseEmail: '',
-    currency:'',
-    status:'',
+    currency: '',
+    status: '',
 });
 
 // 琛ㄥ崟鏍¢獙瑙勫垯
@@ -158,14 +195,14 @@
 // 鎵撳紑寮圭獥锛堜緵鐖剁粍浠惰皟鐢紝淇鍥炴樉閫昏緫锛�
 const openDialog = (data?: Partial<InvoiceForm>) => {
     dialogVisible.value = true;
-    
+
     // 鍏堥噸缃〃鍗曪紝閬垮厤鏃ф暟鎹畫鐣�
     nextTick(() => {
         formRef.value?.resetFields();
-        
+
         // 鏈夊洖鏄炬暟鎹椂锛岄�愪釜璧嬪�硷紙鏍稿績淇锛氶伩鍏嶆暣浣撹祴鍊糵orm = data锛�
         if (data && Object.keys(data).length > 0) {
-           // 閬嶅巻data鐨勬墍鏈夊瓧娈碉紝璧嬪�煎埌form锛堜粎瑕嗙洊瀵瑰簲瀛楁锛�
+            // 閬嶅巻data鐨勬墍鏈夊瓧娈碉紝璧嬪�煎埌form锛堜粎瑕嗙洊瀵瑰簲瀛楁锛�
             Object.assign(form, data);
             // 娓呯┖琛ㄥ崟鏍¢獙鐘舵��
             formRef.value?.clearValidate();
@@ -179,12 +216,12 @@
                 accountType: '',
                 bankName: '',
                 branchName: '',
-                id:'',
+                id: '',
                 invoiceOperatingLicenseAddress: '',
                 invoiceOperatingLicensePhone: '',
                 invoiceOperatingLicenseEmail: '',
-                 currency:'',
-                 status:''
+                currency: '',
+                status: ''
             });
         }
     });
@@ -201,7 +238,16 @@
     form.customerId = selectedCustomer.id; // 鐜板湪瀛楁宸插0鏄庯紝璧嬪�兼湁鏁�
     isCustomerSelectVisibleIshow.value = false;
 };
+const subjectPerationShow = ref(false);
+const subjectPerationSelectDialog = () => {
+    subjectPerationShow.value = true;
 
+};
+const subjectPerationSelect = (selectedCustomer) => {
+    form.customerName = selectedCustomer.customerFullName;
+    form.customerId = selectedCustomer.id; // 鐜板湪瀛楁宸插0鏄庯紝璧嬪�兼湁鏁�
+    isCustomerSelectVisibleIshow.value = false;
+};
 // 鎻愪氦琛ㄥ崟锛堜慨澶嶆牎楠岄�昏緫 + 鍏抽棴寮圭獥锛�
 const handleSubmit = async () => {
     if (!formRef.value) return;
@@ -241,13 +287,41 @@
 <style scoped lang="scss">
 .form-container {
     padding: 10px 0;
-    :deep(.el-form-item) { margin-bottom: 18px; }
+
+    :deep(.el-form-item) {
+        margin-bottom: 18px;
+    }
 }
 
 .search-input {
-    :deep(.el-input__inner) { cursor: pointer; background-color: #f8f9fa; }
-    :deep(.el-icon-search) { color: #409eff; }
+    :deep(.el-input__inner) {
+        cursor: pointer;
+        background-color: #f8f9fa;
+    }
+
+    :deep(.el-icon-search) {
+        color: #409eff;
+    }
 }
 
-.dialog-footer { text-align: right; }
+.dialog-footer {
+    text-align: right;
+}
+/*  */
+/* 浣跨敤 :deep() 绌块�忕粍浠舵牱寮� */
+:deep(.search-input .el-input__wrapper) {
+  background-color: #ffffff !important; /* 寮哄埗鑳屾櫙涓虹櫧鑹� */
+  box-shadow: 0 0 0 1px var(--el-input-border-color, #dcdfe6) inset; /* 淇濇寔杈规 */
+}
+
+/* 閽堝 readonly 鐘舵�佷笅鐨勭壒瀹氬鐞嗭紙濡傛灉闇�瑕佹洿绮剧‘鎺у埗锛� */
+:deep(.search-input .el-input__inner[readonly]) {
+  background-color: #ffffff !important;
+  cursor: pointer; /* 鏃㈢劧鏄偣鍑诲脊鍑猴紝寤鸿榧犳爣鎵嬪娍璁句负 pointer */
+}
+
+/* 濡傛灉浣犺繕鎯冲幓鎺夐紶鏍囨粦杩囨椂鐨勭伆鑹叉劅锛堝鏋滄湁鐨勮瘽锛� */
+:deep(.search-input .el-input__wrapper:hover) {
+  background-color: #ffffff !important;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0