Hwt 3 年之前
父節點
當前提交
727edb6abf

+ 4 - 1
operationSupport/src/router/dynamicMuen.js

@@ -72,7 +72,10 @@ const staticMuen = [
         path: '/landlordReview',
         component: () => import(/* webpackChunkName: "404" */ '@views/ownerManagement/landlordReview/index.vue')
     },
-
+    {
+        path: '/landlordBill',
+        component: () => import(/* webpackChunkName: "404" */ '@views/payService/landlordBill/index.vue')
+    },
     {
         path: '*',
         redirect: '/404'

+ 15 - 5
operationSupport/src/views/buildingManagement/index.vue

@@ -41,7 +41,18 @@
             class="device-search-dropdown"
           >
             <el-dropdown-item command="add">单个添加</el-dropdown-item>
-            <el-dropdown-item command="batchAdd">批量添加
+            <el-dropdown-item command="addTemplate">下载模板</el-dropdown-item>
+            <el-dropdown-item command="batchAdd">
+              <!-- 批量添加 -->
+              <div class="upload_div">
+                <xk-upload
+                  class="upload_class"
+                  @callback="mixins_search"
+                  :params="{ importType: 'BUILDING' }"
+                >
+                  <span slot="content">批量添加</span>
+                </xk-upload>
+              </div>
             </el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
@@ -216,10 +227,9 @@ export default {
       if (command === 'add') {
         this.addOrEdit('add');
       }
-      if (command === 'batchAdd') {
-        alert('批量添加')
-        // this.$router.push('/buildingManagement/pageJump/batchAddoredit');
-        return;
+      if (command == 'addTemplate') {
+        this.__exportExcel('/czc-community/excel/download/template', { importType: 'BUILDING' });
+        return
       }
     },
 

+ 3 - 4
operationSupport/src/views/ownerManagement/landlordManagement/index.vue

@@ -44,7 +44,7 @@
                     <xk-upload
                       class="upload_class"
                       @callback="mixins_search"
-                      :params="{ importType: 'RESIDENT' }"
+                      :params="{ importType: 'LANDLORD' }"
                     >
                       <span slot="content">导入房东</span>
                     </xk-upload>
@@ -243,7 +243,7 @@ export default {
     },
     addOrEdit (todo, row) {
       if (todo == 'edit') {
-
+        debugger
         this.activeData = row.id;
         this.isAdd = false;
       }
@@ -259,8 +259,7 @@ export default {
         return;
       }
       if (command === 'template') {
-        // alert(command)
-        this.__exportExcel('/czc-community/landlord/downTemplate');
+        this.__exportExcel('/czc-community/landlord/downTemplate', { importType: 'LANDLORD' });
         return;
       }
     },

+ 139 - 33
operationSupport/src/views/ownerManagement/landlordManagement/stepPage/add.vue

@@ -243,18 +243,19 @@
                 v-if="items.choice == 1 ? true : flase"
               >
                 <el-cascader
+                  :ref="`getCheckeds`+indexs"
                   :props="{emitPath:false}"
                   :options="options"
                   class="width100"
                   placeholder="请选择区域"
-                  @change="shareScopeChange1"
+                  @change="shareScopeChange1(indexs)"
                   v-model="items.region"
                   clearable
                 ></el-cascader>
               </div>
               <div
                 style="width: 50%;float: left;"
-                v-if="items.choice == 2 ? true : flase"
+                v-if="items.choice == 2 ? true : flase && this.isAdd"
               >
                 <el-cascader
                   :ref="`getChecked`+indexs"
@@ -282,12 +283,14 @@
                 v-model="houseInformation[indexs].billingRules"
                 clearable
                 class="width100"
+                @click.native="houseCommunityRules(indexs)"
               >
+
                 <el-option
-                  v-for="(item, index) in billing"
+                  v-for="(item, index) in houseInformation[indexs].billing"
                   :key="index"
                   :label="item.name"
-                  :value="item.id"
+                  :value="item.value"
                 >{{item.name}}</el-option>
               </el-select>
 
@@ -410,9 +413,15 @@ export default {
           choice: 1,
           billingArea: '',
           billingRules: '',
-          region: []
+          region: [],
+          billing: []//计费规则
         },
       ],
+      // houseCommunity: [
+      //   {
+      //     billing: []
+      //   }
+      // ],
       options: [{
         value: 'zhinan',
         label: '指南',
@@ -621,21 +630,25 @@ export default {
       optionTree: [],
       shareScope: [],
       shareScopeID: [],
+      communityIdTree: [],
+      communityId: []
     }
   },
   methods: {
     shareScopeChange (index) {
-      debugger
+
       var data = this.$refs[`getChecked${index}`][0].getCheckedNodes();
 
-      console.log(data)
+
       this.shareScope = [];
+      this.communityIdTree = [];
       for (let a = 0; a < data.length; a++) {
         if (data[a].children.length != 0) {
           if (data[0].path[0] == data[data.length - 1].path[0]) {
 
             for (let i = 0; i < data.length; i++) {
               this.shareScope.push(data[i].path[1]);
+              this.communityIdTree.push(data[i].path[0]);
             }
 
             // this.houseInformation[index].region = [];
@@ -659,12 +672,14 @@ export default {
             this.houseInformation[index].region = [];
             var houseInformation = [];
             this.shareScope = [];
-            debugger
+            this.communityIdTree = [];
+
             for (let k = 0; k < data.length; k++) {
               if (data[k].path[0] == data[data.length - 1].path[0]) {
                 if (data[k].path[3] != undefined) {
                   houseInformation.push(data[k].path)
                   this.shareScope.push(data[k].path[1])
+                  this.communityIdTree.push(data[k].path[0]);
                 }
 
               }
@@ -680,20 +695,24 @@ export default {
             })
 
 
-            console.log('不同个单元', this.houseInformation[index].region)
+
 
           }
 
         } else {
           this.shareScope = [];
+          this.communityIdTree = [];
           if (data[0].path[0] == data[data.length - 1].path[0]) {
             for (let i = 0; i < data.length; i++) {
               this.shareScope.push(data[i].path[1])
+              this.communityIdTree.push(data[i].path[0]);
             }
           } else {
             this.shareScope = [];
+            this.communityIdTree = [];
             for (let k = 0; k < data.length; k++) {
               this.shareScope.push(data[k].path[1])
+              this.communityIdTree.push(data[k].path[0]);
             }
             this.$nextTick(() => {
               // this.$forceUpdate();
@@ -751,18 +770,53 @@ export default {
 
       }
       this.shareScope = Array.from(new Set(this.shareScope))
+      this.communityIdTree = Array.from(new Set(this.communityIdTree))
       this.shareScopeID[index] = this.shareScope;
-      console.log('shareScope', this.shareScope);
-      console.log('7777', this.shareScopeID)
-
-      // this.$forceUpdate();
+      this.communityId[index] = this.communityIdTree
 
 
       // 判断点击是否为单元
 
 
     },
-    shareScopeChange1 (e) {
+    houseCommunityRules (index) {
+      this.communityRules(index);
+    },
+    // 获取对应社区的规则
+    communityRules (index) {
+      this.$http.get('/czc-charge/scChargeStrategy/list', { communityId: this.communityId[index][0] }).then(({ status, data, msg }) => {
+        if (status == 0) {
+          data.map((item, indexs) => {
+            this.houseInformation[index].billing.push({
+              name: item.chargeName,
+              value: item.id
+            })
+          })
+
+        }
+      })
+    },
+    // 回填规则
+    RescommunityRules (index, communityId) {
+      this.$http.get('/czc-charge/scChargeStrategy/list', { communityId: communityId }).then(({ status, data, msg }) => {
+        if (status == 0) {
+          data.map((item, indexs) => {
+            this.houseInformation[index].billing.push({
+              name: item.chargeName,
+              value: item.id
+            })
+          })
+          console.log('this.houseInformation[index]', this.houseInformation[index])
+
+        }
+      })
+    },
+    shareScopeChange1 (index) {
+
+      var data = this.$refs[`getCheckeds${index}`][0].getCheckedNodes();
+      var id = data[0].path[0];
+      this.RescommunityRules(index, id);
+
     },
     closes () {
       this.$emit('clerOwnerStatus');
@@ -770,9 +824,6 @@ export default {
     addEdit () {
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
-          console.log('formData', this.formData)
-          console.log('effectiveDate', this.effectiveDate);
-          console.log('houseInformation', this.houseInformation[0].region.length)
           var url = '/czc-community/landlord/add';
           var params = {
             name: this.formData.name,
@@ -793,6 +844,30 @@ export default {
             nativePlace: this.formData.nativePlace,
             buildingList: []
           };
+          if (!this.isAdd) {
+            var url = '/czc-community/landlord/update'
+            var params = {
+              id: this.params,
+              name: this.formData.name,
+              phone: this.formData.phone,
+              personnelNumber: this.formData.personnelNumber,
+              sex: this.formData.sex,
+              remarks: this.formData.remark,
+              facePictureUrl: this.formData.facePictureUrl,
+              idType: this.formData.idType,
+              idNumber: this.formData.idNumber,
+              permanentAddress: this.formData.permanentAddress,
+              issuingAuthority: this.formData.issuingAuthority,
+              effectiveDateStart: this.effectiveDate[0],
+              effectiveDateEnd: this.effectiveDate[1],
+              nationality: this.formData.nationality,
+              nation: this.formData.nation,
+              birthDate: this.formData.birthDate,
+              nativePlace: this.formData.nativePlace,
+              buildingList: []
+            };
+          }
+
           for (let i = 0; i < this.houseInformation.length; i++) {
             if (this.houseInformation[i].choice == 1) {
               params.buildingList.push({
@@ -803,17 +878,16 @@ export default {
                 houseList: []
               })
             } else if (this.houseInformation[i].choice == 2) {
-              debugger
+              console.log('777', this.shareScopeID[i][0] || this.shareScopeID[i][1])
               params.buildingList.push({
                 type: this.houseInformation[i].choice,
-                buildingId: this.shareScopeID[i],
+                buildingId: this.shareScopeID[i][0] || this.shareScopeID[i][1],
                 strategyId: this.houseInformation[i].billingRules,
                 area: this.houseInformation[i].billingArea,
                 houseList: []
               })
               for (let j = 0; j < this.houseInformation[i].region.length; j++) {
-                debugger
-                console.log(this.houseInformation[i].region[j][2])
+
                 params.buildingList[i].houseList.push({
                   houseId: this.houseInformation[i].region[j][3] || this.houseInformation[i].region[j][2]
                 })
@@ -831,7 +905,7 @@ export default {
             }
           }).catch(() => { });
         } else {
-          console.log('111', this.$valid)
+
           return false;
         }
       });
@@ -842,13 +916,19 @@ export default {
         choice: 1,
         billingArea: '',
         billingRules: '',
-        region: ''
+        region: [],
+        billing: []
       })
     },
     closeshouseInformation (id) {
+
       if (this.houseInformation.length > 1) {
         this.houseInformation.splice(id, 1);
       }
+
+      if (this.shareScopeID.length > 1 && this.shareScopeID[id] != undefined) {
+        this.shareScopeID.splice(id, 1);
+      }
     },
     getOrgTreeList () {
       this.$http
@@ -857,7 +937,7 @@ export default {
           if (status === 0 && data) {
             this.optionTree = data;
             this.scopeList = data;
-            console.log('44', this.houseInformation)
+
             this.TreeList();
           }
         });
@@ -878,10 +958,10 @@ export default {
         }
       }
       if (!this.isAdd) {
-        console.log('id', this.params)
+
         this.getDetails();
       }
-      console.log('55555', this.options);
+
     },
 
 
@@ -890,7 +970,7 @@ export default {
       this.$http.get(url).then(({ data, status, msg }) => {
         if (status == 0) {
           this.effectiveDate = [];
-          console.log('data', data);
+
           this.formData.name = data.name;
           this.formData.phone = data.phone;
           this.formData.personnelNumber = data.personnelNumber;
@@ -907,25 +987,51 @@ export default {
           this.formData.birthDate = data.birthDate;
           this.formData.nativePlace = data.nativePlace
 
-          this.houseInformation = [];
+
+          let newHouse = [];
           for (let i = 0; i < data.buildingList.length; i++) {
+
+
+
             if (data.buildingList[i].type == 1) {
-              this.houseInformation.push({
+
+              newHouse.push({
                 choice: data.buildingList[i].type,
                 region: data.buildingList[i].buildingId + '',
                 billingRules: data.buildingList[i].strategyId,
                 billingArea: data.buildingList[i].area,
+                billing: [],
               })
+              this.RescommunityRules(i, data.buildingList[i].communityId);
+
             } else if (data.buildingList[i].type == 2) {
-              this.houseInformation.push({
+              this.shareScopeID[i] = [data.buildingList[i].buildingId + ''];
+              var communityId = data.buildingList[i].communityId + '';
+              var buildingId = data.buildingList[i].buildingId + '';
+
+              var resDateRegion = []
+              var houseId = [];
+              var unitName = [];
+              for (let k = 0; k < data.buildingList[i].houseList.length; k++) {
+                houseId.push(data.buildingList[i].houseList[k].houseId);
+                unitName.push(data.buildingList[i].houseList[k].unitName)
+                if (unitName.length != 0) {
+                  resDateRegion[k] = [communityId, buildingId, unitName[k], houseId[k]];
+                } else {
+                  resDateRegion[k] = [communityId, buildingId, houseId[k]];
+                }
+              }
+              newHouse.push({
                 choice: data.buildingList[i].type,
-                region: data.buildingList[i].houseIds,
+                region: resDateRegion,
                 billingRules: data.buildingList[i].strategyId,
                 billingArea: data.buildingList[i].area,
+                billing: [],
               })
             }
+            this.RescommunityRules(i, data.buildingList[i].communityId);
           }
-
+          this.houseInformation = newHouse;
         }
       })
     }
@@ -933,7 +1039,7 @@ export default {
   created () {
     this.getOrgTreeList();
     if (!this.isAdd) {
-      console.log('id', this.params)
+      // this.params  用户的id
       this.getDetails();
     }
 

+ 663 - 0
operationSupport/src/views/payService/landlordBill/index.vue

@@ -0,0 +1,663 @@
+<!-- 租户账单 -->
+<template>
+  <div class=" main">
+    <!-- <organ-tree @organId="currentOrganId"></organ-tree> -->
+    <div class="content-right">
+      <div class="search">
+        <el-radio-group
+          v-model="chargeStatus"
+          @change="changeRadio"
+          class="zz-tab-button"
+        >
+          <el-radio-button label="1">未交账单</el-radio-button>
+          <el-radio-button label="2">已交账单</el-radio-button>
+        </el-radio-group>
+        <el-input
+          clearable
+          placeholder="输入费用名称"
+          class="search-input"
+          v-trim
+          v-model.trim="mixins_query.chargeName"
+        ></el-input>
+        <el-select
+          v-model="mixins_query.communityId"
+          placeholder="所属社区"
+          clearable
+          class="width120"
+        >
+          <!-- communityList -->
+          <el-option
+            v-for="(item,indx) in communityList"
+            :key="indx"
+            :label="item.label"
+            :value="item.id"
+          >
+          </el-option>
+          <!-- <el-option
+            label="物业费"
+            :value="1"
+          ></el-option>
+          <el-option
+            label="水费"
+            :value="2"
+          ></el-option>
+          <el-option
+            label="电费"
+            :value="3"
+          ></el-option>
+          <el-option
+            label="卫生费"
+            :value="6"
+          ></el-option>
+          <el-option
+            label="车位管理费"
+            :value="4"
+          ></el-option>
+          <el-option
+            label="其他费用"
+            :value="7"
+          ></el-option> -->
+        </el-select>
+        <!-- 已交 -->
+        <template v-if="chargeStatus == 2">
+          <!-- <el-select
+            v-model="mixins_query.payType"
+            class="width120"
+            placeholder="缴费方式"
+            clearable
+          >
+            <el-option
+              label="微信"
+              :value="7"
+            ></el-option>
+            <el-option
+              label="支付宝"
+              :value="2"
+            ></el-option>
+            <el-option
+              label="现金"
+              :value="3"
+            ></el-option>
+            <el-option
+              label="刷卡"
+              :value="6"
+            ></el-option>
+            <el-option
+              label="其他"
+              :value="5"
+            ></el-option>
+          </el-select> -->
+          <el-date-picker
+            v-model="times"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="选择开始日期"
+            end-placeholder="选择结束日期"
+            @change="effectiveDateToggle"
+          ></el-date-picker>
+        </template>
+
+        <el-date-picker
+          v-else
+          v-model="times"
+          value-format="yyyy-MM"
+          type="monthrange"
+          range-separator="至"
+          start-placeholder="选择开始月"
+          end-placeholder="选择结束月"
+          @change="effectiveDateToggle"
+        ></el-date-picker>
+
+        <el-button
+          class="search-btn"
+          type="primary"
+          @click="mixins_search()"
+          icon="el-icon-search"
+        >搜索</el-button>
+        <div class="search-icon">
+
+          <!-- v-show="chargeStatus == 1 && chiData.type === 'room'" -->
+          <el-tooltip
+            class="item"
+            effect="light"
+            placement="bottom"
+            content="临时收款"
+          >
+            <i
+              class="zoniot_font zoniot-icon-linshishoukuan"
+              @click="collections('temporary')"
+            ></i>
+          </el-tooltip>
+          <el-dropdown
+            type="primary"
+            @command="addCommand"
+          >
+            <span class="zoniot_font zoniot-icon-tianjia2"></span>
+            <el-dropdown-menu
+              slot="dropdown"
+              hide-on-click="false"
+              class="device-search-dropdown"
+            >
+              <el-dropdown-item command="batchAdd">
+                <div class="upload_div">
+                  <xk-upload
+                    class="upload_class"
+                    @callback="mixins_search"
+                    :params="{ importType: 'BILL' }"
+                  >
+                    <span slot="content">批量导入</span>
+                  </xk-upload>
+                </div>
+              </el-dropdown-item>
+              <el-dropdown-item command="template">下载模板</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+          <el-tooltip
+            v-show="chargeStatus == 1"
+            class="item"
+            effect="light"
+            placement="bottom"
+            content="批量收款"
+          >
+            <i
+              class="zoniot_font zoniot-icon-piliangshoukuan"
+              @click="collections('bulk')"
+            ></i>
+          </el-tooltip>
+          <el-tooltip
+            class="item"
+            effect="light"
+            placement="bottom"
+            content="导出"
+          >
+            <i
+              class="zoniot_font zoniot-icon-daochu2"
+              @click="exportExcel"
+            ></i>
+          </el-tooltip>
+        </div>
+      </div>
+      <zz-table
+        v-if="statusTable"
+        :settings="{ showCheckbox: chargeStatus == 1, showIndex: chargeStatus == 2, stripe: true }"
+        :cols="chargeStatus == 1 ? cols : statusCols"
+        :data="mixins_list"
+        :pageset="mixins_pageset"
+        @page-change="pageChange"
+        :selectable="selectable"
+        @selection-change="selectionChange"
+      >
+        <template
+          slot-scope="scope"
+          slot="payBeginTime"
+        >
+          {{ typeTimeTransition(scope.row.payBeginTime, scope.row.payEndTime) }}
+        </template>
+
+        <template
+          slot-scope="scope"
+          slot="opt"
+        >
+          <div class="opt">
+            <el-tooltip
+              v-show="chargeStatus == 1"
+              class="item"
+              effect="light"
+              placement="bottom"
+              content="收款"
+            >
+              <i
+                class="zoniot_font zoniot-icon-shoukuan"
+                @click="collections('single', scope.row)"
+              ></i>
+            </el-tooltip>
+            <el-tooltip
+              v-show="chargeStatus == 1"
+              class="item"
+              effect="light"
+              placement="bottom"
+              content="修改金额"
+            >
+              <i
+                class="zoniot_font zoniot-icon-koufeijilu"
+                @click="editAmount(scope.row)"
+              ></i>
+            </el-tooltip>
+            <el-tooltip
+              v-show="chargeStatus == 1"
+              class="item"
+              effect="light"
+              placement="bottom"
+              content="删除"
+            >
+              <i
+                class="zoniot_font zoniot-icon-shanchu redText"
+                @click="deluserbyidFn(scope.row.id)"
+              ></i>
+            </el-tooltip>
+            <el-tooltip
+              v-show="chargeStatus == 2"
+              class="item"
+              effect="light"
+              placement="bottom"
+              content="详情"
+            >
+              <i
+                class="zoniot_font zoniot-icon-xiangqing"
+                @click="lookDetails(scope.row)"
+              ></i>
+            </el-tooltip>
+          </div>
+        </template>
+      </zz-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import list from '@/utils/list.js';
+
+export default {
+  mixins: [list],
+  name: 'propertyFee',
+  data () {
+    return {
+      mixins_querys: {
+        chargeType: '',
+        communityId: ''
+      },
+      // currentId: '',
+      cols: [
+        {
+          label: '订单号',
+          prop: 'billNumber'
+        },
+        {
+          label: '地址',
+          prop: 'assets'
+        },
+        {
+          label: '业主',
+          prop: 'residentName',
+          width: '100'
+        },
+        {
+          label: '费用名称',
+          prop: 'chargeName',
+          width: '200'
+        },
+        {
+          label: '计费日期',
+          prop: 'payBeginTime',
+          slot: 'payBeginTime',
+          width: '150'
+        },
+        {
+          label: '费用金额(元)',
+          prop: 'amount'
+        },
+        {
+          label: '滞纳金(元)',
+          prop: 'lateFee'
+        },
+
+        {
+          label: '应收金额(元)',
+          prop: 'receivableAmount'
+        },
+        {
+          label: '缴费状态',
+          prop: 'chargeStatusDict'
+        },
+        {
+          label: '操作',
+          prop: 'id',
+          slot: 'opt'
+        }
+      ],
+      statusCols: [
+        {
+          label: '订单号',
+          prop: 'billNumber'
+        },
+        {
+          label: '地址',
+          prop: 'assets'
+        },
+        {
+          label: '住户',
+          prop: 'residentName'
+        },
+        {
+          label: '费用名称',
+          prop: 'chargeName'
+        },
+        {
+          label: '计费日期',
+          prop: 'payBeginTime',
+          slot: 'payBeginTime',
+          width: '150'
+        },
+        {
+          label: '应收金额(元)',
+          prop: 'receivableAmount'
+        },
+        {
+          label: '实收金额(元)',
+          prop: 'receivedAmount'
+        },
+        {
+          label: '付款方式',
+          prop: 'payTypeDict'
+        },
+        {
+          label: '缴费状态',
+          prop: 'chargeStatusDict'
+        },
+        {
+          label: '缴费时间',
+          prop: 'chargeDate',
+          width: '150'
+        },
+        {
+          label: '操作',
+          prop: 'id',
+          slot: 'opt'
+        }
+      ],
+      chargeStatus: 1,
+      chiData: {
+        type: '',
+        value: '',
+        address: ''
+      },
+      mixins_post: 'post',
+      selectRow: [],
+      statusTable: true,
+      times: [],
+      communityList: [],
+    };
+  },
+  methods: {
+    //获取社区名称下拉列表
+    communityNameList () {
+      this.communityList = [];
+      this.$http.get('/czc-community/assets/community/list', {}).then((res) => {
+        res.data.map((res) => {
+          this.communityList.push({
+            label: res.communityName,
+            id: res.id
+          })
+        });
+      });
+    },
+    mixins_search () {
+      this.mixins_pageset.pageNum = 1;
+      if (!!this.mixins_querys.chargeType) {
+        this.mixins_query.chargeType = this.mixins_querys.chargeType;
+      } else {
+        this.mixins_query.chargeType = '1,2,3,4,5,6,7';
+      }
+      if (this.chargeStatus == 1) {
+        this.mixins_query.payType = '';
+      }
+
+      this.getList();
+    },
+    editAmount (row) {
+      new Promise((resolve) => {
+        this.$store.dispatch('addPopup', {
+          url: '/payService/propertyFee/stepPage/editAmount.vue',
+          width: '550px',
+          height: '180px',
+          props: {
+            data: row,
+            callback: resolve
+          },
+          title: '修改应收金额'
+        });
+      }).then(() => {
+        this.mixins_search();
+      });
+    },
+    collections (todo, row) {
+      new Promise((resolve) => {
+        let title = '',
+          hideStar,
+          height = '300px',
+          width = '900px';
+        if (todo == 'temporary') {
+          title = '临时收费';
+          hideStar = false;
+          height = '300px';
+          width = '550px';
+          if (this.mixins_query.communityId == undefined) {
+            this.$message.error('请先选择社区');
+            return
+          }
+        } else if (todo == 'bulk') {
+          if (!this.selectRow.length) {
+            this.$message.error('您尚未选择要收款项,请选择后再操作批量');
+            return;
+          }
+          let tag = false;
+          this.selectRow.map((item) => {
+            if (this.selectRow[0].houseId == item.houseId) {
+              tag = true;
+            } else {
+              tag = false;
+            }
+          });
+          if (!tag) {
+            this.$message.error('选择同一房间后再操作批量');
+            return;
+          }
+
+          title = '批量收款';
+          hideStar = true;
+          height = '528px';
+          width = '900px';
+        } else if (todo == 'single') {
+          title = '收款';
+          hideStar = true;
+          height = '614px';
+          width = '614px';
+        }
+
+        this.$store.dispatch('addPopup', {
+          url: '/payService/landlordBill/stePage/' + todo + '.vue',
+          // url: '/payService/propertyFee/stepPage/single.vue',
+          width: width,
+          height: height,
+          props: {
+            data: row,
+            selectRow: this.selectRow,
+            chiData: this.chiData,
+            tabList: todo,
+            communityId: this.mixins_query.communityId,
+            callback: resolve
+          },
+          hideStar: hideStar,
+          title: title
+        });
+      }).then(() => {
+        this.mixins_search();
+      });
+    },
+    effectiveDateToggle (va) {
+      let arr = va;
+      if (!arr) {
+        arr = ['', ''];
+      }
+      this.mixins_query.startTime = arr[0];
+      this.mixins_query.endTime = arr[1];
+    },
+    lookDetails (row) {
+      new Promise((resolve) => {
+        this.$store.dispatch('addPopup', {
+          url: '/payService/propertyFee/stepPage/details.vue',
+          width: '615px',
+          height: '581px',
+          props: {
+            id: row.id,
+            callback: resolve
+          },
+          showConfirmButton: true,
+          showCancelButton: true,
+          hideStar: true,
+          title: '账单详情'
+        });
+      }).then(() => {
+        this.mixins_search();
+      });
+    },
+    deluserbyidFn (id) {
+      const h = this.$createElement;
+      this.$msgBox(`删除账单`, '删除后将无法恢复,请问是否继续?')
+        .then(() => {
+          this.$http.get('/czc-charge/charge/bill/delete', { billId: id }).then(({ status, data, msg }) => {
+            if (0 === status) {
+              this.$message({
+                type: 'success',
+                message: '删除成功!'
+              });
+              this.mixins_search();
+            } else {
+              this.$message.error(msg);
+            }
+          });
+        })
+        .catch(() => { });
+    },
+    selectionChange (val) {
+      this.selectRow = val;
+    },
+    // currentOrganId (data) {
+    //   this.currentId = data || '';
+    // },
+    changeRadio () {
+      this.statusTable = false;
+      this.$nextTick(() => {
+        this.statusTable = true;
+      });
+      this.times = [];
+      this.Object_Set(['startTime', 'endTime', 'chargeStatus'], ['', '', this.chargeStatus]);
+      this.mixins_search();
+    },
+    addCommand (command) {
+      if (command === 'template') {
+        this.__exportExcel('/sc-community/excel/download/template', { importType: 'BILL' });
+        return;
+      }
+    },
+    exportExcel () {
+      this.__exportExcel('/czc-charge/charge/bill/export/excel', this.mixins_query);
+    },
+    typeTimeTransition (start, end) {
+      let text = '';
+      if (!!end) {
+        let f = new Date(start).getMonth(),
+          l = new Date(end).getMonth();
+        if (f == l) {
+          text = `${this.$moment(new Date(start)).format('YYYY年M月')}`;
+        } else {
+          text = `${this.$moment(new Date(start)).format('YYYY年M月')}-${this.$moment(new Date(end)).format('YYYY年M月')}`;
+        }
+      }
+
+      return text;
+    },
+    selectable (row, index) {
+      return true;
+    },
+    Object_Set (thisObj, val, editThisObj) {
+      if (thisObj instanceof Array && val instanceof Array) {
+        if (!!editThisObj) {
+          thisObj.map((item, index) => {
+            this[editThisObj][item] = val[index];
+          });
+        } else {
+          thisObj.map((item, index) => {
+            this['mixins_query'][item] = val[index];
+          });
+        }
+      } else {
+        if (!!editThisObj) {
+          this[editThisObj][thisObj] = val;
+        } else {
+          this['mixins_query'][thisObj] = val;
+        }
+      }
+    }
+  },
+  watch: {
+    // currentId (newValue, oldValue) {
+    //   this.Object_Set(['communityId', 'buildingId', 'unitName', 'houseId'], ['', '', '', '']);
+    //   if (newValue.type) {
+    //     this.chiData.type = newValue.type;
+    //     if (newValue.type === 'community') {
+    //       this.Object_Set(['communityId'], [newValue.communityId]);
+    //       this.Object_Set(['value', 'address'], [newValue.communityId, newValue.communityName], 'chiData');
+    //     } else if (newValue.type === 'building') {
+    //       this.Object_Set(['communityId', 'buildingId'], [newValue.communityId, newValue.buildingId]);
+    //       this.Object_Set(
+    //         ['value', 'address'],
+    //         [newValue.buildingId, newValue.communityName + ' ' + newValue.buildingName],
+    //         'chiData'
+    //       );
+    //     } else if (newValue.type === 'unit') {
+    //       this.Object_Set(
+    //         ['communityId', 'buildingId', 'unitName'],
+    //         [newValue.communityId, newValue.buildingId, newValue.unitId]
+    //       );
+    //       this.Object_Set(
+    //         ['value', 'address'],
+    //         [
+    //           newValue.buildingId + ':' + newValue.unitId,
+    //           newValue.communityName + ' ' + newValue.buildingName + ' ' + newValue.unitName
+    //         ],
+    //         'chiData'
+    //       );
+    //     } else if (newValue.type === 'room') {
+    //       this.Object_Set(
+    //         ['communityId', 'buildingId', 'unitName', 'houseId'],
+    //         [newValue.communityId, newValue.buildingId, newValue.unitId, newValue.houseId]
+    //       );
+    //       this.Object_Set(
+    //         ['value', 'address'],
+    //         [
+    //           newValue.houseId,
+    //           newValue.communityName + ' ' + newValue.buildingName + ' ' + newValue.unitName + ' ' + newValue.houseName
+    //         ],
+    //         'chiData'
+    //       );
+    //     }
+    //   }
+    //   this.mixins_search();
+    // }
+  },
+  created () {
+    this.mixins_dataUrl = '/czc-charge/charge/bill/page'; // 分页查询接口
+    this.mixins_query = {
+      chargeStatus: this.chargeStatus,
+      chargeType: '1,2,3,4,5,6,7',
+      payType: '',
+      value: '1'
+    };
+    this.mixins_search();
+    this.communityNameList();
+  }
+};
+</script>
+<style lang='scss' scoped >
+@import '@assets/css/public-style.scss';
+.search {
+    .zz-tab-button {
+        margin-right: 20px;
+    }
+    .width120 {
+        width: rem(120);
+    }
+}
+</style>

+ 226 - 0
operationSupport/src/views/payService/landlordBill/stePage/bulk.vue

@@ -0,0 +1,226 @@
+<template>
+  <div>
+    <div class="formContent-item_title marginNone">{{ chiData.address }}</div>
+    <div class="formContent-item_title noneBef">{{ assets }}</div>
+    <zz-table
+      :settings="{ showIndex: true, stripe: true, hidePagination: true }"
+      :cols="cols"
+      :data="tabList"
+    >
+      <template
+        slot-scope="scope"
+        slot="payBeginTime"
+      >
+        {{ typeTimeTransition(scope.row.payBeginTime, scope.row.payEndTime) }}
+      </template>
+    </zz-table>
+    <el-form
+      ref="form"
+      :model="formData"
+      :rules="formRules"
+      label-width="110px"
+    >
+      <div class="inline">
+        <el-form-item
+          label="支付方式:"
+          prop="payType"
+        >
+          <el-select
+            placeholder="选择支付方式"
+            v-model="formData.payType"
+          >
+            <el-option
+              label="微信"
+              :value="7"
+            ></el-option>
+            <el-option
+              label="支付宝"
+              :value="2"
+            ></el-option>
+            <el-option
+              label="现金"
+              :value="3"
+            ></el-option>
+            <el-option
+              label="刷卡"
+              :value="6"
+            ></el-option>
+            <el-option
+              label="其他"
+              :value="5"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="应收金额(元):"> {{ fiterSum(tabList, 'receivableAmount') }}</el-form-item>
+        <el-form-item
+          label="实收金额(元):"
+          required="true"
+        > {{ fiterSum(tabList, 'receivableAmount') }} </el-form-item>
+      </div>
+      <el-form-item
+        label="备注信息:"
+        placeholder="请输入备注信息"
+      >
+        <el-input
+          type="textarea"
+          maxlength="100"
+          show-word-limit
+          resize="none"
+          rows="3"
+          v-model="formData.remark"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+<script >
+export default {
+  props: ['params'],
+  data () {
+    return {
+      cols: [
+        {
+          label: '订单号',
+          prop: 'billNumber'
+        },
+        {
+          label: '费用名称',
+          prop: 'chargeName',
+          width: '200'
+        },
+        {
+          label: '计费日期',
+          prop: 'payBeginTime',
+          slot: 'payBeginTime',
+          width: '150'
+        },
+        {
+          label: '费用金额(元)',
+          prop: 'amount'
+        },
+        {
+          label: '滞纳金(元)',
+          prop: 'lateFee'
+        },
+
+        {
+          label: '应收金额(元)',
+          prop: 'receivableAmount'
+        }
+      ],
+      tabList: [],
+      chiData: {},
+      formData: {
+        payType: '',
+        remark: '',
+        amount: '',
+        billList: [
+          {
+            amount: '',
+            billId: ''
+          }
+        ]
+      },
+      formRules: {
+        payType: [this.$valid.selectRequired('支付方式')]
+      }
+    };
+  },
+  methods: {
+    fiterSum (arr, val) {
+      let v = null;
+      arr.forEach((item) => {
+        v += Number(item[val]);
+      });
+      return Math.floor(v * 100) / 100;
+      // v.toFixed(2)
+    },
+    submit () {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          let billList = this.tabList.map((item, index) => {
+            return {
+              amount: item.amount,
+              billId: item.id
+            };
+          });
+          let installData = {
+            payType: this.formData.payType,
+            remark: this.formData.remark,
+            billList: billList
+          };
+          var loading = this.$loading();
+          this.$http
+            .post('/czc-charge/charge/bill/payee', installData)
+            .then(({ status, msg }) => {
+              if (status == 0) {
+                this.$message.success(msg);
+                this.params.callback();
+                this.$emit('close');
+              } else {
+                this.$message.error(msg);
+              }
+              loading.close();
+            })
+            .catch(() => {
+              loading.close();
+            });
+        }
+      });
+    },
+    getTable (list) {
+      let ids = [];
+      list.map((item) => {
+        ids.push(item.id);
+      });
+      this.$http
+        .post('/czc-charge/charge/bill/findUserBillDetailList', ids)
+        .then((res) => {
+          this.tabList = res;
+        })
+        .catch(() => {
+          loading.close();
+        });
+    },
+    typeTimeTransition (start, end) {
+      let text = '';
+      if (!!end) {
+        let f = start.slice(5, 7),
+          l = end.slice(5, 7);
+        if (Number(f) == Number(l)) {
+          text = start;
+        } else {
+          text = `${start.slice(0, 8)}-${end.slice(0, 8)}`;
+        }
+      }
+
+      return text;
+    }
+  },
+  created () {
+    if (this.params.selectRow.length) {
+      this.getTable(this.params.selectRow);
+    }
+
+    this.chiData = this.params.chiData;
+  }
+};
+</script>
+<style lang="scss" scoped>
+.marginNone {
+    margin-bottom: 0;
+}
+.zz-table {
+    margin-bottom: 20px;
+}
+.noneBef {
+    margin-top: 5px;
+    &::before {
+        content: none;
+    }
+}
+.inline {
+    display: flex;
+    justify-content: space-between;
+}
+</style>

+ 180 - 0
operationSupport/src/views/payService/landlordBill/stePage/details.vue

@@ -0,0 +1,180 @@
+<template>
+  <div class="lookDetail">
+    <div class="formContent-item_title">{{ thisItem.billNumber }}-{{ thisItem.assets }}</div>
+    <el-form
+      ref="form"
+      label-width="110px"
+    >
+      <template v-for="(item, index) in formLook">
+        <el-col
+          :span="12"
+          :key="index"
+        >
+          <el-form-item :label="labelType(item.label, item.prop)">
+            <template v-if="item.slot">
+              <template v-if="item.slot == 'assetsArea' && thisItem['chargeType'] == 4">
+                {{ !!thisItem['parkingDetail'] ? thisItem['parkingDetail'] : '--' }}
+              </template>
+              <template v-else-if="item.slot == 'chargeMode'">
+                {{ !!chargeModeValue[thisItem[item.prop]] ? chargeModeValue[thisItem[item.prop]] : '--' }}
+              </template>
+              <template v-else-if="item.slot === 'chargeStatus'">
+                <span
+                  v-if="thisItem['chargeStatus'] == 1"
+                  class="redText"
+                >未缴费</span>
+                <span
+                  v-else
+                  class="greenText"
+                >已缴费</span>
+              </template>
+              <template v-else-if="item.slot === 'payEndTime'">
+                <div style="white-space: nowrap">{{ thisItem['payBeginTime'] }} - {{ thisItem['payEndTime'] }}</div>
+              </template>
+
+              <template v-else>
+                {{ thisItem[item.prop] || '--' }}
+              </template>
+            </template>
+            <template v-else>
+              {{ thisItem[item.prop] || '--' }}
+            </template>
+          </el-form-item>
+        </el-col>
+      </template>
+    </el-form>
+  </div>
+</template>
+<script >
+export default {
+  props: ['params'],
+  data () {
+    return {
+      chargeModeValue: {
+        1: '固定收费',
+        2: '价格*面积收费',
+        4: '单价*用量'
+      },
+      formLook: [
+        {
+          label: '费用名称:',
+          prop: 'chargeName'
+        },
+        {
+          label: '计费标准:',
+          prop: 'chargeModeDict'
+        },
+        {
+          label: '面积(㎡):',
+          prop: 'assetsArea',
+          slot: 'assetsArea'
+        },
+        {
+          label: '单价(元):',
+          prop: 'chargePrice'
+        },
+        {
+          label: '费用金额(元):',
+          prop: 'amount'
+        },
+        {
+          label: '账期:',
+          prop: 'paymentDays'
+        },
+        {
+          label: '账单计费日期:',
+          prop: 'payEndTime',
+          slot: 'payEndTime'
+        },
+        {
+          label: '滞纳金(元):',
+          prop: 'lateFee'
+        },
+        {
+          label: '缴费状态:',
+          prop: 'chargeStatus',
+          slot: 'chargeStatus'
+        },
+        {
+          label: '业主:',
+          prop: 'residentName'
+        },
+        {
+          label: '业主手机号:',
+          prop: 'phone'
+        },
+        {
+          label: '支付方式:',
+          prop: 'payTypeDict'
+        },
+        {
+          label: '收款人:',
+          prop: 'payee'
+        },
+        {
+          label: '收款时间:',
+          prop: 'chargeDate'
+        },
+        {
+          label: '应收金额(元):',
+          prop: 'receivableAmount'
+        },
+        {
+          label: '实收金额(元):',
+          prop: 'receivedAmount'
+        },
+        {
+          label: '备注:',
+          prop: 'remark'
+        }
+      ],
+      thisItem: {}
+    };
+  },
+
+  methods: {
+    getDatali (id) {
+      this.$http
+        .get('/czc-charge/charge/bill/findUserBillDetail', { id: id })
+        .then(({ data, msg, status }) => {
+          if (status == 0) {
+            this.thisItem = data;
+          }
+        })
+        .catch(() => { });
+    },
+    labelType (lab, val) {
+      let type = this.thisItem['chargeType'];
+      if (val == 'assetsArea') {
+        if (type == 2) {
+          lab = '用量(吨):';
+        } else if (type == 3) {
+          lab = '用量(度):';
+        } else if (type == 4) {
+          lab = '车位:';
+        }
+      } else if (val == 'chargePrice') {
+        if (type == 2) {
+          lab = '价格(元/吨):';
+        } else if (type == 3) {
+          lab = '价格(元/度):';
+        }
+      }
+      return lab;
+    }
+  },
+  created () {
+    this.getDatali(this.params.id);
+  }
+};
+</script>
+<style lang="scss" scoped>
+@import '@assets/css/public-style.scss';
+.lookDetail {
+    /deep/ .el-form-item__label,
+    /deep/.el-form-item__content {
+        font-size: 12px;
+        white-space: nowrap;
+    }
+}
+</style>

+ 68 - 0
operationSupport/src/views/payService/landlordBill/stePage/editAmount.vue

@@ -0,0 +1,68 @@
+<template>
+  <el-form
+    ref="form"
+    :model="formData"
+    :rules="formRules"
+    label-width="100px"
+  >
+    <el-form-item
+      label="应收金额"
+      prop="receivableAmount"
+    >
+      <el-input
+        v-model="formData.receivableAmount"
+        placeholder="请输入应收金额"
+      ></el-input>
+    </el-form-item>
+  </el-form>
+</template>
+<script >
+export default {
+  props: ['params'],
+  data () {
+    return {
+      formData: {
+        receivableAmount: '',
+        id: ''
+      },
+      formRules: {
+        receivableAmount: [this.$valid.inputRequired('应收金额')]
+      }
+    };
+  },
+
+  methods: {
+    submit () {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          var loading = this.$loading();
+          let installData = {
+            amount: this.formData.receivableAmount,
+            billId: this.formData.id
+          };
+          this.$http
+            .get('/czc-charge/charge/bill/update/amount', installData)
+            .then(({ status, msg }) => {
+              if (status == 0) {
+                this.$message.success(msg);
+                this.params.callback();
+                this.$emit('close');
+              } else {
+                this.$message.error(msg);
+              }
+              loading.close();
+            })
+            .catch(() => {
+              loading.close();
+            });
+        }
+      });
+    }
+  },
+  created () {
+    Object.assign(this.formData, this.params.data);
+  }
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 274 - 0
operationSupport/src/views/payService/landlordBill/stePage/single.vue

@@ -0,0 +1,274 @@
+<template>
+  <div class="lookDetail">
+    <div class="formContent-item_title">{{ chiData.assets }}</div>
+    <el-form
+      ref="form"
+      :model="formData"
+      :rules="formRules"
+      label-width="110px"
+    >
+      <template v-for="(item, index) in formLook">
+        <el-col
+          :span="12"
+          :key="index"
+        >
+          <el-form-item :label="labelType(item.label, item.prop)">
+            <template v-if="item.slot">
+              <template v-if="item.slot == 'assetsArea' && thisItem['chargeType'] == 4">
+                {{ !!thisItem['parkingDetail'] ? thisItem['parkingDetail'] : '--' }}
+              </template>
+              <template v-else-if="item.slot == 'chargeMode'">
+                {{ !!chargeModeValue[thisItem[item.prop]] ? chargeModeValue[thisItem[item.prop]] : '--' }}
+              </template>
+              <template v-else-if="item.slot == 'chargeStatus'">
+                <span class="redText">未缴费</span>
+              </template>
+              <template v-else-if="item.slot === 'payEndTime'">
+                <div style="white-space: nowrap">{{ typeTimeTransition(thisItem.payBeginTime, thisItem.payEndTime) }}</div>
+              </template>
+              <template v-else>
+                {{ thisItem[item.prop] || '--' }}
+              </template>
+            </template>
+            <template v-else>
+              {{ thisItem[item.prop] || '--' }}
+            </template>
+          </el-form-item>
+        </el-col>
+      </template>
+      <div class="inline">
+        <el-form-item
+          label="支付方式"
+          prop="payType"
+        >
+          <el-select v-model="formData.payType">
+            <el-option
+              label="微信"
+              :value="7"
+            ></el-option>
+            <el-option
+              label="支付宝"
+              :value="2"
+            ></el-option>
+            <el-option
+              label="现金"
+              :value="3"
+            ></el-option>
+            <el-option
+              label="刷卡"
+              :value="6"
+            ></el-option>
+            <el-option
+              label="其他"
+              :value="5"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="应收金额(元)">
+          <div style="white-space: nowrap">{{ thisItem.receivableAmount }}</div>
+        </el-form-item>
+        <el-form-item
+          label="实收金额(元)"
+          required
+        >
+          <el-input
+            oninput="value=value.replace(/[^0-9.]/g,'')"
+            disabled
+            v-model="thisItem.amount"
+          ></el-input>
+        </el-form-item>
+      </div>
+
+      <el-form-item
+        label="备注信息"
+        placeholder="请输入备注信息"
+      >
+        <el-input
+          type="textarea"
+          maxlength="100"
+          v-model="formData.remark"
+          show-word-limit
+          resize="none"
+          rows="3"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+<script >
+export default {
+  props: ['params'],
+  data () {
+    return {
+      chargeModeValue: {
+        1: '固定收费',
+        2: '价格*面积收费',
+        4: '单价*用量'
+      },
+      formLook: [
+        {
+          label: '费用名称:',
+          prop: 'chargeName'
+        },
+        {
+          label: '计费方式:',
+          prop: 'chargeMode',
+          slot: 'chargeMode'
+        },
+        {
+          label: '面积(㎡):',
+          prop: 'assetsArea',
+          slot: 'assetsArea'
+        },
+        {
+          label: '价格(元/月):',
+          prop: 'chargePrice'
+        },
+        {
+          label: '费用金额(元):',
+          prop: 'amount'
+        },
+        {
+          label: '账期:',
+          prop: 'paymentDays'
+        },
+        {
+          label: '滞纳金(元):',
+          prop: 'lateFee'
+        },
+        {
+          label: '缴费状态:',
+          prop: 'chargeStatus',
+          slot: 'chargeStatus'
+        },
+        {
+          label: '业主:',
+          prop: 'residentName'
+        },
+        {
+          label: '业主手机号:',
+          prop: 'phone'
+        },
+        {
+          label: '账单计费日期:',
+          prop: 'payEndTime',
+          slot: 'payEndTime'
+        }
+      ],
+      thisItem: {},
+      chiData: {},
+      formData: {
+        payType: '',
+        remark: '',
+        amount: '',
+        billList: [
+          {
+            amount: '',
+            billId: ''
+          }
+        ]
+      },
+      formRules: {
+        payType: [this.$valid.selectRequired('支付方式')],
+        amount: [this.$valid.inputRequired('实收金额')]
+      }
+    };
+  },
+
+  methods: {
+    submit () {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          var loading = this.$loading();
+          let installData = {
+            payType: this.formData.payType,
+            remark: this.formData.remark,
+            billList: [
+              {
+                amount: this.thisItem.amount,
+                billId: this.thisItem.id
+              }
+            ]
+          };
+          this.$http
+            .post('/czc-charge/charge/bill/payee', installData)
+            .then(({ status, msg }) => {
+              if (status == 0) {
+                this.$message.success(msg);
+                this.params.callback();
+                this.$emit('close');
+              } else {
+                this.$message.error(msg);
+              }
+              loading.close();
+            })
+            .catch(() => {
+              loading.close();
+            });
+        }
+      });
+    },
+    getDatali (id) {
+      this.$http
+        .get('/czc-charge/charge/bill/findUserBillDetail', { id: id })
+        .then(({ data, msg, status }) => {
+          if (status == 0) {
+            this.thisItem = data;
+          }
+        })
+        .catch(() => { });
+    },
+    typeTimeTransition (start, end) {
+      let text = '';
+      if (!!end) {
+        let f = start.slice(5, 7),
+          l = end.slice(5, 7);
+        if (Number(f) == Number(l)) {
+          text = start;
+        } else {
+          text = `${start.slice(0, 8)}-${end.slice(0, 8)}`;
+        }
+      }
+
+      return text;
+    },
+    labelType (lab, val) {
+      let type = this.thisItem['chargeType'];
+      if (val == 'assetsArea') {
+        if (type == 2) {
+          lab = '用量(吨):';
+        } else if (type == 3) {
+          lab = '用量(度):';
+        } else if (type == 4) {
+          lab = '车位:';
+        }
+      } else if (val == 'chargePrice') {
+        if (type == 2) {
+          lab = '价格(元/吨):';
+        } else if (type == 3) {
+          lab = '价格(元/度):';
+        }
+      }
+      return lab;
+    }
+  },
+  created () {
+    this.getDatali(this.params.data.id);
+    this.chiData = this.params.data;
+  }
+};
+</script>
+<style lang="scss" scoped>
+.lookDetail {
+    /deep/ .el-form-item__label,
+    /deep/.el-form-item__content {
+        font-size: 12px;
+        white-space: nowrap;
+    }
+}
+.inline {
+    clear: left;
+    display: flex;
+    justify-content: space-between;
+}
+</style>

+ 222 - 0
operationSupport/src/views/payService/landlordBill/stePage/temporary.vue

@@ -0,0 +1,222 @@
+<template>
+  <el-form
+    ref="form"
+    :model="formData"
+    :rules="formRules"
+    label-width="120px"
+  >
+    <el-form-item
+      label="房东"
+      prop="residentId"
+    >
+      <el-select
+        placeholder="请选择"
+        v-model="formData.residentId"
+        clearable
+        @change="dateLandladyChange"
+      >
+        <!-- dateLandlady -->
+        <el-option
+          v-for="(item, index) in dateLandlady"
+          :key="index"
+          :label="item.name"
+          :value="item.label"
+          @click.native="dateLandladyItemChange(item)"
+        ></el-option>
+      </el-select>
+
+    </el-form-item>
+
+    <el-form-item
+      label="收费楼栋"
+      prop="assetsId"
+    >
+      <el-select
+        placeholder="请选择"
+        v-model="formData.assetsId"
+        clearable
+      >
+        <el-option
+          v-for="(item, index) in dateBuilding"
+          :key="index"
+          :label="item.name"
+          :value="item.id"
+        ></el-option>
+      </el-select>
+
+    </el-form-item>
+
+    <!-- 楼栋已绑定收费项目 -->
+    <!-- <el-form-item
+      label="选择收费项目"
+      prop="chargeType"
+    >
+      <el-select
+        placeholder="选择收费项目"
+        v-model="formData.strategyId"
+        clearable
+        @change="strategyType"
+      >
+        <el-option
+          :label="item.chargeName"
+          :value="item.id"
+          v-for="(item, index) in selectData"
+          :key="index"
+        ></el-option>
+      </el-select>
+    </el-form-item> -->
+    <el-form-item
+      label="收费时间"
+      prop="chargeStartTime"
+      class="chargeStartTime"
+    >
+      <el-date-picker
+        v-model="times"
+        @change="effectiveDateToggle"
+        type="monthrange"
+        range-separator="至"
+        value-format="yyyy-MM"
+        start-placeholder="开始月份"
+        end-placeholder="结束月份"
+      >
+      </el-date-picker>
+    </el-form-item>
+    <el-form-item
+      label="用量"
+      v-if="formData.chargeType == 2 || formData.chargeType == 3"
+    >
+      <el-input v-model="formData.quantity"></el-input>
+    </el-form-item>
+  </el-form>
+</template>
+<script >
+export default {
+  props: ['params'],
+  data () {
+    return {
+      formData: {
+        assetsId: '',//楼栋
+        // strategyId: '',
+        assetsType: 1,
+        chargeType: '',
+        chargeStartTime: '2021-09',
+        chargeEndTime: '2021-09',
+        quantity: '',
+        // landlady: '',//房东
+        residentId: '',//房东
+        residentName: '',
+        billType: '1'
+        // building: '',//楼栋
+      },
+      times: [],
+      selectData: [],
+      dateLandlady: [],
+      dateBuilding: [],
+      formRules: {
+        residentId: [this.$valid.selectRequired('房东')],
+        assetsId: [this.$valid.selectRequired('楼栋')],
+        chargeType: [this.$valid.selectRequired('充值方式')],
+        chargeStartTime: [this.$valid.selectRequired('收费时间')]
+      }
+    };
+  },
+
+  methods: {
+    submit () {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          var loading = this.$loading();
+          this.$http
+            .post('/czc-charge/charge/bill/create', this.formData)
+            .then(({ status, msg }) => {
+              if (status == 0) {
+                this.$message.success(msg);
+                this.params.callback();
+                this.$emit('close');
+              } else {
+                this.$message.error(msg);
+              }
+              loading.close();
+            })
+            .catch(() => {
+              loading.close();
+            });
+        }
+      });
+    },
+    effectiveDateToggle (va) {
+      let arr = va;
+      if (!arr) {
+        arr = ['', ''];
+      }
+      this.formData.chargeStartTime = arr[0];
+      this.formData.chargeEndTime = arr[1];
+    },
+    getSelect () {
+      this.$http
+        .get('/czc-charge/scChargeStrategy/page?pageNum=1&pageSize=100&communityId=' + this.params.communityId)
+        .then(({ data, status, msg }) => {
+          this.selectData = data.list;
+        })
+        .catch(() => { });
+    },
+    strategyType (id) {
+      this.selectData.find((item) => {
+        if (item.id === id) {
+          this.formData.chargeType = item.chargeType;
+        }
+      });
+    },
+    landlord () {
+      this.$http.get('/czc-community/landlord/list').then(({ data, status, msg }) => {
+
+        if (status == 0) {
+          this.dateLandlady = [];
+          for (let i = 0; i < data.length; i++) {
+            this.dateLandlady.push({
+              name: data[i].name,
+              label: data[i].id,
+            })
+          }
+
+          // dateBuilding
+          // /czc-community/landlord/buildingList
+        }
+      })
+    },
+    dateLandladyChange () {
+      this.buildingList();
+    },
+    dateLandladyItemChange (item) {
+      this.formData.residentName = item.name;
+    },
+    buildingList () {
+      this.$http.get('/czc-community/landlord/buildingList', { id: this.formData.residentId }).then(({ data, status, msg }) => {
+
+        if (status == 0) {
+          this.dateBuilding = [];
+          for (let i = 0; i < data.length; i++) {
+            this.dateBuilding.push({
+              name: data[i].buildingName,
+              id: data[i].id
+            })
+          }
+        }
+      })
+    }
+  },
+  created () {
+    this.getSelect();
+    debugger
+    this.formData.assetsId = this.params.chiData.value;
+    this.landlord();
+  }
+};
+</script>
+<style lang="scss" scoped>
+.chargeStartTime {
+    /deep/ .el-date-editor--monthrange.el-input__inner {
+        width: 100%;
+    }
+}
+</style>

+ 6 - 5
operationSupport/src/views/payService/propertyFee/index.vue

@@ -1,3 +1,4 @@
+<!-- 租户账单 -->
 <template>
   <div class="content main">
     <organ-tree @organId="currentOrganId"></organ-tree>
@@ -110,7 +111,6 @@
 
           <!-- v-show="chargeStatus == 1 && chiData.type === 'room'" -->
           <el-tooltip
-            v-show="chargeStatus == 1"
             class="item"
             effect="light"
             placement="bottom"
@@ -406,9 +406,9 @@ export default {
           height = '230px',
           width = '900px';
         if (todo == 'temporary') {
-          title = '设置收费项目';
+          title = '临时收费';
           hideStar = false;
-          height = '350px';
+          height = '270px';
           width = '550px';
         } else if (todo == 'bulk') {
           if (!this.selectRow.length) {
@@ -520,7 +520,7 @@ export default {
     },
     addCommand (command) {
       if (command === 'template') {
-        this.__exportExcel('/czc-community/excel/download/template', { importType: 'BILL' });
+        this.__exportExcel('/sc-community/excel/download/template', { importType: 'BILL' });
         return;
       }
     },
@@ -615,7 +615,8 @@ export default {
     this.mixins_query = {
       chargeStatus: this.chargeStatus,
       chargeType: '1,2,3,4,5,6,7',
-      payType: ''
+      payType: '',
+      value: '2'
     };
   }
 };

+ 2 - 3
operationSupport/src/views/payService/propertyFee/stepPage/temporary.vue

@@ -5,7 +5,7 @@
     :rules="formRules"
     label-width="120px"
   >
-    <el-form-item
+    <!-- <el-form-item
       label="房东"
       prop="landlady"
     >
@@ -15,7 +15,6 @@
         clearable
         @change="dateLandladyChange"
       >
-        <!-- dateLandlady -->
         <el-option
           v-for="(item, index) in dateLandlady"
           :key="index"
@@ -43,7 +42,7 @@
         ></el-option>
       </el-select>
 
-    </el-form-item>
+    </el-form-item> -->
 
     <el-form-item
       label="选择收费项目"