Browse Source

feat: 统计

2912631854@qq.com 1 year ago
parent
commit
38cde341d7

+ 33 - 19
components/Charts/LineOne.vue

@@ -5,13 +5,9 @@
 </template>
 
 <script>
-	// import template_page_mixin from '@/libs/mixin/template_page_mixin.js'
 	export default {
-		name: 'TemplateContent',
-		// mixins: [template_page_mixin],
 		data() {
 			return {
-
 				// 公司营收
 				revenueChartData: {},
 				revenueOpts: {
@@ -48,28 +44,46 @@
 						},
 					},
 				},
-
+				dataList: [],
+				list: {},
+				fromData: {
+					dateDay: '2024-01',
+					homestayId: '1744620500506251265'
+				},
 			}
 		},
 		onReady() {
-			this.drawRevenueCharts(); //公司营收
+			let obj = wx.getStorageSync('fromData')
+			this.fromData.dateDay = obj.dateDay
+			this.fromData.homestayId = obj.homestayId
+			this.drawRevenueCharts();
+
 		},
 		methods: {
-			// 公司营收 绘制
+			// 交易趋势
 			drawRevenueCharts() {
-				let res = {
-					categories: ["01-01", "", "01-08", "", "01-15", "", "01-22", "", "01-29"],
-					series: [{
-							name: "收入",
-							data: [6800, 8040, 5203, 9850, 7510, 6301, 5968, 9808, 5200],
-							legendShape: "circle",
-							color: "#4088FE",
-							pointShape: "none",
-						},
-
+				let obj = wx.getStorageSync('fromData')
+				this.list = obj
+				this.list.dealLineChant.forEach(item => {
+					this.dataList.push(item.orderAmount)
+				})
+				let list1 = {
+					categories: [
+						"01-01", "", "", "", "", "", "",
+						"01-08", "", "", "", "", "", "",
+						"01-15", "", "", "", "", "", "",
+						"01-22", "", "", "", "", "", "",
+						"01-29", "", ""
 					],
-				};
-				this.revenueChartData = JSON.parse(JSON.stringify(res));
+					series: [{
+						name: "收入",
+						data: this.dataList,
+						legendShape: "circle",
+						color: "#4088FE",
+						pointShape: "none",
+					}, ],
+				}
+				this.revenueChartData = JSON.parse(JSON.stringify(list1));
 			},
 
 		}

+ 24 - 15
components/Charts/LineTwo.vue

@@ -5,13 +5,9 @@
 </template>
 
 <script>
-	import template_page_mixin from '@/libs/mixin/template_page_mixin.js'
 	export default {
-		name: 'TemplateContent',
-		mixins: [template_page_mixin],
 		data() {
 			return {
-
 				// 公司营收
 				revenueChartData: {},
 				revenueOpts: {
@@ -22,6 +18,7 @@
 						disableGrid: true,
 					},
 					yAxis: {
+						// gridColor: "rgba(230,230,230,0.6)",
 						gridColor: "rgba(200,200,200,0.6)",
 						disabled: false,
 						disableGrid: false,
@@ -30,6 +27,7 @@
 						data: [{
 							axisLineColor: "#FFFFFF",
 							min: 0,
+							max: 1
 						}],
 					},
 					legend: {
@@ -47,27 +45,38 @@
 						},
 					},
 				},
-
+				dataList: [],
+				list: {},
+				fromData: {
+					dateDay: '2024-01',
+					homestayId: '1744620500506251265'
+				},
 			}
 		},
 		onReady() {
-			this.drawRevenueCharts(); //公司营收
+			this.drawRevenueCharts();
 		},
 		methods: {
-
-			// 公司营收 绘制
+			// 交易趋势
 			drawRevenueCharts() {
-				let res = {
-					categories: ["01-01", "", "01-08", "", "01-15", "", "01-22", "", "01-29"],
+				let obj = wx.getStorageSync('fromData')
+				this.list = obj
+				this.list.checkedInChant.forEach(item => {
+					this.dataList.push(item.checkedInRatio)
+				})
+				let list1 = {
+					categories: ["01-01", "", "", "", "", "", "", "01-08", "", "", "", "", "", "", "01-15",
+						"", "", "", "", "", "", "01-22", "", "", "", "", "", "", "01-29", "", "",
+					],
 					series: [{
-						name: "收入",
-						data: [0.1, 0.3, 0.4, 0.3, 0.6, 0.7, 0.4, 1, 0.5],
+						name: "入住率",
+						data: this.dataList,
 						legendShape: "circle",
 						color: "#600EFF",
 						pointShape: "none",
-					}],
-				};
-				this.revenueChartData = JSON.parse(JSON.stringify(res));
+					}, ],
+				}
+				this.revenueChartData = JSON.parse(JSON.stringify(list1));
 			},
 
 		}

+ 38 - 37
components/Charts/PieCharts.vue

@@ -1,6 +1,6 @@
 <template>
-	<view class="charts-box" style="min-height: 630rpx;">
-		<qiun-data-charts type="ring" :opts="opts" :chartData="chartData" style="width: 630rpx; height: 600rpx;" />
+	<view class="charts-box" style="min-height: 580rpx;">
+		<qiun-data-charts type="ring" :opts="optsPie" :chartData="chartDataPie" />
 	</view>
 </template>
 
@@ -8,15 +8,12 @@
 	export default {
 		data() {
 			return {
-				chartData: {},
-				//您可以通过修改 config-ucharts.js 文件中下标为 ['ring'] 的节点来配置全局默认参数,如都是默认参数,
-				// 此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】
-				// 即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
-				opts: {
+				chartDataPie: {},
+				optsPie: {
 					rotate: false,
 					rotateLock: false,
 					color: ['#1372FF', '#F89F2A', '#02C493'],
-					padding: [10, 15, 15, 10],
+					padding: [30, 30, 30, 35],
 					dataLabel: true,
 					enableScroll: false,
 					legend: {
@@ -36,7 +33,7 @@
 					},
 					extra: {
 						ring: {
-							ringWidth: 35,
+							ringWidth: 25,
 							activeOpacity: 0.5,
 							activeRadius: 10,
 							offsetAngle: 0,
@@ -46,41 +43,45 @@
 							borderColor: "#FFFFFF"
 						}
 					},
-				}
+				},
+				fromData: {
+					dateDay: '2024-01',
+					homestayId: '1744620500506251265'
+				},
+				list: {}
 			};
 		},
 		onReady() {
+
 			this.getServerData();
 		},
 		methods: {
 			getServerData() {
-				//模拟从服务器获取数据时的延时
-				setTimeout(() => {
-					//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
-					let res = {
-						series: [{
-							data: [{
-									"name": "房费",
-									"value": 21964.00,
-									"labelText": "房费 72%"
-								},
-								{
-									"name": "商品",
-									"value": 6514.00,
-									"labelText": "商品 21%"
-								},
-								{
-									"name": "其他",
-									"value": 2514.00,
-									"labelText": "其他 7%",
-								},
+				let obj = wx.getStorageSync('fromData')
+				this.list = obj
+				this.list = {
+					series: [{
+						data: [{
+								"name": "房费",
+								"value": this.list.roomAmount,
+								"labelText": "房费" + this.list.roomRatio + '%'
+							},
+							{
+								"name": "商品",
+								"value": this.list.othersAmount,
+								"labelText": "商品" + this.list.othersRatio + '%'
+							},
+							{
+								"name": "其他",
+								"value": this.list.breakfastAmount,
+								"labelText": "其他" + this.list.breakfastRatio + '%',
+							},
 
-							],
+						],
 
-						}]
-					};
-					this.chartData = JSON.parse(JSON.stringify(res));
-				}, 500);
+					}],
+				}
+				this.chartDataPie = JSON.parse(JSON.stringify(this.list));
 			},
 		}
 	};
@@ -89,7 +90,7 @@
 <style scoped>
 	/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
 	.charts-box {
-		width: 630rpx;
-		height: 600rpx;
+		width: 600rpx !important;
+		height: 560rpx !important;
 	}
 </style>

+ 2 - 2
http/baseApi.js

@@ -1,11 +1,11 @@
 // const BaseApi = 'http://192.168.2.190:8080' //汪瑶
 // const BaseApi = 'http://192.168.2.205:8080' //汪辉
-// const BaseApi = 'http://192.168.2.19:8080' //李勇
+const BaseApi = 'http://192.168.2.19:8080' //李勇
 // const BaseApi = 'http://192.168.3.13:8080' //徐涛
 // const BaseApi = 'http://192.168.2.39:8080' //肖添伟
 // const BaseApi = 'http://192.168.3.6:8080' //朱壮波
 
-const BaseApi = 'https://i.ringzle.com/island-cloud-server' //测试服务器
+// const BaseApi = 'https://i.ringzle.com/island-cloud-server' //测试服务器
 
 export {
 	BaseApi

+ 1 - 1
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "hotelHomestay",
-    "appid" : "__UNI__40A92BD",
+    "appid" : "__UNI__3A1C8AF",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",

+ 38 - 21
pages/statistics/index.vue

@@ -4,29 +4,33 @@
 		<view class="hander">
 			<!-- 2024年1月 -->
 			<view
-				class="tn-flex tn-flex-col-center justify-content-item tn-margin-right tn-padding-xs tn-text-sm tn-bg-gray--light tn-radius tn-color-gray--dark"
-				style="border-radius: 12rpx;">
+				class="tn-flex tn-flex-col-center  tn-margin-right tn-padding-xs tn-text-sm tn-bg-gray--light tn-radius tn-color-gray--dark"
+				style="border-radius: 12rpx; width: 160rpx;">
 				<picker @change="bindDateChange" mode="date" :value="date" :start="startDate" :end="endDate"
 					fields="month">
-					<text class="tn-padding-left-xs tn-padding-right-xs">{{date}}</text>
+					<text class="tn-padding-left-xs tn-padding-right-xs">{{date}}
+					</text>
 				</picker>
 			</view>
+			<view style="width: 60rpx; line-height: 48rpx; height: 48rpx; margin: 15rpx 0 ; ">
+				<u-icon name="arrow-down" color="#000000" size="20"></u-icon>
+			</view>
 		</view>
+
 		<view class="hander-price">
 			<view class="one">
 				<view class="left">
 					总营业额
 				</view>
 				<view class="right">
-					共124
+					共{{list.totalNums}}
 				</view>
 			</view>
 			<view class="two">
 				<text>¥</text>
-				<text>15424.00</text>
+				<text>{{list.totalAmount}}</text>
 			</view>
 		</view>
-
 		<view class="echarts-one">
 			<view class="title">
 				营业概况
@@ -37,7 +41,7 @@
 						房费
 					</view>
 					<view class="price">
-						{{}}¥21964.00
+						{{list.roomAmount}}
 					</view>
 				</view>
 				<view class="list">
@@ -45,7 +49,7 @@
 						商品
 					</view>
 					<view class="price">
-						{{}}¥6514.00
+						{{list.breakfastAmount}}
 					</view>
 				</view>
 				<view class="list">
@@ -53,14 +57,13 @@
 						其他
 					</view>
 					<view class="price">
-						{{}}¥2514.00
+						{{list.othersAmount}}
 					</view>
 				</view>
 
 			</view>
 			<view class="Pie_charts">
 				<PieCharts></PieCharts>
-
 			</view>
 		</view>
 		<view class="echarts-two">
@@ -109,31 +112,42 @@
 			return {
 				h: uni.getSystemInfoSync().windowHeight,
 				mt: uni.getSystemInfoSync().statusBarHeight + 54,
-				date: '2023-07',
+				date: '2024-01',
+				fromData: {
+					dateDay: '2024-01',
+					homestayId: '1744620500506251265'
+				},
+				list: {}
 			}
 		},
-		onReady() {},
+		onReady() {
+			this.getList()
+		},
 		methods: {
-
 			bindDateChange(e) {
 				this.date = e.detail.value
+				this.fromData.dateDay = e.detail.value
+				this.getList()
 			},
 			// 时间
 			startDate() {
-				return this.getDate('start');
+				return this.getDate('start')
 			},
 			endDate() {
-				return this.getDate('end');
+				return this.getDate('end')
+			},
+			getList() {
+				this.$api.get('/merchant/hotel/mine/getHotelCountInfo', this.fromData).then(res => {
+					console.log(res);
+					this.list = res.data.data
+					wx.setStorageSync('fromData', this.list)
+				})
 			},
 		}
-	};
+	}
 </script>
 
 <style scoped lang="less">
-	// .charts {
-	// 	width: 700rpx;
-	// 	height: 630rpx;
-	// }
 	.charts-box {
 		width: 100%;
 		height: 630rpx;
@@ -155,6 +169,9 @@
 		background-color: #fff;
 		text-align: center;
 		line-height: 48rpx;
+		display: flex !important;
+		justify-content: space-between !important;
+
 	}
 
 	.hander-price {
@@ -234,7 +251,7 @@
 		}
 
 		.Pie_charts {
-			height: 630rpx;
+			height: 600rpx;
 			width: 630rpx;
 			// background-color: aqua;
 		}