From 7470ad6bfa2f7d7be9c7d1e2d9c991094a3ad367 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 28 十一月 2024 18:43:24 +0800
Subject: [PATCH] 提交

---
 admin/src/views/finance/components/flowingWater.vue |  260 ++++++++++++++++++++--------------------------------
 1 files changed, 100 insertions(+), 160 deletions(-)

diff --git a/admin/src/views/finance/components/flowingWater.vue b/admin/src/views/finance/components/flowingWater.vue
index 590e012..a2490c2 100644
--- a/admin/src/views/finance/components/flowingWater.vue
+++ b/admin/src/views/finance/components/flowingWater.vue
@@ -1,37 +1,33 @@
 <template>
-    <GlobalWindow width="100%" :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">
         <div class="main">
             <div class="main_content">
-                <el-form :model="param" label-position="top" ref="paramRef" :rules="rules">
+                <el-form :model="form" 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 label="鍏宠仈鍚堝悓" required>
+                            <el-input v-model="form.contractCode" disabled placeholder="璇疯緭鍏�" v-trim />
                         </el-form-item>
-                        <el-form-item label="璐圭敤绫诲瀷" prop="code">
-                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ悎鍚岀紪鍙�" v-trim />
+                        <el-form-item label="璐圭敤绫诲瀷" required>
+                            <el-input v-model="form.costTypeName" disabled 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 label="璁¤垂鍛ㄦ湡" required>
+                            <el-input v-model="form.date" disabled placeholder="璇疯緭鍏�" v-trim />
                         </el-form-item>
-                        <el-form-item label="搴旀敹閲戦" prop="">
-                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ疄鏀堕噾棰�" v-trim />
+                        <el-form-item label="搴旀敹閲戦" prop="receivableFee">
+                            <el-input v-model="form.receivableFee" placeholder="璇疯緭鍏�" v-trim />
                         </el-form-item>
-                        <el-form-item label="瀹炴敹閲戦" prop="">
-                            <el-input v-model="param.code" placeholder="璇疯緭鍏ュ疄鏀堕噾棰�" v-trim />
+                        <el-form-item label="瀹炴敹閲戦" prop="actReceivableFee">
+                            <el-input v-model="form.actReceivableFee" 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 label="鍏ヨ处鏃ユ湡" prop="actPayDate">
+                            <el-date-picker type="date" v-model="form.actPayDate" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
                         </el-form-item>
-                        <el-form-item label="鏀舵鏂瑰紡" prop="">
-                            <el-select v-model="param.content" placeholder="璇烽�夋嫨">
+                        <el-form-item label="鏀舵鏂瑰紡" prop="payType">
+                            <el-select v-model="form.payType" placeholder="璇烽�夋嫨">
                                 <el-option label="鐜伴噾" :value="1"></el-option>
                                 <el-option label="缃戦摱杞处" :value="2"></el-option>
                                 <el-option label="POS鏈�" :value="3"></el-option>
@@ -41,18 +37,16 @@
                                 <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-form-item label="鎵�灞炲叕鍙�" prop="companyName">
+                            <el-input disabled v-model="form.companyName" placeholder="璇疯緭鍏�" />
+                        </el-form-item>
+                        <el-form-item label="鏀舵敮璐︽埛" prop="accountId">
+                            <el-select v-model="form.accountId" placeholder="璇烽�夋嫨" clearable>
+                                <el-option v-for="item in agentList" :value="item.id" :label="item.title"></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 label="澶囨敞" prop="remark" style="width: 100%;">
+                            <el-input type="textarea" :rows="6" v-model="form.remark" placeholder="璇疯緭鍏�" />
                         </el-form-item>
                     </div>
                 </el-form>
@@ -62,17 +56,17 @@
             <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">
+                   :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>
+            <el-table :data="form.multifileList" stripe>
+                <el-table-column prop="name" label="闄勪欢鍚嶇О" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column prop="userName" label="鎿嶄綔浜�" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column prop="createTime" label="鎿嶄綔鏃堕棿" align="center" min-width="100" show-overflow-tooltip />
+                <el-table-column label="鎿嶄綔" align="center" min-width="100">
+                    <template slot-scope="{ row }">
+                        <span class="cu red" @click="dele(row.imgaddr)">鍒犻櫎</span>
                     </template>
                 </el-table-column>
             </el-table>
@@ -84,122 +78,56 @@
   import GlobalWindow from '@/components/common/GlobalWindow'
   import BaseOpera from '@/components/base/BaseOpera'
   import { rules } from './config'
+  import { ywAccountList } from '@/api/bill'
+  import { create } from '@/api/ywContractRevenue'
   import { Message, Loading } from 'element-ui'
+  import { mapState } from 'vuex'
   export default {
     name: "flowingWater",
     components: {
       GlobalWindow
     },
+    computed: {
+      ...mapState(['userInfo'])
+    },
     extends: BaseOpera,
     data() {
       return {
-        isShowModal: false,
-        title: '',
-        activeTabs: '0',
-        param: {},
+        form: {
+          billId: '',
+          billType: '',
+          costType: '',
+          contractCode: '',
+          contractId: '',
+          startDate: '',
+          endDate: '',
+          date: '',
+          companyId: '',
+          actReceivableFee: '',
+          actPayDate: '',
+          payType: '',
+          companyName: '',
+          remark: '',
+          accountId: '',
+          multifileList: [],
+          costTypeName: ''
+        },
         rules,
-        timeTab: '0',
 
         loadingInstance: null,
         uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
-        fileList: [],
         uploadData: {
-          folder: 'HIDDEN_DANGER_FILE'
+          folder: 'YW_CONTRACT_BILL'
         },
-
-        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 },
-        ],
+        agentList: []
       }
     },
-    created() {
-      const { param } = this
-      this.title = param.id ? '缂栬緫鏀舵璐﹀崟' : '鍒涘缓鏀舵璐﹀崟'
-    },
     methods: {
-      tabsClick(val) {
-        this.activeTabs = val
-      },
-      timeTabClick(val) {
-        this.timeTab = val
-      },
-      getDetail() {
-
+      confirm () {
+        create(this.form)
+          .then(res => {
+            console.log(res)
+          })
       },
       handleRent() {
         this.$refs.MemberSearchRef.openModal()
@@ -207,13 +135,24 @@
       houseChange(e) {
         console.log(e)
         console.log(this.value)
-
+      },
+      getDates (companyId) {
+        ywAccountList({
+          companyId,
+          isdeleted: 0,
+          status: 0
+        }).then(res => {
+          this.agentList = res
+        })
+      },
+      dele (imgaddr) {
+        this.form.multifileList.forEach((item, index) => {
+          if (imgaddr === item.imgaddr) {
+            this.form.multifileList.splice(index, 1)
+          }
+        })
       },
       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',
@@ -228,38 +167,39 @@
           }
         })
       },
+      getDay () {
+        const now = new Date()
+        const year = now.getFullYear()
+        const month = now.getMonth() + 1 // 鍔�1浣垮叾浠�1寮�濮�
+        const day = now.getDate()
+        const hours = now.getHours()
+        const minutes = now.getMinutes()
+        const seconds = now.getSeconds()
+        return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
+      },
       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)
+        console.log(item)
+        this.form.multifileList.push({ ...item, fileurl: item.imgaddr, name: item.originname, userName: this.userInfo.realname, createTime: this.getDay() })
       },
       close() {
-        this.isShowModal = false
         this.$emit('close')
       },
       open(title, target) {
         this.title = title
-        this.isShowModal = true
+        this.visible = true
+        this.$nextTick(() => {
+          for (const key in this.form) {
+            this.form[key] = target[key]
+          }
+        })
+        console.log(this.form)
+        this.getDates(target.companyId)
       }
     }
   }

--
Gitblit v1.9.3