From b2ea9a84701e62c84c6cd497ec9b5b66c85b8834 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 26 十一月 2024 09:18:58 +0800
Subject: [PATCH] 财务

---
 admin/src/api/bill.js                               |   13 
 admin/.env.test                                     |    2 
 admin/src/views/finance/components/flowingWater.vue |  373 +++++++++++++++++++
 admin/src/views/finance/components/bullDetail.vue   |  227 ++++++++---
 admin/package-lock.json                             |  160 ++++----
 admin/src/views/finance/components/bullEdit.vue     |  267 ++++++++-----
 admin/src/views/finance/bull.vue                    |   63 +--
 7 files changed, 809 insertions(+), 296 deletions(-)

diff --git a/admin/.env.test b/admin/.env.test
index 2d37af3..91990ae 100644
--- a/admin/.env.test
+++ b/admin/.env.test
@@ -2,3 +2,5 @@
 NODE_ENV = 'production'
 
 # VUE_APP_API_URL  = 'http://192.168.5.13/gateway_interface'
+
+VUE_APP_API_URL  = 'http://192.168.0.162:10010/'
diff --git a/admin/package-lock.json b/admin/package-lock.json
index ff48650..88eda86 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -1876,6 +1876,63 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1883,6 +1940,28 @@
           "dev": true,
           "requires": {
             "minipass": "^3.1.1"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.3",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
+          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
           }
         }
       }
@@ -13904,87 +13983,6 @@
           "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
           "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
           "dev": true
-        }
-      }
-    },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.3",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
-      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
         }
       }
     },
diff --git a/admin/src/api/bill.js b/admin/src/api/bill.js
new file mode 100644
index 0000000..b5ca07f
--- /dev/null
+++ b/admin/src/api/bill.js
@@ -0,0 +1,13 @@
+import request from '@/utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywContractBill/page', data, {
+    trim: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywContractBill/create', data)
+}
diff --git a/admin/src/views/finance/bull.vue b/admin/src/views/finance/bull.vue
index c0aea32..99cc8ed 100644
--- a/admin/src/views/finance/bull.vue
+++ b/admin/src/views/finance/bull.vue
@@ -7,9 +7,9 @@
         <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">浠樻璐﹀崟</div>
       </div>
       <div class="btns">
-        <el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
+        <el-button type="primary" @click="$refs.EditRef.open('鍒涘缓鏀舵璐﹀崟')" icon="el-icon-plus"
           v-permissions="['business:ywpatrolline:create']">鏂板缓</el-button>
-        <el-button @click="handleEx" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>
+        <el-button @click="handleDetail" v-permissions="['business:ywpatrolline:create']">瀵煎嚭</el-button>
       </div>
     </div>
     <el-table v-loading="loading" :data="list" stripe>
@@ -20,19 +20,25 @@
       <el-table-column prop="remark" label="缁撴竻鐘舵��" min-width="100" show-overflow-tooltip />
       <el-table-column prop="createTime" label="璐﹀崟閲戦" min-width="100" show-overflow-tooltip />
       <el-table-column prop="createTime" label="搴旀敹閲戦" min-width="100" show-overflow-tooltip />
-      <el-table-column prop="createTime" label="鍚堝悓鐘舵��" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" label="瀹炴敹閲戦" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" label="闇�鏀堕噾棰�" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" label="璐圭敤绫诲瀷" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" label="鏄惁閫炬湡" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" label="璁¤垂鍛ㄦ湡" min-width="100" show-overflow-tooltip />
+      <el-table-column prop="createTime" 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="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>
+          <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" v-permissions="['business:category:update']">鏌ョ湅璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
     <div class="mt20">
       <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
     </div>
-    <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" />
-    <Detail ref="DetailRef" @success="getList" @close="showEdit = false" />
+    <Edit ref="EditRef" @success="getList" />
+    <Detail ref="DetailRef" @success="getList" />
   </div>
 </template>
 
@@ -41,7 +47,7 @@
 import QueryForm from '@/components/common/QueryForm'
 import Edit from './components/bullEdit.vue'
 import Detail from './components/bullDetail.vue'
-import { fetchList, deleteById } from '@/api/Inspection/device'
+import { fetchList } from '@/api/bill'
 export default {
   components: {
     Pagination,
@@ -52,7 +58,6 @@
   data() {
     return {
       loading: false,
-      showEdit: false,
       pagination: {
         pageSize: 10,
         page: 1,
@@ -105,57 +110,32 @@
     this.getList()
   },
   methods: {
-    getList(page) {
+    getList (page) {
       const { pagination, filters } = this
       this.loading = true
       fetchList({
         model: {
-          ...filters,
+          ...filters
         },
         capacity: pagination.pageSize,
-        page: page || pagination.page,
+        page: page || pagination.page
       }).then(res => {
+        console.log(res)
         this.loading = false
         this.list = res.records || []
         this.list.forEach(item => {
-          item.stautsName = item.status == 0 ? '姝e父' : item.status == 1 ? '鎹熷潖' : '鎶ュ簾'
+          item.statusName = item.status === 1 ? '鎹熷潖' : item.status === 2 ? '鎶ュ簾' : '姝e父'
         })
         this.pagination.total = res.total || 0
       }, () => {
         this.loading = false
       })
     },
-    handleEx() {
-
-    },
     tabsClick(val) {
       this.activeTabs = val
     },
-    handleEdit(row) {
-      this.showEdit = true
-      this.$nextTick(() => {
-        this.$refs.EditRef.isShowModal = true
-        if (row && row.id) {
-          this.$refs.EditRef.getDetail(row.id)
-        }
-      })
-
-    },
-    handleDetail() {
-
-    },
-    handleDel(row) {
-      let message = `纭鍒犻櫎璇ヨ褰曞悧?`
-      this.$dialog.deleteConfirm(message)
-        .then(() => {
-          this.isWorking.delete = true
-          deleteById(row.id)
-            .then(() => {
-              this.$tip.apiSuccess('鍒犻櫎鎴愬姛')
-              this.getList()
-            })
-        })
-        .catch(() => { })
+    handleDetail(row) {
+      this.$refs.DetailRef.open()
     },
     clear() {
       this.filters = {}
@@ -175,7 +155,6 @@
 @import '@/assets/style/variables.scss';
 
 .tabs {
-  border-bottom: 1px solid #DFE2E8;
   display: flex;
   margin-bottom: 20px;
   display: flex;
diff --git a/admin/src/views/finance/components/bullDetail.vue b/admin/src/views/finance/components/bullDetail.vue
index 8eec8dd..2f99054 100644
--- a/admin/src/views/finance/components/bullDetail.vue
+++ b/admin/src/views/finance/components/bullDetail.vue
@@ -4,134 +4,205 @@
     <div class="home_title">
       <div class="left">
         <span class="mr10">浠樻鏂癸細xxx</span>
-        <span class="status">status</span>
+        <el-tag type="success">status</el-tag>
       </div>
-      <el-button plain type="primary">鏂板缓鏀舵敮娴佹按</el-button>
+      <el-button plain type="primary" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按')">鏂板缓鏀舵敮娴佹按</el-button>
     </div>
-    <div class="remark">
-      <div class="item">
-        <div class="la">璐﹀崟鐘舵��</div>
-        <div class="val">宸茬粨娓�</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;">宸茬粨娓�</div>
+        </div>
+        <div class="item" style="flex: 1;">
+          <div class="la">搴旀敹閲戦锛堝厓锛�</div>
+          <div class="val" style="margin-top: 10px;">1,000.00</div>
+        </div>
+        <div class="item" style="flex: 1;">
+          <div class="la">瀹炴敹閲戦锛堝厓锛�</div>
+          <div class="val" style="margin-top: 10px;">1,000.00</div>
+        </div>
+        <div class="item" style="flex: 1;">
+          <div class="la">闇�浠橀噾棰濓紙鍏冿級</div>
+          <div class="val" style="margin-top: 10px;">1,000.00</div>
+        </div>
+        <div class="item" style="flex: 1;">
+          <div class="la">搴旀敹鏃ユ湡</div>
+          <div class="val" style="margin-top: 10px;">2024-11-16</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 class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">鎿嶄綔璁板綍</div>
+      <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">鍩虹淇℃伅</div>
+      <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">璐﹀崟鏄庣粏</div>
+      <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">鏀舵敮娴佹按</div>
     </div>
     <div class="main">
       <div class="title">鍩虹淇℃伅</div>
-      <div class="list">
+      <div class="list" style="background: rgba(0,0,0,0); padding: 0;">
         <div class="item">
           <div class="la">璐﹀崟绫诲瀷</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">绉熼噾</div>
         </div>
         <div class="item">
           <div class="la">璁¤垂鍛ㄦ湡</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">2024-11-17 ~ 2025-11-17</div>
         </div>
         <div class="item">
           <div class="la">璐﹀崟閲戦(鍏�)</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">10000.00</div>
         </div>
         <div class="item">
           <div class="la">璐﹀崟缂栧彿</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">ZD20241117-0002</div>
         </div>
         <div class="item">
           <div class="la">鍚堝悓缂栧彿</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">202411-0017</div>
         </div>
         <div class="item">
           <div class="la">鍒涘缓鏃堕棿</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">2024-11-16 15:17:01</div>
         </div>
         <div class="item">
           <div class="la">浠樻鏂�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">XX鍏徃</div>
         </div>
         <div class="item">
           <div class="la">缁忓姙浜�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">寮犱笁</div>
         </div>
         <div class="item">
           <div class="la">鎵�灞炲叕鍙�</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">XXX鏈夐檺鍏徃</div>
         </div>
         <div class="item">
           <div class="la">璐﹀崟澶囨敞</div>
-          <div class="val">{{ info.aaa }}</div>
+          <div class="val">杩欐槸澶囨敞鍐呭</div>
         </div>
+        <div class="item"></div>
+        <div class="item"></div>
       </div>
       <div class="title">鎴挎簮淇℃伅</div>
-      <div class="list">
-        <div class="item">
-          <div class="la">椤圭洰鍚嶇О</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">妤煎畤鍚嶇О</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">妤煎眰/鎴垮彿</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">闈㈢Н</div>
-          <div class="val">{{ info.aaa }}</div>
-        </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>
       </div>
-      <div class="title">绉熷淇℃伅</div>
-      <div class="list">
-        <div class="item">
-          <div class="la">绉熷</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">缁忓姙浜�</div>
-          <div class="val">{{ info.aaa }}</div>
-        </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">
-        <div class="item">
-          <div class="la">鎶奸噾閲戦</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">浠樻鏂瑰紡</div>
-          <div class="val">{{ info.aaa }}</div>
-        </div>
-        <div class="item">
-          <div class="la">鍏嶇鏈�</div>
-          <div class="val">{{ info.aaa }}</div>
-        </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>
-      <el-table :data="info.list" stripe>
-        <el-table-column prop="" label="寮�濮嬫棩鏈�" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="缁撴潫鏃ユ湡" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="鍚堝悓鍗曚环" min-width="100" show-overflow-tooltip />
-        <el-table-column prop="" label="浠樻鎻愬墠澶╂暟" min-width="100" show-overflow-tooltip />
-      </el-table>
     </div>
+    <!--  鍒涘缓娴佹按  -->
+    <FlowingWater ref="flowingWater" />
   </GlobalWindow>
 </template>
 
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
 import BaseOpera from '@/components/base/BaseOpera'
+import FlowingWater from './flowingWater'
 export default {
   components: {
-    GlobalWindow
+    GlobalWindow,
+    FlowingWater
   },
   extends: BaseOpera,
   data() {
     return {
       id: '',
-      visible: true,
+      visible: false,
       activeTabs: '',
-      info: {}
+      info: {},
+      tableData: []
     }
   },
   methods: {
@@ -201,6 +272,12 @@
   }
 }
 
+.line {
+  width: 100%;
+  margin: 15px 0;
+  border-bottom: 1px dashed #eaeaea;
+}
+
 .main {
   .title {
     font-weight: 500;
@@ -212,18 +289,18 @@
   .list {
     display: flex;
     flex-wrap: wrap;
-    background: #F7F7F7;
+    /*background: #F7F7F7;*/
     border-radius: 2px;
-    padding: 15px 20px;
+    padding: 0 20px;
     margin-bottom: 20px;
 
     .item {
-      width: 25%;
-      margin-bottom: 16px;
+      flex: 25%;
+      margin-bottom: 20px;
 
       .la {
         color: #7f7f7f;
-        margin-top: 2px;
+        margin-bottom: 5px;
       }
     }
   }
diff --git a/admin/src/views/finance/components/bullEdit.vue b/admin/src/views/finance/components/bullEdit.vue
index 80a4067..5e69da3 100644
--- a/admin/src/views/finance/components/bullEdit.vue
+++ b/admin/src/views/finance/components/bullEdit.vue
@@ -1,77 +1,106 @@
 <template>
-  <GlobalWindow width="1100px" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close"
+  <GlobalWindow width="100%" :title="title" :visible.sync="visible" :confirm-working="isWorking" @close="close"
     @confirm="confirm">
-    <template v-if="activeTabs == 0">
-      <div class="main">
-        <div class="main_content">
-          <el-form :model="param" label-position="top" ref="paramRef" :rules="rules">
-            <div class="head">
-              <div class="m_title">鍩虹淇℃伅</div>
-              <div class="tabs">
-                <div class="tab" :class="{ active: timeTab == 0 }" @click="timeTabClick('0')">鍛ㄦ湡璐圭敤</div>
-                <div class="tab" :class="{ active: timeTab == 1 }" @click="timeTabClick('1')">涓�娆℃�ц垂鐢�</div>
-              </div>
+    <div class="main">
+      <div class="main_content">
+        <el-form :model="param" label-position="top" ref="form" :rules="rules">
+          <div class="head">
+            <div class="m_title">鍩虹淇℃伅</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>
             </div>
-            <div class="list">
-              <el-form-item label="鍏宠仈鍚堝悓" prop="type">
-                <el-select v-model="param.type" placeholder="璇烽�夋嫨" clearable>
-                  <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item label="浠樻鏂�" prop="code">
-                <el-input v-model="param.code" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�" v-trim />
-              </el-form-item>
-              <el-form-item label="璐圭敤绫诲瀷" prop="aaa">
-                <el-select v-model="param.aaa" placeholder="璇烽�夋嫨" clearable>
-                  <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item label="璁¤垂鍛ㄦ湡" prop="">
-                <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
-              </el-form-item>
-              <el-form-item label="搴旀敹閲戦" prop="">
-                <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
-              </el-form-item>
-              <el-form-item label="搴旀敹鏃ユ湡" prop="">
-                <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
-              </el-form-item>
-              <el-form-item label="鎵�灞炲叕鍙�" prop="">
-                <el-select v-model="param.aaa" placeholder="璇烽�夋嫨" clearable>
-                  <el-option v-for="item in comparyList" :value="item.id" :label="item.name"></el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item style="width: 100%;" label="璐﹀崟澶囨敞" prop="">
-                <el-input type="textarea" :rows="4" v-model="param.content" placeholder="璇疯緭鍏�" />
-              </el-form-item>
-            </div>
-          </el-form>
-        </div>
-        <div class="main_house">
-          <div class="title">璇烽�夋嫨鎴挎簮</div>
-          <el-cascader style="width: 300px" v-model="value" @change="houseChange" :options="options"
-            :props="{ multiple: true }" collapse-tags clearable />
-        </div>
+          </div>
+          <div class="list">
+            <el-form-item label="鍏宠仈鍚堝悓" prop="contractId">
+              <el-select v-model="form.contractId" placeholder="璇烽�夋嫨" clearable>
+                <el-option v-for="(item, index) in contract" :key="index" :value="item.value" :label="item.name"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="浠樻鏂�" prop="customerName">
+              <el-select v-model="form.customerName" filterable placeholder="璇烽�夋嫨">
+                <el-option
+                  v-for="(item, index) in payerList"
+                  :key="index"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="璐圭敤绫诲瀷" prop="costType">
+              <el-select v-model="form.costType" placeholder="璇烽�夋嫨">
+                <el-option :value="0" label="绉熻祦璐�"></el-option>
+                <el-option :value="1" label="鐗╀笟璐�"></el-option>
+                <el-option :value="2" label="绉熻祦鎶奸噾"></el-option>
+                <el-option :value="3" label="鐗╀笟璇侀噾"></el-option>
+                <el-option :value="4" label="姘寸數璐�"></el-option>
+                <el-option :value="5" label="鏉傞」璐�"></el-option>
+                <el-option :value="6" label="鍏朵粬"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="璁¤垂鍛ㄦ湡" prop="startDate" v-if="form.feeType !== 1">
+              <el-date-picker
+                type="daterange"
+                range-separator="鑷�"
+                v-model="date"
+                @change="changeDate"
+                start-placeholder="寮�濮嬫棩鏈�"
+                end-placeholder="缁撴潫鏃ユ湡"
+                value-format="yyyy-MM-dd"
+                placeholder="璇烽�夋嫨" />
+            </el-form-item>
+            <el-form-item label="搴旀敹閲戦" prop="receivableFee">
+              <el-input v-model="form.receivableFee" placeholder="璇疯緭鍏ュ簲鏀堕噾棰�" v-trim />
+            </el-form-item>
+            <el-form-item label="搴旀敹鏃ユ湡" prop="planPayDate">
+              <el-date-picker type="date" v-model="form.planPayDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+            </el-form-item>
+            <el-form-item label="鎵�灞炲叕鍙�" prop="companyId">
+              <el-select v-model="form.companyId" placeholder="璇烽�夋嫨" clearable>
+                <el-option
+                  v-for="(item, index) in comparyList"
+                  :key="index"
+                  :value="item.id"
+                  :label="item.name" />
+              </el-select>
+            </el-form-item>
+            <el-form-item style="width: 100%;" label="璐﹀崟澶囨敞" prop="remark">
+              <el-input type="textarea" :rows="5" v-model="param.remark" placeholder="璇疯緭鍏�" />
+            </el-form-item>
+          </div>
+        </el-form>
       </div>
-      <div class="file_wrap">
-        <div class="head">
-          <div>璐﹀崟闄勪欢</div>
-          <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl"
-            :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError">
-            <el-button icon="el-icon-plus" plain>娣诲姞闄勪欢</el-button>
-          </el-upload>
-        </div>
-        <el-table :data="param.list" stripe>
-          <el-table-column prop="" label="闄勪欢鍚嶇О" align="center" min-width="100" show-overflow-tooltip />
-          <el-table-column prop="" label="鎿嶄綔浜�" align="center" min-width="100" show-overflow-tooltip />
-          <el-table-column prop="" label="鎿嶄綔鏃堕棿" align="center" min-width="100" show-overflow-tooltip />
-          <el-table-column prop="" label="鎿嶄綔" align="center" min-width="100">
-            <template v-slot="scope">
-              <span class="cu red">鍒犻櫎</span>
-            </template>
-          </el-table-column>
-        </el-table>
+      <div class="main_house">
+        <div class="title">璇烽�夋嫨鎴挎簮</div>
+        <el-tree
+          :data="houseList"
+          show-checkbox
+          node-key="id"
+          :default-expanded-keys="[2, 3]"
+          :default-checked-keys="[5]"
+          :props="defaultProps">
+        </el-tree>
       </div>
-    </template>
+    </div>
+    <div class="file_wrap">
+      <div class="head">
+        <div>璐﹀崟闄勪欢</div>
+        <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl"
+          :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError">
+          <el-button icon="el-icon-plus" plain>娣诲姞闄勪欢</el-button>
+        </el-upload>
+      </div>
+      <el-table :data="param.list" stripe>
+        <el-table-column prop="" label="闄勪欢鍚嶇О" align="center" min-width="100" show-overflow-tooltip />
+        <el-table-column prop="" label="鎿嶄綔浜�" align="center" min-width="100" show-overflow-tooltip />
+        <el-table-column prop="" label="鎿嶄綔鏃堕棿" align="center" min-width="100" show-overflow-tooltip />
+        <el-table-column prop="" label="鎿嶄綔" align="center" min-width="100">
+          <template v-slot="{ scope }">
+            <span class="cu red">鍒犻櫎</span>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
     <!--  -->
     <MemberSearch ref="MemberSearchRef" />
   </GlobalWindow>
@@ -82,6 +111,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import MemberSearch from '@/components/common/MemberSearch'
 import { rules } from './config'
+import { create } from '@/api/bill'
 import { Message, Loading } from 'element-ui'
 export default {
   components: {
@@ -91,9 +121,21 @@
   extends: BaseOpera,
   data() {
     return {
-      isShowModal: false,
-      title: '',
-      activeTabs: '0',
+      form: {
+        contractId: '',
+        customerName: '',
+        costType: '',
+        type: '',
+        companyId: '',
+        remark: '',
+        startDate: '',
+        endDate: '',
+        receivableFee: '',
+        feeType: 0,
+        planPayDate: ''
+      },
+      date: [],
+      
       param: {},
       rules,
       timeTab: '0',
@@ -104,13 +146,9 @@
       uploadData: {
         folder: 'HIDDEN_DANGER_FILE'
       },
-
-      types: [
-        { name: '鐗╀笟+绉熻祦鍚堝悓', value: 0 },
-        { name: '绉熻祦鍚堝悓', value: 1 },
-        { name: '鐗╀笟鍚堝悓', value: 2 },
-      ],
-      agentList: [], //缁忓姙浜�
+      contract: [],
+      payerList: [],
+      
       projectList: [],
       comparyList: [], // 鍏徃
       renterList: [], // 绉熷
@@ -183,35 +221,68 @@
         { name: '鍏�/m虏路骞�', value: 5 },
         { name: '鍏�/鍦�', value: 6 },
       ],
+      houseList: [{
+        id: 1,
+        label: '涓�绾� 1',
+        children: [{
+          id: 4,
+          label: '浜岀骇 1-1',
+          children: [{
+            id: 9,
+            label: '涓夌骇 1-1-1'
+          }, {
+            id: 10,
+            label: '涓夌骇 1-1-2'
+          }]
+        }]
+      }, {
+        id: 2,
+        label: '涓�绾� 2',
+        children: [{
+          id: 5,
+          label: '浜岀骇 2-1'
+        }, {
+          id: 6,
+          label: '浜岀骇 2-2'
+        }]
+      }, {
+        id: 3,
+        label: '涓�绾� 3',
+        children: [{
+          id: 7,
+          label: '浜岀骇 3-1'
+        }, {
+          id: 8,
+          label: '浜岀骇 3-2'
+        }]
+      }],
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      }
     }
   },
-  created() {
-    const { param } = this
-    this.title = param.id ? '缂栬緫鏀舵璐﹀崟' : '鍒涘缓鏀舵璐﹀崟'
-  },
   methods: {
-    tabsClick(val) {
-      this.activeTabs = val
-    },
     timeTabClick(val) {
-      this.timeTab = val
+      this.form.feeType = val
+      if (val === 1) {
+        this.form.startDate = ''
+        this.form.endDate = ''
+      }
     },
-    getDetail() {
-
+    changeDate(e) {
+      if (!e || e.length === 0) {
+        this.form.startDate = ''
+        this.form.endDate = ''
+      } else {
+        this.form.startDate = e[0]
+        this.form.endDate = e[1]
+      }
     },
     handleRent() {
       this.$refs.MemberSearchRef.openModal()
     },
-    houseChange(e) {
-      console.log(e)
-      console.log(this.value)
-
-    },
     beforeUpload(file) {
-      // if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) {
-      //   this.$message.error('璇蜂笂浼犳纭殑瑙嗛/鍥剧墖鏍煎紡')
-      //   return false
-      // }
       this.loadingInstance = Loading.service({
         lock: true,
         text: 'Loading',
diff --git a/admin/src/views/finance/components/flowingWater.vue b/admin/src/views/finance/components/flowingWater.vue
new file mode 100644
index 0000000..590e012
--- /dev/null
+++ b/admin/src/views/finance/components/flowingWater.vue
@@ -0,0 +1,373 @@
+<template>
+    <GlobalWindow width="100%" :title="title" :visible.sync="isShowModal" :confirm-working="isWorking" @close="close"
+      @confirm="confirm">
+        <div class="main">
+            <div class="main_content">
+                <el-form :model="param" label-position="top" ref="paramRef" :rules="rules">
+                    <div class="head">
+                        <div class="m_title">娴佹按淇℃伅</div>
+                    </div>
+                    <div class="list">
+                        <el-form-item label="鍏宠仈鍚堝悓" prop="type">
+                            <el-select v-model="param.type" placeholder="璇烽�夋嫨" clearable>
+                                <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="璐圭敤绫诲瀷" prop="code">
+                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�" v-trim />
+                        </el-form-item>
+                        <el-form-item label="璐瑰崟鍛ㄦ湡" prop="aaa">
+                            <el-select v-model="param.code" placeholder="璇烽�夋嫨" clearable>
+                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="搴旀敹閲戦" prop="">
+                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ疄鏀堕噾棰�" v-trim />
+                        </el-form-item>
+                        <el-form-item label="瀹炴敹閲戦" prop="">
+                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ疄鏀堕噾棰�" v-trim />
+                        </el-form-item>
+                        <el-form-item label="鍏ヨ处鏃ユ湡" prop="">
+                            <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+                        </el-form-item>
+                        <el-form-item label="鏀舵鏂瑰紡" prop="">
+                            <el-select v-model="param.content" placeholder="璇烽�夋嫨">
+                                <el-option label="鐜伴噾" :value="1"></el-option>
+                                <el-option label="缃戦摱杞处" :value="2"></el-option>
+                                <el-option label="POS鏈�" :value="3"></el-option>
+                                <el-option label="鏀粯瀹�" :value="4"></el-option>
+                                <el-option label="寰俊" :value="5"></el-option>
+                                <el-option label="杞处鏀エ" :value="6"></el-option>
+                                <el-option label="鍏跺畠鏂瑰紡" :value="7"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="鎵�灞炲叕鍙�" prop="">
+                            <el-select v-model="param.code" placeholder="璇烽�夋嫨" clearable>
+                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="鏀舵敮璐︽埛" prop="">
+                            <el-select v-model="param.code" placeholder="璇烽�夋嫨" clearable>
+                                <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="澶囨敞" prop="" style="width: 100%;">
+                            <el-input type="textarea" :rows="6" v-model="param.content" placeholder="璇疯緭鍏�" />
+                        </el-form-item>
+                    </div>
+                </el-form>
+            </div>
+        </div>
+        <div class="file_wrap">
+            <div class="head">
+                <div>璐﹀崟闄勪欢</div>
+                <el-upload class="upload-demo" :show-file-list="false" :data="uploadData" :action="uploadImgUrl"
+                           :on-success="uploadAvatarSuccess" :before-upload="beforeUpload" :on-error="uploadError">
+                    <el-button icon="el-icon-plus" plain>娣诲姞闄勪欢</el-button>
+                </el-upload>
+            </div>
+            <el-table :data="param.list" stripe>
+                <el-table-column prop="" label="闄勪欢鍚嶇О" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column prop="" label="鎿嶄綔浜�" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column prop="" label="鎿嶄綔鏃堕棿" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column prop="" label="鎿嶄綔" align="center" min-width="100">
+                    <template v-slot="scope">
+                        <span class="cu red">鍒犻櫎</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+  import GlobalWindow from '@/components/common/GlobalWindow'
+  import BaseOpera from '@/components/base/BaseOpera'
+  import { rules } from './config'
+  import { Message, Loading } from 'element-ui'
+  export default {
+    name: "flowingWater",
+    components: {
+      GlobalWindow
+    },
+    extends: BaseOpera,
+    data() {
+      return {
+        isShowModal: false,
+        title: '',
+        activeTabs: '0',
+        param: {},
+        rules,
+        timeTab: '0',
+
+        loadingInstance: null,
+        uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
+        fileList: [],
+        uploadData: {
+          folder: 'HIDDEN_DANGER_FILE'
+        },
+
+        types: [
+          { name: '鐗╀笟+绉熻祦鍚堝悓', value: 0 },
+          { name: '绉熻祦鍚堝悓', value: 1 },
+          { name: '鐗╀笟鍚堝悓', value: 2 },
+        ],
+        agentList: [], //缁忓姙浜�
+        projectList: [],
+        comparyList: [], // 鍏徃
+        renterList: [], // 绉熷
+        contacts: [], // 鑱旂郴浜�
+        value: [],
+        options: [
+          {
+            value: 1,
+            label: '涓滃崡',
+            children: [{
+              value: 2,
+              label: '涓婃捣',
+              children: [
+                { value: 3, label: '鏅檧' },
+                { value: 4, label: '榛勫煍' },
+                { value: 5, label: '寰愭眹' }
+              ]
+            }, {
+              value: 7,
+              label: '姹熻嫃',
+              children: [
+                { value: 8, label: '鍗椾含' },
+                { value: 9, label: '鑻忓窞' },
+                { value: 10, label: '鏃犻敗' }
+              ]
+            }, {
+              value: 12,
+              label: '娴欐睙',
+              children: [
+                { value: 13, label: '鏉窞' },
+                { value: 14, label: '瀹佹尝' },
+                { value: 15, label: '鍢夊叴' }
+              ]
+            }]
+          },
+          {
+            value: 17,
+            label: '瑗垮寳',
+            children: [{
+              value: 18,
+              label: '闄曡タ',
+              children: [
+                { value: 19, label: '瑗垮畨' },
+                { value: 20, label: '寤跺畨' }
+              ]
+            }, {
+              value: 21,
+              label: '鏂扮枂缁村惥灏旀棌鑷不鍖�',
+              children: [
+                { value: 22, label: '涔岄瞾鏈ㄩ綈' },
+                { value: 23, label: '鍏嬫媺鐜涗緷' }
+              ]
+            }]
+          }
+        ],
+        cactiveTabs: 0,
+        paramCost: {},
+        payMethods: [
+          { name: '涓�娆℃�т粯娆�', value: 0 },
+          { name: '3涓湀涓�浠�', value: 1 },
+          { name: '6涓湀涓�浠�', value: 2 },
+          { name: '1骞翠竴浠�', value: 2 },
+        ],
+        unitOps: [
+          { name: '鍏�/m虏路澶�', value: 0 },
+          { name: '鍏�/m虏路鏈�', value: 1 },
+          { name: '鍏�/澶�', value: 2 },
+          { name: '鍏�/鏈�', value: 3 },
+          { name: '鍏�/骞�', value: 4 },
+          { name: '鍏�/m虏路骞�', value: 5 },
+          { name: '鍏�/鍦�', value: 6 },
+        ],
+      }
+    },
+    created() {
+      const { param } = this
+      this.title = param.id ? '缂栬緫鏀舵璐﹀崟' : '鍒涘缓鏀舵璐﹀崟'
+    },
+    methods: {
+      tabsClick(val) {
+        this.activeTabs = val
+      },
+      timeTabClick(val) {
+        this.timeTab = val
+      },
+      getDetail() {
+
+      },
+      handleRent() {
+        this.$refs.MemberSearchRef.openModal()
+      },
+      houseChange(e) {
+        console.log(e)
+        console.log(this.value)
+
+      },
+      beforeUpload(file) {
+        // if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) {
+        //   this.$message.error('璇蜂笂浼犳纭殑瑙嗛/鍥剧墖鏍煎紡')
+        //   return false
+        // }
+        this.loadingInstance = Loading.service({
+          lock: true,
+          text: 'Loading',
+          spinner: 'el-icon-loading',
+          background: 'rgba(0, 0, 0, 0.7)'
+        })
+      },
+      uploadError() {
+        this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+          if (this.loadingInstance) {
+            this.loadingInstance.close()
+          }
+        })
+      },
+      uploadAvatarSuccess(file) {
+        this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+          if (this.loadingInstance) {
+            this.loadingInstance.close()
+          }
+        })
+        console.log('file', file)
+        const item = file.data[0]
+        if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) {
+          this.fileList.push({
+            type: 1,
+            fileurl: item.imgaddr,
+            fileurlFull: item.url
+          })
+        } else {
+          this.fileList.push({
+            type: 0,
+            fileurl: item.imgaddr,
+            fileurlFull: item.url
+          })
+        }
+        console.log('file', this.fileList)
+        // this.$set(this.param, 'faceImg', file.imgurl)
+        // this.$set(this.param, 'faceImgUrl', file.imgurlfull)
+      },
+      close() {
+        this.isShowModal = false
+        this.$emit('close')
+      },
+      open(title, target) {
+        this.title = title
+        this.isShowModal = true
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+    @import '@/assets/style/variables.scss';
+
+
+    .cost_tabs {
+        justify-content: flex-start;
+        border: none;
+
+        .tab {
+            height: 36px;
+            line-height: 36px;
+            font-size: 14px;
+        }
+    }
+
+    .main {
+        display: flex;
+        margin-bottom: 20px;
+
+        .main_content {
+            flex: 1;
+            margin-right: 20px;
+
+            .head {
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+
+                .tabs {
+                    display: flex;
+                    margin-bottom: 20px;
+                    display: flex;
+                    justify-content: center;
+
+                    .tab {
+                        height: 14px;
+                        line-height: 14px;
+                        cursor: pointer;
+                        border: 1px solid #ebebeb;
+                        padding: 12px 24px;
+                    }
+
+                    .active {
+                        font-weight: 500;
+                        color: $primary-color;
+                        border: 1px solid $primary-color;
+                    }
+                }
+            }
+
+            .list {
+                display: flex;
+                flex-wrap: wrap;
+
+                .el-form-item {
+                    width: 33.33%;
+                    box-sizing: border-box;
+                    padding: 0 12px;
+                }
+            }
+        }
+
+        .main_house {
+            width: 320px;
+            padding: 24px 12px;
+            border: 1px solid #c3c6cd;
+            border-radius: 2px;
+
+            .title {
+                font-size: 16px;
+                font-weight: 500;
+                margin-bottom: 30px;
+            }
+        }
+
+    }
+
+    .total {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        height: 32px;
+        background-color: #e7e9f5;
+
+        span {
+            width: 160px;
+            text-align: center;
+        }
+    }
+
+    .file_wrap {
+        
+        .head {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+        }
+    }
+
+    .m_title {
+        font-weight: 500;
+        font-size: 14px;
+        margin-bottom: 15px;
+        margin-top: 10px;
+    }
+</style>

--
Gitblit v1.9.3