jiangping
2024-12-05 16217be9c85f95cb236e639da6e546bb38cdc53d
admin/src/views/contract/components/terminateLease.vue
@@ -24,10 +24,10 @@
                            </el-select>
                        </el-form-item>
                        <el-form-item label="退租日期" prop="btDate" style="width: 33%;">
<!--                            @change="changeBtDate"-->
                            <el-date-picker
                                v-model="form.btDate"
                                type="date"
                                @change="changeBtDate"
                                value-format="yyyy-MM-dd"
                                placeholder="请选择">
                            </el-date-picker>
@@ -84,6 +84,7 @@
                    label="账单编号">
                </el-table-column>
                <el-table-column
                    width="100"
                    label="费用类型">
                    <template slot-scope="{row}">
                        <span v-if="row.costType === 0">租赁费</span>
@@ -103,13 +104,14 @@
                    label="应收付金额/原始应收付">
                    <template v-slot="{row}">
                        <div style="display: flex; align-items: center;">
                            <el-input v-model="row.receivableFee" @input="changeReceivableFee($event, row)" placeholder="请输入内容" style="width: 90px;"></el-input>
                            <el-input v-model="row.receivableFee" @input="changeReceivableFee($event, row)" placeholder="请输入内容" style="flex: 1;"></el-input>
                            <span style="margin: 0 10px;">/</span>
                            {{row.receivableFeeCopy}}
                        </div>
                    </template>
                </el-table-column>
                <el-table-column
                    width="120"
                    prop="actReceivableFee"
                    label="实收/付金额">
                </el-table-column>
@@ -196,12 +198,16 @@
  import AddPaymentBill from './addPaymentBill'
  import { getUserList } from '@/api/system/user'
  import { backRent, getCanBackBill } from '@/api/contract'
  import { mapState } from 'vuex'
  export default {
    name: "terminateLease",
    components: {
      GlobalWindow,
      AddCollectionBill,
      AddPaymentBill
    },
    computed: {
      ...mapState(['userInfo'])
    },
    extends: BaseOpera,
    data() {
@@ -243,38 +249,24 @@
        loading: false
      }
    },
    watch: {
      info: {
        deep: true,
        immediate: true,
        handler(news, olds) {
          const arr = [...this.info.terminateList, ...this.info.depositList]
          let total1 = 0
          let total2 = 0
          arr.forEach(item => {
            if (item.billType === 0) {
              total1 += Number(item.price)
            } else if (item.billType === 1) {
              total2 += Number(item.price)
            }
          })
          this.receivable = total1
          this.meet = total2
        }
      }
    },
    methods: {
      open (title, info) {
        this.title = title
        this.info = info
        this.form.id = info.id
        this.form.btSignDate = this.getDay()
        console.log(this.userInfo)
        this.form.btUserId = this.userInfo.id
        this.$nextTick(() => {
          this.$refs.form.resetFields()
        })
        this.info.canBackRentBills.forEach(item => {
          this.$set(item, 'receivableFeeCopy', item.receivableFee)
          this.$set(item, 'receivableFee', item.needReceivableFee)
          if ([2,3,7].includes(item.costType)) {
            this.$set(item, 'billType', 1)
            this.$set(item, 'price', item.actReceivableFee)
          } else {
            this.$set(item, 'receivableFeeCopy', item.receivableFee)
            this.$set(item, 'receivableFee', item.needReceivableFee)
            this.$set(item, 'price', item.needReceivableFee)
          }
        })
@@ -290,8 +282,30 @@
            return item
          }
        })
        this.countData()
        this.getUser()
        this.visible = true
      },
      countData () {
        const arr = [...this.info.terminateList, ...this.info.depositList]
        let total1 = 0
        let total2 = 0
        arr.forEach(item => {
          if (item.billType === 0) {
            total1 += Number(item.price)
          } else if (item.billType === 1) {
            total2 += Number(item.price)
          }
        })
        this.receivable = total1.toFixed(2)
        this.meet = total2.toFixed(2)
      },
      getDay () {
        const today = new Date();
        const year = today.getFullYear();
        const month = today.getMonth() + 1; // 月份是从 0 开始的,因此需要加 1
        const day = today.getDate();
        return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
      },
      addZD () {
        if (!this.form.btDate) return this.$message.warning('请选择退租日期')
@@ -313,6 +327,7 @@
          renterName: this.info.renterName,
          renterId: this.info.renterId,
          billType: 1,
          feeType: 0,
          billTypeCopy: 1
        }, { startDate: this.info.startDate, endDate: this.form.btDate })
      },
@@ -333,16 +348,18 @@
              return item
            }
          })
          this.countData()
        }).finally(() => {
          this.loading = false
        })
      },
      getObjS (obj) {
        this.info.terminateList.push(obj)
        this.info.terminateList.forEach(item => {
          item.receivableFee = Number(item.receivableFee) + 1
          item.receivableFee = Number(item.receivableFee) - 1
        })
        // this.info.terminateList.forEach(item => {
        //   item.receivableFee = Number(item.receivableFee) + 1
        //   item.receivableFee = Number(item.receivableFee) - 1
        // })
        this.countData()
      },
      confirm () {
        this.$refs.form.validate((valid) => {
@@ -384,6 +401,7 @@
        if (Number(num) > row.receivableFeeCopy) {
          row.receivableFee = ''
          row.price = 0
          this.countData()
          this.$message.warning('不能大于原始应收付金额')
        } else {
          if (num) {
@@ -409,9 +427,9 @@
          } else {
            row.price = 0
            row.billType = row.billTypeCopy
            console.log('billTypeCopy', row.billTypeCopy)
          }
          row.price = Math.abs(row.price);
          this.countData()
        }
      }
    }