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