whx 6 月之前
父節點
當前提交
491c388494
共有 77 個文件被更改,包括 1331 次插入1028 次删除
  1. 3 3
      virgo.wzfrontend/console/src/assets/scss/tips.scss
  2. 259 235
      virgo.wzfrontend/console/src/components/flow/flowDetail.vue
  3. 2 2
      virgo.wzfrontend/console/src/components/website/houseList.vue
  4. 6 4
      virgo.wzfrontend/console/src/components/work/business/organization/edit.vue
  5. 145 52
      virgo.wzfrontend/console/src/config/demo1.js
  6. 10 0
      virgo.wzfrontend/console/src/httpApi/message.js
  7. 18 2
      virgo.wzfrontend/console/src/layout/components/topNav.vue
  8. 14 2
      virgo.wzfrontend/console/src/uitls/controls.js
  9. 62 10
      virgo.wzfrontend/console/src/views/website/homeDetail.vue
  10. 50 4
      virgo.wzfrontend/console/src/views/website/search.vue
  11. 81 38
      virgo.wzfrontend/console/src/views/work/bim/distribution.vue
  12. 191 189
      virgo.wzfrontend/console/src/views/work/business/organization.vue
  13. 224 223
      virgo.wzfrontend/console/src/views/work/property/change.vue
  14. 226 225
      virgo.wzfrontend/console/src/views/work/property/register.vue
  15. 1 1
      virgo.wzfrontend/src/main/resources/static/console/index.html
  16. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/1250.b6c7aaf0.css
  17. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/css/124.0aa77f71.css
  18. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/2745.d878ce6b.css
  19. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/css/5999.c684fc18.css
  20. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/3174.d878ce6b.css
  21. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/5401.25798605.css
  22. 0 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/6926.25d77c63.css
  23. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/css/7977.0aa77f71.css
  24. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/css/1250.659e8126.css
  25. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/css/app.71224130.css
  26. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/css/app.ef440b7e.css
  27. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/1170.5bed2788.js
  28. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/124-legacy.57f3087d.js
  29. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/1250-legacy.f47cbfb0.js
  30. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/8869.89a5ae39.js
  31. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/1250.56f594a9.js
  32. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/1515.170f6dc9.js
  33. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/1520-legacy.4ecce39b.js
  34. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2038-legacy.5a84650c.js
  35. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2038.c970db4e.js
  36. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2385-legacy.d9d60430.js
  37. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2385.88c10a14.js
  38. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/2745.df96a932.js
  39. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5999.7e33e33c.js
  40. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/3082-legacy.34beecca.js
  41. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/3174-legacy.f81d2320.js
  42. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/324.1aada772.js
  43. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/324.39d215f9.js
  44. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/383-legacy.906b01ea.js
  45. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/383.45afe04a.js
  46. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/4610-legacy.bee27571.js
  47. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/4610-legacy.eb7ddd5e.js
  48. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/4635.2ace2c37.js
  49. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/4635.64e6d3c0.js
  50. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/4639-legacy.7c75fca9.js
  51. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/4639-legacy.850c0eb6.js
  52. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/4639.98167fa4.js
  53. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/4639.a8886b9b.js
  54. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/4783.134dcfcb.js
  55. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/5401-legacy.28004c00.js
  56. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5411-legacy.250b21de.js
  57. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/5411-legacy.3166e770.js
  58. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/5567.a92bb820.js
  59. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5567.cd8a675f.js
  60. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5999-legacy.95af8351.js
  61. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/6071.35f498d8.js
  62. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5593-legacy.b3d3c101.js
  63. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5333-legacy.36018804.js
  64. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/5333.ad34ccec.js
  65. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/7033-legacy.bd6bdb41.js
  66. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/7437-legacy.281c7d9a.js
  67. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/7437-legacy.ac3292c3.js
  68. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2197-legacy.2f9b6456.js
  69. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/2197.c1db356c.js
  70. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/7977.427c7ae7.js
  71. 1 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/9023.cd9231de.js
  72. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/9906-legacy.c4857c5d.js
  73. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/9906.36cfd945.js
  74. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.9c468b2d.js
  75. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.f78b4cd9.js
  76. 1 0
      virgo.wzfrontend/src/main/resources/static/console/static/js/app.3855166b.js
  77. 0 1
      virgo.wzfrontend/src/main/resources/static/console/static/js/app.5c3edf38.js

+ 3 - 3
virgo.wzfrontend/console/src/assets/scss/tips.scss

@@ -445,9 +445,9 @@
 .tips-4 {
 	width: 150px;
 	height: 24px;
-	background: linear-gradient(90deg, rgba(211, 179, 20, 0) 0%, rgba(161, 140, 35, 0.8) 53%, rgba(211, 179, 20, 0) 100%);
+	// background: linear-gradient(90deg, rgba(211, 179, 20, 0) 0%, rgba(161, 140, 35, 0.8) 53%, rgba(211, 179, 20, 0) 100%);
 	border: 1px solid;
-	border-image: linear-gradient(270deg, rgba(255, 219, 42, 0), rgba(255, 219, 42, 1), rgba(255, 219, 42, 0)) 1 1;
+	border-image: linear-gradient(270deg, rgba(15, 70, 255, 0), rgba(15, 70, 255, 1.0), rgba(15, 70, 255, 0)) 1 1;
 	font-weight: 600;
 	font-size: 12px;
 	color: #FFFFFF;
@@ -457,7 +457,7 @@
 
 	.iconfont {
 		position: absolute;
-		color: #FFDB2A;
+		color: #3371FF;
 		bottom: -23px;
 		left: 50%;
 		margin-left: -8px;

+ 259 - 235
virgo.wzfrontend/console/src/components/flow/flowDetail.vue

@@ -1,236 +1,260 @@
-<template>
-	<div class="hui-flex">
-		<div class="hui-flex-box">
-			<div class="hui-detail">
-				<div class="hui-detail-title">基本信息</div>
-				<property-flow-detail v-if="detail.flowType === 1" :formData="detail"></property-flow-detail>
-				<change-flow-detail v-if="detail.flowType === 2" :formData="detail"></change-flow-detail>
-				<depreciation-flow-detail v-if="detail.flowType === 3" :formData="detail"></depreciation-flow-detail>
-				<inventory-flow-detail v-if="detail.flowType === 4" :formData="detail"></inventory-flow-detail>
-				<device-flow-detail v-if="detail.flowType === 5" :formData="detail"></device-flow-detail>
-				<div class="hui-detail-title">流程附件</div>
-				<div class="hui-detail-content hui-detail-image">
-					<upload ref="upload" :list="detail.attachment ? JSON.parse(detail.attachment) : []" type="preview">
-					</upload>
-				</div>
-				<div class="hui-detail-title">流程抄送</div>
-				<div class="hui-detail-content hui-detail-cc">
-					<div class="hui-detail-item">
-						<div class="hui-detail-label">抄送人</div>
-						<div class="hui-detail-value">
-							<cc :ccList="detail.receiver ? JSON.parse(detail.receiver) : []"></cc>
-						</div>
-					</div>
-				</div>
-				<div class="hui-detail-title">审核流程</div>
-				<div class="hui-detail-content" style="margin-bottom: 10px;">
-					<flow :flowlist="flowUserList"></flow>
-				</div>
-			</div>
-		</div>
-		<div class="hui-drawer-submit" v-if="activeList.length>0">
-			<el-button size="medium" type="primary" v-for="item in activeList" :key="item.id" @click="action(item)">
-				{{item.viewName}}
-			</el-button>
-		</div>
-		<el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" width="60%" :append-to-body="true">
-			<flow-action :title="actionData.viewName" v-if="dialogVisible" :action="actionData"
-				:projectFlowId="detail.projectFlowId" @callback="callback" @updateFlowState="updateFlowState">
-			</flow-action>
-		</el-dialog>
-	</div>
-</template>
-
-<script>
-	import upload from '@/components/common/upload'
-	import flow from '@/components/flow/flow'
-	import flowAction from '@/components/flow/flowAction'
-	import cc from '@/components/common/cc'
-	import propertyFlowDetail from '@/components/work/property/propertyFlowDetail'
-	import changeFlowDetail from '@/components/work/property/changeFlowDetail'
-	import depreciationFlowDetail from '@/components/work/property/depreciationFlowDetail'
-	import inventoryFlowDetail from '@/components/work/property/inventoryFlowDetail'
-	import deviceFlowDetail from '@/components/work/device/deviceFlowDetail'
-
-	import {
-		getFlowById,
-		generationFlow,
-		updateFlow,
-		getFlowApprove,
-		getUserFlowAction,
-		insertDevice,
-		updateDevice
-	} from '@/httpApi/property'
-	export default {
-		props: ['detailId'],
-		data() {
-			return {
-				detail: {},
-				activeList: [],
-				dialogVisible: false,
-				actionData: {},
-				flowUserList: [],
-				receiver: ''
-			}
-		},
-		created() {
-			if (this.detailId) this.init();
-		},
-		methods: {
-			init() {
-				getFlowById(this.detailId).then(res => {
-					if (res.state) {
-						let flowData = JSON.parse(res.data.flowData);
-						this.detail = Object.assign(flowData, res.data);
-						let flowUserList = this.detail.flowUserList ? JSON.parse(this.detail.flowUserList) : [];
-						if (this.detail.projectFlowId) {
-							this.initFlow(flowUserList);
-						} else {
-							this.flowUserList = flowUserList;
-						}
-						if (!this.detail.projectFlowId) this.activeList = [{
-							id: -1,
-							viewName: '生成流程'
-						}]
-					}
-				})
-			},
-			initFlow(flowUserList) {
-				getUserFlowAction(this.detail.projectFlowId).then(res => {
-					if (res.state) {
-						this.activeList = res.data.filter(node => node.viewName != '查看');
-					}
-				});
-				getFlowApprove(this.detail.projectFlowId).then(res => {
-					if (res.state) {
-						let approverList = res.data.approverList;
-						this.flowUserList = flowUserList.map((node, index) => {
-							let item = approverList[index];
-							let comment = JSON.parse(item.comment) || {};
-							node['status'] = item.status;
-							node['remark'] = comment.text;
-							node['file'] = comment.enclosure;
-							if (comment.text) node['date'] = this.$dayjs(item.statusDate).format(
-								'YYYY-MM-DD');
-							return node;
-						})
-						let noList = this.flowUserList.filter(node => !node.status);
-						if (noList.length === 0) return;
-						this.receiver = noList[0].id;
-					}
-				});
-			},
-			action(item) {
-				if (item.id === -1) return this.flowOperation();
-				this.actionData = item;
-				this.dialogVisible = true;
-			},
-			callback(type) {
-				this.dialogVisible = false;
-				if (type === 'init') this.init();
-			},
-			flowOperation() {
-				this.$confirm('生成流程后不允许再修改数据,确定生成?', () => {
-					this.$loading();
-					generationFlow(this.returnSubmitData()).then(res => {
-						if (res.state) {
-							updateFlow({
-								id: this.detail.id,
-								projectFlowId: res.data.id
-							}).then(node => {
-								this.updateFlowState(1);
-								this.$message.success('操作成功');
-								this.init();
-							});
-						}
-						this.$loading.close();
-					});
-				});
-			},
-			updateFlowState(state, operation) {
-				updateFlow({
-					id: this.detail.id,
-					state: state
-				}).then(node => {
-					if (node.state) {
-						if (state === 3) this.passFlow();
-						if (this.receiver && operation != '退回') {
-							let postMessageData = {
-								operation: operation + '了',
-								receiver: this.receiver,
-								messageType: 2, //流程类型-2
-								dataType: this.detail.flowType, //1.资产登记/设备流程
-								dataId: this.detail.id
-							}
-							this.$msg.sendFlowMessage(this.detail, postMessageData);
-							let ccList = this.detail.receiver ? JSON.parse(this.detail.receiver) : [];
-							if (ccList.length > 0) {
-								postMessageData['receiver'] = ccList.join(',');
-								postMessageData['isCC'] = 1;
-								this.$msg.sendFlowMessage(this.detail, postMessageData);
-							}
-						}
-						this.$emit('callback', 'init');
-					}
-				});
-			},
-			passFlow() {
-				let flowData = JSON.parse(this.detail.flowData);
-				if (this.detail.flowType === 1) {
-					flowData['attachment'] = JSON.stringify(this.detail.attachment);
-					flowData['document'] = JSON.stringify(this.detail.document);
-					insertDevice(flowData)
-				}
-				if (this.detail.flowType === 2) {
-					flowData['id'] = this.detail.deviceId;
-					delete flowData.remark;
-					updateDevice(flowData)
-				}
-			},
-			returnSubmitData() {
-				let organization = this.$store.getters.organization;
-				let userList = JSON.parse(this.detail.flowUserList).map((item, index) => {
-					let obj = {
-						organizedName: organization.name,
-						organizationId: organization.id,
-						userId: item.id,
-						userName: item.name,
-						partName: item.partName,
-						portrait: item.portrait
-					}
-					return {
-						flowUsers: [obj],
-						sequence: (index + 1),
-						status: 0
-					}
-				})
-				let flowName = this.$msg.messageType[0].dataType.filter(node => node.id === this.detail.flowType)[0].title;
-				return {
-					flowUserList: JSON.stringify([{
-						name: organization.name,
-						organizationId: organization.id,
-						flowUserList: JSON.stringify(userList)
-					}]),
-					coment: '{}',
-					submiter: this.$store.getters.user.id,
-					subscribers: [],
-					flowName: flowName + '流程'
-				}
-			}
-		},
-		components: {
-			upload,
-			flow,
-			flowAction,
-			cc,
-			propertyFlowDetail,
-			changeFlowDetail,
-			depreciationFlowDetail,
-			inventoryFlowDetail,
-			deviceFlowDetail
-		},
-	}
-</script>
-<style lang="scss">
-
+<template>
+	<div class="hui-flex">
+		<div class="hui-flex-box">
+			<div class="hui-detail">
+				<div class="hui-detail-title">基本信息</div>
+				<property-flow-detail v-if="detail.flowType === 1" :formData="detail"></property-flow-detail>
+				<change-flow-detail v-if="detail.flowType === 2" :formData="detail"></change-flow-detail>
+				<depreciation-flow-detail v-if="detail.flowType === 3" :formData="detail"></depreciation-flow-detail>
+				<inventory-flow-detail v-if="detail.flowType === 4" :formData="detail"></inventory-flow-detail>
+				<device-flow-detail v-if="detail.flowType === 5" :formData="detail"></device-flow-detail>
+				<div class="hui-detail-title">流程附件</div>
+				<div class="hui-detail-content hui-detail-image">
+					<upload ref="upload" :list="detail.attachment ? JSON.parse(detail.attachment) : []" type="preview">
+					</upload>
+				</div>
+				<div class="hui-detail-title">流程抄送</div>
+				<div class="hui-detail-content hui-detail-cc">
+					<div class="hui-detail-item">
+						<div class="hui-detail-label">抄送人</div>
+						<div class="hui-detail-value">
+							<cc :ccList="detail.receiver ? JSON.parse(detail.receiver) : []"></cc>
+						</div>
+					</div>
+				</div>
+				<div class="hui-detail-title">审核流程</div>
+				<div class="hui-detail-content" style="margin-bottom: 10px;">
+					<flow :flowlist="flowUserList"></flow>
+				</div>
+			</div>
+		</div>
+		<div class="hui-drawer-submit" v-if="activeList.length>0">
+			<el-button size="medium" type="primary" v-for="item in activeList" :key="item.id" @click="action(item)">
+				{{item.viewName}}
+			</el-button>
+		</div>
+		<el-dialog :close-on-click-modal="false" :title="actionData.viewName" :visible.sync="dialogVisible" width="60%"
+			:append-to-body="true">
+			<flow-action v-if="dialogVisible" :action="actionData" :projectFlowId="detail.projectFlowId"
+				@callback="callback" @updateFlowState="updateFlowState">
+			</flow-action>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import upload from '@/components/common/upload'
+	import flow from '@/components/flow/flow'
+	import flowAction from '@/components/flow/flowAction'
+	import cc from '@/components/common/cc'
+	import propertyFlowDetail from '@/components/work/property/propertyFlowDetail'
+	import changeFlowDetail from '@/components/work/property/changeFlowDetail'
+	import depreciationFlowDetail from '@/components/work/property/depreciationFlowDetail'
+	import inventoryFlowDetail from '@/components/work/property/inventoryFlowDetail'
+	import deviceFlowDetail from '@/components/work/device/deviceFlowDetail'
+
+	import {
+		getFlowById,
+		generationFlow,
+		updateFlow,
+		getFlowApprove,
+		getUserFlowAction,
+		insertDevice,
+		updateDevice
+	} from '@/httpApi/property'
+	export default {
+		props: ['detailId'],
+		data() {
+			return {
+				detail: {},
+				activeList: [],
+				dialogVisible: false,
+				actionData: {},
+				flowUserList: [],
+				receiver: ''
+			}
+		},
+		created() {
+			if (this.detailId) this.init();
+		},
+		methods: {
+			init() {
+				getFlowById(this.detailId).then(res => {
+					if (res.state) {
+						let flowData = JSON.parse(res.data.flowData);
+						this.detail = Object.assign(flowData, res.data);
+						let flowUserList = this.detail.flowUserList ? JSON.parse(this.detail.flowUserList) : [];
+						if (this.detail.projectFlowId) {
+							this.initFlow(flowUserList);
+						} else {
+							this.flowUserList = flowUserList;
+						}
+						if (!this.detail.projectFlowId && this.dettail.createdByUserId === this.$store.getters.user
+							.userId) this.activeList = [{
+							id: -1,
+							viewName: '生成流程'
+						}]
+					}
+				})
+			},
+			initFlow(flowUserList) {
+				getUserFlowAction(this.detail.projectFlowId).then(res => {
+					if (res.state) {
+						this.activeList = res.data.filter(node => node.viewName != '查看');
+					}
+				});
+				getFlowApprove(this.detail.projectFlowId).then(res => {
+					if (res.state) {
+						let approverList = res.data.approverList;
+						let submiterId = res.data.submiter.userId;
+						//提交者
+						let activityList = []
+						if (res.data.statusStr != '待提交') {
+							activityList = res.data.activityList.filter(node => node.activityUser.userId ===
+								submiterId).map(node => {
+								let comment = JSON.parse(node.activityComment) || {};
+								return {
+									id: node.id,
+									name: node.activityUser.userName,
+									partName: "提交审核",
+									portrait: node.activityUser.portrait,
+									status: 1,
+									remark: comment.text,
+									file: comment.enclosure,
+									date: this.$dayjs(node.activityDate).format('YYYY-MM-DD')
+								}
+							});
+						}
+						let list = flowUserList.map((node, index) => {
+							let item = approverList[index];
+							let comment = JSON.parse(item.comment) || {};
+							node['status'] = item.status;
+							node['remark'] = comment.text;
+							node['file'] = comment.enclosure;
+							if (comment.text) node['date'] = this.$dayjs(item.statusDate).format(
+								'YYYY-MM-DD');
+							return node;
+						})
+						this.flowUserList = activityList.length === 0 ? list : [activityList[activityList.length -
+							1]].concat(list);
+						let noList = this.flowUserList.filter(node => !node.status);
+						if (noList.length === 0) return;
+						this.receiver = noList[0].id;
+					}
+				});
+			},
+			action(item) {
+				if (item.id === -1) return this.flowOperation();
+				this.actionData = item;
+				this.dialogVisible = true;
+			},
+			callback(type) {
+				this.dialogVisible = false;
+				if (type === 'init') this.init();
+			},
+			flowOperation() {
+				if (JSON.parse(this.detail.flowUserList).length === 0) return this.$message.warning('未设置审核人');
+				this.$confirm('生成流程后不允许再修改数据,确定生成?', () => {
+					this.$loading();
+					generationFlow(this.returnSubmitData()).then(res => {
+						if (res.state) {
+							updateFlow({
+								id: this.detail.id,
+								projectFlowId: res.data.id
+							}).then(node => {
+								this.updateFlowState(1);
+								this.$message.success('操作成功');
+								this.init();
+							});
+						}
+						this.$loading.close();
+					});
+				});
+			},
+			updateFlowState(state, operation) {
+				updateFlow({
+					id: this.detail.id,
+					state: state
+				}).then(node => {
+					if (node.state) {
+						if (state === 3) this.passFlow();
+						if (this.receiver && operation != '退回') {
+							let postMessageData = {
+								operation: operation + '了',
+								receiver: this.receiver,
+								messageType: 2, //流程类型-2
+								dataType: this.detail.flowType, //1.资产登记/设备流程
+								dataId: this.detail.id
+							}
+							this.$msg.sendFlowMessage(this.detail, postMessageData);
+							let ccList = this.detail.receiver ? JSON.parse(this.detail.receiver) : [];
+							if (ccList.length > 0) {
+								postMessageData['receiver'] = ccList.join(',');
+								postMessageData['isCC'] = 1;
+								this.$msg.sendFlowMessage(this.detail, postMessageData);
+							}
+						}
+						this.$emit('callback', 'init');
+					}
+				});
+			},
+			passFlow() {
+				let flowData = JSON.parse(this.detail.flowData);
+				if (this.detail.flowType === 1) {
+					flowData['attachment'] = JSON.stringify(this.detail.attachment);
+					flowData['document'] = JSON.stringify(this.detail.document);
+					insertDevice(flowData)
+				}
+				if (this.detail.flowType === 2) {
+					flowData['id'] = this.detail.deviceId;
+					delete flowData.remark;
+					updateDevice(flowData)
+				}
+			},
+			returnSubmitData() {
+				let organization = this.$store.getters.organization;
+				let userList = JSON.parse(this.detail.flowUserList).map((item, index) => {
+					let obj = {
+						organizedName: organization.name,
+						organizationId: organization.id,
+						userId: item.id,
+						userName: item.name,
+						partName: item.partName,
+						portrait: item.portrait
+					}
+					return {
+						flowUsers: [obj],
+						sequence: (index + 1),
+						status: 0
+					}
+				})
+				let flowName = this.$msg.messageType[0].dataType.filter(node => node.id === this.detail.flowType)[0].title;
+				return {
+					flowUserList: JSON.stringify([{
+						name: organization.name,
+						organizationId: organization.id,
+						flowUserList: JSON.stringify(userList)
+					}]),
+					coment: '{}',
+					submiter: this.$store.getters.user.id,
+					subscribers: [],
+					flowName: flowName + '流程'
+				}
+			}
+		},
+		components: {
+			upload,
+			flow,
+			flowAction,
+			cc,
+			propertyFlowDetail,
+			changeFlowDetail,
+			depreciationFlowDetail,
+			inventoryFlowDetail,
+			deviceFlowDetail
+		},
+	}
+</script>
+<style lang="scss">
+
 </style>

+ 2 - 2
virgo.wzfrontend/console/src/components/website/houseList.vue

@@ -39,7 +39,7 @@
 	} from '@/httpApi/space';
 	import Crypto from '@/uitls/crypto'
 	export default {
-		props: ['type'],
+		props: ['type', 'searchValue'],
 		data() {
 			return {
 				currPage: 1,
@@ -56,7 +56,7 @@
 				if (this.type === 'highseas') {
 					this.initHighSeas();
 				} else if (this.type === 'search') {
-					search(this.$route.query.value).then(res => {
+					search(this.searchValue).then(res => {
 						if (res.state) {
 							this.houseList = res.data.houseList
 						}

+ 6 - 4
virgo.wzfrontend/console/src/components/work/business/organization/edit.vue

@@ -64,7 +64,6 @@
 			}
 		},
 		created() {
-			this.organizationForm['organizationId'] = this.$store.getters.user.organization.id;
 			if (this.isUpdate) {
 				getOrganizationDetailById(this.detailId).then(res => {
 					if (res.state) {
@@ -72,10 +71,13 @@
 						if (this.organizationForm.data) this.customList = JSON.parse(this.organizationForm.data);
 					}
 				})
+			} else {
+				this.organizationForm['organizationId'] = this.$store.getters.user.organization.id;
+				this.organizationForm['projectId'] = this.$store.getters.project.id;
 			}
 		},
 		methods: {
-			submit() {
+			submit() {
 				this.loading = true;
 				this.$refs.organizationForm.validate((valid) => {
 					if (valid) {
@@ -86,13 +88,13 @@
 						} else {
 							insertOrganization(postData).then(this.successFunc);
 						}
-					} else {
+					} else {
 						this.loading = false;
 						return false;
 					}
 				});
 			},
-			successFunc(res) {
+			successFunc(res) {
 				this.loading = false;
 				if (res.state) {
 					this.$message.success('操作成功');

+ 145 - 52
virgo.wzfrontend/console/src/config/demo1.js

@@ -3,23 +3,23 @@ export default {
 	cameraState: {
 		"name": "persp",
 		"position": {
-			"x": 8536.988303811337,
-			"y": 51358.468682705614,
-			"z": 98080.64609259334
+			"x": -22141.531113529338,
+			"y": 51441.68060477911,
+			"z": 77452.54228464924
 		},
 		"target": {
-			"x": 31696.959271997446,
-			"y": 51261.271357932594,
-			"z": 6693.343345983329
+			"x": 37166.973458913795,
+			"y": 51242.13867304171,
+			"z": 4168.886028524924
 		},
 		"up": {
-			"x": 0.969346803050867,
-			"y": -0.004083088425032544,
-			"z": 0.24566258120433632
+			"x": 0.7773235680316928,
+			"y": -0.002621123933633849,
+			"z": 0.6290955414655256
 		},
-		"near": 35481.63921253536,
-		"far": 106659.97556574902,
-		"zoom": 1.0983354526853824,
+		"near": 30339.697668008135,
+		"far": 106243.592467016,
+		"zoom": 1.1509040217079742,
 		"version": 1,
 		"fov": 45,
 		"aspect": 2.0607734806629834,
@@ -86,10 +86,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1201',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1201',
 		"position": {
-			"x": 36996.09127627318,
+			"x": 39000,
 			"y": 63567.76113487003,
 			"z": 18500
 		}
@@ -138,10 +138,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1202',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1202',
 		"position": {
-			"x": 36996.37901903659,
+			"x": 39000,
 			"y": 50931.52053656608,
 			"z": 18500
 		}
@@ -190,8 +190,8 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1203',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1203',
 		"position": {
 			"x": 39000,
 			"y": 38896.136235233185,
@@ -252,8 +252,8 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1204',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1204',
 		"position": {
 			"x": 39000,
 			"y": 24623.89962333094,
@@ -319,8 +319,8 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1205',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1205',
 		"position": {
 			"x": 39000,
 			"y": 10503.378123087425,
@@ -381,8 +381,8 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1206',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1206',
 		"position": {
 			"x": 14277.809212661703,
 			"y": 10974.475324874935,
@@ -433,10 +433,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1207',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1207',
 		"position": {
-			"x": 14277.058998940402,
+			"x": 14277,
 			"y": 25377.087874417703,
 			"z": 18500
 		}
@@ -485,10 +485,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1208',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1208',
 		"position": {
-			"x": 14277.026862204193,
+			"x": 14277,
 			"y": 38658.98888696544,
 			"z": 18500
 		}
@@ -537,10 +537,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1209',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1209',
 		"position": {
-			"x": 17562.594097650508,
+			"x": 14277,
 			"y": 52501.217954382904,
 			"z": 18500
 		}
@@ -599,10 +599,10 @@ export default {
 		],
 		"height": 4000,
 		"color": 'rgba(52, 114, 211, 0.6)',
-		"name": "xxxx数据科技有限公司",
-		"floorName":'1210',
+		"name": "xxxx数据科技有限公司",
+		"floorName": '1210',
 		"position": {
-			"x": 17562.898479950043,
+			"x": 14277,
 			"y": 63853.4809260422,
 			"z": 18500
 		}
@@ -640,42 +640,135 @@ export default {
 			}
 		],
 		"height": 4000,
-		"color": 'rgba(117, 150, 209, 0.6)',
-		"name": "公共区域",
+		"color": 'rgba(52, 114, 211, 0.6)',
+		"floorName": "公共区域",
 		"position": {
-			"x": 17810.39611560256,
+			"x": 17810,
 			"y": 89831.93105801607,
 			"z": 18500
 		}
 	}, {
 		"roomId": 12,
 		"boundary": [{
-				"x": 30785.457594629937,
-				"y": 45183.40349047023,
+				"x": 30783.387088991632,
+				"y": 45167.08853729056,
+				"z": 14500
+			},
+			{
+				"x": 22187.978473884672,
+				"y": 45167.08853728785,
+				"z": 14500
+			},
+			{
+				"x": 22237.235829845173,
+				"y": 36005.220328453994,
+				"z": 14500
+			},
+			{
+				"x": 30783.387088991632,
+				"y": 35955.82785112669,
+				"z": 14500
+			}
+		],
+		"height": 4000,
+		"color": 'rgba(27, 213, 124, 0.6)',
+		"floorName": "卫生间",
+		"position": {
+			"x": 29168.464592779244,
+			"y": 40046.771130985515,
+			"z": 18500
+		}
+	}, {
+		"roomId": 13,
+		"boundary": [{
+				"x": 30502.15558956766,
+				"y": 35742.80506994551,
+				"z": 14500
+			},
+			{
+				"x": 22243.323272162797,
+				"y": 35742.80506993452,
+				"z": 14500
+			},
+			{
+				"x": 22228.197205647404,
+				"y": 32430.19650294793,
+				"z": 14500
+			},
+			{
+				"x": 30471.90345653687,
+				"y": 32460.335929443438,
+				"z": 14500
+			}
+		],
+		"height": 4000,
+		"color": 'rgba(27, 213, 124, 0.6)',
+		"floorName": "楼梯间",
+		"position": {
+			"x": 29168.182239375663,
+			"y": 33844.90749548337,
+			"z": 18500
+		}
+	}, {
+		"roomId": 14,
+		"boundary": [{
+				"x": 30756.433837988217,
+				"y": 32225.908422776884,
+				"z": 14500
+			},
+			{
+				"x": 22429.196886897378,
+				"y": 32225.90842278598,
+				"z": 14500
+			},
+			{
+				"x": 22434.580471245987,
+				"y": 22836.965472994994,
+				"z": 14500
+			},
+			{
+				"x": 30734.523574061044,
+				"y": 22761.376714957278,
+				"z": 14500
+			}
+		],
+		"height": 4000,
+		"color": 'rgba(27, 213, 124, 0.6)',
+		"floorName": "电梯间",
+		"position": {
+			"x": 29168.267816189586,
+			"y": 27712.110246362194,
+			"z": 18500
+		}
+	}, {
+		"roomId": 15,
+		"boundary": [{
+				"x": 22225.234998592205,
+				"y": 22532.250155409893,
 				"z": 14500
 			},
 			{
-				"x": 30816.232831079218,
-				"y": 14346.58379380706,
+				"x": 30808.13116773658,
+				"y": 22532.250155434253,
 				"z": 14500
 			},
 			{
-				"x": 22229.94186172605,
-				"y": 14346.49153215967,
+				"x": 30801.900111166586,
+				"y": 14354.964340535991,
 				"z": 14500
 			},
 			{
-				"x": 22202.048726157314,
-				"y": 45220.943510407094,
+				"x": 22256.296055523093,
+				"y": 14331.92767886027,
 				"z": 14500
 			}
 		],
 		"height": 4000,
 		"color": 'rgba(27, 213, 124, 0.6)',
-		"name": "电梯、楼梯、设备区",
+		"floorName": "设备间",
 		"position": {
-			"x": 26489.690358615302,
-			"y": 28320.780553822744,
+			"x": 29168.013419449322,
+			"y": 19264.82157305417,
 			"z": 18500
 		}
 	}]

+ 10 - 0
virgo.wzfrontend/console/src/httpApi/message.js

@@ -9,4 +9,14 @@ export function getMessagePageListByQuery(currPage, pageSize, data) {
 		method: 'post',
 		data: data
 	})
+}
+/* 
+ * 按照类型获取未读消息统计
+ * 
+ */
+export function getMessageTest(userId) {
+	return request({
+		url: `/manager/message/countUnread/messageType/${userId}`,
+		method: 'get'
+	})
 }

+ 18 - 2
virgo.wzfrontend/console/src/layout/components/topNav.vue

@@ -24,7 +24,7 @@
 				<i :class="'iconfont ' + item.icon"></i><span>{{item.name}}</span>
 			</div>
 			<div class="work-layout-badge" @click="$router.push('/message')">
-				<el-badge is-dot>
+				<el-badge :is-dot="systemCountStatus">
 					<i class="iconfont huifont-xiaoxi"></i>
 				</el-badge>
 			</div>
@@ -62,6 +62,9 @@
 	import {
 		getUserInfoById
 	} from '@/httpApi/loginRegister'
+	import {
+		getMessageTest
+	} from '@/httpApi/message'
 	import {
 		mapGetters
 	} from 'vuex';
@@ -79,12 +82,14 @@
 					path: '/work/staging/project',
 					name: '项目工作台',
 					icon: 'huifont-xiangmugongzuotai1'
-				}]
+				}],
+				systemCountStatus: false
 			}
 		},
 		created() {
 			this.init();
 			this.initUserInfo();
+			this.initMessage();
 		},
 		methods: {
 			init() {
@@ -101,6 +106,17 @@
 					}
 				});
 			},
+			initMessage() {
+				getMessageTest(this.$store.getters.user.userId).then(res => {
+					if (res.state) {
+						let num = 0;
+						for (var i = 0; i < res.data.length; i++) {
+							num += res.data[i].count
+						}
+						this.systemCountStatus = num > 0;
+					}
+				})
+			},
 			loginout() {
 				this.$confirm('是否要退出登录?', () => {
 					removeToken();

+ 14 - 2
virgo.wzfrontend/console/src/uitls/controls.js

@@ -7,7 +7,7 @@ class bimView {
 	constructor(arg) {
 		let viewToken, dom, app, viewer3D, model3D, viewerGIS, renderSuccess, index = 0,
 			click, hover, roomSaved, change, marker3D, roomManager, layerMng, layerId, walk, elementColor, type,
-			map, background, extObjIds = [],
+			map, background, initHomeViewer, extObjIds = [],
 			elementObject = {
 				fileId: '',
 				objectId: ''
@@ -24,6 +24,7 @@ class bimView {
 		roamAngle = arg.roamAngle;
 		type = arg.type;
 		background = arg.background;
+		initHomeViewer = arg.initHomeViewer;
 		this.init = () => {
 			//初始化
 			let options = new BimfaceSDKLoaderConfig();
@@ -84,6 +85,10 @@ class bimView {
 			viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.Hover, data => {
 				if (hover) hover(data);
 			})
+			viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ToolbarHomeClick, (e) => {
+				console.log(initHomeViewer);
+				if (initHomeViewer) this.setStatus(initHomeViewer);
+			})
 			viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, () => {
 				model3D = viewer3D.getModel();
 				viewer3D.enableSSAOEffect(false);
@@ -191,6 +196,7 @@ class bimView {
 			config.opacity = 1;
 			if (option.offsetY) config.offsetY = option.offsetY;
 			if (option.offsetX) config.offsetX = option.offsetX;
+			if (option.id) config.id = option.id;
 			if (option.visibleDistance) config.visibleDistance = option.visibleDistance;
 			//生成customItem实例
 			let customItem = new Glodon.Bimface.Plugins.Drawable.CustomItem(config);
@@ -463,11 +469,17 @@ class bimView {
 			viewer3D.getModel().overrideComponentsColorById(elementIds, color);
 			viewer3D.render();
 		}
-		this.overrideComponentsColorByObjectData = () => {
+		this.overrideAllComponentsColor = () => {
 			let color = new Glodon.Web.Graphics.Color("#9598a9", 0.5);
 			model3D.overrideAllComponentsColor(color);
 			viewer3D.render();
 		}
+		this.overrideComponentsColorByObjectData = (conditions, color) => {
+			console.log(color);
+			let colors = new Glodon.Web.Graphics.Color("#cecece", 1);
+			model3D.overrideComponentsColorByObjectData(conditions, colors);
+			viewer3D.render();
+		}
 		this.clearColorElementById = (elementIds) => {
 			viewer3D.getModel().restoreComponentsColorById(elementIds);
 			viewer3D.render();

+ 62 - 10
virgo.wzfrontend/console/src/views/website/homeDetail.vue

@@ -8,7 +8,11 @@
 						<div class="swiper-container">
 							<div class="swiper-wrapper">
 								<div v-for="item in swiperList" :key="item.id" class="swiper-slide"
-									:style="`background-image:url(${item.url})`" @click.stop="openImage(item.url)">
+									:style="`background-image:url(${item.url})`" @click.stop="openImage(item)">
+									<div class="open-video-icon" v-if="item.fileType === 'video'"
+										@click.stop="openVideo(item)">
+										<i class="iconfont huifont-bofang"></i>
+									</div>
 								</div>
 							</div>
 							<div class="swiper-button-prev"></div>
@@ -106,6 +110,11 @@
 				:chargePersonId="detail.chargePersonId">
 			</reservation>
 		</el-dialog>
+		<el-dialog title="预览" :visible.sync="fileVisible" width="900px" :append-to-body="true">
+			<video v-if="videoSrc && fileVisible" :src="videoSrc" width="100%" height="100%" style="background: #000;"
+				controls>
+			</video>
+		</el-dialog>
 		<image-viewer v-if="isShow" :url-list="[imageUrl]" :on-close="()=>isShow = false"></image-viewer>
 	</div>
 </template>
@@ -138,7 +147,9 @@
 				description: '无房源信息',
 				visible: false,
 				isShow: false,
-				imageUrl: ''
+				imageUrl: '',
+				videoSrc: '',
+				fileVisible: false
 			};
 		},
 		mounted() {
@@ -152,19 +163,37 @@
 				if (!this.detailId) return this.description = '无房源信息';
 				this.getDetail();
 			},
-			openImage(url) {
-				console.log(url);
-				this.imageUrl = url;
+			openImage(item) {
+				if (item.fileType === 'video') return;
+				this.imageUrl = item.url;
 				this.isShow = true;
 			},
+			openVideo(item) {
+				this.videoSrc = item.videoUrl;
+				this.fileVisible = true;
+			},
 			getDetail() {
 				getHouseDetailById(this.detailId).then(res => {
 					if (res.state) {
 						this.detail = res.data;
+						let imageBox = [],
+							videoBox = [];
 						if (this.detail.picture) {
-							this.swiperList = JSON.parse(this.detail.picture);
-							this.getSwiper();
+							imageBox = JSON.parse(this.detail.picture).map(node => {
+								node['fileType'] = 'image';
+								return node;
+							});
+						}
+						if (this.detail.video) {
+							videoBox = JSON.parse(this.detail.video).map(node => {
+								node['fileType'] = 'video';
+								node['videoUrl'] = node.url;
+								node['url'] = node.url + '?x-oss-process=video/snapshot,t_0,f_jpg'
+								return node;
+							});
 						}
+						this.swiperList = videoBox.concat(imageBox);
+						this.getSwiper();
 						if (this.detail.coordinates) {
 							this.coordinates = this.detail.coordinates.split(',');
 							this.initMap([this.coordinates[0], this.coordinates[1]]);
@@ -289,7 +318,7 @@
 						width: 50px;
 						height: 50px;
 						border-radius: 50%;
-						margin-right: 15px;
+						margin-right: 15px;
 						overflow: hidden;
 					}
 
@@ -364,9 +393,32 @@
 			}
 
 			.swiper-slide {
-				background-size: 100% auto;
-				background-position: bottom;
+				background-size: cover;
+				background-position: center;
+				background-repeat: no-repeat;
 				cursor: pointer;
+				position: relative;
+
+				.open-video-icon {
+					position: absolute;
+					top: 50%;
+					left: 50%;
+					width: 40px;
+					height: 40px;
+					border-radius: 40px;
+					background: rgba(0, 0, 0, 0.6);
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					margin-left: -20px;
+					margin-top: -20px;
+					box-sizing: border-box;
+
+					.huifont-bofang {
+						color: #fff;
+						font-size: 20px;
+					}
+				}
 			}
 
 			.swiper-button-next:after,

+ 50 - 4
virgo.wzfrontend/console/src/views/website/search.vue

@@ -2,9 +2,14 @@
 	<div class="search-list">
 		<div class="container">
 			<div class="container-box" v-if="token">
-				<div class="title">搜索“<span>{{$route.query.value}}</span>”结果</div>
+				<div class="main-input">
+					<input v-model="value" type="text" placeholder="请输入房源名称" />
+					<div class="main-input-button" @click="search">
+						<i class="el-icon-search"></i>
+					</div>
+				</div>
 				<div class="search-list-box">
-					<house-list type="search" :key="reload"></house-list>
+					<house-list type="search" :key="reload" :searchValue="value"></house-list>
 				</div>
 			</div>
 			<div class="skeleton-box" v-else>
@@ -32,11 +37,13 @@
 		data() {
 			return {
 				token: '',
-				reload: false
+				reload: false,
+				value: ''
 			}
 		},
 		created() {
 			this.token = getToken();
+			this.value = this.$route.query.value;
 			this.init();
 		},
 		methods: {
@@ -44,6 +51,10 @@
 				if (!this.token) return;
 				this.reload = !this.reload;
 			},
+			search() {
+				this.$router.push('/website/search?value=' + this.value);
+				this.init();
+			},
 			login() {
 				this.$store.dispatch('app/changeEvent', {
 					type: 'login'
@@ -72,7 +83,7 @@
 		color: #000;
 
 		.title {
-			font-size: 30px;
+			font-size: 24px;
 			font-weight: bolder;
 			line-height: 30px;
 			padding: 20px 0;
@@ -83,5 +94,40 @@
 			margin: 0 auto;
 			min-height: calc(100vh - 117px);
 		}
+
+		.main-input {
+			display: flex;
+			padding: 20px 0;
+
+			input {
+				width: 400px;
+				height: 50px;
+				padding: 0 20px;
+				border-radius: 6px 0 0 6px;
+				font-size: 16px;
+				border: 1px solid #bababa;
+				border-right: 0;
+			}
+
+			input:focus {
+				border-color: $--color-primary;
+			}
+
+			.main-input-button {
+				width: 76px;
+				text-align: center;
+				height: 50px;
+				line-height: 50px;
+				background: $--color-primary;
+				color: #fff;
+				border-radius: 0 6px 6px 0;
+				font-size: 22px;
+				cursor: pointer;
+
+				&:hover {
+					opacity: 0.7;
+				}
+			}
+		}
 	}
 </style>

+ 81 - 38
virgo.wzfrontend/console/src/views/work/bim/distribution.vue

@@ -1,8 +1,5 @@
 <template>
 	<div id="distribution" class="distribution-index">
-		<div class="">
-			<el-button @click="getCamera" size="medium" v-if="bimViewer">恢复视角</el-button>
-		</div>
 		<div :id="'previewBim'+_uid" class="previewBim"></div>
 	</div>
 </template>
@@ -18,7 +15,7 @@
 		data() {
 			return {
 				room: {
-					id: 1
+					id: 14
 				},
 				form: {
 					color: 'rgba(19, 206, 102, 0.6)'
@@ -44,8 +41,13 @@
 			init() {
 				getBimViewToken(bimData.fileId).then(this.successFunc);
 			},
-			insertDom(data, left, top) {
+			insertDom(roomId, left, top) {
+				let _self = this;
 				let box = document.getElementById('distribution');
+				console.log(roomId);
+				let data = this.roomList.find(node => node.roomId == roomId) || {
+					floorName: '-'
+				};
 				if (document.getElementById('distribution-drap')) box.removeChild(document.getElementById(
 					'distribution-drap'))
 				let div = document.createElement('div');
@@ -62,7 +64,7 @@
 											<div class="user-list">
 												<div class="user-item">
 													<div class="user-key">房间编号</div>
-													<div class="user-value">102</div>
+													<div class="user-value">${data.floorName}</div>
 												</div>
 												<div class="user-item">
 													<div class="user-key">房屋状态</div>
@@ -142,7 +144,7 @@
 			getCamera() {
 				if (!this.bimViewer) return;
 				console.log(this.bimViewer.getCameraState());
-				this.bimViewer.setStatus(this.cameraState);
+				// this.bimViewer.setStatus(this.cameraState);
 			},
 			successFunc(res) {
 				if (res.state) {
@@ -150,55 +152,89 @@
 						dom: document.getElementById('previewBim' + this._uid),
 						viewToken: res.data,
 						roamAngle: this.roamAngle,
+						initHomeViewer: this.cameraState,
 						renderSuccess: () => {
 							this.bimViewer.setStatus(this.cameraState);
-							// this.bimViewer.setToolbars(true)
+							this.bimViewer.setToolbars(true);
 							if (bimData.fileId == '10000892771892') {
-								this.bimViewer.HideOthers()
+								this.bimViewer.HideOthers();
+								console.log('-----');
+								this.bimViewer.overrideComponentsColorByObjectData([{
+									"family": "楼板",
+									"levelName": "A_4F(14.500)"
+								}, {
+									"family": "幕墙",
+									"levelName": "A_4F(14.500)"
+								}, {
+									"family": "基本墙",
+									"levelName": "A_4F(14.500)"
+								}, {
+									"family": "常规模型 39",
+									"levelName": "A_4F(14.500)"
+								}])
 							}
 							for (var i = 0; i < this.roomList.length; i++) {
 								this.bimViewer.insertRooms({
-									id: this.roomList[i].id,
+									id: this.roomList[i].roomId,
 									boundary: {
 										"outer": this.roomList[i].boundary
 									},
 									height: this.roomList[i].height,
 									roomColor: this.returnRGBA(this.roomList[i].color)
 								})
-								this.bimViewer.addDrawable({
-									position: this.roomList[i].position,
-									offsetX: -75,
-									offsetY: -40,
-									html: `	<div class="tips-4">${this.roomList[i].name}<i class="iconfont huifont-sanjiaojiantou-xia"></i></div>`,
-								}, data => {
-									this.insertDom({}, data.clientPosition.x, data.clientPosition.y);
-								})
+								if (this.roomList[i].name) {
+									this.bimViewer.addDrawable({
+										position: this.roomList[i].position,
+										offsetX: -75,
+										offsetY: -40,
+										html: `	<div class="tips-4">${this.roomList[i].name}<i class="iconfont huifont-sanjiaojiantou-xia"></i></div>`,
+										id: this.roomList[i].roomId
+									}, data => {
+										this.insertDom(data.id, data.clientPosition.x,
+											data.clientPosition
+											.y);
+									})
+								}
+								if (this.roomList[i].floorName) {
+									this.bimViewer.addDrawable({
+										position: this.roomList[i].position,
+										offsetX: -30,
+										offsetY: 5,
+										html: `	<div class="floor-name">${this.roomList[i].floorName}</div>`,
+										id: this.roomList[i].roomId
+									}, data => {
+										this.insertDom(data.id, data.clientPosition.x,
+											data.clientPosition
+											.y);
+									})
+								}
 							}
 						},
 						roomSaved: data => {
 							console.log(data);
 						},
 						click: data => {
-							// let point = data.worldPosition;
-							// if (!point) return this.$message.warning('请点击模型范围内的点');
-							// this.positionData.push(point);
-							// this.bimViewer.add3DMaker('image', point);
-							// if (this.positionData.length == 3) {
-							// 	this.bimViewer.insertRooms({
-							// 		id: this.room.id,
-							// 		boundary: {
-							// 			"outer": this.positionData
-							// 		},
-							// 		height: 500,
-							// 		roomColor: this.returnRGBA(this.form.color)
-							// 	})
-							// 	this.bimViewer.clear3DMaker();
-							// 	this.positionData = [];
-							// 	this.bimViewer.editRoom({
-							// 		roomId: this.room.id
-							// 	})
-							// 	this.room.id++;
-							// }
+							console.log(data);
+							let point = data.worldPosition;
+							if (!point) return this.$message.warning('请点击模型范围内的点');
+							this.positionData.push(point);
+							this.bimViewer.add3DMaker('image', point);
+							if (this.positionData.length == 3) {
+								this.bimViewer.insertRooms({
+									id: this.room.id,
+									boundary: {
+										"outer": this.positionData
+									},
+									height: 500,
+									roomColor: this.returnRGBA(this.form.color)
+								})
+								this.bimViewer.clear3DMaker();
+								this.positionData = [];
+								this.bimViewer.editRoom({
+									roomId: this.room.id
+								})
+								this.room.id++;
+							}
 						}
 					})
 				}
@@ -220,6 +256,13 @@
 			cursor: pointer;
 		}
 
+		.floor-name {
+			cursor: pointer;
+			width: 60px;
+			text-align: center;
+			color: #fff;
+		}
+
 		.previewBim {
 			flex: 1;
 			height: 0;

+ 191 - 189
virgo.wzfrontend/console/src/views/work/business/organization.vue

@@ -1,190 +1,192 @@
-<template>
-	<div class="hui-flex hui-content">
-		<div class="hui-content-title">
-			<div class="hui-title-item active">企业列表</div>
-		</div>
-		<div class="hui-flex-box hui-flex hui-table">
-			<div class="hui-content-insert">
-				<el-button type="primary" size="medium" @click="insertProject">新增企业</el-button>
-			</div>
-			<div class="hui-flex-box">
-				<el-table :data="tableData" 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="企业类型">
-						<template slot-scope="scope">
-							<span>{{$field.findTypeName('industryType',scope.row.industryType)}}</span>
-						</template>
-					</el-table-column>
-					<el-table-column label="企业法人" prop="legalPerson"></el-table-column>
-					<el-table-column label="成立时间" prop="establishDate"></el-table-column>
-					<el-table-column label="营业期限" prop="businessTerm"></el-table-column>
-					<el-table-column label="绑定组织" width="150">
-						<template slot-scope="scope">
-							<div class="hui-table-operation" v-if="!scope.row.status">
-								<span class="table-operation" @click="bindOrganization(scope.row)">绑定组织</span>
-							</div>
-							<div v-else class="hui-table-tag">
-								<div class="hui-tag hui-tag-success">已绑定</div>
-							</div>
-						</template>
-					</el-table-column>
-					<el-table-column label="操作" width="150">
-						<template slot-scope="scope">
-							<div class="hui-table-operation">
-								<span class="table-operation" @click="lookProject(scope.row)">详情</span>
-								<span class="table-operation" @click="updateProject(scope.row)">编辑</span>
-								<span class="table-operation" @click="deleteProject(scope.row)">删除</span>
-							</div>
-						</template>
-					</el-table-column>
-					<template slot="empty">
-						<empty description="暂无数据"></empty>
-					</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-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px" :append-to-body="true">
-			<edit v-if="visible" @callback="callback" :isUpdate="isUpdate" :detailId="detailId"></edit>
-		</el-dialog>
-		<el-drawer title="项目详情" :visible.sync="drawer" :size="400" :append-to-body="true">
-			<detail v-if="drawer" :detailId="detailId"></detail>
-		</el-drawer>
-	</div>
-</template>
-
-<script>
-	import {
-		getOrganizationListByPage,
-		deleteOrganizationById,
-		updateOrganization
-	} from '@/httpApi/business'
-	import {
-		getOrganizationByCode,
-		bindProject
-	} from '@/httpApi/organization'
-
-	import edit from '@/components/work/business/organization/edit'
-	import detail from '@/components/work/business/organization/detail'
-	export default {
-		data() {
-			return {
-				tableData: [],
-				currPage: 1,
-				pageSize: 10,
-				totalCount: 0,
-				visible: false,
-				detailId: '',
-				isUpdate: false,
-				drawer: false
-			}
-		},
-		created() {
-			this.init();
-		},
-		methods: {
-			init() {
-				getOrganizationListByPage({
-					currPage: this.currPage,
-					pageSize: this.pageSize,
-					organizationId: this.$store.getters.organization.id
-				}).then(res => {
-					if (res.state) {
-						this.tableData = res.data.dataList;
-						this.totalCount = res.data.totalCount;
-					}
-				})
-			},
-			currentChange(currPage) {
-				this.currPage = currPage;
-				this.init();
-			},
-			insertProject() {
-				this.isUpdate = false;
-				this.visible = true;
-			},
-			updateProject(item) {
-				this.detailId = item.id;
-				this.isUpdate = true;
-				this.visible = true;
-			},
-			lookProject(item) {
-				this.detailId = item.id;
-				this.drawer = true;
-			},
-			deleteProject(item) {
-				this.$confirm('确定要删除该企业?', () => {
-					deleteOrganizationById(item.id).then(res => {
-						if (res.state) {
-							this.init();
-							this.$message.success('操作成功');
-						}
-					})
-				});
-			},
-			bindOrganization(item) {
-				let organizationId = '';
-				this.$prompt('请输入组织编码', '红链提示', {
-					confirmButtonText: '确 定',
-					cancelButtonClass: 'cancel',
-					confirmButtonClass: 'confirm',
-					cancelButtonText: '取 消',
-					inputPattern: /\S/,
-					inputErrorMessage: '请输入组织编码',
-					beforeClose(action, instance, done) {
-						if (action === 'confirm') {
-							getOrganizationByCode(instance.inputValue).then(res => {
-								if (res.state) {
-									if (!res.data) return this.$message.warning('该组织编码无效,请重新输入');
-									organizationId = res.data.id;
-									done();
-								}
-							})
-						} else {
-							done();
-						}
-					}
-				}).then((data) => {
-					bindProject({
-						organizationId: this.$store.getters.organization.id,
-						projectId: this.$store.getters.project.id,
-						merchantId: item.id,
-						bindOrganizationId: organizationId,
-						identityId: 4
-					}).then(res => {
-						if (res.state) {
-							updateOrganization({
-								id: item.id,
-								status: 1
-							}).then(res => {
-								if (res.state) {
-									this.init();
-									this.$message.success('操作成功');
-								}
-							})
-						}
-					})
-				}).catch(() => {});
-			},
-			callback(type) {
-				if (type === 'init') this.init();
-				this.visible = false;
-			}
-		},
-		components: {
-			edit,
-			detail
-		},
-	}
-</script>
-
+<template>
+	<div class="hui-flex hui-content">
+		<div class="hui-content-title">
+			<div class="hui-title-item active">企业列表</div>
+		</div>
+		<div class="hui-flex-box hui-flex hui-table">
+			<div class="hui-content-insert">
+				<el-button type="primary" size="medium" @click="insertProject">新增企业</el-button>
+			</div>
+			<div class="hui-flex-box">
+				<el-table :data="tableData" 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="企业类型">
+						<template slot-scope="scope">
+							<span>{{$field.findTypeName('industryType',scope.row.industryType)}}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="企业法人" prop="legalPerson"></el-table-column>
+					<el-table-column label="成立时间" prop="establishDate"></el-table-column>
+					<el-table-column label="营业期限" prop="businessTerm"></el-table-column>
+					<el-table-column label="绑定组织" width="150">
+						<template slot-scope="scope">
+							<div class="hui-table-operation" v-if="!scope.row.status">
+								<span class="table-operation" @click="bindOrganization(scope.row)">绑定组织</span>
+							</div>
+							<div v-else class="hui-table-tag">
+								<div class="hui-tag hui-tag-success">已绑定</div>
+							</div>
+						</template>
+					</el-table-column>
+					<el-table-column label="操作" width="150">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="lookProject(scope.row)">详情</span>
+								<span class="table-operation" @click="updateProject(scope.row)">编辑</span>
+								<span class="table-operation" @click="deleteProject(scope.row)">删除</span>
+							</div>
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<empty description="暂无数据"></empty>
+					</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-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px"
+			:append-to-body="true">
+			<edit v-if="visible" @callback="callback" :isUpdate="isUpdate" :detailId="detailId"></edit>
+		</el-dialog>
+		<el-drawer title="项目详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<detail v-if="drawer" :detailId="detailId"></detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		getOrganizationListByPage,
+		deleteOrganizationById,
+		updateOrganization
+	} from '@/httpApi/business'
+	import {
+		getOrganizationByCode,
+		bindProject
+	} from '@/httpApi/organization'
+
+	import edit from '@/components/work/business/organization/edit'
+	import detail from '@/components/work/business/organization/detail'
+	export default {
+		data() {
+			return {
+				tableData: [],
+				currPage: 1,
+				pageSize: 10,
+				totalCount: 0,
+				visible: false,
+				detailId: '',
+				isUpdate: false,
+				drawer: false
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getOrganizationListByPage({
+					currPage: this.currPage,
+					pageSize: this.pageSize,
+					organizationId: this.$store.getters.organization.id,
+					projectId: this.$store.getters.project.id
+				}).then(res => {
+					if (res.state) {
+						this.tableData = res.data.dataList;
+						this.totalCount = res.data.totalCount;
+					}
+				})
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+			insertProject() {
+				this.isUpdate = false;
+				this.visible = true;
+			},
+			updateProject(item) {
+				this.detailId = item.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			lookProject(item) {
+				this.detailId = item.id;
+				this.drawer = true;
+			},
+			deleteProject(item) {
+				this.$confirm('确定要删除该企业?', () => {
+					deleteOrganizationById(item.id).then(res => {
+						if (res.state) {
+							this.init();
+							this.$message.success('操作成功');
+						}
+					})
+				});
+			},
+			bindOrganization(item) {
+				let organizationId = '';
+				this.$prompt('请输入组织编码', '红链提示', {
+					confirmButtonText: '确 定',
+					cancelButtonClass: 'cancel',
+					confirmButtonClass: 'confirm',
+					cancelButtonText: '取 消',
+					inputPattern: /\S/,
+					inputErrorMessage: '请输入组织编码',
+					beforeClose(action, instance, done) {
+						if (action === 'confirm') {
+							getOrganizationByCode(instance.inputValue).then(res => {
+								if (res.state) {
+									if (!res.data) return this.$message.warning('该组织编码无效,请重新输入');
+									organizationId = res.data.id;
+									done();
+								}
+							})
+						} else {
+							done();
+						}
+					}
+				}).then((data) => {
+					bindProject({
+						organizationId: this.$store.getters.organization.id,
+						projectId: this.$store.getters.project.id,
+						merchantId: item.id,
+						bindOrganizationId: organizationId,
+						identityId: 4
+					}).then(res => {
+						if (res.state) {
+							updateOrganization({
+								id: item.id,
+								status: 1
+							}).then(res => {
+								if (res.state) {
+									this.init();
+									this.$message.success('操作成功');
+								}
+							})
+						}
+					})
+				}).catch(() => {});
+			},
+			callback(type) {
+				if (type === 'init') this.init();
+				this.visible = false;
+			}
+		},
+		components: {
+			edit,
+			detail
+		},
+	}
+</script>
+
 <style lang="scss"></style>

+ 224 - 223
virgo.wzfrontend/console/src/views/work/property/change.vue

@@ -1,224 +1,225 @@
-<template>
-	<div class="hui-flex">
-		<div class="hui-flex-box yui-tree-box">
-			<div class="hui-left-tree">
-				<div class="hui-left-tree-title">
-					<svg-icon name="zhuangshi" width="16" height="20"></svg-icon>
-					<span class="hui-left-tree-sub">资产列表</span>
-				</div>
-				<div class="hui-left-tree-content">
-					<el-collapse>
-						<el-collapse-item v-for="item in treeData" :key="item.id">
-							<template slot="title">
-								<i class="iconfont huifont-shuzhuangcaidantubiao"></i>
-								<span class="el-collapse-name">{{item.name}}</span>
-							</template>
-							<div>
-								<el-tree :data="item.children" :props="defaultProps" :expand-on-click-node="false">
-								</el-tree>
-							</div>
-						</el-collapse-item>
-					</el-collapse>
-				</div>
-			</div>
-			<div class="hui-tree-content">
-				<div class="hui-flex hui-content box-background">
-					<div class="hui-content-title">
-						<div class="hui-title-item active">资产变更</div>
-					</div>
-					<div class="hui-flex-box hui-flex hui-table">
-						<div class="hui-content-insert">
-							<el-button type="primary" size="medium" @click="insert">新增变更</el-button>
-						</div>
-						<div class="hui-flex-box">
-							<el-table :data="tableData" 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="projectItemName"></el-table-column>
-								<el-table-column label="具体位置" prop="projectItemTargetName"></el-table-column>
-								<el-table-column label="创建者" prop="createdByUserName"></el-table-column>
-								<el-table-column label="状态">
-									<template slot-scope="scope">
-										<div v-if="!scope.row.state" class="hui-state">
-											<span class="hui-state-bage hui-state-primary"></span>
-											<span class="hui-state-label">待生成</span>
-										</div>
-										<div v-if="scope.row.state == -1 || scope.row.state == 1" class="hui-state">
-											<span class="hui-state-bage hui-state-primary"></span>
-											<span class="hui-state-label">待审核</span>
-										</div>
-										<div v-if="scope.row.state == 2" class="hui-state">
-											<span class="hui-state-bage hui-state-info"></span>
-											<span class="hui-state-label">审核中</span>
-										</div>
-										<div v-if="scope.row.state == 3" class="hui-state">
-											<span class="hui-state-bage hui-state-success"></span>
-											<span class="hui-state-label">通过</span>
-										</div>
-										<div v-if="scope.row.state == 4" class="hui-state">
-											<span class="hui-state-bage hui-state-error"></span>
-											<span class="hui-state-label">未通过</span>
-										</div>
-									</template>
-								</el-table-column>
-								<el-table-column label="操作" width="150">
-									<template slot-scope="scope">
-										<div class="hui-table-operation">
-											<span class="table-operation" @click="lookFlow(scope.row)">
-												详情
-											</span>
-											<span class="table-operation" v-if="!scope.row.projectFlowId"
-												@click="updateFlow(scope.row)">
-												编辑
-											</span>
-											<span class="table-operation" v-if="!scope.row.projectFlowId"
-												@click="deleteFlow(scope.row)">
-												删除
-											</span>
-										</div>
-									</template>
-								</el-table-column>
-								<template slot="empty">
-									<empty description="暂无数据"></empty>
-								</template>
-							</el-table>
-						</div>
-						<div class="hui-content-pagination">
-							<el-pagination :pager-count="9" layout="prev, pager, next" :total="totalCount"
-								@current-change="currentChange">
-							</el-pagination>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-		<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="1200px" :append-to-body="true">
-			<flow-form v-if="visible" :isUpdate="isUpdate" @callback="callback" :detailId="detailId"
-				:flowType="flowType">
-			</flow-form>
-		</el-dialog>
-		<el-drawer title="流程详情" :visible.sync="drawer" :size="400" :append-to-body="true">
-			<flow-detail v-if="drawer" @callback="callback" :detailId="detailId"></flow-detail>
-		</el-drawer>
-	</div>
-</template>
-
-<script>
-	import {
-		initDevicePartList,
-		getDevicePartList,
-		getFlowList,
-		deleteFlow
-	} from '@/httpApi/property'
-	import flowForm from '@/components/flow/flowForm'
-	import flowDetail from '@/components/flow/flowDetail'
-	export default {
-		data() {
-			return {
-				flowType: 2,
-				tableData: [],
-				currPage: 1,
-				pageSize: 10,
-				totalCount: 0,
-				treeData: [],
-				defaultProps: {
-					children: 'children',
-					label: 'name'
-				},
-				visible: false,
-				isUpdate: false,
-				detailId: '',
-				drawer: false
-			}
-		},
-		created() {
-			this.initDeviceList();
-			this.init();
-		},
-		methods: {
-			init() {
-				getFlowList(this.currPage, this.pageSize, {
-					projectId: this.$store.getters.project.id,
-					flowType: this.flowType
-				}).then(res => {
-					if (res.state) {
-						this.tableData = res.data.dataList.map(node => {
-							node = Object.assign(node, JSON.parse(node.flowData));
-							return node;
-						});;
-						this.totalCount = res.data.totalCount;
-					}
-				})
-			},
-			initDeviceList() {
-				getDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
-					if (res.state) {
-						if (res.data.length === 0) {
-							initDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id)
-								.then(res => {
-									if (res.state) this.initDevicePartList();
-								})
-						} else {
-							this.treeData = res.data;
-							this.returnChildren(this.treeData);
-						}
-					}
-				})
-			},
-			returnChildren(data) {
-				data.forEach(item => {
-					if (item.children && item.deviceList) {
-						let obj = item.deviceList.map(res => {
-							res['deviceId'] = res.id;
-							res['id'] = -res.id;
-							return res;
-						})
-						item.children = item.children.concat(obj);
-					}
-					if (item.children && item.children.length > 0) this.returnChildren(item.children);
-				});
-			},
-			currentChange(currPage) {
-				this.currPage = currPage;
-				this.init();
-			},
-			insert() {
-				this.visible = true;
-				this.isUpdate = false;
-			},
-			lookFlow(val) {
-				this.detailId = val.id;
-				this.drawer = true;
-			},
-			updateFlow(val) {
-				this.detailId = val.id;
-				this.isUpdate = true;
-				this.visible = true;
-			},
-			deleteFlow(val) {
-				this.$confirm('确定要删除该流程?', () => {
-					deleteFlow(val.id).then(res => {
-						if (res.state) {
-							this.$message.success('操作成功');
-							this.init();
-						}
-					})
-				});
-			},
-			callback(type) {
-				this.visible = false;
-				if (type === 'init') this.init();
-			}
-		},
-		components: {
-			flowForm,
-			flowDetail
-		},
-	}
-</script>
-
+<template>
+	<div class="hui-flex">
+		<div class="hui-flex-box yui-tree-box">
+			<div class="hui-left-tree">
+				<div class="hui-left-tree-title">
+					<svg-icon name="zhuangshi" width="16" height="20"></svg-icon>
+					<span class="hui-left-tree-sub">资产列表</span>
+				</div>
+				<div class="hui-left-tree-content">
+					<el-collapse>
+						<el-collapse-item v-for="item in treeData" :key="item.id">
+							<template slot="title">
+								<i class="iconfont huifont-shuzhuangcaidantubiao"></i>
+								<span class="el-collapse-name">{{item.name}}</span>
+							</template>
+							<div>
+								<el-tree :data="item.children" :props="defaultProps" :expand-on-click-node="false">
+								</el-tree>
+							</div>
+						</el-collapse-item>
+					</el-collapse>
+				</div>
+			</div>
+			<div class="hui-tree-content">
+				<div class="hui-flex hui-content box-background">
+					<div class="hui-content-title">
+						<div class="hui-title-item active">资产变更</div>
+					</div>
+					<div class="hui-flex-box hui-flex hui-table">
+						<div class="hui-content-insert">
+							<el-button type="primary" size="medium" @click="insert">新增变更</el-button>
+						</div>
+						<div class="hui-flex-box">
+							<el-table :data="tableData" 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="projectItemName"></el-table-column>
+								<el-table-column label="具体位置" prop="projectItemTargetName"></el-table-column>
+								<el-table-column label="创建者" prop="createdByUserName"></el-table-column>
+								<el-table-column label="状态">
+									<template slot-scope="scope">
+										<div v-if="!scope.row.state" class="hui-state">
+											<span class="hui-state-bage hui-state-primary"></span>
+											<span class="hui-state-label">待生成</span>
+										</div>
+										<div v-if="scope.row.state == -1 || scope.row.state == 1" class="hui-state">
+											<span class="hui-state-bage hui-state-primary"></span>
+											<span class="hui-state-label">待审核</span>
+										</div>
+										<div v-if="scope.row.state == 2" class="hui-state">
+											<span class="hui-state-bage hui-state-info"></span>
+											<span class="hui-state-label">审核中</span>
+										</div>
+										<div v-if="scope.row.state == 3" class="hui-state">
+											<span class="hui-state-bage hui-state-success"></span>
+											<span class="hui-state-label">通过</span>
+										</div>
+										<div v-if="scope.row.state == 4" class="hui-state">
+											<span class="hui-state-bage hui-state-error"></span>
+											<span class="hui-state-label">未通过</span>
+										</div>
+									</template>
+								</el-table-column>
+								<el-table-column label="操作" width="150">
+									<template slot-scope="scope">
+										<div class="hui-table-operation">
+											<span class="table-operation" @click="lookFlow(scope.row)">
+												详情
+											</span>
+											<span class="table-operation" v-if="!scope.row.projectFlowId"
+												@click="updateFlow(scope.row)">
+												编辑
+											</span>
+											<span class="table-operation" v-if="!scope.row.projectFlowId"
+												@click="deleteFlow(scope.row)">
+												删除
+											</span>
+										</div>
+									</template>
+								</el-table-column>
+								<template slot="empty">
+									<empty description="暂无数据"></empty>
+								</template>
+							</el-table>
+						</div>
+						<div class="hui-content-pagination">
+							<el-pagination :pager-count="9" layout="prev, pager, next" :total="totalCount"
+								@current-change="currentChange">
+							</el-pagination>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="1200px"
+			:append-to-body="true">
+			<flow-form v-if="visible" :isUpdate="isUpdate" @callback="callback" :detailId="detailId"
+				:flowType="flowType">
+			</flow-form>
+		</el-dialog>
+		<el-drawer title="流程详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<flow-detail v-if="drawer" @callback="callback" :detailId="detailId"></flow-detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		initDevicePartList,
+		getDevicePartList,
+		getFlowList,
+		deleteFlow
+	} from '@/httpApi/property'
+	import flowForm from '@/components/flow/flowForm'
+	import flowDetail from '@/components/flow/flowDetail'
+	export default {
+		data() {
+			return {
+				flowType: 2,
+				tableData: [],
+				currPage: 1,
+				pageSize: 10,
+				totalCount: 0,
+				treeData: [],
+				defaultProps: {
+					children: 'children',
+					label: 'name'
+				},
+				visible: false,
+				isUpdate: false,
+				detailId: '',
+				drawer: false
+			}
+		},
+		created() {
+			this.initDeviceList();
+			this.init();
+		},
+		methods: {
+			init() {
+				getFlowList(this.currPage, this.pageSize, {
+					projectId: this.$store.getters.project.id,
+					flowType: this.flowType
+				}).then(res => {
+					if (res.state) {
+						this.tableData = res.data.dataList.map(node => {
+							node = Object.assign(node, JSON.parse(node.flowData));
+							return node;
+						});;
+						this.totalCount = res.data.totalCount;
+					}
+				})
+			},
+			initDeviceList() {
+				getDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
+					if (res.state) {
+						if (res.data.length === 0) {
+							initDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id)
+								.then(res => {
+									if (res.state) this.initDevicePartList();
+								})
+						} else {
+							this.treeData = res.data;
+							this.returnChildren(this.treeData);
+						}
+					}
+				})
+			},
+			returnChildren(data) {
+				data.forEach(item => {
+					if (item.children && item.deviceList) {
+						let obj = item.deviceList.map(res => {
+							res['deviceId'] = res.id;
+							res['id'] = -res.id;
+							return res;
+						})
+						item.children = item.children.concat(obj);
+					}
+					if (item.children && item.children.length > 0) this.returnChildren(item.children);
+				});
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+			insert() {
+				this.visible = true;
+				this.isUpdate = false;
+			},
+			lookFlow(val) {
+				this.detailId = val.id;
+				this.drawer = true;
+			},
+			updateFlow(val) {
+				this.detailId = val.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			deleteFlow(val) {
+				this.$confirm('确定要删除该流程?', () => {
+					deleteFlow(val.id).then(res => {
+						if (res.state) {
+							this.$message.success('操作成功');
+							this.init();
+						}
+					})
+				});
+			},
+			callback(type) {
+				this.visible = false;
+				if (type === 'init') this.init();
+			}
+		},
+		components: {
+			flowForm,
+			flowDetail
+		},
+	}
+</script>
+
 <style lang="scss"></style>

+ 226 - 225
virgo.wzfrontend/console/src/views/work/property/register.vue

@@ -1,226 +1,227 @@
-<template>
-	<div class="hui-flex">
-		<div class="hui-flex-box yui-tree-box">
-			<div class="hui-left-tree">
-				<div class="hui-left-tree-title">
-					<svg-icon name="zhuangshi" width="16" height="20"></svg-icon>
-					<span class="hui-left-tree-sub">资产列表</span>
-				</div>
-				<div class="hui-left-tree-content">
-					<el-collapse>
-						<el-collapse-item v-for="item in treeData" :key="item.id">
-							<template slot="title">
-								<i class="iconfont huifont-shuzhuangcaidantubiao"></i>
-								<span class="el-collapse-name">{{item.name}}</span>
-							</template>
-							<div>
-								<el-tree :data="item.children" :props="defaultProps" :expand-on-click-node="false">
-								</el-tree>
-							</div>
-						</el-collapse-item>
-					</el-collapse>
-				</div>
-			</div>
-			<div class="hui-tree-content">
-				<div class="hui-flex hui-content box-background">
-					<div class="hui-content-title">
-						<div class="hui-title-item active">资产登记</div>
-					</div>
-					<div class="hui-flex-box hui-flex hui-table">
-						<div class="hui-content-insert">
-							<el-button type="primary" size="medium" @click="insert">新增登记</el-button>
-						</div>
-						<div class="hui-flex-box">
-							<el-table :data="tableData" 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="projectItemName"></el-table-column>
-								<el-table-column label="具体位置" prop="projectItemTargetName"></el-table-column>
-								<el-table-column label="资产编码" prop="assetNumber"></el-table-column>
-								<el-table-column label="型号" prop="deviceModel"></el-table-column>
-								<el-table-column label="创建者" prop="createdByUserName"></el-table-column>
-								<el-table-column label="状态">
-									<template slot-scope="scope">
-										<div v-if="!scope.row.state" class="hui-state">
-											<span class="hui-state-bage hui-state-primary"></span>
-											<span class="hui-state-label">待生成</span>
-										</div>
-										<div v-if="scope.row.state == -1 || scope.row.state == 1" class="hui-state">
-											<span class="hui-state-bage hui-state-primary"></span>
-											<span class="hui-state-label">待审核</span>
-										</div>
-										<div v-if="scope.row.state == 2" class="hui-state">
-											<span class="hui-state-bage hui-state-info"></span>
-											<span class="hui-state-label">审核中</span>
-										</div>
-										<div v-if="scope.row.state == 3" class="hui-state">
-											<span class="hui-state-bage hui-state-success"></span>
-											<span class="hui-state-label">通过</span>
-										</div>
-										<div v-if="scope.row.state == 4" class="hui-state">
-											<span class="hui-state-bage hui-state-error"></span>
-											<span class="hui-state-label">未通过</span>
-										</div>
-									</template>
-								</el-table-column>
-								<el-table-column label="操作" width="150">
-									<template slot-scope="scope">
-										<div class="hui-table-operation">
-											<span class="table-operation" @click="lookFlow(scope.row)">
-												详情
-											</span>
-											<span class="table-operation" v-if="!scope.row.projectFlowId"
-												@click="updateFlow(scope.row)">
-												编辑
-											</span>
-											<span class="table-operation" v-if="!scope.row.projectFlowId"
-												@click="deleteFlow(scope.row)">
-												删除
-											</span>
-										</div>
-									</template>
-								</el-table-column>
-								<template slot="empty">
-									<empty description="暂无数据"></empty>
-								</template>
-							</el-table>
-						</div>
-						<div class="hui-content-pagination">
-							<el-pagination :pager-count="9" layout="prev, pager, next" :total="totalCount"
-								@current-change="currentChange">
-							</el-pagination>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-		<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="1200px" :append-to-body="true">
-			<flow-form v-if="visible" :isUpdate="isUpdate" @callback="callback" :detailId="detailId"
-				:flowType="flowType">
-			</flow-form>
-		</el-dialog>
-		<el-drawer title="流程详情" :visible.sync="drawer" :size="400" :append-to-body="true">
-			<flow-detail v-if="drawer" @callback="callback" :detailId="detailId"></flow-detail>
-		</el-drawer>
-	</div>
-</template>
-
-<script>
-	import {
-		initDevicePartList,
-		getDevicePartList,
-		getFlowList,
-		deleteFlow
-	} from '@/httpApi/property'
-	import flowForm from '@/components/flow/flowForm'
-	import flowDetail from '@/components/flow/flowDetail'
-	export default {
-		data() {
-			return {
-				flowType: 1,
-				tableData: [],
-				currPage: 1,
-				pageSize: 10,
-				totalCount: 0,
-				treeData: [],
-				defaultProps: {
-					children: 'children',
-					label: 'name'
-				},
-				visible: false,
-				isUpdate: false,
-				detailId: '',
-				drawer: false
-			}
-		},
-		created() {
-			this.initDeviceList();
-			this.init();
-		},
-		methods: {
-			init() {
-				getFlowList(this.currPage, this.pageSize, {
-					projectId: this.$store.getters.project.id,
-					flowType: this.flowType
-				}).then(res => {
-					if (res.state) {
-						this.tableData = res.data.dataList.map(node => {
-							node = Object.assign(node, JSON.parse(node.flowData));
-							return node;
-						});;
-						this.totalCount = res.data.totalCount;
-					}
-				})
-			},
-			initDeviceList() {
-				getDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
-					if (res.state) {
-						if (res.data.length === 0) {
-							initDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id)
-								.then(res => {
-									if (res.state) this.init();
-								})
-						} else {
-							this.treeData = res.data;
-							this.returnChildren(this.treeData);
-						}
-					}
-				})
-			},
-			returnChildren(data) {
-				data.forEach(item => {
-					if (item.children && item.deviceList) {
-						let obj = item.deviceList.map(res => {
-							res['deviceId'] = res.id;
-							res['id'] = -res.id;
-							return res;
-						})
-						item.children = item.children.concat(obj);
-					}
-					if (item.children && item.children.length > 0) this.returnChildren(item.children);
-				});
-			},
-			currentChange(currPage) {
-				this.currPage = currPage;
-				this.init();
-			},
-			insert() {
-				this.visible = true;
-				this.isUpdate = false;
-			},
-			lookFlow(val) {
-				this.detailId = val.id;
-				this.drawer = true;
-			},
-			updateFlow(val) {
-				this.detailId = val.id;
-				this.isUpdate = true;
-				this.visible = true;
-			},
-			deleteFlow(val) {
-				this.$confirm('确定要删除该流程?', () => {
-					deleteFlow(val.id).then(res => {
-						if (res.state) {
-							this.$message.success('操作成功');
-							this.init();
-						}
-					})
-				});
-			},
-			callback(type) {
-				this.visible = false;
-				if (type === 'init') this.init();
-			}
-		},
-		components: {
-			flowForm,
-			flowDetail
-		},
-	}
-</script>
-
+<template>
+	<div class="hui-flex">
+		<div class="hui-flex-box yui-tree-box">
+			<div class="hui-left-tree">
+				<div class="hui-left-tree-title">
+					<svg-icon name="zhuangshi" width="16" height="20"></svg-icon>
+					<span class="hui-left-tree-sub">资产列表</span>
+				</div>
+				<div class="hui-left-tree-content">
+					<el-collapse>
+						<el-collapse-item v-for="item in treeData" :key="item.id">
+							<template slot="title">
+								<i class="iconfont huifont-shuzhuangcaidantubiao"></i>
+								<span class="el-collapse-name">{{item.name}}</span>
+							</template>
+							<div>
+								<el-tree :data="item.children" :props="defaultProps" :expand-on-click-node="false">
+								</el-tree>
+							</div>
+						</el-collapse-item>
+					</el-collapse>
+				</div>
+			</div>
+			<div class="hui-tree-content">
+				<div class="hui-flex hui-content box-background">
+					<div class="hui-content-title">
+						<div class="hui-title-item active">资产登记</div>
+					</div>
+					<div class="hui-flex-box hui-flex hui-table">
+						<div class="hui-content-insert">
+							<el-button type="primary" size="medium" @click="insert">新增登记</el-button>
+						</div>
+						<div class="hui-flex-box">
+							<el-table :data="tableData" 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="assetNumber"></el-table-column>
+								<el-table-column label="单位建筑" prop="projectItemName"></el-table-column>
+								<el-table-column label="具体位置" prop="projectItemTargetName"></el-table-column>
+								<el-table-column label="型号" prop="deviceModel"></el-table-column>
+								<el-table-column label="创建者" prop="createdByUserName"></el-table-column>
+								<el-table-column label="状态">
+									<template slot-scope="scope">
+										<div v-if="!scope.row.state" class="hui-state">
+											<span class="hui-state-bage hui-state-primary"></span>
+											<span class="hui-state-label">待生成</span>
+										</div>
+										<div v-if="scope.row.state == -1 || scope.row.state == 1" class="hui-state">
+											<span class="hui-state-bage hui-state-primary"></span>
+											<span class="hui-state-label">待审核</span>
+										</div>
+										<div v-if="scope.row.state == 2" class="hui-state">
+											<span class="hui-state-bage hui-state-info"></span>
+											<span class="hui-state-label">审核中</span>
+										</div>
+										<div v-if="scope.row.state == 3" class="hui-state">
+											<span class="hui-state-bage hui-state-success"></span>
+											<span class="hui-state-label">通过</span>
+										</div>
+										<div v-if="scope.row.state == 4" class="hui-state">
+											<span class="hui-state-bage hui-state-error"></span>
+											<span class="hui-state-label">未通过</span>
+										</div>
+									</template>
+								</el-table-column>
+								<el-table-column label="操作" width="150">
+									<template slot-scope="scope">
+										<div class="hui-table-operation">
+											<span class="table-operation" @click="lookFlow(scope.row)">
+												详情
+											</span>
+											<span class="table-operation" v-if="!scope.row.projectFlowId"
+												@click="updateFlow(scope.row)">
+												编辑
+											</span>
+											<span class="table-operation" v-if="!scope.row.projectFlowId"
+												@click="deleteFlow(scope.row)">
+												删除
+											</span>
+										</div>
+									</template>
+								</el-table-column>
+								<template slot="empty">
+									<empty description="暂无数据"></empty>
+								</template>
+							</el-table>
+						</div>
+						<div class="hui-content-pagination">
+							<el-pagination :pager-count="9" layout="prev, pager, next" :total="totalCount"
+								@current-change="currentChange">
+							</el-pagination>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+		<el-dialog :close-on-click-modal="false" :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="1200px"
+			:append-to-body="true">
+			<flow-form v-if="visible" :isUpdate="isUpdate" @callback="callback" :detailId="detailId"
+				:flowType="flowType">
+			</flow-form>
+		</el-dialog>
+		<el-drawer title="流程详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<flow-detail v-if="drawer" @callback="callback" :detailId="detailId"></flow-detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		initDevicePartList,
+		getDevicePartList,
+		getFlowList,
+		deleteFlow
+	} from '@/httpApi/property'
+	import flowForm from '@/components/flow/flowForm'
+	import flowDetail from '@/components/flow/flowDetail'
+	export default {
+		data() {
+			return {
+				flowType: 1,
+				tableData: [],
+				currPage: 1,
+				pageSize: 10,
+				totalCount: 0,
+				treeData: [],
+				defaultProps: {
+					children: 'children',
+					label: 'name'
+				},
+				visible: false,
+				isUpdate: false,
+				detailId: '',
+				drawer: false
+			}
+		},
+		created() {
+			this.initDeviceList();
+			this.init();
+		},
+		methods: {
+			init() {
+				getFlowList(this.currPage, this.pageSize, {
+					projectId: this.$store.getters.project.id,
+					flowType: this.flowType
+				}).then(res => {
+					if (res.state) {
+						this.tableData = res.data.dataList.map(node => {
+							node = Object.assign(node, JSON.parse(node.flowData));
+							return node;
+						});;
+						this.totalCount = res.data.totalCount;
+					}
+				})
+			},
+			initDeviceList() {
+				getDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
+					if (res.state) {
+						if (res.data.length === 0) {
+							initDevicePartList(this.$store.getters.organization.id, this.$store.getters.project.id)
+								.then(res => {
+									if (res.state) this.init();
+								})
+						} else {
+							this.treeData = res.data;
+							this.returnChildren(this.treeData);
+						}
+					}
+				})
+			},
+			returnChildren(data) {
+				data.forEach(item => {
+					if (item.children && item.deviceList) {
+						let obj = item.deviceList.map(res => {
+							res['deviceId'] = res.id;
+							res['id'] = -res.id;
+							return res;
+						})
+						item.children = item.children.concat(obj);
+					}
+					if (item.children && item.children.length > 0) this.returnChildren(item.children);
+				});
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+			insert() {
+				this.visible = true;
+				this.isUpdate = false;
+			},
+			lookFlow(val) {
+				this.detailId = val.id;
+				this.drawer = true;
+			},
+			updateFlow(val) {
+				this.detailId = val.id;
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			deleteFlow(val) {
+				this.$confirm('确定要删除该流程?', () => {
+					deleteFlow(val.id).then(res => {
+						if (res.state) {
+							this.$message.success('操作成功');
+							this.init();
+						}
+					})
+				});
+			},
+			callback(type) {
+				this.visible = false;
+				if (type === 'init') this.init();
+			}
+		},
+		components: {
+			flowForm,
+			flowDetail
+		},
+	}
+</script>
+
 <style lang="scss"></style>

文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/index.html


virgo.wzfrontend/src/main/resources/static/console/static/css/8869.b6c7aaf0.css → virgo.wzfrontend/src/main/resources/static/console/static/css/1250.b6c7aaf0.css


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/124.0aa77f71.css


virgo.wzfrontend/src/main/resources/static/console/static/css/1170.d878ce6b.css → virgo.wzfrontend/src/main/resources/static/console/static/css/2745.d878ce6b.css


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/5999.c684fc18.css


virgo.wzfrontend/src/main/resources/static/console/static/css/1520.d878ce6b.css → virgo.wzfrontend/src/main/resources/static/console/static/css/3174.d878ce6b.css


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/css/5401.25798605.css


virgo.wzfrontend/src/main/resources/static/console/static/css/7910.25d77c63.css → virgo.wzfrontend/src/main/resources/static/console/static/css/6926.25d77c63.css


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/7977.0aa77f71.css


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/1250.659e8126.css


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/css/app.71224130.css


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/css/app.ef440b7e.css


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1170.5bed2788.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/124-legacy.57f3087d.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1250-legacy.f47cbfb0.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/8869.89a5ae39.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1250.56f594a9.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/1515.170f6dc9.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/1520-legacy.4ecce39b.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2038-legacy.5a84650c.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2038.c970db4e.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2385-legacy.d9d60430.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2385.88c10a14.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/2745.df96a932.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5999.7e33e33c.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/3082-legacy.34beecca.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/3174-legacy.f81d2320.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/324.1aada772.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/324.39d215f9.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/383-legacy.906b01ea.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/383.45afe04a.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/4610-legacy.bee27571.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/4610-legacy.eb7ddd5e.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/4635.2ace2c37.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/4635.64e6d3c0.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/4639-legacy.7c75fca9.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/4639-legacy.850c0eb6.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/4639.98167fa4.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/4639.a8886b9b.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/4783.134dcfcb.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/5401-legacy.28004c00.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5411-legacy.250b21de.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/5411-legacy.3166e770.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/5567.a92bb820.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5567.cd8a675f.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5999-legacy.95af8351.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/6071.35f498d8.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5593-legacy.b3d3c101.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5333-legacy.36018804.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/5333.ad34ccec.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/7033-legacy.bd6bdb41.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/7437-legacy.281c7d9a.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/7437-legacy.ac3292c3.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2197-legacy.2f9b6456.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/2197.c1db356c.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/7977.427c7ae7.js


文件差異過大導致無法顯示
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/9023.cd9231de.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/9906-legacy.c4857c5d.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/9906.36cfd945.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.9c468b2d.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app-legacy.f78b4cd9.js


文件差異過大導致無法顯示
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/console/static/js/app.3855166b.js


文件差異過大導致無法顯示
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/console/static/js/app.5c3edf38.js