whx 4 bulan lalu
induk
melakukan
d6db0a2cac
29 mengubah file dengan 839 tambahan dan 559 penghapusan
  1. 1 1
      virgo.wzfrontend/console/src/components/work/operation/week/client.vue
  2. 193 265
      virgo.wzfrontend/console/src/components/work/operation/week/device.vue
  3. 262 0
      virgo.wzfrontend/console/src/components/work/operation/week/deviceItem.vue
  4. 204 177
      virgo.wzfrontend/console/src/components/work/operation/week/house.vue
  5. 83 21
      virgo.wzfrontend/console/src/components/work/operation/week/payment.vue
  6. 83 82
      virgo.wzfrontend/console/src/components/work/space/house/lookRecordEdit.vue
  7. 3 3
      virgo.wzfrontend/console/src/views/work/operation/week/detail.vue
  8. 0 1
      virgo.wzfrontend/console/src/views/work/space/set.vue
  9. 1 1
      virgo.wzfrontend/src/main/resources/static/console/index.html
  10. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/3375.af90e1b5.css
  11. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/3451.b6c7aaf0.css
  12. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/5872.af90e1b5.css
  13. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/6318.e8f94635.css
  14. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/9464.e8f94635.css
  15. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/9626.b6c7aaf0.css
  16. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2530.1fee93ab.js
  17. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/3588.20d23a16.js
  18. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/3451.fe6a72e3.js
  19. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/3739.9c29efd4.js
  20. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/379-legacy.750065f4.js
  21. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/4524-legacy.a4523520.js
  22. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/1931-legacy.3d0bd6d8.js
  23. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/6318-legacy.704f60f2.js
  24. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/9464.672289a8.js
  25. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/3804-legacy.5aa9b6d7.js
  26. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.481f8a65.js
  27. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.75c2015f.js
  28. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/app.5357162e.js
  29. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/app.d858eaba.js

+ 1 - 1
virgo.wzfrontend/console/src/components/work/operation/week/client.vue

@@ -182,7 +182,7 @@
 				})
 				this.clientList = clientList;
 				let title = data.length === 0 ? '' : clientList[0].name;
-				let len = data.length === 0 ? '' : parseInt(clientList[0].value / data.length);
+				let len = data.length === 0 ? '' : (parseInt(clientList[0].value / data.length) * 100).toFixed(2);
 				this.charts(this.$refs.chart2, title, len, clientList, color);
 			},
 			lookCustomer(item) {

+ 193 - 265
virgo.wzfrontend/console/src/components/work/operation/week/device.vue

@@ -2,29 +2,29 @@
 	<div class="content-box">
 		<div class="content-test">
 			<div class="test-item blue">
-				<div class="label">总数量</div>
-				<div class="number alibaba">48</div>
+				<div class="label">总审核</div>
+				<div class="number alibaba">{{dataList.length}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-zongshuliang"></i>
 				</div>
 			</div>
 			<div class="test-item green">
-				<div class="label">已处理</div>
-				<div class="number alibaba">44</div>
+				<div class="label">已通过</div>
+				<div class="number alibaba">{{flowCount.success}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-hege"></i>
 				</div>
 			</div>
 			<div class="test-item purple">
-				<div class="label">处理中</div>
-				<div class="number alibaba">4</div>
+				<div class="label">审核中</div>
+				<div class="number alibaba">{{flowCount.waiting}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-zhenggaizhong"></i>
 				</div>
 			</div>
 			<div class="test-item red">
-				<div class="label">未处理</div>
-				<div class="number alibaba">0</div>
+				<div class="label">未通过</div>
+				<div class="number alibaba">{{flowCount.error}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-buhege"></i>
 				</div>
@@ -34,279 +34,207 @@
 			<div class="legend-box">
 				<div class="legend-item">
 					<span class="legend-page" style="background:#2DB85C;"></span>
-					<span class="legend-name">已处理</span>
+					<span class="legend-name">已通过</span>
 				</div>
 				<div class="legend-item">
 					<span class="legend-page" style="background:#9D60FB;"></span>
-					<span class="legend-name">处理中</span>
+					<span class="legend-name">审核中</span>
 				</div>
 				<div class="legend-item">
 					<span class="legend-page" style="background:#F04243;"></span>
-					<span class="legend-name">未处理</span>
+					<span class="legend-name">未通过</span>
 				</div>
 			</div>
 			<div ref="chart1" class="chart-box"></div>
 		</div>
 		<div class="project-list">
-			<div class="project-item">
-				<div class="project-item-title">创业园区-1号楼</div>
-				<div class="project-test">
-					<div class="test-item blue">
-						<span>总数量</span>
-						<span class="alibaba number color-blue">28</span>
-					</div>
-					<div class="test-item green">
-						<span>已处理</span>
-						<span class="alibaba number color-green">22</span>
-					</div>
-					<div class="test-item purple">
-						<span>处理中</span>
-						<span class="alibaba number color-purple">6</span>
-					</div>
-					<div class="test-item red">
-						<span>未处理</span>
-						<span class="alibaba number color-red">0</span>
-					</div>
-				</div>
-				<div class="project-flow">
-					<div class="project-chart">
-						<div ref="chart2" class="pie-chart"></div>
-						<div class="chart-legend">
-							<div class="legend-item">
-								<span class="legend-bage"></span>
-								<span class="legend-label">周界报警</span>
-								<span class="legend-label">
-									<span class="alibaba">3</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage blue"></span>
-								<span class="legend-label">电子巡更</span>
-								<span class="legend-label">
-									<span class="alibaba">2</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage yellow"></span>
-								<span class="legend-label">消防设施</span>
-								<span class="legend-label">
-									<span class="alibaba">1</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage orange"></span>
-								<span class="legend-label">危险品</span>
-								<span class="legend-label">
-									<span class="alibaba">1</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-						</div>
-					</div>
-					<div class="flow-view">
-						<div class="flow-title"> 设备管理(4)</div>
-						<div class="flow-box">
-							<div class="flow-test">
-								<div class="flow-test-item">
-									<div class="label">总数量</div>
-									<div class="alibaba number color-blue">7</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">已处理</div>
-									<div class="alibaba number color-green">7</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">处理中</div>
-									<div class="alibaba number color-purple">0</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">为处理</div>
-									<div class="alibaba number color-red">0</div>
-								</div>
-							</div>
-							<div class="flow-list">
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>1号楼</div>
-										<div>1F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>1号楼</div>
-										<div>2F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>1号楼</div>
-										<div>3F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			<div class="project-item">
-				<div class="project-item-title">创业园区-2号楼</div>
-				<div class="project-test">
-					<div class="test-item blue">
-						<span>总数量</span>
-						<span class="alibaba number color-blue">28</span>
-					</div>
-					<div class="test-item green">
-						<span>已处理</span>
-						<span class="alibaba number color-green">22</span>
-					</div>
-					<div class="test-item purple">
-						<span>处理中</span>
-						<span class="alibaba number color-purple">6</span>
-					</div>
-					<div class="test-item red">
-						<span>未处理</span>
-						<span class="alibaba number color-red">0</span>
-					</div>
-				</div>
-				<div class="project-flow">
-					<div class="project-chart">
-						<div ref="chart3" class="pie-chart"></div>
-						<div class="chart-legend">
-							<div class="legend-item">
-								<span class="legend-bage"></span>
-								<span class="legend-label">周界报警</span>
-								<span class="legend-label">
-									<span class="alibaba">3</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage blue"></span>
-								<span class="legend-label">电子巡更</span>
-								<span class="legend-label">
-									<span class="alibaba">2</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage yellow"></span>
-								<span class="legend-label">消防设施</span>
-								<span class="legend-label">
-									<span class="alibaba">1</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-							<div class="legend-item">
-								<span class="legend-bage orange"></span>
-								<span class="legend-label">危险品</span>
-								<span class="legend-label">
-									<span class="alibaba">1</span>
-									<span class="unit">条</span>
-								</span>
-							</div>
-						</div>
-					</div>
-					<div class="flow-view">
-						<div class="flow-title">设备管理(4)</div>
-						<div class="flow-box">
-							<div class="flow-test">
-								<div class="flow-test-item">
-									<div class="label">总数量</div>
-									<div class="alibaba number color-blue">7</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">已处理</div>
-									<div class="alibaba number color-green">7</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">处理中</div>
-									<div class="alibaba number color-purple">0</div>
-								</div>
-								<div class="flow-test-item">
-									<div class="label">为处理</div>
-									<div class="alibaba number color-red">0</div>
-								</div>
-							</div>
-							<div class="flow-list">
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>2号楼</div>
-										<div>1F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>2号楼</div>
-										<div>2F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-								<div class="flow-item">
-									<div class="flow-icon">
-										<div>2号楼</div>
-										<div>3F</div>
-									</div>
-									<div class="flow-content">
-										<div class="flow-name">
-											<span class="name">周界报警</span>
-											<div class="hui-tag hui-tag-success">合格</div>
-										</div>
-										<div class="date">2020-01-01</div>
-									</div>
-									<span class="color-primary">查看详情</span>
-								</div>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
+			<device-item v-for="(item,index) in flowItem" :key="index" :node="item"></device-item>
 		</div>
 	</div>
 </template>
 
 <script>
+	import {
+		getWeekDetailByTypeId,
+	} from '@/httpApi/operation'
+	import {
+		getProjectDetailById
+	} from '@/httpApi/space';
+	import deviceItem from './deviceItem.vue'
+	export default {
+		props: ['typeId', 'dateList'],
+		data() {
+			return {
+				dataList: [],
+				flowCount: {
+					allNum: 0,
+					success: 0,
+					waiting: 0,
+					error: 0
+				},
+				projectItemList: [],
+				flowItem: []
+			}
+		},
+		mounted() {
+			getProjectDetailById(this.$store.getters.project.id).then(res => {
+				if (res.state) {
+					this.projectItemList = res.data.projectItemList || [];
+					this.init();
+				}
+			})
+		},
+		components: {
+			deviceItem
+		},
+		methods: {
+			init() {
+				getWeekDetailByTypeId(this.typeId).then(res => {
+					if (res.state) {
+						if (res.data.data) {
+							let data = JSON.parse(res.data.data);
+							this.dataList = data;
+							this.flowCount = {
+								allNum: data.length,
+								success: data.filter(node => node.type === 3).length,
+								waiting: data.filter(node => node.type !== 3 && node.type !== 4).length,
+								error: data.filter(node => node.type === 4).length
+							}
+							this.lineChart(data);
+							let obj = {},
+								list = [];
+							for (let i = 0; i < data.length; i++) {
+								if (!obj[data[i].projectItemId]) {
+									obj[data[i].projectItemId] = 1;
+									list.push({
+										id: data[i].projectItemId,
+										name: this.projectItemList.find(node => node.id === data[i]
+											.projectItemId).name,
+										targetList: this.projectItemList.find(node => node.id === data[i]
+											.projectItemId).projectItemTargetList,
+										node: []
+									})
+								}
+								list.find(node => node.id === data[i].projectItemId).node.push(data[i])
+							}
+							this.flowItem = list;
+						}
+					}
+				})
+			},
+			lineChart(data) {
+				let chartBox1 = [],
+					chartBox2 = [],
+					chartBox3 = [];
+				for (let i = 0; i < this.dateList.length; i++) {
+					chartBox1.push(data.filter(node => this.$dayjs(node.date).format('YYYY-MM-DD') === this.dateList[i] &&
+						node.type === 3).length);
+					chartBox2.push(data.filter(node => this.$dayjs(node.date).format('YYYY-MM-DD') === this.dateList[i] &&
+						node.type !== 3 && node.type !== 4).length);
+					chartBox3.push(data.filter(node => this.$dayjs(node.date).format('YYYY-MM-DD') === this.dateList[i] &&
+						node.type === 4).length);
+				}
+				this.chart(this.$refs.chart1, [chartBox1, chartBox2, chartBox3], ['#2DB85C',
+					'#9D60FB', '#F04243'
+				], this.dateList);
+			},
+			chart(elem, data, color, x) {
+				let chart = echarts.init(elem);
+				let series = [];
+				for (var i = 0; i < data.length; i++) {
+					series = series.concat([{
+						data: data[i],
+						type: 'line',
+						symbolSize: 6,
+						color: color[i],
+						lineStyle: {
+							width: 1
+						},
+						z: 99
+					}, {
+						data: data[i],
+						type: 'line',
+						showSymbol: false,
+						label: {
+							show: true,
+							color: '#D0DEEE'
+						},
+						lineStyle: {
+							width: 1
+						},
+						color: color[i],
+						z: 99
+					}]);
+				}
+				let option = {
+					tooltip: {
+						show: true,
+						trigger: 'axis',
+						formatter: function() {
+							return ''
+						},
+						backgroundColor: 'rgba(255,255,255,0)',
+						borderWidth: 0,
+						padding: 0,
+						axisPointer: {
+							lineStyle: {
+								type: 'solid',
+								color: '#4E5561',
+							}
+						}
+					},
+					grid: {
+						left: '15',
+						top: '30',
+						right: '15',
+						bottom: '25',
+						containLabel: true
+					},
+					xAxis: {
+						type: 'category',
+						data: x,
+						axisLabel: {
+							margin: 4,
+							color: '#D0DEEE',
+							fontSize: 12
+						},
+						boundaryGap: true,
+						axisLine: {
+							lineStyle: {
+								color: '#6C8097'
+							}
+						},
+						axisTick: {
+							show: false
+						}
+					},
+					yAxis: {
+						name: '数量',
+						type: 'value',
+						nameTextStyle: {
+							color: '#D0DEEE',
+							fontSize: 12,
+							align: 'right',
+						},
+						axisLabel: {
+							margin: 10,
+							color: '#D0DEEE',
+							fontSize: 12
+						},
+						splitLine: {
+							show: true,
+							lineStyle: {
+								color: 'rgba(108,128,151,0.3)',
+								type: 'dashed'
+							}
+						}
+					},
+					series: series
+				};
+				chart.setOption(option);
+			},
+		}
+	}
 </script>
 
 <style>

+ 262 - 0
virgo.wzfrontend/console/src/components/work/operation/week/deviceItem.vue

@@ -0,0 +1,262 @@
+<template>
+	<div class="project-item">
+		<div class="project-item-title">{{node.name}}</div>
+		<div class="project-test">
+			<div class="test-item blue">
+				<span>总审核</span>
+				<span class="alibaba number color-blue">{{flowCount.allNum}}</span>
+			</div>
+			<div class="test-item green">
+				<span>已通过</span>
+				<span class="alibaba number color-green">{{flowCount.success}}</span>
+			</div>
+			<div class="test-item purple">
+				<span>审核中</span>
+				<span class="alibaba number color-purple">{{flowCount.waiting}}</span>
+			</div>
+			<div class="test-item red">
+				<span>未通过</span>
+				<span class="alibaba number color-red">{{flowCount.error}}</span>
+			</div>
+		</div>
+		<div class="project-flow">
+			<div class="project-chart">
+				<div ref="chart2" class="pie-chart"></div>
+				<div class="chart-legend">
+					<div class="legend-item" v-for="(item,index) in flowList" :key="index">
+						<span class="legend-bage" :style="'background:' + item.color + ';'"></span>
+						<span class="legend-label">{{item.name}}</span>
+						<span class="legend-label">
+							<span class="alibaba">{{item.value}}</span>
+							<span class="unit">条</span>
+						</span>
+					</div>
+				</div>
+			</div>
+			<div class="flow-view">
+				<div class="flow-title"> 设备管理(<span>{{flowCount.allNum}}</span>)</div>
+				<div class="flow-box">
+					<div class="flow-test">
+						<div class="flow-test-item">
+							<div class="label">总审核</div>
+							<div class="alibaba number color-blue">{{flowCount.allNum}}</div>
+						</div>
+						<div class="flow-test-item">
+							<div class="label">已通过</div>
+							<div class="alibaba number color-green">{{flowCount.success}}</div>
+						</div>
+						<div class="flow-test-item">
+							<div class="label">审核中</div>
+							<div class="alibaba number color-purple">{{flowCount.waiting}}</div>
+						</div>
+						<div class="flow-test-item">
+							<div class="label">未通过</div>
+							<div class="alibaba number color-red">{{flowCount.error}}</div>
+						</div>
+					</div>
+					<div class="flow-list">
+						<div class="flow-item" v-for="(item,index) in node.node" :key="item.id">
+							<div class="flow-icon">
+								<div>{{node.name}}</div>
+								<div>{{node.targetList.find(node=>node.id === item.projectItemTargetId).name}}</div>
+							</div>
+							<div class="flow-content">
+								<div class="flow-name">
+									<span class="name">
+										设备<span class="name">{{$device.getTypeObj(item.type).name}}</span>
+									</span>
+									<div>
+										<div v-if="item.state == 2 || item.state == -1 || item.state == 1 ||!item.state"
+											class="hui-tag hui-tag-info">审核中</div>
+										<div v-if="item.state == 3" class="hui-tag hui-tag-success">通过</div>
+										<div v-if="item.state == 4" class="hui-tag hui-tag-error">未通过</div>
+									</div>
+								</div>
+								<div class="date">{{$dayjs(item.date).format('YYYY-MM-DD')}}</div>
+							</div>
+							<span class="color-primary" style="cursor: pointer;" @click="lookFlow(item)">查看详情</span>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<el-drawer title="流程详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<flow-detail v-if="drawer" :detailId="detailId"></flow-detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import flowDetail from '@/components/flow/flowDetail'
+	export default {
+		props: ['node'],
+		data() {
+			return {
+				flowCount: {
+					allNum: 0,
+					success: 0,
+					waiting: 0,
+					error: 0
+				},
+				drawer: false,
+				detailId: '',
+				flowList: []
+			}
+		},
+		mounted() {
+			this.init();
+		},
+		components: {
+			flowDetail
+		},
+		methods: {
+			init() {
+				let data = this.node.node;
+				this.flowCount = {
+					allNum: data.length,
+					success: data.filter(node => node.type === 3).length,
+					waiting: data.filter(node => node.type !== 3 && node.type !== 4).length,
+					error: data.filter(node => node.type === 4).length
+				}
+				this.pieData(data);
+			},
+			lookFlow(val) {
+				this.detailId = val.id;
+				this.drawer = true;
+			},
+			pieData(data) {
+				const color = ['#73DEB3', '#73A0FA', '#F7C739', '#EB7E65', '#2DB85C', '#9D60FB', '#F04243', '#3A96FD'];
+				let obj = {},
+					flowList = [];
+				for (let i = 0; i < data.length; i++) {
+					if (!obj[data[i].type]) {
+						flowList.push({
+							name: this.$device.getTypeObj(data[i].type).name,
+							type: data[i].type,
+							value: 1
+						})
+						obj[data[i].type] = 1;
+					} else {
+						flowList.find(node => node.type === data[i].type).value++;
+					}
+				}
+				flowList = flowList.map((node, index) => {
+					node['color'] = color[index];
+					return node
+				})
+				this.flowList = flowList;
+				let title = data.length === 0 ? '' : flowList[0].name;
+				let len = data.length === 0 ? '' : (parseInt(flowList[0].value / data.length) * 100).toFixed(2);
+				this.charts(this.$refs.chart2, title, len, flowList, color);
+			},
+			charts(elem, title, len, data, color) {
+				let chart = echarts.init(elem);
+				let option = {
+					title: {
+						text: ("{name|" + title + "}" + "\n{percent|" + len + "}{name|%}"),
+						left: 'center',
+						top: 'center',
+						textStyle: {
+							rich: {
+								name: {
+									color: "rgba(255,255,255,0.6)",
+									fontSize: 12,
+									lineHeight: 16
+								},
+								percent: {
+									color: "#fff",
+									fontSize: 28,
+									lineHeight: 34,
+									fontFamily: 'alibabaMedium'
+								},
+							}
+						}
+					},
+					color: color,
+					series: [{
+						type: 'pie',
+						center: ['50%', '50%'],
+						radius: ['60%', '90%'],
+						avoidLabelOverlap: false,
+						itemStyle: {
+							borderColor: '#0E131C',
+							borderWidth: 5
+						},
+						label: {
+							show: false,
+							position: 'center'
+						},
+						emphasis: {
+							label: {
+								show: true,
+								formatter: (params) => {
+									return ("{name|" + params.name + "}" + "\n{percent|" +
+										params.percent.toFixed(2) + "}{name|%}");
+								},
+								rich: {
+									name: {
+										color: "rgba(255,255,255,0.6)",
+										fontSize: 12,
+										lineHeight: 16
+									},
+									percent: {
+										color: "#fff",
+										fontSize: 28,
+										lineHeight: 34,
+										fontFamily: 'alibabaMedium'
+									},
+								}
+							},
+						},
+						labelLine: {
+							show: false
+						},
+						data: data
+					}]
+				};
+				chart.setOption(option);
+				// 高亮时
+				chart.on('highlight', (e) => {
+					chart.setOption({
+						title: {
+							show: false
+						}
+					});
+				});
+				// 取消高亮时
+				chart.on('downplay', (e) => {
+					chart.setOption({
+						title: {
+							show: true
+						}
+					});
+				});
+				// 鼠标移入数据时
+				chart.on('mouseover', {
+					componentType: 'series',
+					seriesType: 'pie'
+				}, (params) => {
+					chart.setOption({
+						title: {
+							show: false
+						}
+					});
+				});
+				// 鼠标移出数据时
+				chart.on('mouseout', {
+					componentType: 'series',
+					seriesType: 'pie'
+				}, (params) => {
+					chart.setOption({
+						title: {
+							show: true
+						}
+					});
+				});
+			},
+		},
+	}
+</script>
+
+<style>
+</style>

+ 204 - 177
virgo.wzfrontend/console/src/components/work/operation/week/house.vue

@@ -1,178 +1,205 @@
-<template>
-	<div class="content-box">
-		<div class="content-test">
-			<div class="test-item blue">
-				<div class="label">带看数</div>
-				<div class="number alibaba">48</div>
-				<div class="icon">
-					<i class="iconfont huifont-zongshuliang"></i>
-				</div>
-			</div>
-			<div class="test-item green">
-				<div class="label">预约数</div>
-				<div class="number alibaba">44</div>
-				<div class="icon">
-					<i class="iconfont huifont-hege"></i>
-				</div>
-			</div>
-			<div class="test-item purple">
-				<div class="label">成交数</div>
-				<div class="number alibaba">4</div>
-				<div class="icon">
-					<i class="iconfont huifont-zhenggaizhong"></i>
-				</div>
-			</div>
-			<div class="test-item red">
-				<div class="label">到期数</div>
-				<div class="number alibaba">0</div>
-				<div class="icon">
-					<i class="iconfont huifont-buhege"></i>
-				</div>
-			</div>
-		</div>
-		<div class="content-chart">
-			<div class="legend-box">
-				<div class="legend-item">
-					<span class="legend-page" style="background:#3A96FD;"></span>
-					<span class="legend-name">带看</span>
-				</div>
-				<div class="legend-item">
-					<span class="legend-page" style="background:#2DB85C;"></span>
-					<span class="legend-name">预约</span>
-				</div>
-				<div class="legend-item">
-					<span class="legend-page" style="background:#9D60FB;"></span>
-					<span class="legend-name">成交</span>
-				</div>
-				<div class="legend-item">
-					<span class="legend-page" style="background:#F04243;"></span>
-					<span class="legend-name">到期</span>
-				</div>
-			</div>
-			<div ref="chart1" class="chart-box"></div>
-		</div>
-	</div>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-	
-			}
-		},
-		mounted() {
-			this.init()
-		},
-		methods: {
-			init() {
-				this.chart(this.$refs.chart1, [
-					[1, 3, 2, 6, 1, 1, 3],
-					[2, 3, 1, 4, 4, 2, 3],
-					[3, 4, 3, 4, 5, 3, 2]
-				], ['#3A96FD', '#2DB85C', '#9D60FB', '#F04243'], ['2023-12-1', '2023-12-2', '2023-12-3',
-					'2023-12-4',
-					'2023-12-5', '2023-12-6', '2023-12-7'
-				])
-			},
-			chart(elem, data, color, x) {
-				let chart = echarts.init(elem);
-				let series = [];
-				for (var i = 0; i < data.length; i++) {
-					series = series.concat([{
-						data: data[i],
-						type: 'line',
-						symbolSize: 6,
-						color: color[i],
-						lineStyle: {
-							width: 1
-						},
-						z: 99
-					}, {
-						data: data[i],
-						type: 'line',
-						showSymbol: false,
-						label: {
-							show: true,
-							color: '#D0DEEE'
-						},
-						lineStyle: {
-							width: 1
-						},
-						color: color[i],
-						z: 99
-					}]);
-				}
-				let option = {
-					tooltip: {
-						show: true,
-						trigger: 'axis',
-						formatter: function() {
-							return ''
-						},
-						backgroundColor: 'rgba(255,255,255,0)',
-						borderWidth: 0,
-						padding: 0,
-						axisPointer: {
-							lineStyle: {
-								type: 'solid',
-								color: '#4E5561',
-							}
-						}
-					},
-					grid: {
-						left: '15',
-						top: '30',
-						right: '15',
-						bottom: '25',
-						containLabel: true
-					},
-					xAxis: {
-						type: 'category',
-						data: x,
-						axisLabel: {
-							margin: 4,
-							color: '#D0DEEE',
-							fontSize: 12
-						},
-						boundaryGap: true,
-						axisLine: {
-							lineStyle: {
-								color: '#6C8097'
-							}
-						},
-						axisTick: {
-							show: false
-						}
-					},
-					yAxis: {
-						name: '数量',
-						type: 'value',
-						nameTextStyle: {
-							color: '#D0DEEE',
-							fontSize: 12,
-							align: 'right',
-						},
-						axisLabel: {
-							margin: 10,
-							color: '#D0DEEE',
-							fontSize: 12
-						},
-						splitLine: {
-							show: true,
-							lineStyle: {
-								color: 'rgba(108,128,151,0.3)',
-								type: 'dashed'
-							}
-						}
-					},
-					series: series
-				};
-				chart.setOption(option);
-			}
-		}
-	}
-</script>
-
-<style>
+<template>
+	<div class="content-box">
+		<div class="content-test">
+			<div class="test-item blue">
+				<div class="label">带看数</div>
+				<div class="number alibaba">{{countTest.lookRecord.length}}</div>
+				<div class="icon">
+					<i class="iconfont huifont-zongshuliang"></i>
+				</div>
+			</div>
+			<div class="test-item green">
+				<div class="label">预约数</div>
+				<div class="number alibaba">{{countTest.roomReservation.length}}</div>
+				<div class="icon">
+					<i class="iconfont huifont-hege"></i>
+				</div>
+			</div>
+			<div class="test-item purple">
+				<div class="label">成交数</div>
+				<div class="number alibaba">{{countTest.contractSigning.length}}</div>
+				<div class="icon">
+					<i class="iconfont huifont-zhenggaizhong"></i>
+				</div>
+			</div>
+			<div class="test-item red">
+				<div class="label">到期数</div>
+				<div class="number alibaba">{{countTest.contractEnd.length}}</div>
+				<div class="icon">
+					<i class="iconfont huifont-buhege"></i>
+				</div>
+			</div>
+		</div>
+		<div class="content-chart">
+			<div class="legend-box">
+				<div class="legend-item">
+					<span class="legend-page" style="background:#3A96FD;"></span>
+					<span class="legend-name">带看</span>
+				</div>
+				<div class="legend-item">
+					<span class="legend-page" style="background:#2DB85C;"></span>
+					<span class="legend-name">预约</span>
+				</div>
+				<div class="legend-item">
+					<span class="legend-page" style="background:#9D60FB;"></span>
+					<span class="legend-name">成交</span>
+				</div>
+				<div class="legend-item">
+					<span class="legend-page" style="background:#F04243;"></span>
+					<span class="legend-name">到期</span>
+				</div>
+			</div>
+			<div ref="chart1" class="chart-box"></div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		getWeekDetailByTypeId,
+	} from '@/httpApi/operation'
+	export default {
+		props: ['typeId', 'dateList'],
+		data() {
+			return {
+				countTest: {
+					lookRecord: [],
+					roomReservation: [],
+					contractEnd: [],
+					contractSigning: []
+				}
+			}
+		},
+		mounted() {
+			this.init()
+		},
+		methods: {
+			init() {
+				getWeekDetailByTypeId(this.typeId).then(res => {
+					if (res.state) {
+						if (res.data.data) {
+							let data = JSON.parse(res.data.data);
+							this.countTest = data;
+							this.lineChart(data)
+						}
+					}
+				})
+			},
+			lineChart(data) {
+				let chartBox1 = [],
+					chartBox2 = [],
+					chartBox3 = [],
+					chartBox4 = [];
+				for (let i = 0; i < this.dateList.length; i++) {
+					chartBox1.push(data.lookRecord.filter(node => this.$dayjs(node.date).format('YYYY-MM-DD') === this
+						.dateList[i]).length);
+					chartBox2.push(data.roomReservation.filter(node => this.$dayjs(node.date).format('YYYY-MM-DD') === this
+						.dateList[i]).length);
+					chartBox3.push(data.contractSigning.filter(node => node.signingDate === this.dateList[i]).length);
+					chartBox4.push(data.contractEnd.filter(node => node.endDate === this.dateList[i]).length);
+				}
+				this.chart(this.$refs.chart1, [chartBox1, chartBox2, chartBox3, chartBox4], ['#2DB85C',
+					'#9D60FB', '#F04243', '#3A96FD'
+				], this.dateList);
+			},
+			chart(elem, data, color, x) {
+				let chart = echarts.init(elem);
+				let series = [];
+				for (var i = 0; i < data.length; i++) {
+					series = series.concat([{
+						data: data[i],
+						type: 'line',
+						symbolSize: 6,
+						color: color[i],
+						lineStyle: {
+							width: 1
+						},
+						z: 99
+					}, {
+						data: data[i],
+						type: 'line',
+						showSymbol: false,
+						label: {
+							show: true,
+							color: '#D0DEEE'
+						},
+						lineStyle: {
+							width: 1
+						},
+						color: color[i],
+						z: 99
+					}]);
+				}
+				let option = {
+					tooltip: {
+						show: true,
+						trigger: 'axis',
+						formatter: function() {
+							return ''
+						},
+						backgroundColor: 'rgba(255,255,255,0)',
+						borderWidth: 0,
+						padding: 0,
+						axisPointer: {
+							lineStyle: {
+								type: 'solid',
+								color: '#4E5561',
+							}
+						}
+					},
+					grid: {
+						left: '15',
+						top: '30',
+						right: '15',
+						bottom: '25',
+						containLabel: true
+					},
+					xAxis: {
+						type: 'category',
+						data: x,
+						axisLabel: {
+							margin: 4,
+							color: '#D0DEEE',
+							fontSize: 12
+						},
+						boundaryGap: true,
+						axisLine: {
+							lineStyle: {
+								color: '#6C8097'
+							}
+						},
+						axisTick: {
+							show: false
+						}
+					},
+					yAxis: {
+						name: '数量',
+						type: 'value',
+						nameTextStyle: {
+							color: '#D0DEEE',
+							fontSize: 12,
+							align: 'right',
+						},
+						axisLabel: {
+							margin: 10,
+							color: '#D0DEEE',
+							fontSize: 12
+						},
+						splitLine: {
+							show: true,
+							lineStyle: {
+								color: 'rgba(108,128,151,0.3)',
+								type: 'dashed'
+							}
+						}
+					},
+					series: series
+				};
+				chart.setOption(option);
+			}
+		}
+	}
+</script>
+
+<style>
 </style>

+ 83 - 21
virgo.wzfrontend/console/src/components/work/operation/week/payment.vue

@@ -3,28 +3,28 @@
 		<div class="content-test">
 			<div class="test-item blue">
 				<div class="label">房租</div>
-				<div class="number alibaba">48</div>
+				<div class="number alibaba">{{paymentData.property.receivable}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-zongshuliang"></i>
 				</div>
 			</div>
 			<div class="test-item green">
 				<div class="label">物业</div>
-				<div class="number alibaba">44</div>
+				<div class="number alibaba">{{paymentData.rent.receivable}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-hege"></i>
 				</div>
 			</div>
 			<div class="test-item purple">
 				<div class="label">水电</div>
-				<div class="number alibaba">4</div>
+				<div class="number alibaba">{{paymentData.hydropower.receivable}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-zhenggaizhong"></i>
 				</div>
 			</div>
 			<div class="test-item red">
 				<div class="label">其他</div>
-				<div class="number alibaba">0</div>
+				<div class="number alibaba">{{paymentData.other.receivable}}</div>
 				<div class="icon">
 					<i class="iconfont huifont-buhege"></i>
 				</div>
@@ -36,29 +36,25 @@
 				<div class="project-test">
 					<div class="test-item blue">
 						<span>房租</span>
-						<span class="alibaba number color-blue">28</span>
+						<span class="alibaba number color-blue">{{paymentData.property.received}}</span>
 					</div>
 					<div class="test-item green">
 						<span>物业</span>
-						<span class="alibaba number color-green">22</span>
+						<span class="alibaba number color-green">{{paymentData.rent.received}}</span>
 					</div>
 					<div class="test-item purple">
 						<span>水电</span>
-						<span class="alibaba number color-purple">6</span>
+						<span class="alibaba number color-purple">{{paymentData.hydropower.received}}</span>
 					</div>
 					<div class="test-item red">
 						<span>其他</span>
-						<span class="alibaba number color-red">0</span>
+						<span class="alibaba number color-red">{{paymentData.other.received}}</span>
 					</div>
 				</div>
 			</div>
 		</div>
 		<div class="content-chart">
 			<div class="legend-box">
-				<div class="legend-item">
-					<span class="legend-page" style="background:#3A96FD;"></span>
-					<span class="legend-name">物业</span>
-				</div>
 				<div class="legend-item">
 					<span class="legend-page" style="background:#2DB85C;"></span>
 					<span class="legend-name">物业</span>
@@ -78,10 +74,31 @@
 </template>
 
 <script>
+	import {
+		getWeekDetailByTypeId
+	} from '@/httpApi/operation'
 	export default {
+		props: ['typeId', 'dateList'],
 		data() {
 			return {
-
+				paymentData: {
+					hydropower: { //水电
+						received: 0, //应收
+						receivable: 0 //已收
+					},
+					property: { //房租
+						received: 0,
+						receivable: 0
+					},
+					rent: { //物业
+						received: 0,
+						receivable: 0
+					},
+					other: { //其它
+						received: 0,
+						receivable: 0
+					}
+				}
 			}
 		},
 		mounted() {
@@ -89,14 +106,59 @@
 		},
 		methods: {
 			init() {
-				this.chart(this.$refs.chart1, [
-					[1, 3, 2, 6, 1, 1, 3],
-					[2, 3, 1, 4, 4, 2, 3],
-					[3, 4, 3, 4, 5, 3, 2],
-					[4, 2, 1, 5, 3, 1, 1]
-				], ['#3A96FD', '#2DB85C', '#9D60FB', '#F04243'], ['2023-12-1', '2023-12-2', '2023-12-3',
-					'2023-12-4', '2023-12-5', '2023-12-6', '2023-12-7'
-				])
+				getWeekDetailByTypeId(this.typeId).then(res => {
+					if (res.state) {
+						if (res.data.data) {
+							let data = JSON.parse(res.data.data);
+							let payment = data.payment,
+								paymentOrdinary = data.paymentOrdinary;
+							this.countPayment([{
+								name: 'property'
+							}], payment);
+							this.countPayment([{
+								name: 'rent',
+								type: 1
+							}, {
+								name: 'hydropower',
+								type: 2
+							}, {
+								name: 'other',
+								type: 4
+							}], paymentOrdinary);
+							this.lineChart(paymentOrdinary.filter(node => node.status === 2));
+						}
+					}
+				});
+			},
+			lineChart(data) {
+				let chartBox1 = [],
+					chartBox2 = [],
+					chartBox3 = [];
+				for (let i = 0; i < this.dateList.length; i++) {
+					chartBox1.push(this.countNumber(this.countPayments(data, this.dateList[i], 1)));
+					chartBox2.push(this.countNumber(this.countPayments(data, this.dateList[i], 2)));
+					chartBox3.push(this.countNumber(this.countPayments(data, this.dateList[i], 4)));
+				}
+				this.chart(this.$refs.chart1, [chartBox1, chartBox2, chartBox3], ['#2DB85C', '#9D60FB', '#F04243'], this
+					.dateList);
+			},
+			countPayment(typeList, data) {
+				for (let i = 0; i < typeList.length; i++) {
+					let list = data;
+					if (typeList[i].type) list = data.filter(node => node.type === typeList[i].type);
+					this.paymentData[typeList[i].name].receivable = this.countNumber(list);
+					this.paymentData[typeList[i].name].received = this.countNumber(list.filter(node => node.status === 2))
+				};
+			},
+			countPayments(data, date, type) {
+				return data.filter(node => node.reminderDate === date && node.type === type)
+			},
+			countNumber(data) {
+				let num = 0;
+				for (let i = 0; i < data.length; i++) {
+					num += parseInt(data[i].amount);
+				}
+				return num;
 			},
 			chart(elem, data, color, x) {
 				let chart = echarts.init(elem);

+ 83 - 82
virgo.wzfrontend/console/src/components/work/space/house/lookRecordEdit.vue

@@ -1,83 +1,84 @@
-<template>
-	<div class="hui-flex hui-dialog">
-		<div class="hui-flex-box hui-dialog-content">
-			<el-form ref="recordForm" label-position="top" :model="recordForm">
-				<el-form-item label="带看内容" prop="content" class="hui-textarea"
-					:rules="[{required: true, message: '请输入带看内容'}]">
-					<el-input type="text" v-model="recordForm.content" placeholder="请输入带看内容"></el-input>
-				</el-form-item>
-				<el-form-item label="备注" class="hui-textarea">
-					<el-input type="textarea" v-model="recordForm.remark" placeholder="请输入备注" resize="none">
-					</el-input>
-				</el-form-item>
-				<el-form-item label="附件" class="hui-textarea">
-					<upload ref="image" :list="responsibility" type="insert"></upload>
-				</el-form-item>
-			</el-form>
-		</div>
-		<div class="hui-dialog-submit">
-			<el-button size="medium" @click="$emit('callback')">取 消</el-button>
-			<el-button size="medium" type="primary" @click="submit" :loading="loading">保 存</el-button>
-		</div>
-	</div>
-</template>
-
-<script>
-	import {
-		insertLookRecord
-	} from '@/httpApi/space'
-	import upload from '@/components/common/upload'
-	export default {
-		props: ['isUpdate', 'detailId'],
-		data() {
-			return {
-				recordForm: {
-					projectItemTargetRoomContent: '',
-					content: '',
-					remark: '',
-					projectItemTargetRoomId: '',
-					userId: '',
-					userName: '',
-					userPortrait: '',
-					attachment: ''
-				},
-				responsibility: [],
-				loading: false
-			}
-		},
-		mounted() {
-			let user = this.$store.getters.user;
-			this.recordForm['projectItemTargetRoomId'] = this.detailId;
-			this.recordForm['userId'] = user.userId;
-			this.recordForm['userName'] = user.userName;
-			this.recordForm['userPortrait'] = user.portrait;
-		},
-		methods: {
-			submit() {
-				this.loading = true;
-				this.$refs.recordForm.validate((valid) => {
-					if (valid) {
-						let postData = JSON.parse(JSON.stringify(this.recordForm));
-						postData['attachment'] = JSON.stringify(this.$refs.image.fileList);
-						insertLookRecord(postData).then(this.successFunc);
-					} else {
-						this.loading = false;
-						return false;
-					}
-				});
-			},
-			successFunc(res) {
-				this.loading = false;
-				if (res.state) {
-					this.$message.success('操作成功');
-					this.$emit('callback', 'init');
-				}
-			}
-		},
-		components: {
-			upload
-		},
-	}
-</script>
-
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="recordForm" label-position="top" :model="recordForm">
+				<el-form-item label="带看内容" prop="content" class="hui-textarea"
+					:rules="[{required: true, message: '请输入带看内容'}]">
+					<el-input type="text" v-model="recordForm.content" placeholder="请输入带看内容"></el-input>
+				</el-form-item>
+				<el-form-item label="备注" class="hui-textarea">
+					<el-input type="textarea" v-model="recordForm.remark" placeholder="请输入备注" resize="none">
+					</el-input>
+				</el-form-item>
+				<el-form-item label="附件" class="hui-textarea">
+					<upload ref="image" :list="responsibility" type="insert"></upload>
+				</el-form-item>
+			</el-form>
+		</div>
+		<div class="hui-dialog-submit">
+			<el-button size="medium" @click="$emit('callback')">取 消</el-button>
+			<el-button size="medium" type="primary" @click="submit" :loading="loading">保 存</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		insertLookRecord
+	} from '@/httpApi/space'
+	import upload from '@/components/common/upload'
+	export default {
+		props: ['isUpdate', 'detailId'],
+		data() {
+			return {
+				recordForm: {
+					projectItemTargetRoomContent: '',
+					content: '',
+					remark: '',
+					projectItemTargetRoomId: '',
+					userId: '',
+					userName: '',
+					userPortrait: '',
+					attachment: ''
+				},
+				responsibility: [],
+				loading: false
+			}
+		},
+		mounted() {
+			let user = this.$store.getters.user;
+			this.recordForm['projectId'] = this.$store.getters.project.id;
+			this.recordForm['projectItemTargetRoomId'] = this.detailId;
+			this.recordForm['userId'] = user.userId;
+			this.recordForm['userName'] = user.userName;
+			this.recordForm['userPortrait'] = user.portrait;
+		},
+		methods: {
+			submit() {
+				this.loading = true;
+				this.$refs.recordForm.validate((valid) => {
+					if (valid) {
+						let postData = JSON.parse(JSON.stringify(this.recordForm));
+						postData['attachment'] = JSON.stringify(this.$refs.image.fileList);
+						insertLookRecord(postData).then(this.successFunc);
+					} else {
+						this.loading = false;
+						return false;
+					}
+				});
+			},
+			successFunc(res) {
+				this.loading = false;
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		},
+		components: {
+			upload
+		},
+	}
+</script>
+
 <style lang="scss"></style>

+ 3 - 3
virgo.wzfrontend/console/src/views/work/operation/week/detail.vue

@@ -19,9 +19,9 @@
 				</client>
 				<contract v-else-if="nowTitle.type === 2" :typeId="nowTitle.id" :dateList="dateList">
 				</contract>
-				<payment v-else-if="nowTitle.type === 3"></payment>
-				<device v-else-if="nowTitle.type === 4"></device>
-				<house v-else-if="nowTitle.type === 5"></house>
+				<payment v-else-if="nowTitle.type === 3" :typeId="nowTitle.id" :dateList="dateList"></payment>
+				<device v-else-if="nowTitle.type === 4" :typeId="nowTitle.id" :dateList="dateList"></device>
+				<house v-else-if="nowTitle.type === 5" :typeId="nowTitle.id" :dateList="dateList"></house>
 			</div>
 			<div class="week-common">
 				<div class="week-detail">

+ 0 - 1
virgo.wzfrontend/console/src/views/work/space/set.vue

@@ -105,7 +105,6 @@
 <script>
 	import {
 		getProjectDetailById,
-		getProjectItemList,
 		deleteProjectItemById,
 		deleteProjectItemTarget,
 		deleteRoom

File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/index.html


virgo.wzfrontend/src/main/resources/static/console/static/css/1931.af90e1b5.css → virgo.wzfrontend/src/main/resources/static/console/static/css/3375.af90e1b5.css


virgo.wzfrontend/src/main/resources/static/console/static/css/3739.b6c7aaf0.css → virgo.wzfrontend/src/main/resources/static/console/static/css/3451.b6c7aaf0.css


virgo.wzfrontend/src/main/resources/static/console/static/css/3588.af90e1b5.css → virgo.wzfrontend/src/main/resources/static/console/static/css/5872.af90e1b5.css


virgo.wzfrontend/src/main/resources/static/console/static/css/2530.e8f94635.css → virgo.wzfrontend/src/main/resources/static/console/static/css/6318.e8f94635.css


virgo.wzfrontend/src/main/resources/static/console/static/css/4524.e8f94635.css → virgo.wzfrontend/src/main/resources/static/console/static/css/9464.e8f94635.css


virgo.wzfrontend/src/main/resources/static/console/static/css/3804.b6c7aaf0.css → virgo.wzfrontend/src/main/resources/static/console/static/css/9626.b6c7aaf0.css


File diff ditekan karena terlalu besar
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2530.1fee93ab.js


File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/3588.20d23a16.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/3451.fe6a72e3.js


File diff ditekan karena terlalu besar
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/3739.9c29efd4.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/379-legacy.750065f4.js


File diff ditekan karena terlalu besar
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/4524-legacy.a4523520.js


File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1931-legacy.3d0bd6d8.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/6318-legacy.704f60f2.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/9464.672289a8.js


File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/3804-legacy.5aa9b6d7.js


File diff ditekan karena terlalu besar
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.481f8a65.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.75c2015f.js


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/app.5357162e.js


File diff ditekan karena terlalu besar
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app.d858eaba.js