From f8f7fbc0f334bca013a1af9151a6d913a1d50b3f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 09 十二月 2024 23:01:15 +0800
Subject: [PATCH] 开发更新
---
admin/src/views/finance/components/flowingWater.vue | 294 ++++++++++++++++++++++++++--------------------------------
1 files changed, 132 insertions(+), 162 deletions(-)
diff --git a/admin/src/views/finance/components/flowingWater.vue b/admin/src/views/finance/components/flowingWater.vue
index 590e012..8eed2b8 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="form" :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="`搴�${form.needReceivableFeeCopy > 0 ? '鏀�' : '浠�'}閲戦`" required>
+ <el-input v-model="form.receivableFee" 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="`瀹�${form.needReceivableFeeCopy > 0 ? '鏀�' : '浠�'}閲戦`" 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="`${form.needReceivableFeeCopy > 0 ? '鍏�' : '鍑�'}璐︽棩鏈焋" 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="`${form.needReceivableFeeCopy > 0 ? '鏀�' : '浠�'}娆炬柟寮廯" 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>
@@ -83,123 +77,87 @@
<script>
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: {},
- rules,
- timeTab: '0',
-
+ form: {
+ billId: '',
+ billType: '',
+ costType: '',
+ contractCode: '',
+ contractId: '',
+ startDate: '',
+ endDate: '',
+ receivableFee: '',
+ date: '',
+ companyId: '',
+ actReceivableFee: '',
+ actPayDate: '',
+ payType: '',
+ companyName: '',
+ remark: '',
+ accountId: '',
+ multifileList: [],
+ costTypeName: '',
+ needReceivableFeeCopy: ''
+ },
+ rules: {
+ receivableFee: [
+ { required: true, message: '璇疯緭鍏�', trigger: 'blur' }
+ ],
+ actPayDate: [
+ { required: true, message: '璇烽�夋嫨', trigger: 'blur' }
+ ],
+ payType: [
+ { required: true, message: '璇烽�夋嫨', trigger: 'blur' }
+ ],
+ accountId: [
+ { required: true, message: '璇烽�夋嫨', trigger: 'blur' }
+ ]
+ },
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
+ getDayTime () {
+ const today = new Date();
+ const year = today.getFullYear();
+ const month = today.getMonth() + 1;
+ const day = today.getDate();
+ return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
},
- timeTabClick(val) {
- this.timeTab = val
- },
- getDetail() {
-
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) return
+ this.isWorking = true
+ create(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鍒涘缓鎴愬姛')
+ this.$emit('success')
+ this.$emit('refresh')
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
},
handleRent() {
this.$refs.MemberSearchRef.openModal()
@@ -207,13 +165,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 +197,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)
+ 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(() => {
+ this.$refs.form.resetFields();
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.form.actPayDate = this.getDayTime()
+ })
+ this.getDates(target.companyId)
}
}
}
--
Gitblit v1.9.3