whx 3 miesięcy temu
rodzic
commit
5f90ef2802

+ 42 - 89
virgo.wzfrontend/console/src/components/work/staging/cost.vue

@@ -1,31 +1,36 @@
 <template>
 	<div class="hui-flex hui-content">
 		<div class="hui-content-title">
-			<div :class="'hui-title-item' + (item.id === nowTitleId?' active':'') " v-for="item in title" :key="item.id"
-				@click="changeTitle(item)">
+			<div :class="'hui-title-item' + (item.id === nowTitle.id?' active':'') " v-for="item in title"
+				:key="item.id" @click="changeTitle(item)">
 				{{item.name}}
 			</div>
 		</div>
 		<div class="hui-flex-box hui-flex hui-table">
 			<div class="hui-flex-box">
-				<el-table :data="tableData" row-key="id" border height="100%">
+				<el-table :data="dataList[nowTitle.type]" row-key="id" border height="100%">
 					<el-table-column label="序号" width="50">
 						<template slot-scope="scope">
 							<div style="text-align: center;">{{scope.$index + 1}}</div>
 						</template>
 					</el-table-column>
-					<el-table-column label="客户名称" prop="name"></el-table-column>
-					<el-table-column label="应收金额" prop="receivable"></el-table-column>
-					<el-table-column label="已收金额" prop="received"></el-table-column>
-					<el-table-column label="累计收费" prop="const"></el-table-column>
+					<el-table-column label="客户名称" prop="name">
+						<template slot-scope="scope">
+							<span>{{scope.row.payClientName || scope.row.payMerchantName}}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="应收金额" prop="amount"></el-table-column>
+					<el-table-column label="已收金额">
+						<template slot-scope="scope">
+							<span>{{scope.row.status === 1 ? scope.row.amount: 0}}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="累计收费" prop="received"></el-table-column>
 					<el-table-column label="状态">
 						<template slot-scope="scope">
 							<div class="hui-table-tag">
-								<div class="hui-tag hui-tag-info" v-if="!scope.row.state">未缴费</div>
-								<div class="hui-tag hui-tag-success" v-if="scope.row.state === 1">已缴费</div>
-								<div class="hui-tag hui-tag-warning" v-if="scope.row.state === 2">
-									已逾期{{scope.row.day}}天
-								</div>
+								<div class="hui-tag hui-tag-info" v-if="!scope.row.status">未缴费</div>
+								<div class="hui-tag hui-tag-success" v-if="scope.row.status === 1">已缴费</div>
 							</div>
 						</template>
 					</el-table-column>
@@ -41,11 +46,6 @@
 					</template>
 				</el-table>
 			</div>
-			<div class="hui-content-pagination">
-				<el-pagination :page-size="pageSize" :pager-count="9" layout="prev, pager, next" :total="totalCount"
-					@current-change="currentChange">
-				</el-pagination>
-			</div>
 		</div>
 		<el-drawer title="费用详情" :visible.sync="drawer" :size="400" :append-to-body="true">
 			<cost-detail v-if="drawer" :detail="detail"></cost-detail>
@@ -54,101 +54,54 @@
 </template>
 
 <script>
-	const data = [{
-		id: 1,
-		name: 'xxx公司',
-		receivable: '1.2万',
-		received: '1.2万',
-		const: '24万',
-		state: 1,
-		type: 1,
-		day: 0,
-		billDate: '2024-12-13',
-		costDate: '2024-12-14'
-	}, {
-		id: 2,
-		name: 'xxx公司',
-		receivable: '1.12万',
-		received: '0',
-		const: '14万',
-		state: 2,
-		type: 1,
-		day: 2,
-		billDate: '2024-12-13',
-		costDate: ''
-	}, {
-		id: 3,
-		name: 'xxx公司',
-		receivable: '1.2万',
-		received: '0',
-		const: '11万',
-		state: null,
-		type: 1,
-		day: 0,
-		billDate: '2024-12-22',
-		costDate: ''
-	}, {
-		id: 4,
-		name: 'xxx有限公司',
-		receivable: '1204元',
-		received: '1204元',
-		const: '2.4万',
-		state: 1,
-		type: 2,
-		day: 0,
-		billDate: '2024-12-13',
-		costDate: '2024-12-14'
-	}, {
-		id: 5,
-		name: 'xxx有限公司',
-		receivable: '604元',
-		received: '604元',
-		const: '7362元',
-		state: 1,
-		type: 3,
-		day: 0,
-		billDate: '2024-12-13',
-		costDate: '2024-12-14'
-	}];
+	import {
+		getPaymentList
+	} from '@/httpApi/staging'
 	import costDetail from './costDetail'
 	export default {
 		props: ['nodeType'],
 		data() {
 			return {
+				dataList: {
+					hydropower: [],
+					property: [],
+					rent: []
+				},
 				title: [{
 					id: 1,
-					name: '房租'
+					name: '房租',
+					type: 'rent'
 				}, {
 					id: 2,
-					name: '物业'
+					name: '物业',
+					type: 'property'
 				}, {
 					id: 3,
-					name: '水电'
+					name: '水电',
+					type: 'hydropower'
 				}],
-				nowTitleId: 1,
-				tableData: [],
-				currPage: 1,
-				pageSize: 10,
-				totalCount: 0,
+				nowTitle: {
+					id: 1,
+					name: '房租',
+					type: 'rent'
+				},
 				drawer: false,
 				detail: {}
 			}
 		},
 		created() {
-			this.nowTitleId = this.nodeType;
+			console.log(this.nodeType);
+			this.nowTitle = this.title.find(node => node.id === this.nodeType);
 			this.init();
 		},
 		methods: {
 			init() {
-				this.tableData = data.filter(node => node.type === this.nowTitleId);
-			},
-			currentChange(currPage) {
-				this.currPage = currPage;
-				this.init();
+				getPaymentList(this.$store.getters.project.id).then(res => {
+					if (res.state) this.dataList = res.data;
+				})
 			},
 			changeTitle(item) {
-				this.nowTitleId = item.id;
-				this.init();
+				this.nowTitle = item;
 			},
 			look(val) {
 				this.detail = val;

+ 8 - 15
virgo.wzfrontend/console/src/components/work/staging/costDetail.vue

@@ -4,37 +4,30 @@
 		<div class="hui-detail-content">
 			<div class="hui-detail-item">
 				<div class="hui-detail-label">客户名称</div>
-				<div class="hui-detail-value">{{detail.name}}</div>
+				<div class="hui-detail-value">{{detail.payClientName || detail.payMerchantName}}</div>
 			</div>
 			<div class="hui-detail-item">
 				<div class="hui-detail-label">应收金额</div>
-				<div class="hui-detail-value">{{detail.receivable}}</div>
+				<div class="hui-detail-value">{{detail.amount}}</div>
 			</div>
 			<div class="hui-detail-item">
 				<div class="hui-detail-label">已收金额</div>
-				<div class="hui-detail-value">{{detail.received}}</div>
+				<div class="hui-detail-value">{{detail.status === 1 ? detail.amount: 0}}</div>
 			</div>
 			<div class="hui-detail-item">
 				<div class="hui-detail-label">累计收费</div>
-				<div class="hui-detail-value">{{detail.const}}</div>
-			</div>
-			<div class="hui-detail-item">
-				<div class="hui-detail-label">账单日期</div>
-				<div class="hui-detail-value">{{detail.billDate}}</div>
+				<div class="hui-detail-value">{{detail.received}}</div>
 			</div>
 			<div class="hui-detail-item">
-				<div class="hui-detail-label">缴费日期</div>
-				<div class="hui-detail-value">{{detail.costDate || '-'}}</div>
+				<div class="hui-detail-label">提醒日期</div>
+				<div class="hui-detail-value">{{detail.reminderDate}}</div>
 			</div>
 			<div class="hui-detail-item">
 				<div class="hui-detail-label">状态</div>
 				<div class="hui-detail-value">
 					<div class="hui-table-tag">
-						<div class="hui-tag hui-tag-info" v-if="!detail.state">未缴费</div>
-						<div class="hui-tag hui-tag-success" v-if="detail.state === 1">已缴费</div>
-						<div class="hui-tag hui-tag-warning" v-if="detail.state === 2">
-							已逾期{{detail.day}}天
-						</div>
+						<div class="hui-tag hui-tag-info" v-if="!detail.status">未缴费</div>
+						<div class="hui-tag hui-tag-success" v-if="detail.status === 1">已缴费</div>
 					</div>
 				</div>
 			</div>

+ 53 - 60
virgo.wzfrontend/console/src/components/work/staging/remind.vue

@@ -2,75 +2,36 @@
 	<div class="hui-flex hui-content">
 		<div class="hui-content-title">
 			<div :class="'hui-title-item' + (item.id === nowTitleId?' active':'') " v-for="item in title" :key="item.id"
-				@click="nowTitleId = item.id">
+				@click="changeItem(item)">
 				{{item.name}}
 			</div>
 		</div>
-		<div class="hui-flex-box">
-			<div class="remind-box">
+		<div class="hui-flex-box" v-if="nowTitleId === 4"></div>
+		<div class="hui-flex-box" v-else>
+			<div class="remind-box" v-for="(item,key,index) in list" :key="index">
 				<div class="remind-item">
-					<div class="date">2024-12-13</div>
+					<div class="date">{{key}}</div>
+					<div class="line-top line" v-if="index > 0"></div>
 					<div class="line-bottom line"></div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-success">已完成</div>
-					</div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-info">待完成</div>
-					</div>
-				</div>
-			</div>
-			<div class="remind-box">
-				<div class="remind-item">
-					<div class="date">2024-12-14</div>
-					<div class="line-top line"></div>
-					<div class="line-bottom line"></div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-info">待完成</div>
-					</div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-info">待完成</div>
-					</div>
-				</div>
-			</div>
-			<div class="remind-box">
-				<div class="remind-item">
-					<div class="date">2024-12-15</div>
-					<div class="line-top line"></div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-info">待完成</div>
-					</div>
-					<div class="content" @click="drawer = true">
-						<div class="title">重要事件标题</div>
-						<div class="remark">重要事件内容重要事件内容重要事件内容重要事件内容</div>
-						<div class="time">提醒时间:13:00</div>
-						<div class="hui-tag hui-tag-info">待完成</div>
+					<div class="content" @click="open(node)" v-for="(node,i) in item" :key="node.id">
+						<div class="title">{{node.name}}</div>
+						<div class="remark">{{node.content}}</div>
+						<div class="time"><span>提醒时间:</span><span>{{$dayjs(node.date).format('HH:mm')}}</span></div>
 					</div>
 				</div>
 			</div>
 		</div>
 		<el-drawer title="提醒详情" :visible.sync="drawer" :size="400" :append-to-body="true">
-			<remind-detail v-if="drawer"></remind-detail>
+			<detail v-if="drawer" :detailId="detailId"></detail>
 		</el-drawer>
 	</div>
 </template>
 
 <script>
-	import remindDetail from './remindDetail'
+	import detail from '@/components/work/operation/remind/detail'
+	import {
+		getReminderListByQuery
+	} from '@/httpApi/operation'
 	export default {
 		props: ['nodeType'],
 		data() {
@@ -83,20 +44,52 @@
 					name: '会议提醒'
 				}, {
 					id: 3,
-					name: '收费提醒'
-				}, {
-					id: 4,
 					name: '看房提醒'
 				}],
 				nowTitleId: 1,
-				drawer: false
+				list: {},
+				drawer: false,
+				detailId: ''
 			}
 		},
 		created() {
 			this.nowTitleId = this.nodeType;
+			this.init();
+		},
+		methods: {
+			init() {
+				this.list = {};
+				let postData = {
+					currPage: 1,
+					pageSize: 100,
+					projectId: this.$store.getters.project.id,
+					type: this.nowTitleId
+				}
+				getReminderListByQuery(postData).then(res => {
+					if (res.state) {
+						let data = res.data.dataList.sort((a, b) => a.date - b.date);
+						let obj = {};
+						for (let i = 0; i < data.length; i++) {
+							let date = this.$dayjs(data[i].date).format('YYYY-MM-DD');
+							if (!obj[date]) obj[date] = [];
+							obj[date].push(data[i]);
+						}
+						this.list = obj;
+					}
+				})
+
+			},
+			open(item) {
+				this.detailId = item.id;
+				this.drawer = true;
+			},
+			changeItem(item) {
+				this.nowTitleId = item.id;
+				this.init();
+			}
 		},
 		components: {
-			remindDetail
+			detail
 		}
 	}
 </script>
@@ -116,7 +109,7 @@
 			background: #2f3746;
 			padding: 5px 10px;
 			border-radius: 4px;
-			width: 100px;
+			width: 110px;
 			text-align: center;
 			top: 0;
 			left: 0;

+ 11 - 0
virgo.wzfrontend/console/src/httpApi/staging.js

@@ -75,4 +75,15 @@ export function deviceManagement(projectId) {
 		url: `/api/operateDevice/count/${projectId}`,
 		method: 'get'
 	})
+}
+/* 
+ * 获取账单统计列表
+ * 
+ * 
+ */
+export function getPaymentList(projectId) {
+	return request({
+		url: `/api/payment/monthCount/${projectId}`,
+		method: 'get'
+	})
 }

+ 9 - 17
virgo.wzfrontend/console/src/views/work/staging/project.vue

@@ -51,7 +51,7 @@
 						<div class="detail-item">
 							<span class="label">房租费用</span>
 							<span class="detail-icon"></span>
-							<div class="detail-test">
+							<div class="detail-test" @click="openDialog(1,1)">
 								<div class="test-item">
 									<div class="name">应收</div>
 									<div class="number alibaba color-cyan">{{nowPaymentData.property.receivable}}</div>
@@ -69,7 +69,7 @@
 						<div class="detail-item">
 							<span class="label">物业费用</span>
 							<span class="detail-icon"></span>
-							<div class="detail-test">
+							<div class="detail-test" @click="openDialog(1,2)">
 								<div class="test-item">
 									<div class="name">应收</div>
 									<div class="number alibaba color-cyan">{{nowPaymentData.rent.receivable}}</div>
@@ -87,7 +87,7 @@
 						<div class="detail-item">
 							<span class="label">水电费用</span>
 							<span class="detail-icon"></span>
-							<div class="detail-test">
+							<div class="detail-test" @click="openDialog(1,3)">
 								<div class="test-item">
 									<div class="name">应收</div>
 									<div class="number alibaba color-cyan">{{nowPaymentData.hydropower.receivable}}
@@ -224,28 +224,28 @@
 						<span class="label">事件提醒</span>
 					</div>
 					<div class="people-list box-background">
-						<div class="people-item">
+						<div class="people-item" @click="openDialog(2,1)">
 							<div class="people-value">
 								<span class="number alibaba">{{remindData.importantNumber}}</span>
 								<span class="unit">项</span>
 							</div>
 							<div class="people-tab">重要事件</div>
 						</div>
-						<div class="people-item">
+						<div class="people-item" @click="openDialog(2,2)">
 							<div class="people-value">
 								<span class="number alibaba">{{remindData.meetingNumber}}</span>
 								<span class="unit">项</span>
 							</div>
 							<div class="people-tab">会议提醒</div>
 						</div>
-						<div class="people-item">
+						<div class="people-item" @click="openDialog(2,3)">
 							<div class="people-value">
 								<span class="number alibaba">{{remindData.seeRoomNumber}}</span>
 								<span class="unit">项</span>
 							</div>
 							<div class="people-tab">看房预约</div>
 						</div>
-						<div class="people-item">
+						<div class="people-item" @click="$router.push('/work/operation/remind/remote')">
 							<div class="people-value">
 								<span class="number alibaba">{{remindData.remoteNumber}}</span>
 								<span class="unit">项</span>
@@ -385,7 +385,6 @@
 		<el-dialog :close-on-click-modal="false" :title="title" :visible.sync="visible"
 			:width="title=='客户详情'?'1100px':'900px'" :append-to-body="true">
 			<cost v-if="title=='本月费用列表' && visible" :nodeType="nodeType"></cost>
-			<client v-if="title=='客户详情' && visible"></client>
 			<remind v-if="title=='事件提醒' && visible" :nodeType="nodeType"></remind>
 		</el-dialog>
 		<div class="video-toggle" v-if="isVideo">
@@ -731,15 +730,8 @@
 				return num;
 			},
 			openDialog(type, nodeType) {
-				if (type === 1) {
-					this.title = '本月费用列表';
-					this.nodeType = nodeType;
-				} else if (type === 2) {
-					this.title = '客户详情';
-				} else if (type === 3) {
-					this.title = '事件提醒';
-					this.nodeType = nodeType;
-				}
+				this.title = type === 1 ? '本月费用列表' : '事件提醒';
+				this.nodeType = nodeType;
 				this.visible = true;
 			}
 		},

Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/index.html


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/1249.29e04991.css


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/1642.29e04991.css


Plik diff jest za duży
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1249.9bbb614e.js


Plik diff jest za duży
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1642-legacy.2022a086.js


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/5530.2e1dec2b.js


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/7538-legacy.2588e7f4.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.0051b6f4.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app.bf095e97.js