Explorar o código

refactor(zf): 优化房屋出租流程和合同管理

-移除不必要的注释代码
- 将租金和物业费输入框改为数字输入框
-增加合同条款信息展示
- 优化文件上传逻辑
-收据和退据生成接口增加错误日志
- 收款管理和退款管理增加合同编号筛选功能
nahida hai 10 meses
pai
achega
f1fa5e2092
Modificáronse 4 ficheiros con 368 adicións e 52 borrados
  1. 323 44
      src/views/zf/fwxq.vue
  2. 9 6
      src/views/zfgl/zfhtgl.vue
  3. 19 1
      src/views/zfgl/zfsjgl.vue
  4. 17 1
      src/views/zfgl/zftjgl.vue

+ 323 - 44
src/views/zf/fwxq.vue

@@ -984,16 +984,15 @@ onMounted(() => {
 <template>
   <el-container class="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100">
     <el-main class="h-full" v-loading="loading">
-<!--      <div class="py-0 has-footer">-->
-        <el-button
-          type="primary"
-          @click="router.back"
-        >
-          <el-icon class="mr-1"><ArrowLeft /></el-icon>
-          返回
-        </el-button>
-<!--      </div>-->
-      <div class="bg-gradient-to-r from-blue-600 to-purple-700 text-white py-4 px-8 my-4 rounded-2xl">
+      <!--      <div class="py-0 has-footer">-->
+      <el-button type="primary" @click="router.back">
+        <el-icon class="mr-1"><ArrowLeft /></el-icon>
+        返回
+      </el-button>
+      <!--      </div>-->
+      <div
+        class="bg-gradient-to-r from-blue-600 to-purple-700 text-white py-4 px-8 my-4 rounded-2xl"
+      >
         <div class="w-full">
           <div class="flex items-center justify-between">
             <div>
@@ -1065,19 +1064,25 @@ onMounted(() => {
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">联系电话</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ tenantInfo.tenantNumber }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ tenantInfo.tenantNumber }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">身份证号</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ tenantInfo.tenantIdCard }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ tenantInfo.tenantIdCard }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">入住时间</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ tenantInfo.tenantInDate }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ tenantInfo.tenantInDate }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
@@ -1119,7 +1124,9 @@ onMounted(() => {
               <el-col :xs="24" :sm="12" :md="6">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">介绍</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ propertyInfo.facilities }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ propertyInfo.facilities }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="6" v-if="basicInfo.houseType">
@@ -1215,37 +1222,49 @@ onMounted(() => {
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">合同编号</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractNumber }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractNumber }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">签约日期</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractDate }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractDate }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">合同期限</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractTime }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractTime }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">到期日期</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractExpirationDate }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractExpirationDate }}
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">押金</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractDeposit }} 元</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractDeposit }} 元
+                  </div>
                 </div>
               </el-col>
               <el-col :xs="24" :sm="12" :md="8">
                 <div class="mb-4">
                   <label class="block text-sm font-medium text-gray-700 mb-1">合同状态</label>
-                  <div class="text-lg font-semibold text-gray-800">{{ contractInfo.contractStatus }}</div>
+                  <div class="text-lg font-semibold text-gray-800">
+                    {{ contractInfo.contractStatus }}
+                  </div>
                 </div>
               </el-col>
             </el-row>
@@ -1553,7 +1572,7 @@ onMounted(() => {
               />
             </el-form-item>
             <el-form-item label="厂房年租金(元)" prop="contractDataB.factoryAnnualRent">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.factoryAnnualRent"
                 placeholder="请输入厂房年租金(元)"
               />
@@ -1571,7 +1590,7 @@ onMounted(() => {
               label="配套用房年租金(元)"
               prop="contractDataB.supportingRoomAnnualRent"
             >
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.supportingRoomAnnualRent"
                 placeholder="请输入配套用房年租金(元)"
               />
@@ -1589,13 +1608,13 @@ onMounted(() => {
               />
             </el-form-item>
             <el-form-item label="宿舍楼年租金(元)" prop="contractDataB.dormAnnualRent">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.dormAnnualRent"
                 placeholder="请输入宿舍楼年租金(元)"
               />
             </el-form-item>
             <el-form-item label="总租金(元)" prop="contractDataB.totalAnnualRent">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.totalAnnualRent"
                 placeholder="请输入总租金(元)"
               />
@@ -1613,7 +1632,7 @@ onMounted(() => {
               label="标准化厂房和配套用房年物业费(元)"
               prop="contractDataB.factorySupportingPropertyFee"
             >
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.factorySupportingPropertyFee"
                 placeholder="请输入标准化厂房和配套用房年物业费(元)"
               />
@@ -1637,13 +1656,13 @@ onMounted(() => {
               />
             </el-form-item>
             <el-form-item label="宿舍楼年物业费(元)" prop="contractDataB.dormAnnualPropertyFee">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.dormAnnualPropertyFee"
                 placeholder="请输入宿舍楼年物业费(元)"
               />
             </el-form-item>
             <el-form-item label="年物业管理费(元)" prop="contractDataB.totalAnnualPropertyFee">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.totalAnnualPropertyFee"
                 placeholder="请输入年物业管理费(元)"
               />
@@ -1652,7 +1671,7 @@ onMounted(() => {
               label="年租金和物业费用总计(元)"
               prop="contractDataB.annualTotalRentAndPropertyFee"
             >
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataB.annualTotalRentAndPropertyFee"
                 placeholder="请输入年租金和物业费用总计(元)"
               />
@@ -1791,13 +1810,13 @@ onMounted(() => {
               />
             </el-form-item>
             <el-form-item label="年租金(小写)" prop="contractDataC.annualRentLower">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataC.annualRentLower"
                 placeholder="请输入年租金(小写)"
               />
             </el-form-item>
             <el-form-item label="年物业服务费(小写)" prop="contractDataC.annualPropertyFeeLower">
-              <el-input
+              <el-input-number
                 v-model="rentalForm.contractDataC.annualPropertyFeeLower"
                 placeholder="请输入年物业服务费(小写)"
               />
@@ -1813,18 +1832,280 @@ onMounted(() => {
         <div v-show="currentStep === 2">
           <div class="bg-gray-50 p-6 rounded-lg">
             <h3 class="text-lg font-semibold mb-4">请确认以下信息:</h3>
-            <el-row :gutter="24">
-              <el-col :span="12">
-                <p><strong>租户姓名:</strong>{{ rentalForm.rentalInfo.rentalName }}</p>
-                <p><strong>联系电话:</strong>{{ rentalForm.rentalInfo.rentalPhone }}</p>
-                <p><strong>身份证号:</strong>{{ rentalForm.rentalInfo.rentalIdCard }}</p>
-              </el-col>
-              <el-col :span="12">
-                <p><strong>租金:</strong>{{ rentalForm.rentalInfo.rentalRect }} 元</p>
-                <p><strong>租期:</strong>{{ rentalForm.rentalInfo.rentalTime }}</p>
-                <p><strong>开始时间:</strong>{{ rentalForm.rentalInfo.rentalTimeStart }}</p>
-              </el-col>
-            </el-row>
+
+            <!-- 第一步:租户信息 -->
+            <div class="mb-6">
+              <h4 class="text-md font-semibold mb-3 text-blue-600">租户信息</h4>
+              <el-row :gutter="24">
+                <el-col :span="12">
+                  <p><strong>租户姓名:</strong>{{ rentalForm.rentalInfo.rentalName }}</p>
+                  <p><strong>联系电话:</strong>{{ rentalForm.rentalInfo.rentalPhone }}</p>
+                  <p><strong>身份证号:</strong>{{ rentalForm.rentalInfo.rentalIdCard }}</p>
+                </el-col>
+                <el-col :span="12">
+                  <p><strong>租金:</strong>{{ rentalForm.rentalInfo.rentalRect }} 元</p>
+                  <p><strong>租期:</strong>{{ rentalForm.rentalInfo.rentalTime }}</p>
+                  <p><strong>开始时间:</strong>{{ rentalForm.rentalInfo.rentalTimeStart }}</p>
+                </el-col>
+              </el-row>
+            </div>
+
+            <!-- 第二步:合同条款信息 -->
+            <div class="mb-6">
+              <h4 class="text-md font-semibold mb-3 text-green-600">合同条款信息</h4>
+
+              <!-- 公租房合同信息 -->
+              <div v-if="propertyInfo.assetType === '公租房'">
+                <el-row :gutter="24">
+                  <el-col :span="12">
+                    <p><strong>租方:</strong>{{ rentalForm.contractDataA.tenantName }}</p>
+                    <p><strong>房东:</strong>{{ rentalForm.contractDataA.landlordName }}</p>
+                    <p>
+                      <strong>租期开始时间:</strong>{{ rentalForm.contractDataA.tenantTimeStart }}
+                    </p>
+                    <p><strong>租期:</strong>{{ rentalForm.contractDataA.tenantTime }}</p>
+                  </el-col>
+                  <el-col :span="12">
+                    <p>
+                      <strong>租期结束时间:</strong>{{ rentalForm.contractDataA.tenantTimeEnd }}
+                    </p>
+                    <p><strong>每套租金:</strong>{{ rentalForm.contractDataA.tenantRent }} 元</p>
+                    <p>
+                      <strong>每套物业费:</strong>{{ rentalForm.contractDataA.tenantDeposit }} 元
+                    </p>
+                    <p>
+                      <strong>押金:</strong>{{ rentalForm.contractDataA.tenantDepositAmount }} 元
+                    </p>
+                  </el-col>
+                </el-row>
+              </div>
+
+              <!-- 厂房合同信息 -->
+              <div v-if="propertyInfo.assetType === '厂房'">
+                <el-row :gutter="24">
+                  <el-col :span="12">
+                    <p><strong>用途:</strong>{{ rentalForm.contractDataB.purpose }}</p>
+                    <p><strong>房东:</strong>{{ rentalForm.contractDataB.landlordName }}</p>
+                    <p>
+                      <strong>法人统一社会信用代码:</strong
+                      >{{ rentalForm.contractDataB.landlordUniCode }}
+                    </p>
+                    <p>
+                      <strong>法定代表人:</strong
+                      >{{ rentalForm.contractDataB.landlordLegalRepresentative }}
+                    </p>
+                    <p><strong>房东职务:</strong>{{ rentalForm.contractDataB.landlordDuty }}</p>
+                    <p><strong>租方:</strong>{{ rentalForm.contractDataB.tenantName }}</p>
+                    <p>
+                      <strong>租方统一社会信用代码:</strong
+                      >{{ rentalForm.contractDataB.tenantUniCode }}
+                    </p>
+                    <p>
+                      <strong>租方法定代表人:</strong
+                      >{{ rentalForm.contractDataB.tenantLegalRepresentative }}
+                    </p>
+                    <p><strong>租方职务:</strong>{{ rentalForm.contractDataB.tenantDuty }}</p>
+                    <p><strong>谁:</strong>{{ rentalForm.contractDataB.who }}</p>
+                    <p><strong>何时:</strong>{{ rentalForm.contractDataB.whatTime }}</p>
+                    <p><strong>标题:</strong>{{ rentalForm.contractDataB.title }}</p>
+                    <p>
+                      <strong>配套用房面积:</strong
+                      >{{ rentalForm.contractDataB.supportingRoomArea }} ㎡
+                    </p>
+                    <p><strong>办公室面积:</strong>{{ rentalForm.contractDataB.officeArea }} ㎡</p>
+                    <p><strong>食堂面积:</strong>{{ rentalForm.contractDataB.canteenArea }} ㎡</p>
+                    <p>
+                      <strong>总面积:</strong>{{ rentalForm.contractDataB.totalLeasedArea }} ㎡
+                    </p>
+                    <p>
+                      <strong>宿舍楼总间数:</strong>{{ rentalForm.contractDataB.dormTotalRooms }}
+                    </p>
+                    <p>
+                      <strong>宿舍小间数:</strong>{{ rentalForm.contractDataB.dormSmallRooms }}
+                    </p>
+                    <p>
+                      <strong>宿舍大间数:</strong>{{ rentalForm.contractDataB.dormLargeRooms }}
+                    </p>
+                    <p>
+                      <strong>标的交付日期:</strong>{{ rentalForm.contractDataB.deliveryDate }}
+                    </p>
+                    <p>
+                      <strong>生产项目名称:</strong
+                      >{{ rentalForm.contractDataB.productionProject }}
+                    </p>
+                    <p>
+                      <strong>租赁期限(年):</strong>{{ rentalForm.contractDataB.leaseTermYears }}
+                    </p>
+                    <p>
+                      <strong>租赁起始日:</strong>{{ rentalForm.contractDataB.leaseStartDate }}
+                    </p>
+                    <p><strong>租赁终止日:</strong>{{ rentalForm.contractDataB.leaseEndDate }}</p>
+                  </el-col>
+                  <el-col :span="12">
+                    <p>
+                      <strong>续租提前通知月数:</strong
+                      >{{ rentalForm.contractDataB.renewNoticeMonths }}
+                    </p>
+                    <p>
+                      <strong>标准化厂房某楼层:</strong
+                      >{{ rentalForm.contractDataB.factorySpecificFloor1 }}
+                    </p>
+                    <p>
+                      <strong>该楼层租金(元/㎡/月):</strong
+                      >{{ rentalForm.contractDataB.rentPerSqmFloor1 }}
+                    </p>
+                    <p>
+                      <strong>标准化厂房另一楼层:</strong
+                      >{{ rentalForm.contractDataB.factorySpecificFloor2 }}
+                    </p>
+                    <p>
+                      <strong>该楼层租金(元/㎡/月):</strong
+                      >{{ rentalForm.contractDataB.rentPerSqmFloor2 }}
+                    </p>
+                    <p>
+                      <strong>厂房年租金:</strong
+                      >{{ rentalForm.contractDataB.factoryAnnualRent }} 元
+                    </p>
+                    <p>
+                      <strong>配套用房租金(元/㎡/月):</strong
+                      >{{ rentalForm.contractDataB.supportingRoomRentPerSqm }}
+                    </p>
+                    <p>
+                      <strong>配套用房年租金:</strong
+                      >{{ rentalForm.contractDataB.supportingRoomAnnualRent }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼普通单间月租金:</strong
+                      >{{ rentalForm.contractDataB.dormSmallRoomRent }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼大单间月租金:</strong
+                      >{{ rentalForm.contractDataB.dormLargeRoomRent }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼年租金:</strong
+                      >{{ rentalForm.contractDataB.dormAnnualRent }} 元
+                    </p>
+                    <p>
+                      <strong>总租金:</strong>{{ rentalForm.contractDataB.totalAnnualRent }} 元
+                    </p>
+                    <p>
+                      <strong>标准化厂房和配套用房物业费(元/㎡/月):</strong
+                      >{{ rentalForm.contractDataB.propertyFeePerSqm }}
+                    </p>
+                    <p>
+                      <strong>标准化厂房和配套用房年物业费:</strong
+                      >{{ rentalForm.contractDataB.factorySupportingPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼普通单间月物业费:</strong
+                      >{{ rentalForm.contractDataB.dormSmallRoomPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼大单间月物业费:</strong
+                      >{{ rentalForm.contractDataB.dormLargeRoomPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>宿舍楼年物业费:</strong
+                      >{{ rentalForm.contractDataB.dormAnnualPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>年物业管理费:</strong
+                      >{{ rentalForm.contractDataB.totalAnnualPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>年租金和物业费用总计:</strong
+                      >{{ rentalForm.contractDataB.annualTotalRentAndPropertyFee }} 元
+                    </p>
+                    <p>
+                      <strong>租赁押金金额:</strong>{{ rentalForm.contractDataB.depositAmount }} 元
+                    </p>
+                  </el-col>
+                </el-row>
+              </div>
+
+              <!-- 创新创业基地合同信息 -->
+              <div v-if="propertyInfo.assetType === '创新创业基地'">
+                <el-row :gutter="24">
+                  <el-col :span="12">
+                    <p>
+                      <strong>出租方(甲方)名称:</strong>{{ rentalForm.contractDataC.lessorName }}
+                    </p>
+                    <p>
+                      <strong>出租方法定代表人:</strong
+                      >{{ rentalForm.contractDataC.lessorLegalRep }}
+                    </p>
+                    <p>
+                      <strong>出租方统一社会信用代码:</strong
+                      >{{ rentalForm.contractDataC.lessorUniCode }}
+                    </p>
+                    <p>
+                      <strong>承租方(乙方)名称:</strong>{{ rentalForm.contractDataC.lesseeName }}
+                    </p>
+                    <p>
+                      <strong>承租方法定代表人:</strong
+                      >{{ rentalForm.contractDataC.lesseeLegalRep }}
+                    </p>
+                    <p>
+                      <strong>承租方统一社会信用代码/身份证号:</strong
+                      >{{ rentalForm.contractDataC.lesseeIdCode }}
+                    </p>
+                    <p>
+                      <strong>标的物坐落:</strong>{{ rentalForm.contractDataC.propertyLocation }}
+                    </p>
+                    <p>
+                      <strong>计租面积:</strong>{{ rentalForm.contractDataC.rentableArea }} 平方米
+                    </p>
+                    <p>
+                      <strong>使用面积:</strong>{{ rentalForm.contractDataC.usableArea }} 平方米
+                    </p>
+                    <p>
+                      <strong>公摊面积:</strong>{{ rentalForm.contractDataC.sharedArea }} 平方米
+                    </p>
+                    <p>
+                      <strong>标的物使用性质:</strong
+                      >{{ rentalForm.contractDataC.propertyUseNature }}
+                    </p>
+                    <p><strong>店铺名称:</strong>{{ rentalForm.contractDataC.storeName }}</p>
+                  </el-col>
+                  <el-col :span="12">
+                    <p><strong>商品/服务品牌:</strong>{{ rentalForm.contractDataC.brand }}</p>
+                    <p><strong>经营范围:</strong>{{ rentalForm.contractDataC.businessScope }}</p>
+                    <p>
+                      <strong>租赁期限:</strong>{{ rentalForm.contractDataC.leaseTermMonths }} 个月
+                    </p>
+                    <p>
+                      <strong>租赁起始日:</strong>{{ rentalForm.contractDataC.leaseStartDate }}
+                    </p>
+                    <p><strong>租赁终止日:</strong>{{ rentalForm.contractDataC.leaseEndDate }}</p>
+                    <p>
+                      <strong>装修期起始日:</strong
+                      >{{ rentalForm.contractDataC.renovationStartDate }}
+                    </p>
+                    <p>
+                      <strong>装修期终止日:</strong
+                      >{{ rentalForm.contractDataC.renovationEndDate }}
+                    </p>
+                    <p>
+                      <strong>正式起租时间:</strong
+                      >{{ rentalForm.contractDataC.officialLeaseStartDate }}
+                    </p>
+                    <p>
+                      <strong>年租金(小写):</strong
+                      >{{ rentalForm.contractDataC.annualRentLower }} 元
+                    </p>
+                    <p>
+                      <strong>年物业服务费(小写):</strong
+                      >{{ rentalForm.contractDataC.annualPropertyFeeLower }} 元
+                    </p>
+                    <p>
+                      <strong>租赁保证金金额:</strong
+                      >{{ rentalForm.contractDataC.depositAmount }} 元
+                    </p>
+                  </el-col>
+                </el-row>
+              </div>
+            </div>
           </div>
         </div>
       </el-form>
@@ -2015,5 +2296,3 @@ onMounted(() => {
   border-top: 1px dashed #ccc;
 }
 </style>
-
-

+ 9 - 6
src/views/zfgl/zfhtgl.vue

@@ -35,7 +35,6 @@ import {
 import { renderAsync } from 'docx-preview'
 import VuePdfEmbed from 'vue-pdf-embed'
 import { clientGet, clientPost } from '@/utils/request.ts'
-import { BaseResponse, PageType } from '@/utils/types.ts' // 新增:导入BaseResponse和PageType
 
 // 接口定义
 export interface AContractInfo {
@@ -462,11 +461,16 @@ const beforeUpload: UploadProps['beforeUpload'] = (file) => {
 
 // 文件选择变化
 const handleFileChange: UploadProps['onChange'] = (file, fileList) => {
+  console.log(file, fileList)
+  //移除第一个元素
+
   if (fileList.length > 1) {
+    fileList.splice(0, 1)
     ElMessage.warning('每次只能上传一个文件,已自动替换为最新选择的文件')
-    fileList.value = [fileList[fileList.length - 1]]
+    // 确保只保留最新的文件
+    // fileList.value = [fileList[fileList.length - 1]]
   } else {
-    fileList.value = fileList
+    // fileList = [...fileList]
   }
 }
 
@@ -667,7 +671,7 @@ const generateReceipt = async () => {
         await previewDocument(response.data, `${currentReceiptContractNumber.value} - 收据`)
       } catch (error) {
         // 用户选择不预览,不做任何操作
-        console.log('用户选择不预览收据')
+        console.log('用户选择不预览收据', error)
       }
     } else if (response.code === 200 && response.data) {
       ElMessage.success('收据生成成功!')
@@ -837,7 +841,7 @@ const generateReturnReceipt = async () => {
         await previewDocument(response.data, `${currentReturnReceiptContractNumber.value} - 退据`)
       } catch (error) {
         // 用户选择不预览,不做任何操作
-        console.log('用户选择不预览退据')
+        console.log('用户选择不预览退据', error)
       }
     } else if (response.code === 200 && response.data) {
       ElMessage.success('退据生成成功!')
@@ -1169,7 +1173,6 @@ onMounted(() => {
           class="upload-demo"
           drag
           :auto-upload="false"
-          :limit="1"
           :before-upload="beforeUpload"
           :on-change="handleFileChange"
           :on-remove="handleRemove"

+ 19 - 1
src/views/zfgl/zfsjgl.vue

@@ -8,6 +8,7 @@ interface AReceiptInfo {
   id?: string
   contractId?: string
   receiptNumber?: string
+  contactNumber?: string
   payer?: string
   paymentMethod?: string
   totalAmount?: number
@@ -19,6 +20,7 @@ interface AReceiptInfo {
   attachmentUrl?: string
   accountingDate?: string
   generationDate?: string
+
   createTime?: string
   updateTime?: string
 }
@@ -40,6 +42,7 @@ const searchForm = reactive({
   receiptNumber: '',
   payer: '',
   paymentMethod: '',
+  contactNumber: '',
   pageNum: 1,
   pageSize: 10,
 })
@@ -60,15 +63,17 @@ const getList = async () => {
         receiptNumber: string
         payer: string
         paymentMethod: string
+        contractNumber: string
       },
       AReceiptInfoResponse
-    >('/AReceiptInfo/findByPage', {
+    >('/AReceiptInfo//findByPageWithContract', {
       params: {
         pageNum: searchForm.pageNum,
         pageSize: searchForm.pageSize,
         receiptNumber: searchForm.receiptNumber,
         payer: searchForm.payer,
         paymentMethod: searchForm.paymentMethod,
+        contractNumber: searchForm.contactNumber,
       },
     })
 
@@ -98,6 +103,7 @@ const handleReset = () => {
   searchForm.receiptNumber = ''
   searchForm.payer = ''
   searchForm.paymentMethod = ''
+  searchForm.contactNumber = ''
   searchForm.pageNum = 1
   getList()
 }
@@ -261,6 +267,16 @@ onMounted(() => {
             </el-select>
           </el-form-item>
 
+          <el-form-item label="合同编号">
+            <el-input
+              v-model="searchForm.contactNumber"
+              placeholder="请输入合同编号"
+              clearable
+              class="w-48"
+              @keyup.enter="handleSearch"
+            />
+          </el-form-item>
+
           <el-form-item>
             <el-button type="primary" @click="handleSearch" :loading="loading">
               <Search class="w-4 h-4 mr-1" v-if="!loading" />
@@ -355,6 +371,8 @@ onMounted(() => {
             </template>
           </el-table-column>
 
+          <el-table-column prop="contactNumber" label="合同编号" min-width="150" />
+
           <el-table-column label="操作" width="120" fixed="right">
             <template #default="{ row }">
               <el-button

+ 17 - 1
src/views/zfgl/zftjgl.vue

@@ -15,6 +15,7 @@ interface ARefund {
   propertyFee?: number // 物业费
   totalAmount?: number // 合计
   generationDate?: string // 生成日期
+  contractNumber?: string // 生成日期
   attachmentUrl?: string // 附件url
   createTime?: string // 创建时间
   updateTime?: string // 更新时间
@@ -38,6 +39,7 @@ const MINIO_URL = import.meta.env.VITE_MINIO_BASE_URL
 const searchForm = reactive({
   tenant: '',
   unit: '',
+  contractNumber: '',
   pageNum: 1,
   pageSize: 10,
 })
@@ -52,11 +54,12 @@ const getList = async () => {
         unit: string
       },
       ARefundResponse
-    >('/arefund/findByPage', {
+    >('/arefund/findByPageWithContract', {
       params: {
         pageNum: searchForm.pageNum,
         pageSize: searchForm.pageSize,
         tenant: searchForm.tenant,
+        contractNumber: searchForm.contractNumber,
         unit: searchForm.unit,
       },
     })
@@ -86,6 +89,7 @@ const handleSearch = () => {
 const handleReset = () => {
   searchForm.tenant = ''
   searchForm.unit = ''
+  searchForm.contractNumber = ''
   searchForm.pageNum = 1
   getList()
 }
@@ -224,6 +228,16 @@ onMounted(() => {
             />
           </el-form-item>
 
+          <el-form-item label="合同编号">
+            <el-input
+              v-model="searchForm.contractNumber"
+              placeholder="请输入所属单位"
+              clearable
+              class="w-48"
+              @keyup.enter="handleSearch"
+            />
+          </el-form-item>
+
           <el-form-item>
             <el-button type="primary" @click="handleSearch" :loading="loading">
               <Search class="w-4 h-4 mr-1" v-if="!loading" />
@@ -306,6 +320,8 @@ onMounted(() => {
             </template>
           </el-table-column>
 
+          <el-table-column prop="contractNumber" label="合同编号" />
+
           <el-table-column label="操作" width="120" fixed="right">
             <template #default="{ row }">
               <el-button