liukangdong
2025-01-24 dc2ed575ac5236f5100baac236254a434dcae8b9
admin/src/views/contract/components/contractEdit.vue
@@ -178,8 +178,15 @@
          </div>
        </div>
        <el-button style="width: 100%;height: 48px;" type="primary" plain @click="generateZL">生成账单明细</el-button>
        <div style="width: 100%; text-align: right; margin-bottom: 10px; margin-top: 15px;" v-if="zlList.length > 0">
          <el-button icon="el-icon-edit" v-if="!isShow" @click="changeEdit(1)">编辑</el-button>
          <el-popconfirm v-if="isShow" title="是否放弃手动修改所填的数据?" @confirm="isShow = false">
            <el-button slot="reference" style="margin-right: 15px;">取消</el-button>
          </el-popconfirm>
          <el-button type="primary" v-if="isShow" @click="changeNum(1)">保存</el-button>
        </div>
        <el-table :data="zlList" class="mt20" stripe>
          <el-table-column label="费用类型" align="center" show-overflow-tooltip>
          <el-table-column label="费用类型" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              <span v-if="row.costType === 0">租赁费</span>
              <span v-if="row.costType === 1">物业费</span>
@@ -191,20 +198,26 @@
              <span v-if="row.costType === 7">保证金</span>
            </template>
          </el-table-column>
          <el-table-column label="期数" align="center" show-overflow-tooltip>
          <el-table-column label="期数" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
            </template>
          </el-table-column>
          <el-table-column label="区间" align="center" show-overflow-tooltip>
          <el-table-column label="区间" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              {{ row.startDate }} ~ {{ row.endDate }}
            </template>
          </el-table-column>
          <el-table-column prop="planPayDate" label="付款日" align="center" show-overflow-tooltip />
          <el-table-column label="应收" align="center" show-overflow-tooltip>
          <el-table-column prop="planPayDate" label="付款日" align="center" :key="Date.now()" show-overflow-tooltip />
          <el-table-column label="应收" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              {{ row.receivableFee }}元
              <span v-if="[2,3].includes(row.costType)">{{ row.totleFee }}元</span>
              <template v-else>
                <span v-if="!isShow">{{ row.totleFee }}元</span>
                <div style="display: flex; align-items: center;" v-if="isShow">
                  <el-input v-model="row.totleFeeCopy" placeholder="请输入"></el-input>元
                </div>
              </template>
            </template>
          </el-table-column>
        </el-table>
@@ -273,8 +286,15 @@
          </div>
        </div>
        <el-button style="width: 100%;height: 48px;" type="primary" plain @click="generateWY">生成账单明细</el-button>
        <div style="width: 100%; text-align: right; margin-bottom: 10px; margin-top: 15px;">
          <el-button icon="el-icon-edit" v-if="!isShow" @click="changeEdit(1)">编辑</el-button>
          <el-popconfirm v-if="isShow" title="是否放弃手动修改所填的数据?" @confirm="isShow = false">
            <el-button slot="reference" style="margin-right: 15px;">取消</el-button>
          </el-popconfirm>
          <el-button type="primary" v-if="isShow" @click="changeNum(2)">保存</el-button>
        </div>
        <el-table :data="wyList" class="mt20" stripe>
          <el-table-column label="费用类型" align="center" show-overflow-tooltip>
          <el-table-column label="费用类型" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              <span v-if="row.costType === 0">租赁费</span>
              <span v-if="row.costType === 1">物业费</span>
@@ -286,20 +306,26 @@
              <span v-if="row.costType === 7">保证金</span>
            </template>
          </el-table-column>
          <el-table-column label="期数" align="center" show-overflow-tooltip>
          <el-table-column label="期数" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              <el-tag type="success" v-if="row.sortnum > 0">{{ row.sortnum }}</el-tag>
            </template>
          </el-table-column>
          <el-table-column label="区间" align="center" show-overflow-tooltip>
          <el-table-column label="区间" align="center" :key="Date.now()" show-overflow-tooltip>
            <template slot-scope="{row}">
              {{ row.startDate }} ~ {{ row.endDate }}
            </template>
          </el-table-column>
          <el-table-column prop="planPayDate" label="付款日" align="center" show-overflow-tooltip />
          <el-table-column prop="receivableFee" label="应收" align="center" show-overflow-tooltip>
          <el-table-column prop="planPayDate" label="付款日" :key="Date.now()" align="center" show-overflow-tooltip />
          <el-table-column label="应收" :key="Date.now()" align="center" show-overflow-tooltip>
            <template slot-scope="{row}">
              {{ row.receivableFee }}元
              <span v-if="[2,3].includes(row.costType)">{{ row.totleFee }}元</span>
              <template v-else>
                <span v-if="!isShow">{{ row.totleFee }}元</span>
                <div style="display: flex; align-items: center;" v-if="isShow">
                  <el-input v-model="row.totleFeeCopy" placeholder="请输入"></el-input>元
                </div>
              </template>
            </template>
          </el-table-column>
        </el-table>
@@ -309,6 +335,7 @@
        </div>
      </div>
    </div>
    <div style="width: 100%; height: 50px;"></div>
    <div class="window__footer">
      <slot name="footer">
        <el-button @click="confirm" :loading="confirmWorking" type="primary">{{ activeTabs === 0 ? '下一步' :
@@ -378,7 +405,6 @@
            advanceDays: ''
          }
        ],
        wyDeposit: '',
        wyPayType: '',
@@ -450,7 +476,8 @@
      ],
      houseLvThree: []
      houseLvThree: [],
      isShow: false
    }
  },
  methods: {
@@ -502,6 +529,39 @@
        this.form.roundedUp = 0
        // this.getHouseTree()
      })
    },
    changeEdit(type) {
      if (type === 1) {
        this.zlList.forEach(item => {
          item.totleFeeCopy = JSON.parse(JSON.stringify(item.totleFee))
        })
        this.isShow = true
      } else if (type === 2) {
        this.isShow = false
      }
    },
    changeNum(type) {
      // 租赁计算
      if (type === 1) {
        let num = 0
        this.zlList.forEach(item => {
          if (item.costType !== 2) {
            num += Number(item.totleFeeCopy)
            item.totleFee = JSON.parse(JSON.stringify(item.totleFeeCopy))
          }
        })
        this.zlPrice = num
      } else if (type === 2) {
        let num = 0
        this.wyList.forEach(item => {
          if (item.costType !== 3) {
            num += Number(item.totleFeeCopy)
            item.totleFee = JSON.parse(JSON.stringify(item.totleFeeCopy))
          }
        })
        this.wyPrice = num
      }
      this.isShow = false
    },
    changePayType(e) {
      if (e === 0) {
@@ -653,7 +713,7 @@
    submit() {
      // 调用新建接口
      this.isWorking = true
      create({ ...this.form })
      create({ ...this.form, ywContractBillDTOList: [...this.wyList, ...this.zlList] })
        .then(res => {
          this.visible = false
          this.$tip.apiSuccess('创建成功')
@@ -711,8 +771,9 @@
          let zlPrice = 0
          let arr = []
          res.forEach(item => {
            item.totleFeeCopy = JSON.parse(JSON.stringify(item.totleFee))
            if (item.costType === 0) {
              zlPrice += item.receivableFee
              zlPrice += item.totleFee
            }
            arr.push(item)
          })
@@ -728,7 +789,8 @@
          let arr = []
          res.forEach(item => {
            if (item.costType === 1) {
              zlPrice += item.receivableFee
              zlPrice += item.totleFee
              item.totleFeeCopy = JSON.parse(JSON.stringify(item.totleFee))
            }
            arr.push(item)
          })
@@ -817,6 +879,7 @@
      this.activeTabs = val
    },
    ctabsClick(val) {
      this.isShow = false
      this.cactiveTabs = val
    },
    handleRent() {