MrShi
2024-11-30 22e97d76d38070506accdeee4ef78c919fd3cf78
开发
已添加1个文件
已修改13个文件
626 ■■■■ 文件已修改
admin/.env 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.test 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/contract.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/ywContractRevenue.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/contract/components/addCollectionBill.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/contract/components/terminateLease.vue 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/bull.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/components/bullDetail.vue 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/components/bullEdit.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/components/details.vue 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/components/flowingWater.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/finance/payments.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env
@@ -10,4 +10,4 @@
VUE_APP_API_PREFIX = '/gateway_interface'
# é¡¹ç›®åç§°
VUE_APP_TITLE = '阜宁文体中心'
VUE_APP_TITLE = '租赁平台'
admin/.env.production
@@ -1,4 +1,4 @@
# ç”Ÿäº§çŽ¯å¢ƒé…ç½®
NODE_ENV = 'production'
# VUE_APP_API_URL  = 'http://10.50.250.178:8088/gateway_interface'
# VUE_APP_API_URL  = 'http://192.168.0.173/gateway_interface'
admin/.env.test
@@ -5,4 +5,4 @@
VUE_APP_API_URL  = 'http://192.168.0.162:10010/'
# VUE_APP_API_URL  = 'http://192.168.0.136:10010/'
# VUE_APP_API_URL  = 'http://192.168.0.108:10030/'
admin/src/api/contract.js
@@ -36,3 +36,9 @@
export function getYwContractBillById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywContractBill/${id}`)
}
// å¯é€€æ¬¾è´¦å•
export function getCanBackBill (data) {
  return request.post('/visitsAdmin/cloudService/business/ywContractBill/getCanBackBill', data)
}
admin/src/api/ywContractRevenue.js
@@ -16,3 +16,8 @@
export function close (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywContractRevenue/close?id=${id}`)
}
// æ ¹æ®ID查询
export function getById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywContractRevenue/${id}`)
}
admin/src/views/contract/components/addCollectionBill.vue
@@ -10,7 +10,7 @@
            <div class="main_content">
                <el-form :model="form" label-position="top" ref="form" :rules="rules">
                    <div class="head">
                        <div class="m_title">基础信息</div>
                        <div class="m_title">基础信息-{{time.startDate}}~{{time.endDate}}</div>
                        <div class="tabs">
                            <div class="tab" :class="{ active: form.feeType === 0 }" @click="timeTabClick(0)">周期费用</div>
                            <div class="tab" :class="{ active: form.feeType === 1 }" @click="timeTabClick(1)">一次性费用</div>
@@ -37,6 +37,8 @@
                                type="daterange"
                                range-separator="至"
                                v-model="form.date"
                                :min-date="new Date(time.startDate)"
                                :max-date="new Date(time.endDate)"
                                @change="changeDate"
                                start-placeholder="开始日期"
                                end-placeholder="结束日期"
@@ -109,6 +111,10 @@
          billTypeCopy: 0,
          date: []
        },
        time: {
          startDate: '',
          endDate: ''
        },
        rules: {
          contractCode: [
            { required: true, message: '请输入', trigger: 'blur' }
@@ -136,8 +142,10 @@
      }
    },
    methods: {
      open (title, target) {
      open (title, target, time) {
        this.title = title
        this.time.startDate = time.startDate
        this.time.endDate = time.endDate
        this.getCompany()
        this.visible = true
        // æ–°å»º
admin/src/views/contract/components/terminateLease.vue
@@ -24,6 +24,7 @@
                            </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"
@@ -69,13 +70,14 @@
            <div class="title">
                <span>退租信息</span>
                <div style="display: flex; align-items: center;">
                    <el-button type="primary" @click="$refs.addCollectionBill.open('创建收款账单', { contractCode: info.code, contractId: info.id, renterName: info.renterName, renterId: info.renterId, billType: 0, billTypeCopy: 0, feeType: 0 })">添加收款</el-button>
                    <el-button type="primary" @click="$refs.AddPaymentBill.open('创建付款账单', { contractCode: info.code, contractId: info.id, renterName: info.renterName, renterId: info.renterId, billType: 1, billTypeCopy: 1 })">添加付款</el-button>
                    <el-button type="primary" @click="addZD">添加收款</el-button>
                    <el-button type="primary" @click="addFK">添加付款</el-button>
                </div>
            </div>
            <el-table
                :data="info.terminateList"
                border
                v-loading="loading"
                style="width: 100%; margin-bottom: 15px;">
                <el-table-column
                    prop="code"
@@ -193,7 +195,7 @@
  import AddCollectionBill from './addCollectionBill'
  import AddPaymentBill from './addPaymentBill'
  import { getUserList } from '@/api/system/user'
  import { backRent } from '@/api/contract'
  import { backRent, getCanBackBill } from '@/api/contract'
  export default {
    name: "terminateLease",
    components: {
@@ -236,7 +238,9 @@
        agentList: [],
        receivable: '',
        meet: ''
        meet: '',
        loading: false
      }
    },
    watch: {
@@ -264,28 +268,74 @@
        this.title = title
        this.info = info
        this.form.id = info.id
        this.info.billList.forEach(item => {
        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, 'price', item.receivableFee)
            this.$set(item, 'price', item.needReceivableFee)
          }
        })
        this.info.terminateList = this.info.canBackRentBills.filter(item => {
          if ([0,1,4,5,6].includes(item.costType)) {
            item.billTypeCopy = item.billType
            item.billTypeCopy = JSON.parse(JSON.stringify(item.billType))
            return item
          }
        })
        this.info.depositList = this.info.canBackRentBills.filter(item => {
          if ([2,3,7].includes(item.costType)) {
            item.billTypeCopy = item.billType
            item.billTypeCopy = JSON.parse(JSON.stringify(item.billType))
            return item
          }
        })
        this.getUser()
        this.visible = true
      },
      addZD () {
        if (!this.form.btDate) return this.$message.warning('请选择退租日期')
        this.$refs.addCollectionBill.open('创建收款账单', {
          contractCode: this.info.code,
          contractId: this.info.id,
          renterName: this.info.renterName,
          renterId: this.info.renterId,
          billType: 0,
          billTypeCopy: 0,
          feeType: 0
        }, { startDate: this.info.startDate, endDate: this.form.btDate })
      },
      addFK () {
        if (!this.form.btDate) return this.$message.warning('请选择退租日期')
        this.$refs.AddPaymentBill.open('创建付款账单', {
          contractCode: this.info.code,
          contractId: this.info.id,
          renterName: this.info.renterName,
          renterId: this.info.renterId,
          billType: 1,
          billTypeCopy: 1
        }, { startDate: this.info.startDate, endDate: this.form.btDate })
      },
      changeBtDate (planPayDateEnd) {
        this.loading = true
        getCanBackBill({
          contractId: this.info.id,
          planPayDateEnd
        }).then(res => {
          res.forEach(item => {
            this.$set(item, 'receivableFeeCopy', item.receivableFee)
            this.$set(item, 'receivableFee', item.needReceivableFee)
            this.$set(item, 'price', item.needReceivableFee)
          })
          this.info.terminateList = res.filter(item => {
            if ([0,1,4,5,6].includes(item.costType)) {
              item.billTypeCopy = JSON.parse(JSON.stringify(item.billType))
              return item
            }
          })
        }).finally(() => {
          this.loading = false
        })
      },
      getObjS (obj) {
        this.info.terminateList.push(obj)
@@ -336,34 +386,32 @@
          row.price = 0
          this.$message.warning('不能大于原始应收付金额')
        } else {
          row.price = Number(num) - row.actReceivableFee
          // æ”¶
          if (row.billTypeCopy === 0) {
            if (row.price > 0) {
              row.billType = 0
            } else if (row.price < 0) {
              row.billType = 1
          if (num) {
            row.price = Number(num) - row.actReceivableFee
            // æ”¶
            if (row.billTypeCopy === 0) {
              if (row.price > 0) {
                row.billType = 0
              } else if (row.price < 0) {
                row.billType = 1
              } else {
                row.billType = 0
              }
            } else {
              row.billType = 0
              if (row.price > 0) {
                row.billType = 1
              } else if (row.price < 0) {
                row.billType = 0
              } else {
                row.billType = 1
              }
            }
          } else {
            if (row.price > 0) {
              row.billType = 1
            } else if (row.price < 0) {
              row.billType = 0
            } else {
              row.billType = 1
            }
            row.price = 0
            row.billType = row.billTypeCopy
            console.log('billTypeCopy', row.billTypeCopy)
          }
          // if (row.price > 0) {
          //   row.billType = 0
          // } else if (row.price < 0) {
          //   row.billType = 1
          // }
          row.price = String(row.price)
          if (row.price.indexOf('-') > 0) {
            row.price = row.price.substring(0, row.price.length)
          }
          row.price = Math.abs(row.price);
        }
      }
    }
admin/src/views/finance/bull.vue
@@ -38,24 +38,40 @@
      <el-table-column prop="needReceivableFee" label="需收金额" min-width="100" show-overflow-tooltip />
      <el-table-column label="费用类型" min-width="100" show-overflow-tooltip>
        <template slot-scope="{row}">
          <span v-if="row.feeType === 0">周期费用</span>
          <span v-if="row.feeType === 1">一次性费用</span>
          <span v-if="row.costType === 0">租赁费</span>
          <span v-if="row.costType === 1">物业费</span>
          <span v-if="row.costType === 2">租赁押金</span>
          <span v-if="row.costType === 3">物业押金</span>
          <span v-if="row.costType === 4">水电费</span>
          <span v-if="row.costType === 5">杂项费</span>
          <span v-if="row.costType === 6">其它</span>
          <span v-if="row.costType === 7">保证金</span>
        </template>
      </el-table-column>
      <el-table-column label="是否逾期" min-width="100" show-overflow-tooltip>
        <template slot-scope="{row}">
          <span v-if="row.isOverdue === 0">否</span>
          <span v-if="row.isOverdue === 1">是</span>
          <span v-if="row.isOverdue === 0">未逾期</span>
          <span v-if="row.isOverdue === 1" style="color: red;">已逾期</span>
        </template>
      </el-table-column>
      <el-table-column label="计费周期" min-width="100" show-overflow-tooltip>
      <el-table-column label="计费周期" min-width="200" show-overflow-tooltip>
        <template slot-scope="{row}">
          {{ row.startDate }} ~ {{ row.endDate }}
        </template>
      </el-table-column>
      <el-table-column prop="planPayDate" label="应收日期" min-width="100" show-overflow-tooltip />
      <el-table-column prop="createTime" label="账单来源" min-width="100" show-overflow-tooltip />
      <el-table-column prop="statusName" label="合同状态" min-width="100" fixed="right" show-overflow-tooltip />
      <el-table-column label="账单来源" min-width="100" show-overflow-tooltip>
        <template slot-scope="{row}">
          <span v-if="row.type === 0">合同账单</span>
          <span v-if="row.type === 1">自建账单</span>
        </template>
      </el-table-column>
      <el-table-column label="账单状态" min-width="100" fixed="right" show-overflow-tooltip>
        <template slot-scope="{row}">
          <span v-if="row.status === 0">开启</span>
          <span v-if="row.status === 1" style="color: red;">关闭</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" min-width="120" fixed="right">
        <template slot-scope="{row}">
          <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" v-permissions="['business:category:update']">查看详情</el-button>
@@ -150,6 +166,11 @@
    },
    getList (page) {
      const { pagination, filters } = this
      let form = JSON.parse(JSON.stringify(filters))
      if (form && form.selDate && form.selDate.length > 0) {
        form.planPayDateStart = form.payDate[0]
        form.planPayDateEnd = form.payDate[1]
      }
      this.loading = true
      fetchList({
        model: {
admin/src/views/finance/components/bullDetail.vue
@@ -5,12 +5,13 @@
      <div class="left">
        <span class="mr10">付款方:{{info.customerName}}</span>
        <el-tag type="success" v-if="info.status === 0">开启</el-tag>
        <el-tag type="success" v-if="info.status === 1">关闭</el-tag>
        <el-tag type="info" v-if="info.status === 1">关闭</el-tag>
      </div>
      <el-button plain type="primary" @click="$refs.flowingWater.open(info.billType === 0 ? '创建收款账单' : '创建付款账单', {
      <el-button plain type="primary" @click="$refs.flowingWater.open('创建收支流水', {
        billType: info.billType,
        billId: info.id,
        costType: info.costType,
        receivableFee: info.needReceivableFee,
        costTypeName: returnText(info.costType),
        contractCode: info.contractCode,
        contractId: info.contractId,
@@ -36,19 +37,19 @@
          <div class="val" style="margin-top: 10px;" v-if="info.payStatus === 5">已关闭</div>
        </div>
        <div class="item" style="flex: 1;">
          <div class="la">应收金额(元)</div>
          <div class="la">应{{info.billType === 0 ? '收' : '付'}}金额(元)</div>
          <div class="val" style="margin-top: 10px;">{{info.receivableFee}}</div>
        </div>
        <div class="item" style="flex: 1;">
          <div class="la">实收金额(元)</div>
          <div class="la">实{{info.billType === 0 ? '收' : '付'}}金额(元)</div>
          <div class="val" style="margin-top: 10px;">{{info.actReceivableFee}}</div>
        </div>
        <div class="item" style="flex: 1;">
          <div class="la">需付金额(元)</div>
          <div class="la">需{{info.billType === 0 ? '收' : '付'}}金额(元)</div>
          <div class="val" style="margin-top: 10px;">{{info.needReceivableFee}}</div>
        </div>
        <div class="item" style="flex: 1;">
          <div class="la">应收日期</div>
          <div class="la">应{{info.billType === 0 ? '收' : '付'}}日期</div>
          <div class="val" style="margin-top: 10px;">{{info.planPayDate}}</div>
        </div>
      </div>
@@ -62,9 +63,8 @@
      <div class="title">基础信息</div>
      <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
        <div class="item">
          <div class="la">账单类型</div>
          <div class="val" v-if="info.billType === 0">收款</div>
          <div class="val" v-if="info.billType === 1">付款</div>
          <div class="la">费用类型</div>
          <div class="val">{{returnText(info.costType)}}</div>
        </div>
        <div class="item">
          <div class="la">计费周期</div>
@@ -92,7 +92,7 @@
        </div>
        <div class="item">
          <div class="la">经办人</div>
          <div class="val">张三</div>
          <div class="val">{{info.realname}}</div>
        </div>
        <div class="item">
          <div class="la">所属公司</div>
@@ -126,47 +126,13 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="area"
            label="面积">
            <template slot-scope="{row}">
              {{row.area}}㎡
            </template>
          </el-table-column>
        </el-table>
      </div>
<!--      <div class="title">账单明细</div>-->
<!--      <div class="list" style="background: rgba(0,0,0,0); padding: 0;">-->
<!--        <el-table-->
<!--          :data="tableData"-->
<!--          border-->
<!--          style="width: 100%">-->
<!--          <el-table-column-->
<!--            prop="date"-->
<!--            label="费用类型">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="name"-->
<!--            label="应收/付金额">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="address"-->
<!--            label="实收金额">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="address"-->
<!--            label="需收金额">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="address"-->
<!--            label="计费周期">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="address"-->
<!--            label="应收/付日期">-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="address"-->
<!--            label="备注">-->
<!--          </el-table-column>-->
<!--        </el-table>-->
<!--      </div>-->
      <div class="title">收支流水</div>
      <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
        <el-table
@@ -197,7 +163,7 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="payDateEnd"
            prop="actPayDate"
            label="入账日期">
          </el-table-column>
          <el-table-column
admin/src/views/finance/components/bullEdit.vue
@@ -21,11 +21,11 @@
                <el-input v-model="form.renterName" disabled placeholder="请输入应收金额" v-trim />
            </el-form-item>
            <el-form-item label="房源" prop="ywContractRoomList">
              <el-select v-model="form.ywContractRoomList" multiple placeholder="请选择">
              <el-select v-model="form.ywContractRoomList" @click="clickHouse" multiple placeholder="请选择">
                <el-option
                  v-for="(item, index) in houseList"
                  :key="index"
                  :value="item.id"
                  :value="item.roomId"
                  :label="item.projectName + item.buildingName + item.floorName + item.roomName" />
              </el-select>
            </el-form-item>
@@ -149,6 +149,7 @@
  methods: {
    open (title, target) {
      this.title = title
      this.form.feeType = 0
      this.form.multifileList = []
      this.getListAll()
      this.getCompanyList()
@@ -168,6 +169,11 @@
        }
      })
    },
    clickHouse () {
      if (!this.form.contractId) {
        return this.$message.warning('请先选择合同')
      }
    },
    changeContract (e) {
      this.form.renterName = this.contract.filter(item => {
        if (item.id === e) {
admin/src/views/finance/components/details.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,335 @@
<template>
    <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @close="close"
        @confirm="confirm">
        <div class="home_title">
            <div class="left">
                <span class="mr10">对方单位名称:{{info.customerName}}</span>
                <el-tag type="success" v-if="info.status === 0">开启</el-tag>
                <el-tag type="info" v-if="info.status === 1">关闭</el-tag>
            </div>
            <el-button type="danger" v-if="info.status === 0" @click="closeDW()">关闭流水</el-button>
        </div>
        <div class="line"></div>
        <div class="main">
            <div class="list" style="background: rgba(0,0,0,0); padding: 0; margin-bottom: 0;">
                <div class="item" style="flex: 1;">
                    <div class="la">结清状态</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 0">待收款</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 1">已结清</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 2">部分结清</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 3">待付款</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 4">待退款</div>
                    <div class="val" style="margin-top: 10px;" v-if="info1.payStatus === 5">已关闭</div>
                </div>
                <div class="item" style="flex: 1;">
                    <div class="la">应{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
                    <div class="val" style="margin-top: 10px;">{{info1.receivableFee}}</div>
                </div>
                <div class="item" style="flex: 1;">
                    <div class="la">实{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
                    <div class="val" style="margin-top: 10px;">{{info1.actReceivableFee}}</div>
                </div>
                <div class="item" style="flex: 1;">
                    <div class="la">需{{info.revenueType === 0 ? '收' : '付'}}金额(元)</div>
                    <div class="val" style="margin-top: 10px;">{{info1.needReceivableFee}}</div>
                </div>
                <div class="item" style="flex: 1;">
                    <div class="la">应{{info.revenueType === 0 ? '收' : '付'}}日期</div>
                    <div class="val" style="margin-top: 10px;">{{info1.planPayDate}}</div>
                </div>
            </div>
        </div>
        <div class="tabs">
            <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">流水信息</div>
            <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">关联账单</div>
        </div>
        <div class="main">
            <div class="title">流水信息</div>
            <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
                <div class="item">
                    <div class="la">收支类型</div>
                    <div class="val" v-if="info.revenueType === 0">收入</div>
                    <div class="val" v-if="info.revenueType === 1">支出</div>
                </div>
                <div class="item">
                    <div class="la">入账日期</div>
                    <div class="val">{{info.actPayDate}}</div>
                </div>
                <div class="item">
                    <div class="la">发生额(元)</div>
                    <div class="val">{{info.actReceivableFee}}</div>
                </div>
                <div class="item">
                    <div class="la">账单编号</div>
                    <div class="val">{{info.billCode}}</div>
                </div>
                <div class="item">
                    <div class="la">合同编号</div>
                    <div class="val">{{info.contractCode}}</div>
                </div>
                <div class="item">
                    <div class="la">创建时间</div>
                    <div class="val">{{info.createDate}}</div>
                </div>
                <div class="item">
                    <div class="la">对方公司</div>
                    <div class="val">{{info.customerName}}</div>
                </div>
                <div class="item">
                    <div class="la">经办人</div>
                    <div class="val">{{info.realname}}</div>
                </div>
                <div class="item">
                    <div class="la">流水账户</div>
                    <div class="val">{{info.accountTitle}}</div>
                </div>
                <div class="item">
                    <div class="la">备注</div>
                    <div class="val">{{info.remark}}</div>
                </div>
                <div class="item"></div>
                <div class="item"></div>
            </div>
            <div class="title">关联账单</div>
            <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
                <el-table
                    :data="[info1]"
                    border
                    style="width: 100%">
                    <el-table-column
                        label="费用类型">
                        <template slot-scope="{row}">
                            <span v-if="row.costType === 0">租赁费</span>
                            <span v-if="row.costType === 1">物业费</span>
                            <span v-if="row.costType === 2">租赁押金</span>
                            <span v-if="row.costType === 3">物业押金</span>
                            <span v-if="row.costType === 4">水电费</span>
                            <span v-if="row.costType === 5">杂项费</span>
                            <span v-if="row.costType === 6">其它</span>
                            <span v-if="row.costType === 7">保证金</span>
                        </template>
                    </el-table-column>
                    <el-table-column
                        prop="receivableFee"
                        label="应收/付金额">
                    </el-table-column>
                    <el-table-column
                        prop="actReceivableFee"
                        label="实收金额">
                    </el-table-column>
                    <el-table-column
                        prop="needReceivableFee"
                        label="需收金额">
                    </el-table-column>
                    <el-table-column
                        label="计费周期">
                        <template slot-scope="{row}">
                            {{row.startDate}} ~ {{row.endDate}}
                        </template>
                    </el-table-column>
                    <el-table-column
                        prop="planPayDate"
                        label="应收/付日期">
                    </el-table-column>
                    <el-table-column
                        prop="remark"
                        label="备注">
                    </el-table-column>
                </el-table>
            </div>
            <div class="title">流水附件</div>
            <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
                <el-table
                    :data="info.multifileList"
                    border
                    style="width: 100%">
                    <el-table-column
                        prop="name"
                        label="附件名称">
                    </el-table-column>
                    <el-table-column
                        prop="userName"
                        label="操作人">
                    </el-table-column>
                    <el-table-column
                        prop="createDate"
                        label="操作时间">
                    </el-table-column>
                </el-table>
            </div>
            <div class="title">操作记录</div>
            <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
                <el-table
                    :data="info.editRecordDataVOList"
                    border
                    style="width: 100%">
                    <el-table-column
                        width="200"
                        prop="editUserName"
                        label="操作人">
                    </el-table-column>
                    <el-table-column
                        width="200"
                        prop="editTime"
                        label="操作时间">
                    </el-table-column>
                    <el-table-column
                        prop="editRemark"
                        label="操作内容">
                    </el-table-column>
                </el-table>
            </div>
        </div>
    </GlobalWindow>
</template>
<script>
  import GlobalWindow from '@/components/common/GlobalWindow'
  import BaseOpera from '@/components/base/BaseOpera'
  import { close, getById } from '@/api/ywContractRevenue'
  import { getYwContractBillById } from '@/api/contract'
  export default {
    name: 'details',
    components: {
      GlobalWindow
    },
    extends: BaseOpera,
    data() {
      return {
        id: '',
        activeTabs: '',
        info: {},
        info1: {}
      }
    },
    methods: {
      open (title, id) {
        this.title = title
        this.id = id
        this.getDetails()
      },
      getDetails () {
        getById(this.id)
          .then(res => {
            this.info = res
            this.getDetails1()
          })
      },
      getDetails1 () {
        getYwContractBillById(this.info.billId)
          .then(res => {
            this.info1 = res
            this.visible = true
          })
      },
      tabsClick(val) {
        this.activeTabs = val
      },
      closeDW (id) {
        this.$confirm('确认关闭此流水吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          close(id)
            .then(res => {
              this.getDetails()
            })
        }).catch(() => {
        });
      },
    }
  }
</script>
<style lang="scss" scoped>
    @import '@/assets/style/variables.scss';
    .home_title {
        display: flex;
        justify-content: space-between;
        align-items: center;
        .left {
            font-weight: 500;
            font-size: 16px;
            margin-right: 10px;
            display: flex;
            align-items: center;
            .status {
                padding: 0 6px;
                height: 22px;
                line-height: 22px;
                border-radius: 2px;
                border: 1px solid #00BA92;
                color: #00BA92;
                font-weight: 400;
                font-size: 12px;
                color: #00BA92;
            }
        }
    }
    .remark {
        background: #E8EBF7;
        border-radius: 2px;
        padding: 10px 20px;
        font-size: 16px;
        margin: 20px 0
    }
    .tabs {
        border-bottom: 1px solid #DFE2E8;
        display: flex;
        margin-bottom: 20px;
        .tab {
            height: 58px;
            line-height: 58px;
            font-size: 16px;
            color: #666666;
            margin-right: 30px;
            cursor: pointer;
        }
        .active {
            font-weight: 500;
            color: $primary-color;
            border-bottom: 2px solid $primary-color;
        }
    }
    .line {
        width: 100%;
        margin: 15px 0;
        border-bottom: 1px dashed #eaeaea;
    }
    .main {
        .title {
            font-weight: 500;
            font-size: 18px;
            color: $primary-color;
            margin-bottom: 15px;
        }
        .list {
            display: flex;
            flex-wrap: wrap;
            /*background: #F7F7F7;*/
            border-radius: 2px;
            padding: 0 20px;
            margin-bottom: 20px;
            .item {
                flex: 25%;
                margin-bottom: 20px;
                .la {
                    color: #7f7f7f;
                    margin-bottom: 5px;
                }
            }
        }
    }
</style>
admin/src/views/finance/components/flowingWater.vue
@@ -17,8 +17,8 @@
                        <el-form-item label="计费周期" required>
                            <el-input v-model="form.date" disabled placeholder="请输入" v-trim />
                        </el-form-item>
                        <el-form-item label="应收金额" prop="receivableFee">
                            <el-input v-model="form.receivableFee" placeholder="请输入" v-trim />
                        <el-form-item label="应收金额" required>
                            <el-input v-model="form.receivableFee" disabled placeholder="请输入" v-trim />
                        </el-form-item>
                        <el-form-item label="实收金额" prop="actReceivableFee">
                            <el-input v-model="form.actReceivableFee" placeholder="请输入" v-trim />
@@ -100,6 +100,7 @@
          contractId: '',
          startDate: '',
          endDate: '',
          receivableFee: '',
          date: '',
          companyId: '',
          actReceivableFee: '',
@@ -204,7 +205,6 @@
          }
        })
        const item = file.data[0]
        console.log(item)
        this.form.multifileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() })
      },
      close() {
@@ -214,11 +214,11 @@
        this.title = title
        this.visible = true
        this.$nextTick(() => {
          this.$refs.form.resetFields();
          for (const key in this.form) {
            this.form[key] = target[key]
          }
        })
        console.log(this.form)
        this.getDates(target.companyId)
      }
    }
admin/src/views/finance/payments.vue
@@ -2,7 +2,7 @@
  <div class="main_app">
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" />
    <div class="mt20">
      <el-button @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">导出</el-button>
      <el-button v-permissions="['business:ywpatrolline:create']">导出</el-button>
    </div>
    <el-table v-loading="loading" :data="list" stripe>
      <el-table-column prop="customerName" label="客户名称" min-width="100" show-overflow-tooltip />
@@ -33,7 +33,7 @@
          <span v-if="row.payType === 6">其他</span>
        </template>
      </el-table-column>
      <el-table-column prop="payDateEnd" label="入账日期" show-overflow-tooltip />
      <el-table-column prop="actPayDate" label="入账日期" show-overflow-tooltip />
      <el-table-column prop="createDate" label="创建日期" show-overflow-tooltip />
      <el-table-column prop="realname" label="创建人" show-overflow-tooltip />
      <el-table-column label="状态" min-width="100" fixed="right" show-overflow-tooltip>
@@ -44,7 +44,7 @@
      </el-table-column>
      <el-table-column label="操作" min-width="190" fixed="right">
        <template slot-scope="{row}">
          <el-button type="text">查看详情</el-button>
          <el-button type="text" @click="$refs.details.open('收支流水详情', row.id)">查看详情</el-button>
          <el-button type="text" @click="closeDW(row.id)" v-if="row.status !== 1">关闭流水</el-button>
        </template>
      </el-table-column>
@@ -52,25 +52,25 @@
    <div class="mt20">
      <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
    </div>
    <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" />
    <!--  è¯¦æƒ…  -->
    <Details ref="details" />
  </div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import Edit from './components/paymentsEdit.vue'
import Details from './components/details'
import { fetchList, close } from '@/api/ywContractRevenue'
export default {
  components: {
    Pagination,
    QueryForm,
    Edit
    Details
  },
  data() {
    return {
      loading: false,
      showEdit: false,
      pagination: {
        pageSize: 10,
        page: 1,
@@ -125,10 +125,15 @@
  methods: {
    getList(page) {
      const { pagination, filters } = this
      let form = JSON.parse(JSON.stringify(filters))
      if (form && form.payDate && form.payDate.length > 0) {
        form.payDateStart = form.payDate[0]
        form.payDateEnd = form.payDate[1]
      }
      this.loading = true
      fetchList({
        model: {
          ...filters
          ...form
        },
        capacity: pagination.pageSize,
        page: page || pagination.page,
@@ -153,16 +158,6 @@
      }).catch(() => {
      
      });
    },
    handleEdit(row) {
      this.showEdit = true
      this.$nextTick(() => {
        this.$refs.EditRef.isShowModal = true
        if (row && row.id) {
          this.$refs.EditRef.getDetail(row.id)
        }
      })
    },
    handleDel(row) {
      let message = `确认删除该记录吗?`
admin/src/views/login.vue
@@ -3,8 +3,8 @@
    <img src="@/assets/images/bg@2x.png" class="main_bg" alt="">
    <div class="login_wrap">
      <div class="login_img">
        <!-- <div class="h2">阜宁文体中心</div> -->
        <div class="h3">智慧场馆运维管理系统</div>
         <div class="h3">阜宁文体中心</div>
<!--        <div class="h3">智慧场馆运维管理系统</div>-->
      </div>
      <div class="form_wrap">
        <div class="tabs">