whx 1 년 전
부모
커밋
8a884331d3
40개의 변경된 파일448개의 추가작업 그리고 44개의 파일을 삭제
  1. 63 0
      virgo.wzfrontend/console/src/components/work/order/action.vue
  2. 122 20
      virgo.wzfrontend/console/src/components/work/order/detail.vue
  3. 0 3
      virgo.wzfrontend/console/src/components/work/order/edit.vue
  4. 194 0
      virgo.wzfrontend/console/src/components/work/order/process.vue
  5. 6 0
      virgo.wzfrontend/console/src/config/identity.txt
  6. 22 0
      virgo.wzfrontend/console/src/httpApi/order.js
  7. 17 0
      virgo.wzfrontend/console/src/views/system/log.vue
  8. 1 1
      virgo.wzfrontend/src/main/resources/static/index.html
  9. 0 1
      virgo.wzfrontend/src/main/resources/static/static/css/2470.ce6122fd.css
  10. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/3137.7e28460d.css
  11. 0 1
      virgo.wzfrontend/src/main/resources/static/static/css/3332.ce6122fd.css
  12. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/5034.01e59784.css
  13. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/555.266c7971.css
  14. 1 1
      virgo.wzfrontend/src/main/resources/static/static/css/6061.034ef163.css
  15. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/7965.266c7971.css
  16. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/9133.7e28460d.css
  17. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/1092-legacy.e7005e32.js
  18. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/2431-legacy.21c9a7be.js
  19. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/2470-legacy.7201da44.js
  20. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/3137-legacy.c7f1d41e.js
  21. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/3815-legacy.1455c7c0.js
  22. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/3815.92033498.js
  23. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/4198-legacy.fd82c920.js
  24. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/4889.4d50c30b.js
  25. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/4889.a644c69e.js
  26. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/6061-legacy.6ce9dfae.js
  27. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/6061.32ae91a7.js
  28. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/6661-legacy.da83400a.js
  29. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/6661.d941557e.js
  30. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/7504.eea1604d.js
  31. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/7965-legacy.d4111a85.js
  32. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/8053.66d19f24.js
  33. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/8053.b643563f.js
  34. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/9133.4f392163.js
  35. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/9293-legacy.5e505969.js
  36. 1 1
      virgo.wzfrontend/src/main/resources/static/static/js/9293.d6a6c182.js
  37. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.35897956.js
  38. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.f8d24938.js
  39. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/app.2ac1125e.js
  40. 0 1
      virgo.wzfrontend/src/main/resources/static/static/js/app.8c93f419.js

+ 63 - 0
virgo.wzfrontend/console/src/components/work/order/action.vue

@@ -0,0 +1,63 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="form" :model="form" label-position="top">
+				<el-form-item label="处理内容" class="hui-textarea" prop="remark"
+					:rules="[{required: true, message: '请输入处理内容'}]">
+					<el-input type="textarea" v-model="form.remark" placeholder="请输入处理内容" maxlength="120" :rows="4"
+						show-word-limit resize="none">
+					</el-input>
+				</el-form-item>
+				<el-form-item label="处理附件" class="hui-textarea">
+					<upload ref="upload" :list="responsibility" type="insert"></upload>
+				</el-form-item>
+			</el-form>
+		</div>
+		<div class="hui-dialog-submit">
+			<el-button size="medium" @click="$emit('callback')">取 消</el-button>
+			<el-button size="medium" type="primary" @click="submit">确 定</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	import upload from '@/components/common/upload'
+	import {
+		putOrderProcess
+	} from '@/httpApi/order'
+	export default {
+		props: ['operationId'],
+		data() {
+			return {
+				form: {
+					remark: ''
+				},
+				responsibility: []
+			}
+		},
+		created() {
+
+		},
+		methods: {
+			submit() {
+				let postData = {
+					id: this.operationId,
+					remark: this.form.remark,
+					attachment: JSON.stringify(this.$refs.upload.fileList),
+					status: 1
+				}
+				putOrderProcess(postData).then(res => {
+					if (res.state) {
+						this.$message.success('操作成功');
+						this.$emit('callback', 'init');
+					}
+				})
+			}
+		},
+		components: {
+			upload
+		}
+	}
+</script>
+
+<style lang="scss"></style>

+ 122 - 20
virgo.wzfrontend/console/src/components/work/order/detail.vue

@@ -15,7 +15,7 @@
 					<div class="hui-detail-item hui-detail-item-top">
 						<div class="hui-detail-label">楼宇房号</div>
 						<div class="hui-detail-value">
-							<div class="hui-ellipsis" v-for="(item,index) in detail.roomMap">
+							<div class="hui-ellipsis" v-for="(item,index) in detail.roomMap" :key="index">
 								{{item}}
 							</div>
 						</div>
@@ -57,28 +57,40 @@
 				<div v-if="detail.data && detail.data != '[]'">
 					<div class="hui-detail-title">自定义信息</div>
 					<div class="hui-detail-content">
-						<div class="hui-detail-item" v-for="(item,index) in JSON.parse(detail.data)">
+						<div class="hui-detail-item" v-for="(item,index) in JSON.parse(detail.data)" :key="index">
 							<div class="hui-detail-label">{{item.keyName}}</div>
 							<div class="hui-detail-value">{{item.value}}</div>
 						</div>
 					</div>
 				</div>
+				<div class="hui-detail-title" v-if="detail.workOrderProcessList.length > 0">工单过程</div>
+				<process :process="detail.workOrderProcessList" v-if="detail.workOrderProcessList.length > 0">
+				</process>
 			</div>
 		</div>
-		<div class="hui-drawer-submit" v-if="!detail.status">
-			<el-button size="medium" type="primary" @click="submitOrder" v-if="!detail.status">
-				提交工单
+		<div class="hui-drawer-submit" v-if="actionButton.length > 0">
+			<el-button size="medium" type="primary" v-for="(item,index) in actionButton" :key="index"
+				@click="actionClick(item.type)">
+				{{item.name}}
 			</el-button>
 		</div>
+		<el-dialog :title="type == 1 ? '选择指派人员':'处理工单'" :visible.sync="visible" width="880px" :append-to-body="true">
+			<select-user @callback="callBack" v-if="visible && type == 1" :maxLen="1"></select-user>
+			<action @callback="callBack" v-if="visible && type == 2" :operationId="operation.id"></action>
+		</el-dialog>
 	</div>
 </template>
 
 <script>
 	import {
 		getOrderDetailById,
-		updateOrder
+		updateOrder,
+		insertOrderProcess
 	} from '@/httpApi/order'
 	import upload from '@/components/common/upload'
+	import selectUser from '@/components/common/selectUser'
+	import process from '@/components/work/order/process'
+	import action from '@/components/work/order/action'
 	export default {
 		props: ['detailId'],
 		data() {
@@ -91,8 +103,13 @@
 					clientId: '',
 					followUpPerson: '',
 					followUpPersonPhone: '',
-					workWay: ''
-				}
+					workWay: '',
+					workOrderProcessList: []
+				},
+				visible: false,
+				type: 1,
+				operation: {},
+				actionButton: []
 			}
 		},
 		created() {
@@ -103,26 +120,111 @@
 				getOrderDetailById(this.detailId).then(res => {
 					if (res.state) {
 						this.detail = res.data;
+						this.role();
 					}
 				})
 			},
-			submitOrder() {
-				this.$confirm('是否提交工单,提交后将不能再修改?', () => {
-					updateOrder({
-						id: this.detail.id,
-						status: 1
-					}).then(res => {
-						if (res.state) {
-							this.init();
-							this.$message.success('操作成功');
-							this.$emit('callback', 'init')
-						}
+			role() {
+				let user = this.$store.getters.user,
+					button = [];
+				if (this.detail.userId === user.userId) { //创建者
+					if (!this.detail.status) button.push({
+						type: 1,
+						name: '提交工单'
+					})
+				}
+				let data = this.detail.workOrderProcessList.filter(node => !node.status);
+				if (data.length > 0) { //未处理工单过程
+					this.operation = data[0];
+					//处理工单人员
+					if (this.operation.operatorId === user.userId) button.push({
+						type: 2,
+						name: '处理工单'
+					})
+				}
+				if (this.detail.userId === user.userId) { //跟进人
+					if (this.detail.status === 1) button.push({
+						type: 3,
+						name: '开始工单'
+					})
+					if (this.detail.status === 2) button.push({
+						type: 4,
+						name: '指派人员'
 					})
+					if (data.length === 0 && this.detail.status === 2) button.push({
+						type: 5,
+						name: '完成工单'
+					})
+				}
+				this.actionButton = button;
+			},
+			actionClick(type) {
+				switch (type) {
+					case 1:
+						this.submitOrder('是否提交工单,提交后将不能再修改?', 1);
+						break;
+					case 2:
+						this.operationClick(2)
+						break;
+					case 3:
+						this.submitOrder('是否开始工单?', 2);
+						break;
+					case 4:
+						this.operationClick(1)
+						break;
+					case 5:
+						this.submitOrder('是否完成工单?', 3);
+						break;
+					default:
+						break;
+				}
+			},
+			submitOrder(msg, status) {
+				this.$confirm(msg, () => {
+					this.update(status);
 				});
+			},
+			update(status) {
+				updateOrder({
+					id: this.detail.id,
+					status: status
+				}).then(res => {
+					if (res.state) {
+						this.init();
+						this.$message.success('操作成功');
+						this.$emit('callback', 'init')
+					}
+				})
+			},
+			callBack(data) {
+				if (!data) return this.visible = false;
+				if (data == 'init') {
+					this.init();
+					return this.visible = false;
+				}
+				insertOrderProcess({
+					operatorId: data[0].id,
+					workOrderId: this.detailId,
+					status: 0,
+					attachment: '[]'
+				}).then(res => {
+					if (res.state) {
+						this.init();
+						this.visible = false;
+						this.$message.success('操作成功');
+					}
+				})
+			},
+			operationClick(type) {
+				this.type = type;
+				this.visible = true;
 			}
 		},
 		components: {
-			upload
+			upload,
+			selectUser,
+			process,
+			action
 		},
 	}
 </script>

+ 0 - 3
virgo.wzfrontend/console/src/components/work/order/edit.vue

@@ -44,9 +44,6 @@
 						</el-option>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="联系方式" prop="followUpPersonPhone" v-if="type != 3">
-					<el-input type="number" v-model="form.followUpPersonPhone" placeholder="请输入联系方式"></el-input>
-				</el-form-item>
 				<el-form-item label="服务方式" prop="workWay" :rules="[{required: true, message: '请选择服务方式'}]"
 					v-if="type != 3">
 					<el-select v-model="form.workWay" placeholder="请选择服务方式">

+ 194 - 0
virgo.wzfrontend/console/src/components/work/order/process.vue

@@ -0,0 +1,194 @@
+<template>
+	<div class="process-list">
+		<div class="process-box">
+			<div class="process-item" v-for="(item,index) in list" :key="index">
+				<div class="user-avatar-box">
+					<div class="user-avatar">{{index+1}}</div>
+					<div :class="'user-avatar-status '+ returnStatus(item.status).className">
+						<i :class="'iconfont '+returnStatus(item.status).icon"></i>
+					</div>
+				</div>
+				<div class="process-content">
+					<div class="user-name">
+						<div>{{item.operatorName}}</div>
+						<p v-if="item.status"><span>{{item.date}}</span></p>
+					</div>
+					<div class="user-content" v-if="item.remark">
+						<div class="remark">
+							{{item.remark}}
+						</div>
+						<div class="remark-file" v-if="item.attachment && item.attachment != '[]'">
+							<upload :list="item.attachment ? JSON.parse(item.attachment) : []" type="preview"></upload>
+						</div>
+					</div>
+				</div>
+				<div class="user-line" v-if="index < list.length-1"></div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import upload from '@/components/common/upload'
+	export default {
+		props: ['process'],
+		data() {
+			return {
+				list: [],
+				visible: false
+			}
+		},
+		created() {
+			this.list = this.process;
+		},
+		methods: {
+			returnStatus(state) {
+				let className = '',
+					icon = '';
+				switch (state) {
+					case 0:
+						className = 'info';
+						icon = 'huifont-jinhangzhong';
+						break;
+					case 1:
+						className = 'success'
+						icon = 'huifont-tongguo';
+						break;
+					case 2:
+						className = 'failed'
+						icon = 'huifont-a-butongguojujue';
+						break;
+					default:
+						className = 'info'
+						icon = 'huifont-jinhangzhong';
+						break;
+				}
+				return {
+					className: className,
+					icon: icon
+				};
+			}
+		},
+		watch: {
+			process() {
+				this.list = this.process;
+			}
+		},
+		components: {
+			upload
+		},
+	}
+</script>
+
+<style lang="scss">
+	.process-list {
+		padding: 10px 0;
+
+		.process-item {
+			position: relative;
+			display: flex;
+
+			.user-avatar-box {
+				position: relative;
+
+				.user-avatar {
+					width: 32px;
+					height: 32px;
+					background: #4958de;
+					border-radius: 50%;
+					margin-right: 10px;
+					margin-top: 8px;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					overprocess: hidden;
+
+					i {
+						font-size: 20px;
+					}
+				}
+
+				.user-avatar-status {
+					width: 12px;
+					height: 12px;
+					border-radius: 50%;
+					border: 1px solid #fff;
+					position: absolute;
+					top: 30px;
+					right: 10px;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+
+					i {
+						font-size: 8px;
+						color: #fff;
+					}
+				}
+
+				.user-avatar-status.success {
+					background: $--color-green;
+				}
+
+				.user-avatar-status.failed {
+					background: $--color-red;
+				}
+
+				.user-avatar-status.waiting {
+					background: $--color-orange;
+				}
+
+				.user-avatar-status.info {
+					background: #4C4F59;
+				}
+			}
+
+
+			.process-content {
+				flex: 1;
+				width: 0;
+
+
+				.user-name {
+					height: 48px;
+					display: flex;
+					flex-direction: column;
+					justify-content: center;
+
+					p {
+						font-size: 12px;
+						opacity: 0.6;
+						display: flex;
+						align-items: center;
+						justify-content: space-between;
+					}
+				}
+
+				.user-content {
+					background: rgba(50, 56, 68, 0.2);
+					border-radius: 8px;
+					padding: 13px;
+
+					.remark {
+						font-size: 12px;
+						line-height: 17px;
+
+					}
+
+					.remark-file {
+						margin-top: 12px;
+					}
+				}
+			}
+
+			.user-line {
+				width: 1px;
+				border-left: 1px dashed #374156;
+				position: absolute;
+				top: 40px;
+				bottom: -8px;
+				left: 15px;
+			}
+		}
+	}
+</style>

+ 6 - 0
virgo.wzfrontend/console/src/config/identity.txt

@@ -0,0 +1,6 @@
+身份:
+	1-客户
+	2-中介
+	3-组织所有者
+	4-关联客户组织
+	6-组织成员

+ 22 - 0
virgo.wzfrontend/console/src/httpApi/order.js

@@ -53,4 +53,26 @@ export function deleteOrder(id) {
 		url: `/api/workOrder/delete/${id}`,
 		method: 'delete'
 	})
+}
+/* 
+ * 新增工单
+ * 
+ */
+export function insertOrderProcess(data) {
+	return request({
+		url: `/api/workOrder/process`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 更新工单
+ * 
+ */
+export function putOrderProcess(data) {
+	return request({
+		url: `/api/workOrder/process/update`,
+		method: 'put',
+		data: data
+	})
 }

+ 17 - 0
virgo.wzfrontend/console/src/views/system/log.vue

@@ -101,6 +101,19 @@
 					<div class="log-item">3、新增工单提交功能。</div>
 				</div>
 			</el-timeline-item>
+			<el-timeline-item timestamp="2024-06-26" placement="top">
+				<div class="log-box">
+					<div class="log-item">1、新增工单管理-工单过程功能。</div>
+					<div class="log-item">2、新增工单管理-指派人员功能。</div>
+					<div class="log-item">3、梳理工单处理过程:
+						<div class="log-item">第一步、创建工单。</div>
+						<div class="log-item">第二步、由创建者提交工单,提交后将不能在修改和删除。</div>
+						<div class="log-item">第三步、跟进者指派人员进行处理。</div>
+						<div class="log-item">第四步、被指派的人员进行处理。</div>
+						<div class="log-item">第五步、跟进者完成工单,工单处理过程则完成。</div>
+					</div>
+				</div>
+			</el-timeline-item>
 		</el-timeline>
 	</div>
 </template>
@@ -131,6 +144,10 @@
 
 		.log-item {
 			margin-top: 5px;
+
+			.log-item {
+				padding-left: 24px;
+			}
 		}
 	}
 </style>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/index.html


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/css/2470.ce6122fd.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/3137.7e28460d.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/css/3332.ce6122fd.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/5034.01e59784.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/555.266c7971.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/css/6061.034ef163.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/7965.266c7971.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/9133.7e28460d.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/1092-legacy.e7005e32.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/2431-legacy.21c9a7be.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/2470-legacy.7201da44.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/3137-legacy.c7f1d41e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/3815-legacy.1455c7c0.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/3815.92033498.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/4198-legacy.fd82c920.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/4889.4d50c30b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/4889.a644c69e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/6061-legacy.6ce9dfae.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/6061.32ae91a7.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/6661-legacy.da83400a.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/6661.d941557e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/7504.eea1604d.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/7965-legacy.d4111a85.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/8053.66d19f24.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/8053.b643563f.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/9133.4f392163.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/9293-legacy.5e505969.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
virgo.wzfrontend/src/main/resources/static/static/js/9293.d6a6c182.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.35897956.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/app-legacy.f8d24938.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/app.2ac1125e.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/static/js/app.8c93f419.js