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/views/finance/components/bullEdit.vue |  267 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 169 insertions(+), 98 deletions(-)

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',

--
Gitblit v1.9.3