Pārlūkot izejas kodu

Merge branch 'master' of http://122.237.99.185:3000/dcs/realty

dcs 1 gadu atpakaļ
vecāks
revīzija
2a5c1937ee
100 mainītis faili ar 2021 papildinājumiem un 722 dzēšanām
  1. 550 60
      virgo.wzfrontend/console/package-lock.json
  2. 8 0
      virgo.wzfrontend/console/src/assets/icons/index.js
  3. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/dir.svg
  4. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/div.svg
  5. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/doc.svg
  6. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/docx.svg
  7. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/java.svg
  8. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/jpeg.svg
  9. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/jpg.svg
  10. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/mp3.svg
  11. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/mp4.svg
  12. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/nofile.svg
  13. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/pdf.svg
  14. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/png.svg
  15. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/ppt.svg
  16. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/pptx.svg
  17. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/rar.svg
  18. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/txt.svg
  19. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/xls.svg
  20. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/xlsx.svg
  21. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/zhuangshi.svg
  22. 1 0
      virgo.wzfrontend/console/src/assets/icons/svg/zip.svg
  23. 51 0
      virgo.wzfrontend/console/src/components/common/projectItemTree.vue
  24. 78 0
      virgo.wzfrontend/console/src/components/common/svgIcon.vue
  25. 28 0
      virgo.wzfrontend/console/src/components/work/contract/tag/detail.vue
  26. 73 0
      virgo.wzfrontend/console/src/components/work/contract/tag/edit.vue
  27. 174 0
      virgo.wzfrontend/console/src/components/work/crm/customer/followUpRecordDetail.vue
  28. 78 0
      virgo.wzfrontend/console/src/components/work/crm/customer/followUpRecordEdit.vue
  29. 6 1
      virgo.wzfrontend/console/src/components/work/space/house/detail.vue
  30. 9 3
      virgo.wzfrontend/console/src/components/work/space/house/edit.vue
  31. 174 0
      virgo.wzfrontend/console/src/components/work/space/house/lookRecordDetail.vue
  32. 79 0
      virgo.wzfrontend/console/src/components/work/space/house/lookRecordEdit.vue
  33. 47 0
      virgo.wzfrontend/console/src/httpApi/contract.js
  34. 35 0
      virgo.wzfrontend/console/src/httpApi/crm.js
  35. 35 0
      virgo.wzfrontend/console/src/httpApi/space.js
  36. 2 1
      virgo.wzfrontend/console/src/main.js
  37. 23 0
      virgo.wzfrontend/console/src/router/modules/contract.js
  38. 18 0
      virgo.wzfrontend/console/src/views/work/contract/list.vue
  39. 119 0
      virgo.wzfrontend/console/src/views/work/contract/tag.vue
  40. 18 0
      virgo.wzfrontend/console/src/views/work/contract/template.vue
  41. 21 6
      virgo.wzfrontend/console/src/views/work/crm/customer.vue
  42. 116 56
      virgo.wzfrontend/console/src/views/work/space/housing.vue
  43. 11 0
      virgo.wzfrontend/console/vue.config.js
  44. BIN
      virgo.wzfrontend/src/main/resources/static/.DS_Store
  45. 0 1
      virgo.wzfrontend/src/main/resources/static/css/index.min.css
  46. 0 13
      virgo.wzfrontend/src/main/resources/static/css/swiper-bundle.min.css
  47. BIN
      virgo.wzfrontend/src/main/resources/static/fonts/hanyiyaku.ttf
  48. BIN
      virgo.wzfrontend/src/main/resources/static/image/.DS_Store
  49. BIN
      virgo.wzfrontend/src/main/resources/static/image/android_code.png
  50. BIN
      virgo.wzfrontend/src/main/resources/static/image/ios_code.png
  51. BIN
      virgo.wzfrontend/src/main/resources/static/image/side1.png
  52. BIN
      virgo.wzfrontend/src/main/resources/static/image/side2.png
  53. BIN
      virgo.wzfrontend/src/main/resources/static/image/side3.png
  54. BIN
      virgo.wzfrontend/src/main/resources/static/image/side4.png
  55. BIN
      virgo.wzfrontend/src/main/resources/static/image/solution5.png
  56. BIN
      virgo.wzfrontend/src/main/resources/static/image/video-bg.mp4
  57. BIN
      virgo.wzfrontend/src/main/resources/static/image/wechat_code.jpg
  58. 1 337
      virgo.wzfrontend/src/main/resources/static/index.html
  59. 0 42
      virgo.wzfrontend/src/main/resources/static/js/index.min.js
  60. 0 1
      virgo.wzfrontend/src/main/resources/static/js/jquery.js
  61. 0 13
      virgo.wzfrontend/src/main/resources/static/js/swiper-bundle.min.js
  62. 174 188
      virgo.wzfrontend/src/main/resources/static/css/common.css
  63. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/115.77866357.css
  64. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/19.3f9acf7e.css
  65. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/196.9fc54f4b.css
  66. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/197.5d4efa5e.css
  67. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/309.e010fa72.css
  68. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/393.c441a851.css
  69. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/412.15af95a9.css
  70. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/459.3f9acf7e.css
  71. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/487.c441a851.css
  72. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/498.7c3d8c94.css
  73. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/507.e010fa72.css
  74. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/510.7c3d8c94.css
  75. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/525.f399ecd8.css
  76. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/608.60fdb60a.css
  77. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/652.9fc54f4b.css
  78. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/711.77866357.css
  79. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/719.15af95a9.css
  80. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/74.d2784456.css
  81. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/740.f399ecd8.css
  82. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/788.61e06a70.css
  83. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/893.a1df6e64.css
  84. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/925.a1df6e64.css
  85. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/940.bbe8d584.css
  86. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/944.5d4efa5e.css
  87. 1 0
      virgo.wzfrontend/src/main/resources/static/static/css/app.f63c5f3b.css
  88. BIN
      virgo.wzfrontend/src/main/resources/static/static/fonts/element-icons.f1a45d74.ttf
  89. BIN
      virgo.wzfrontend/src/main/resources/static/static/fonts/element-icons.ff18efd1.woff
  90. BIN
      virgo.wzfrontend/src/main/resources/static/static/img/chart-title.26c30878.png
  91. BIN
      virgo.wzfrontend/src/main/resources/static/static/img/dataNull.d2cfeb61.png
  92. BIN
      virgo.wzfrontend/src/main/resources/static/static/img/dataUndefined.25b2821b.png
  93. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/115-legacy.2b5847c8.js
  94. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/121-legacy.296071b5.js
  95. 42 0
      virgo.wzfrontend/src/main/resources/static/static/js/19-legacy.ce22db99.js
  96. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/196.47a0b1e3.js
  97. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/197-legacy.c676dcc9.js
  98. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/197.c676dcc9.js
  99. 1 0
      virgo.wzfrontend/src/main/resources/static/static/js/309-legacy.5f1c1025.js
  100. 0 0
      virgo.wzfrontend/src/main/resources/static/static/js/322-legacy.791f4cfd.js

+ 550 - 60
virgo.wzfrontend/console/package-lock.json

@@ -3804,6 +3804,11 @@
 			"resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
 			"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
 		},
+		"ansi-styles": {
+			"version": "2.2.1",
+			"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
+			"integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA=="
+		},
 		"any-promise": {
 			"version": "1.3.0",
 			"resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
@@ -3883,6 +3888,15 @@
 			"resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz",
 			"integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="
 		},
+		"array-buffer-byte-length": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+			"integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+			"requires": {
+				"call-bind": "^1.0.5",
+				"is-array-buffer": "^3.0.4"
+			}
+		},
 		"array-find-index": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmmirror.com/array-find-index/-/array-find-index-1.0.2.tgz",
@@ -3915,6 +3929,21 @@
 			"resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz",
 			"integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ=="
 		},
+		"arraybuffer.prototype.slice": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+			"integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+			"requires": {
+				"array-buffer-byte-length": "^1.0.1",
+				"call-bind": "^1.0.5",
+				"define-properties": "^1.2.1",
+				"es-abstract": "^1.22.3",
+				"es-errors": "^1.2.1",
+				"get-intrinsic": "^1.2.3",
+				"is-array-buffer": "^3.0.4",
+				"is-shared-array-buffer": "^1.0.2"
+			}
+		},
 		"asn1": {
 			"version": "0.2.6",
 			"resolved": "https://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz",
@@ -4039,6 +4068,14 @@
 				"postcss-value-parser": "^4.2.0"
 			}
 		},
+		"available-typed-arrays": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+			"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+			"requires": {
+				"possible-typed-array-names": "^1.0.0"
+			}
+		},
 		"aws-sign2": {
 			"version": "0.7.0",
 			"resolved": "https://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -4605,7 +4642,6 @@
 			"version": "1.0.7",
 			"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
 			"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
-			"dev": true,
 			"requires": {
 				"es-define-property": "^1.0.0",
 				"es-errors": "^1.3.0",
@@ -4698,6 +4734,25 @@
 			"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
 			"dev": true
 		},
+		"chalk": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
+			"integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
+			"requires": {
+				"ansi-styles": "^2.2.1",
+				"escape-string-regexp": "^1.0.2",
+				"has-ansi": "^2.0.0",
+				"strip-ansi": "^3.0.0",
+				"supports-color": "^2.0.0"
+			},
+			"dependencies": {
+				"supports-color": {
+					"version": "2.0.0",
+					"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
+					"integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g=="
+				}
+			}
+		},
 		"chardet": {
 			"version": "0.7.0",
 			"resolved": "https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz",
@@ -5767,6 +5822,36 @@
 				"assert-plus": "^1.0.0"
 			}
 		},
+		"data-view-buffer": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+			"integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+			"requires": {
+				"call-bind": "^1.0.6",
+				"es-errors": "^1.3.0",
+				"is-data-view": "^1.0.1"
+			}
+		},
+		"data-view-byte-length": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+			"integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"es-errors": "^1.3.0",
+				"is-data-view": "^1.0.1"
+			}
+		},
+		"data-view-byte-offset": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+			"integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+			"requires": {
+				"call-bind": "^1.0.6",
+				"es-errors": "^1.3.0",
+				"is-data-view": "^1.0.1"
+			}
+		},
 		"dayjs": {
 			"version": "1.11.11",
 			"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz",
@@ -5925,7 +6010,6 @@
 			"version": "1.1.4",
 			"resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz",
 			"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
-			"dev": true,
 			"requires": {
 				"es-define-property": "^1.0.0",
 				"es-errors": "^1.3.0",
@@ -5942,7 +6026,6 @@
 			"version": "1.2.1",
 			"resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz",
 			"integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
-			"dev": true,
 			"requires": {
 				"define-data-property": "^1.0.1",
 				"has-property-descriptors": "^1.0.0",
@@ -6314,11 +6397,63 @@
 				"stackframe": "^1.3.4"
 			}
 		},
+		"es-abstract": {
+			"version": "1.23.3",
+			"resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.3.tgz",
+			"integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+			"requires": {
+				"array-buffer-byte-length": "^1.0.1",
+				"arraybuffer.prototype.slice": "^1.0.3",
+				"available-typed-arrays": "^1.0.7",
+				"call-bind": "^1.0.7",
+				"data-view-buffer": "^1.0.1",
+				"data-view-byte-length": "^1.0.1",
+				"data-view-byte-offset": "^1.0.0",
+				"es-define-property": "^1.0.0",
+				"es-errors": "^1.3.0",
+				"es-object-atoms": "^1.0.0",
+				"es-set-tostringtag": "^2.0.3",
+				"es-to-primitive": "^1.2.1",
+				"function.prototype.name": "^1.1.6",
+				"get-intrinsic": "^1.2.4",
+				"get-symbol-description": "^1.0.2",
+				"globalthis": "^1.0.3",
+				"gopd": "^1.0.1",
+				"has-property-descriptors": "^1.0.2",
+				"has-proto": "^1.0.3",
+				"has-symbols": "^1.0.3",
+				"hasown": "^2.0.2",
+				"internal-slot": "^1.0.7",
+				"is-array-buffer": "^3.0.4",
+				"is-callable": "^1.2.7",
+				"is-data-view": "^1.0.1",
+				"is-negative-zero": "^2.0.3",
+				"is-regex": "^1.1.4",
+				"is-shared-array-buffer": "^1.0.3",
+				"is-string": "^1.0.7",
+				"is-typed-array": "^1.1.13",
+				"is-weakref": "^1.0.2",
+				"object-inspect": "^1.13.1",
+				"object-keys": "^1.1.1",
+				"object.assign": "^4.1.5",
+				"regexp.prototype.flags": "^1.5.2",
+				"safe-array-concat": "^1.1.2",
+				"safe-regex-test": "^1.0.3",
+				"string.prototype.trim": "^1.2.9",
+				"string.prototype.trimend": "^1.0.8",
+				"string.prototype.trimstart": "^1.0.8",
+				"typed-array-buffer": "^1.0.2",
+				"typed-array-byte-length": "^1.0.1",
+				"typed-array-byte-offset": "^1.0.2",
+				"typed-array-length": "^1.0.6",
+				"unbox-primitive": "^1.0.2",
+				"which-typed-array": "^1.1.15"
+			}
+		},
 		"es-define-property": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz",
 			"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
-			"dev": true,
 			"requires": {
 				"get-intrinsic": "^1.2.4"
 			}
@@ -6326,8 +6461,7 @@
 		"es-errors": {
 			"version": "1.3.0",
 			"resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
-			"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
-			"dev": true
+			"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
 		},
 		"es-module-lexer": {
 			"version": "1.5.0",
@@ -6335,6 +6469,34 @@
 			"integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==",
 			"dev": true
 		},
+		"es-object-atoms": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+			"integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+			"requires": {
+				"es-errors": "^1.3.0"
+			}
+		},
+		"es-set-tostringtag": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+			"integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+			"requires": {
+				"get-intrinsic": "^1.2.4",
+				"has-tostringtag": "^1.0.2",
+				"hasown": "^2.0.1"
+			}
+		},
+		"es-to-primitive": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+			"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+			"requires": {
+				"is-callable": "^1.1.4",
+				"is-date-object": "^1.0.1",
+				"is-symbol": "^1.0.2"
+			}
+		},
 		"escalade": {
 			"version": "3.1.2",
 			"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
@@ -7163,6 +7325,14 @@
 			"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
 			"dev": true
 		},
+		"for-each": {
+			"version": "0.3.3",
+			"resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz",
+			"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+			"requires": {
+				"is-callable": "^1.1.3"
+			}
+		},
 		"for-in": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz",
@@ -7322,12 +7492,28 @@
 			"resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
 			"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
 		},
+		"function.prototype.name": {
+			"version": "1.1.6",
+			"resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+			"integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+			"requires": {
+				"call-bind": "^1.0.2",
+				"define-properties": "^1.2.0",
+				"es-abstract": "^1.22.1",
+				"functions-have-names": "^1.2.3"
+			}
+		},
 		"functional-red-black-tree": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
 			"integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
 			"dev": true
 		},
+		"functions-have-names": {
+			"version": "1.2.3",
+			"resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
+			"integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+		},
 		"gauge": {
 			"version": "2.7.4",
 			"resolved": "https://registry.npmmirror.com/gauge/-/gauge-2.7.4.tgz",
@@ -7400,7 +7586,6 @@
 			"version": "1.2.4",
 			"resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
 			"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
-			"dev": true,
 			"requires": {
 				"es-errors": "^1.3.0",
 				"function-bind": "^1.1.2",
@@ -7424,6 +7609,16 @@
 				"pump": "^3.0.0"
 			}
 		},
+		"get-symbol-description": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+			"integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+			"requires": {
+				"call-bind": "^1.0.5",
+				"es-errors": "^1.3.0",
+				"get-intrinsic": "^1.2.4"
+			}
+		},
 		"get-value": {
 			"version": "2.0.6",
 			"resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz",
@@ -7484,6 +7679,15 @@
 			"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
 			"dev": true
 		},
+		"globalthis": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz",
+			"integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+			"requires": {
+				"define-properties": "^1.2.1",
+				"gopd": "^1.0.1"
+			}
+		},
 		"globby": {
 			"version": "9.2.0",
 			"resolved": "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz",
@@ -7540,7 +7744,6 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
 			"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-			"dev": true,
 			"requires": {
 				"get-intrinsic": "^1.1.3"
 			}
@@ -7590,6 +7793,11 @@
 				"ansi-regex": "^2.0.0"
 			}
 		},
+		"has-bigints": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz",
+			"integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+		},
 		"has-flag": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz",
@@ -7599,7 +7807,6 @@
 			"version": "1.0.2",
 			"resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
 			"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
-			"dev": true,
 			"requires": {
 				"es-define-property": "^1.0.0"
 			}
@@ -7607,14 +7814,20 @@
 		"has-proto": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz",
-			"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
-			"dev": true
+			"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
 		},
 		"has-symbols": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
-			"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-			"dev": true
+			"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+		},
+		"has-tostringtag": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+			"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+			"requires": {
+				"has-symbols": "^1.0.3"
+			}
 		},
 		"has-unicode": {
 			"version": "2.0.1",
@@ -8131,6 +8344,16 @@
 				}
 			}
 		},
+		"internal-slot": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz",
+			"integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+			"requires": {
+				"es-errors": "^1.3.0",
+				"hasown": "^2.0.0",
+				"side-channel": "^1.0.4"
+			}
+		},
 		"ipaddr.js": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz",
@@ -8145,12 +8368,29 @@
 				"hasown": "^2.0.0"
 			}
 		},
+		"is-array-buffer": {
+			"version": "3.0.4",
+			"resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+			"integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+			"requires": {
+				"call-bind": "^1.0.2",
+				"get-intrinsic": "^1.2.1"
+			}
+		},
 		"is-arrayish": {
 			"version": "0.2.1",
 			"resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
 			"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
 			"dev": true
 		},
+		"is-bigint": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz",
+			"integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+			"requires": {
+				"has-bigints": "^1.0.1"
+			}
+		},
 		"is-binary-path": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -8160,11 +8400,25 @@
 				"binary-extensions": "^2.0.0"
 			}
 		},
+		"is-boolean-object": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+			"integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+			"requires": {
+				"call-bind": "^1.0.2",
+				"has-tostringtag": "^1.0.0"
+			}
+		},
 		"is-buffer": {
 			"version": "1.1.6",
 			"resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
 			"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
 		},
+		"is-callable": {
+			"version": "1.2.7",
+			"resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz",
+			"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+		},
 		"is-ci": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz",
@@ -8191,6 +8445,22 @@
 				"hasown": "^2.0.0"
 			}
 		},
+		"is-data-view": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.1.tgz",
+			"integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+			"requires": {
+				"is-typed-array": "^1.1.13"
+			}
+		},
+		"is-date-object": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
+			"integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+			"requires": {
+				"has-tostringtag": "^1.0.0"
+			}
+		},
 		"is-descriptor": {
 			"version": "0.1.7",
 			"resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz",
@@ -8253,6 +8523,11 @@
 			"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
 			"dev": true
 		},
+		"is-negative-zero": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+			"integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="
+		},
 		"is-number": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz",
@@ -8271,6 +8546,14 @@
 				}
 			}
 		},
+		"is-number-object": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz",
+			"integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+			"requires": {
+				"has-tostringtag": "^1.0.0"
+			}
+		},
 		"is-plain-obj": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
@@ -8284,12 +8567,53 @@
 				"isobject": "^3.0.1"
 			}
 		},
+		"is-regex": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
+			"integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+			"requires": {
+				"call-bind": "^1.0.2",
+				"has-tostringtag": "^1.0.0"
+			}
+		},
+		"is-shared-array-buffer": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+			"integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+			"requires": {
+				"call-bind": "^1.0.7"
+			}
+		},
 		"is-stream": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz",
 			"integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
 			"dev": true
 		},
+		"is-string": {
+			"version": "1.0.7",
+			"resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz",
+			"integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+			"requires": {
+				"has-tostringtag": "^1.0.0"
+			}
+		},
+		"is-symbol": {
+			"version": "1.0.4",
+			"resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz",
+			"integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+			"requires": {
+				"has-symbols": "^1.0.2"
+			}
+		},
+		"is-typed-array": {
+			"version": "1.1.13",
+			"resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz",
+			"integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+			"requires": {
+				"which-typed-array": "^1.1.14"
+			}
+		},
 		"is-typedarray": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -8308,6 +8632,14 @@
 			"integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==",
 			"dev": true
 		},
+		"is-weakref": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
+			"integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+			"requires": {
+				"call-bind": "^1.0.2"
+			}
+		},
 		"is-windows": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz",
@@ -9864,14 +10196,12 @@
 		"object-inspect": {
 			"version": "1.13.1",
 			"resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
-			"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
-			"dev": true
+			"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
 		},
 		"object-keys": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
-			"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-			"dev": true
+			"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
 		},
 		"object-visit": {
 			"version": "1.0.1",
@@ -9885,7 +10215,6 @@
 			"version": "4.1.5",
 			"resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz",
 			"integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
-			"dev": true,
 			"requires": {
 				"call-bind": "^1.0.5",
 				"define-properties": "^1.2.1",
@@ -10456,6 +10785,11 @@
 			"resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
 			"integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="
 		},
+		"possible-typed-array-names": {
+			"version": "1.0.0",
+			"resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+			"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q=="
+		},
 		"postcss": {
 			"version": "8.4.38",
 			"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.38.tgz",
@@ -10721,9 +11055,9 @@
 			}
 		},
 		"postcss-prefix-selector": {
-			"version": "1.16.0",
-			"resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz",
-			"integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q=="
+			"version": "1.16.1",
+			"resolved": "https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz",
+			"integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ=="
 		},
 		"postcss-reduce-initial": {
 			"version": "5.1.2",
@@ -11240,6 +11574,17 @@
 				}
 			}
 		},
+		"regexp.prototype.flags": {
+			"version": "1.5.2",
+			"resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+			"integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+			"requires": {
+				"call-bind": "^1.0.6",
+				"define-properties": "^1.2.1",
+				"es-errors": "^1.3.0",
+				"set-function-name": "^2.0.1"
+			}
+		},
 		"regexpp": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-2.0.1.tgz",
@@ -11566,6 +11911,24 @@
 				"tslib": "^1.9.0"
 			}
 		},
+		"safe-array-concat": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+			"integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"get-intrinsic": "^1.2.4",
+				"has-symbols": "^1.0.3",
+				"isarray": "^2.0.5"
+			},
+			"dependencies": {
+				"isarray": {
+					"version": "2.0.5",
+					"resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
+					"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
+				}
+			}
+		},
 		"safe-buffer": {
 			"version": "5.1.2",
 			"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -11579,6 +11942,16 @@
 				"ret": "~0.1.10"
 			}
 		},
+		"safe-regex-test": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+			"integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+			"requires": {
+				"call-bind": "^1.0.6",
+				"es-errors": "^1.3.0",
+				"is-regex": "^1.1.4"
+			}
+		},
 		"safer-buffer": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -11933,7 +12306,6 @@
 			"version": "1.2.2",
 			"resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
 			"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
-			"dev": true,
 			"requires": {
 				"define-data-property": "^1.1.4",
 				"es-errors": "^1.3.0",
@@ -11943,6 +12315,17 @@
 				"has-property-descriptors": "^1.0.2"
 			}
 		},
+		"set-function-name": {
+			"version": "2.0.2",
+			"resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz",
+			"integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+			"requires": {
+				"define-data-property": "^1.1.4",
+				"es-errors": "^1.3.0",
+				"functions-have-names": "^1.2.3",
+				"has-property-descriptors": "^1.0.2"
+			}
+		},
 		"set-value": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz",
@@ -12018,7 +12401,6 @@
 			"version": "1.0.6",
 			"resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz",
 			"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
-			"dev": true,
 			"requires": {
 				"call-bind": "^1.0.7",
 				"es-errors": "^1.3.0",
@@ -12507,6 +12889,37 @@
 				}
 			}
 		},
+		"string.prototype.trim": {
+			"version": "1.2.9",
+			"resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+			"integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"define-properties": "^1.2.1",
+				"es-abstract": "^1.23.0",
+				"es-object-atoms": "^1.0.0"
+			}
+		},
+		"string.prototype.trimend": {
+			"version": "1.0.8",
+			"resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+			"integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"define-properties": "^1.2.1",
+				"es-object-atoms": "^1.0.0"
+			}
+		},
+		"string.prototype.trimstart": {
+			"version": "1.0.8",
+			"resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+			"integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"define-properties": "^1.2.1",
+				"es-object-atoms": "^1.0.0"
+			}
+		},
 		"string_decoder": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -12515,6 +12928,14 @@
 				"safe-buffer": "~5.1.0"
 			}
 		},
+		"strip-ansi": {
+			"version": "3.0.1",
+			"resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
+			"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+			"requires": {
+				"ansi-regex": "^2.0.0"
+			}
+		},
 		"strip-bom": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-2.0.0.tgz",
@@ -12592,35 +13013,11 @@
 				"traverse": "^0.6.6"
 			},
 			"dependencies": {
-				"ansi-styles": {
-					"version": "2.2.1",
-					"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
-					"integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA=="
-				},
 				"bluebird": {
 					"version": "3.7.2",
 					"resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz",
 					"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
 				},
-				"chalk": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
-					"integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
-					"requires": {
-						"ansi-styles": "^2.2.1",
-						"escape-string-regexp": "^1.0.2",
-						"has-ansi": "^2.0.0",
-						"strip-ansi": "^3.0.0",
-						"supports-color": "^2.0.0"
-					},
-					"dependencies": {
-						"supports-color": {
-							"version": "2.0.0",
-							"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
-							"integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g=="
-						}
-					}
-				},
 				"postcss": {
 					"version": "5.2.18",
 					"resolved": "https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz",
@@ -12636,19 +13033,6 @@
 					"version": "0.5.7",
 					"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz",
 					"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
-				},
-				"strip-ansi": {
-					"version": "3.0.1",
-					"resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
-					"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
-					"requires": {
-						"ansi-regex": "^2.0.0"
-					}
-				},
-				"traverse": {
-					"version": "0.6.8",
-					"resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.8.tgz",
-					"integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA=="
 				}
 			}
 		},
@@ -13069,6 +13453,16 @@
 			"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
 			"dev": true
 		},
+		"traverse": {
+			"version": "0.6.9",
+			"resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.9.tgz",
+			"integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==",
+			"requires": {
+				"gopd": "^1.0.1",
+				"typedarray.prototype.slice": "^1.0.3",
+				"which-typed-array": "^1.1.15"
+			}
+		},
 		"trim-newlines": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmmirror.com/trim-newlines/-/trim-newlines-1.0.0.tgz",
@@ -13136,12 +13530,84 @@
 				"mime-types": "~2.1.24"
 			}
 		},
+		"typed-array-buffer": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+			"integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"es-errors": "^1.3.0",
+				"is-typed-array": "^1.1.13"
+			}
+		},
+		"typed-array-byte-length": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+			"integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"for-each": "^0.3.3",
+				"gopd": "^1.0.1",
+				"has-proto": "^1.0.3",
+				"is-typed-array": "^1.1.13"
+			}
+		},
+		"typed-array-byte-offset": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+			"integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+			"requires": {
+				"available-typed-arrays": "^1.0.7",
+				"call-bind": "^1.0.7",
+				"for-each": "^0.3.3",
+				"gopd": "^1.0.1",
+				"has-proto": "^1.0.3",
+				"is-typed-array": "^1.1.13"
+			}
+		},
+		"typed-array-length": {
+			"version": "1.0.6",
+			"resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.6.tgz",
+			"integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"for-each": "^0.3.3",
+				"gopd": "^1.0.1",
+				"has-proto": "^1.0.3",
+				"is-typed-array": "^1.1.13",
+				"possible-typed-array-names": "^1.0.0"
+			}
+		},
 		"typedarray": {
 			"version": "0.0.6",
 			"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
 			"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
 			"dev": true
 		},
+		"typedarray.prototype.slice": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmmirror.com/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz",
+			"integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==",
+			"requires": {
+				"call-bind": "^1.0.7",
+				"define-properties": "^1.2.1",
+				"es-abstract": "^1.23.0",
+				"es-errors": "^1.3.0",
+				"typed-array-buffer": "^1.0.2",
+				"typed-array-byte-offset": "^1.0.2"
+			}
+		},
+		"unbox-primitive": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+			"integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+			"requires": {
+				"call-bind": "^1.0.2",
+				"has-bigints": "^1.0.2",
+				"has-symbols": "^1.0.3",
+				"which-boxed-primitive": "^1.0.2"
+			}
+		},
 		"unicode-canonical-property-names-ecmascript": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
@@ -14173,12 +14639,36 @@
 				"isexe": "^2.0.0"
 			}
 		},
+		"which-boxed-primitive": {
+			"version": "1.0.2",
+			"resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+			"integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+			"requires": {
+				"is-bigint": "^1.0.1",
+				"is-boolean-object": "^1.1.0",
+				"is-number-object": "^1.0.4",
+				"is-string": "^1.0.5",
+				"is-symbol": "^1.0.3"
+			}
+		},
 		"which-module": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
 			"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
 			"dev": true
 		},
+		"which-typed-array": {
+			"version": "1.1.15",
+			"resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz",
+			"integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+			"requires": {
+				"available-typed-arrays": "^1.0.7",
+				"call-bind": "^1.0.7",
+				"for-each": "^0.3.3",
+				"gopd": "^1.0.1",
+				"has-tostringtag": "^1.0.2"
+			}
+		},
 		"wide-align": {
 			"version": "1.1.5",
 			"resolved": "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.5.tgz",

+ 8 - 0
virgo.wzfrontend/console/src/assets/icons/index.js

@@ -0,0 +1,8 @@
+import Vue from 'vue'
+import svgIcon from "@/components/common/svgIcon.vue"
+Vue.component('svgIcon', svgIcon)
+
+
+const req = require.context('./svg', false, /\.svg$/);
+const requireAll = requireContext => requireContext.keys().map(requireContext);
+requireAll(req);

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/dir.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/div.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/doc.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/docx.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/java.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/jpeg.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/jpg.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/mp3.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/mp4.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/nofile.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/pdf.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/png.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/ppt.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/pptx.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/rar.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/txt.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/xls.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/xlsx.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/zhuangshi.svg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/console/src/assets/icons/svg/zip.svg


+ 51 - 0
virgo.wzfrontend/console/src/components/common/projectItemTree.vue

@@ -0,0 +1,51 @@
+<template>
+	<div class="project-item-tree">
+		<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.projectItemTargetList" :props="defaultProps" :expand-on-click-node="false"
+						@node-click="nodeClick">
+					</el-tree>
+				</div>
+			</el-collapse-item>
+		</el-collapse>
+	</div>
+</template>
+
+<script>
+	import {
+		getProjectDetailById,
+	} from '@/httpApi/space'
+	export default {
+		data() {
+			return {
+				treeData: [],
+				defaultProps: {
+					children: 'children',
+					label: 'name'
+				},
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getProjectDetailById(this.$store.getters.project.id).then(res => {
+					if (res.state) {
+						this.treeData = res.data.projectItemList;
+					}
+				})
+			},
+			nodeClick(item) {
+				this.$emit('treeclick', item.id);
+			}
+		}
+	}
+</script>
+
+<style></style>

+ 78 - 0
virgo.wzfrontend/console/src/components/common/svgIcon.vue

@@ -0,0 +1,78 @@
+<template>
+	<!-- aria-hidden: 让这个元素对浏览器隐藏 -->
+	<svg :class="svgClass" :style="{ color, width, height }" aria-hidden="true" v-bind="$attrs">
+		<use :xlink:href="iconName" />
+	</svg>
+</template>
+<script>
+	export default {
+		name: "svgIcon",
+		props: {
+			name: {
+				type: String,
+				required: true,
+			},
+			className: String,
+			color: String,
+			width: String,
+			height: String,
+		},
+		data() {
+			return {
+				svgName: ''
+			}
+		},
+		created() {
+			let box = [
+				"dir",
+				"div",
+				"doc",
+				"docx",
+				"java",
+				"jpeg",
+				"jpg",
+				"mp3",
+				"mp4",
+				"nofile",
+				"pdf",
+				"png",
+				"ppt",
+				"pptx",
+				"rar",
+				"txt",
+				"xls",
+				"xlsx",
+				"zhuangshi",
+				"zip"
+			];
+			if (box.filter(node => node === this.name).length > 0) {
+				this.svgName = this.name;
+			} else {
+				this.svgName = 'nofile';
+			}
+			console.log(this.svgName);
+		},
+		computed: {
+			iconName() {
+				return `#icon-${this.svgName}`;
+			},
+			svgClass() {
+				let className = this.className ? `icon-${this.className}` : "";
+				return ["svg-icon", className];
+			},
+		},
+		data() {
+			return {};
+		},
+	};
+</script>
+
+<style scoped>
+	.svg-icon {
+		width: 1.3em;
+		height: 1.3em;
+		vertical-align: -0.15em;
+		fill: currentColor;
+		overflow: hidden;
+	}
+</style>

+ 28 - 0
virgo.wzfrontend/console/src/components/work/contract/tag/detail.vue

@@ -0,0 +1,28 @@
+<template>
+	<div class="hui-detail">
+		<div class="hui-detail-title">基础信息</div>
+		<div class="hui-detail-content">
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">标签名称</div>
+				<div class="hui-detail-value">{{detail.name}}</div>
+			</div>
+			<div class="hui-detail-item">
+				<div class="hui-detail-label">标签描述</div>
+				<div class="hui-detail-value"> {{detail.remark}}</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		props: ['detail'],
+		data() {
+			return {}
+		},
+		created() {}
+	}
+</script>
+<style lang="scss">
+
+</style>

+ 73 - 0
virgo.wzfrontend/console/src/components/work/contract/tag/edit.vue

@@ -0,0 +1,73 @@
+<template>
+	<div class="hui-flex hui-dialog">
+		<div class="hui-flex-box hui-dialog-content">
+			<el-form ref="tagFrom" :model="tagFrom" label-position="top">
+				<el-form-item label="标签名称">
+					<el-input type="text" v-model="tagFrom.name" placeholder="请输入标签名称"></el-input>
+				</el-form-item>
+				<el-form-item label="标签描述" class="hui-textarea">
+					<el-input type="textarea" v-model="tagFrom.remark" placeholder="请输入标签描述" resize="none">
+					</el-input>
+				</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 {
+		insertTag,
+		updateTag
+	} from '@/httpApi/contract'
+	export default {
+		props: ['isUpdate', 'part', 'projectId'],
+		data() {
+			return {
+				tagFrom: {
+					name: '',
+					remark: '',
+					organizationId: '',
+					projectId: '',
+					parentId: -1,
+				},
+			}
+		},
+		created() {
+			if (this.isUpdate) {
+				this.tagFrom = this.part;
+			} else {
+				this.tagFrom['organizationId'] = this.$store.getters.organization.id;
+				this.tagFrom['parentId'] = this.part.id || -1;
+				this.tagFrom['projectId'] = this.$store.getters.project.id;
+			}
+		},
+		methods: {
+			submit() {
+				this.$message.success('操作成功');
+				this.$emit('callback', 'init');
+				return
+				if (this.isUpdate) {
+					updateTag(this.tagFrom).then(this.successFunc)
+				} else {
+					insertTag(this.tagFrom).then(this.successFunc)
+				}
+			},
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.$emit('callback', 'init');
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.Tag-form {
+		padding: 10px;
+	}
+</style>

+ 174 - 0
virgo.wzfrontend/console/src/components/work/crm/customer/followUpRecordDetail.vue

@@ -0,0 +1,174 @@
+<template>
+	<div class="electronic-patrol-detail">
+		<div class="clock-list">
+			<div class="clock-item" v-for="(item,index) in list" :key="item.id">
+				<div class="clock-date">记录{{index + 1}}</div>
+				<div class="clock-content">
+					<div class="name">{{item.userName}}</div>
+					<div class="content">
+						<div class="remark">{{item.content}}</div>
+						<div class="remark-file" v-if="item.fileList.length > 0">
+							<upload :list="item.fileList"></upload>
+						</div>
+					</div>
+					<div class="content" v-if="item.remark">
+						<div class="remark">备注:{{item.remark}}</div>
+					</div>
+					<div class="date">{{item.date}}</div>
+				</div>
+				<i class="iconfont huifont-shanchu color-red" @click="deleteRecord(item)"></i>
+			</div>
+			<div class="clock-item insert-item">
+				<div class="clock-date insert" @click="visible = true">+ 新增</div>
+			</div>
+		</div>
+		<el-dialog title="新增" :visible.sync="visible" width="900px" :append-to-body="true">
+			<follow-up-record-edit v-if="visible" @callback="callback" :detailId="detailId"></follow-up-record-edit>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import followUpRecordEdit from '@/components/work/crm/customer/followUpRecordEdit'
+	import upload from '@/components/common/upload'
+	import {
+		getFollowUpRecordList,
+		deleteFollowUpRecordById
+	} from '@/httpApi/crm'
+	export default {
+		props: ['detailId'],
+		data() {
+			return {
+				visible: false,
+				list: []
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getFollowUpRecordList({
+					clientId: this.detailId
+				}).then(res => {
+					if (res.state) {
+						this.list = res.data.dataList.map(node => {
+							node['fileList'] = node.attachment ? JSON.parse(node.attachment) : [];
+							return node;
+						});
+					}
+				})
+			},
+			deleteRecord(val) {
+				this.$confirm('确定要删除该跟进记录?', () => {
+					deleteFollowUpRecordById(val.id).then(res => {
+						if (res.state) {
+							this.init();
+							this.$message.success('操作成功');
+						}
+					})
+				});
+			},
+			callback(type) {
+				if (type === 'init') this.init();
+				this.visible = false;
+			}
+		},
+		components: {
+			upload,
+			followUpRecordEdit
+		},
+	}
+</script>
+
+<style lang="scss">
+	.electronic-patrol-detail {
+		width: 100%;
+		padding: 15px;
+		height: 100%;
+		overflow-y: auto;
+
+		.clock-list {
+			.clock-item {
+				display: flex;
+				padding: 8px 0 17px 0;
+				position: relative;
+			}
+
+			.huifont-shanchu {
+				position: absolute;
+				top: 10px;
+				right: 0;
+				font-size: 20px;
+				cursor: pointer;
+			}
+
+			.clock-item::before {
+				position: absolute;
+				content: '';
+				width: 1px;
+				top: 29px;
+				bottom: -8px;
+				left: 31px;
+				border-left: 1px dashed #374156;
+			}
+
+			.insert-item::before {
+				display: none;
+			}
+
+		}
+
+		.clock-now {
+			width: 62px;
+			text-align: center;
+			font-size: 15px;
+			font-weight: 600;
+		}
+
+		.clock-date {
+			width: 62px;
+			height: 21px;
+			line-height: 21px;
+			background: rgba(255, 255, 255, 0.05);
+			border-radius: 11px;
+			margin-right: 12px;
+			text-align: center;
+			font-size: 12px;
+		}
+
+		.clock-date.insert {
+			color: $--color-primary;
+			border: 1px solid $--color-primary;
+			cursor: pointer;
+			line-height: 19px;
+		}
+
+		.clock-content {
+			flex: 1;
+			width: 0;
+
+			.name {
+				font-size: 14px;
+			}
+
+			.content {
+				background: rgba(50, 56, 68, 0.2);
+				border-radius: 8px;
+				padding: 10px;
+				font-size: 12px;
+				margin-top: 10px;
+			}
+
+			.remark-file {
+				margin-top: 10px;
+			}
+
+			.date {
+				margin-top: 5px;
+				font-size: 12px;
+				margin-left: 5px;
+			}
+		}
+	}
+</style>

+ 78 - 0
virgo.wzfrontend/console/src/components/work/crm/customer/followUpRecordEdit.vue

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

+ 6 - 1
virgo.wzfrontend/console/src/components/work/space/house/detail.vue

@@ -11,7 +11,7 @@
 				<div class="hui-detail-value">{{detail.projectItemTargetName}}</div>
 			</div>
 			<div class="hui-detail-item">
-				<div class="hui-detail-label">房源名称</div>
+				<div class="hui-detail-label">推广名称</div>
 				<div class="hui-detail-value">{{detail.name}}</div>
 			</div>
 			<div class="hui-detail-item">
@@ -73,6 +73,11 @@
 			<tag ref="tag" type="look" :tagType="3" :tagActive="detail.tagIds ? detail.tagIds.split(',') : []">
 			</tag>
 		</div>
+		<div class="hui-detail-title">列表展示照片</div>
+		<div class="hui-detail-content hui-detail-image">
+			<upload :list="detail.showPicture ? JSON.parse(detail.showPicture) : []" type="preview">
+			</upload>
+		</div>
 		<div class="hui-detail-title">房源图片</div>
 		<div class="hui-detail-content hui-detail-image">
 			<upload :list="detail.picture ? JSON.parse(detail.picture) : []" type="preview">

+ 9 - 3
virgo.wzfrontend/console/src/components/work/space/house/edit.vue

@@ -3,8 +3,8 @@
 		<div class="hui-flex-box hui-dialog-content">
 			<project-item ref="projectItem" :form="houseForm"></project-item>
 			<el-form ref="houseForm" label-position="top" :model="houseForm">
-				<el-form-item label="房源名称" prop="name" :rules="[{required: true, message: '请输入房源名称'}]">
-					<el-input type="text" v-model="houseForm.name" placeholder="请输入房源名称"></el-input>
+				<el-form-item label="推广名称" prop="name" :rules="[{required: true, message: '请输入推广名称'}]">
+					<el-input type="text" v-model="houseForm.name" placeholder="请输入推广名称"></el-input>
 				</el-form-item>
 				<el-form-item label="房间号" prop="roomNumber" :rules="[{required: true, message: '请输入房间号'}]">
 					<el-input type="text" v-model="houseForm.roomNumber" placeholder="请输入房间号"></el-input>
@@ -58,6 +58,9 @@
 					<el-input type="textarea" v-model="houseForm.introduce" placeholder="请输入房源简介" resize="none">
 					</el-input>
 				</el-form-item>
+				<el-form-item label="列表展示照片" class="hui-textarea">
+					<upload ref="showPicture" :list="showPicture" type="insert" :maxLen="1"></upload>
+				</el-form-item>
 				<el-form-item label="房源配图" class="hui-textarea">
 					<upload ref="image" :list="responsibility" type="insert"></upload>
 				</el-form-item>
@@ -119,7 +122,8 @@
 				},
 				responsibility: [],
 				videoList: [],
-				customList: []
+				customList: [],
+				showPicture: []
 			}
 		},
 		created() {
@@ -130,6 +134,7 @@
 						this.houseForm = res.data;
 						if (this.houseForm.picture) this.responsibility = JSON.parse(this.houseForm.picture);
 						if (this.houseForm.video) this.videoList = JSON.parse(this.houseForm.video);
+						if (this.houseForm.showPicture) this.showPicture = JSON.parse(this.houseForm.showPicture);
 						if (this.houseForm.data) this.customList = JSON.parse(this.houseForm.data);
 					}
 				})
@@ -143,6 +148,7 @@
 							let postData = JSON.parse(JSON.stringify(this.houseForm));
 							postData['picture'] = JSON.stringify(this.$refs.image.fileList);
 							postData['video'] = JSON.stringify(this.$refs.video.fileList);
+							postData['showPicture'] = JSON.stringify(this.$refs.showPicture.fileList);
 							postData['data'] = JSON.stringify(this.$refs.customData.listData);
 							postData['tagIds'] = this.$refs.tag.tagIds();
 							postData = Object.assign(postData, projectData);

+ 174 - 0
virgo.wzfrontend/console/src/components/work/space/house/lookRecordDetail.vue

@@ -0,0 +1,174 @@
+<template>
+	<div class="electronic-patrol-detail">
+		<div class="clock-list">
+			<div class="clock-item" v-for="(item,index) in list" :key="item.id">
+				<div class="clock-date">记录{{index + 1}}</div>
+				<div class="clock-content">
+					<div class="name">{{item.userName}}</div>
+					<div class="content">
+						<div class="remark">{{item.content}}</div>
+						<div class="remark-file" v-if="item.fileList.length > 0">
+							<upload :list="item.fileList"></upload>
+						</div>
+					</div>
+					<div class="content" v-if="item.remark">
+						<div class="remark">备注:{{item.remark}}</div>
+					</div>
+					<div class="date">{{item.date}}</div>
+				</div>
+				<i class="iconfont huifont-shanchu color-red" @click="deleteRecord(item)"></i>
+			</div>
+			<div class="clock-item insert-item">
+				<div class="clock-date insert" @click="visible = true">+ 新增</div>
+			</div>
+		</div>
+		<el-dialog title="新增" :visible.sync="visible" width="900px" :append-to-body="true">
+			<look-record-edit v-if="visible" @callback="callback" :detailId="detailId"></look-record-edit>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+	import lookRecordEdit from '@/components/work/space/house/lookRecordEdit'
+	import upload from '@/components/common/upload'
+	import {
+		getLookRecordList,
+		deleteLookRecordById
+	} from '@/httpApi/space'
+	export default {
+		props: ['detailId'],
+		data() {
+			return {
+				visible: false,
+				list: []
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getLookRecordList({
+					projectItemTargetRoomId: this.detailId
+				}).then(res => {
+					if (res.state) {
+						this.list = res.data.dataList.map(node => {
+							node['fileList'] = node.attachment ? JSON.parse(node.attachment) : [];
+							return node;
+						});
+					}
+				})
+			},
+			deleteRecord(val) {
+				this.$confirm('确定要删除该带看记录?', () => {
+					deleteLookRecordById(val.id).then(res => {
+						if (res.state) {
+							this.init();
+							this.$message.success('操作成功');
+						}
+					})
+				});
+			},
+			callback(type) {
+				if (type === 'init') this.init();
+				this.visible = false;
+			}
+		},
+		components: {
+			upload,
+			lookRecordEdit
+		},
+	}
+</script>
+
+<style lang="scss">
+	.electronic-patrol-detail {
+		width: 100%;
+		padding: 15px;
+		height: 100%;
+		overflow-y: auto;
+
+		.clock-list {
+			.clock-item {
+				display: flex;
+				padding: 8px 0 17px 0;
+				position: relative;
+			}
+
+			.huifont-shanchu {
+				position: absolute;
+				top: 10px;
+				right: 0;
+				font-size: 20px;
+				cursor: pointer;
+			}
+
+			.clock-item::before {
+				position: absolute;
+				content: '';
+				width: 1px;
+				top: 29px;
+				bottom: -8px;
+				left: 31px;
+				border-left: 1px dashed #374156;
+			}
+
+			.insert-item::before {
+				display: none;
+			}
+
+		}
+
+		.clock-now {
+			width: 62px;
+			text-align: center;
+			font-size: 15px;
+			font-weight: 600;
+		}
+
+		.clock-date {
+			width: 62px;
+			height: 21px;
+			line-height: 21px;
+			background: rgba(255, 255, 255, 0.05);
+			border-radius: 11px;
+			margin-right: 12px;
+			text-align: center;
+			font-size: 12px;
+		}
+
+		.clock-date.insert {
+			color: $--color-primary;
+			border: 1px solid $--color-primary;
+			cursor: pointer;
+			line-height: 19px;
+		}
+
+		.clock-content {
+			flex: 1;
+			width: 0;
+
+			.name {
+				font-size: 14px;
+			}
+
+			.content {
+				background: rgba(50, 56, 68, 0.2);
+				border-radius: 8px;
+				padding: 10px;
+				font-size: 12px;
+				margin-top: 10px;
+			}
+
+			.remark-file {
+				margin-top: 10px;
+			}
+
+			.date {
+				margin-top: 5px;
+				font-size: 12px;
+				margin-left: 5px;
+			}
+		}
+	}
+</style>

+ 79 - 0
virgo.wzfrontend/console/src/components/work/space/house/lookRecordEdit.vue

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

+ 47 - 0
virgo.wzfrontend/console/src/httpApi/contract.js

@@ -0,0 +1,47 @@
+import request from '@/axios'
+/* 
+ * 获取组织项目合同标签列表
+ * 
+ * 
+ */
+export function getTagList(organizationId, projectId) {
+	return request({
+		url: `/manager/role/${organizationId}/${projectId}`,
+		method: 'get'
+	})
+}
+/* 
+ * 新增部门
+ * 
+ * 
+ */
+export function insertTag(data) {
+	return request({
+		url: `/manager/role`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑部门
+ * 
+ * 
+ */
+export function updateTag(data) {
+	return request({
+		url: `/manager/role`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 删除部门
+ * 
+ * 
+ */
+export function deleteTag(id) {
+	return request({
+		url: `/manager/role/${id}`,
+		method: 'delete'
+	})
+}

+ 35 - 0
virgo.wzfrontend/console/src/httpApi/crm.js

@@ -124,4 +124,39 @@ export function deleteAgentById(id) {
 		url: `/manager/agent/delete/${id}`,
 		method: 'delete'
 	})
+}
+/* 
+ * 新增跟进记录
+ * 
+ * 
+ */
+export function insertFollowUpRecord(data) {
+	return request({
+		url: `/api/followUpRecord`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 获取跟进记录
+ * 
+ * 
+ */
+export function getFollowUpRecordList(data) {
+	return request({
+		url: `/api/followUpRecord/1/100`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 删除跟进记录
+ * 
+ * 
+ */
+export function deleteFollowUpRecordById(id) {
+	return request({
+		url: `/api/followUpRecord/delete/${id}`,
+		method: 'delete'
+	})
 }

+ 35 - 0
virgo.wzfrontend/console/src/httpApi/space.js

@@ -274,4 +274,39 @@ export function getHouseTree(id) {
 		url: `/api/projectItemTargetRoom/level/${id}`,
 		method: 'get'
 	})
+}
+/* 
+ * 新增房源带看记录
+ * 
+ * 
+ */
+export function insertLookRecord(data) {
+	return request({
+		url: `/api/lookRecord`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 获取房源带看记录
+ * 
+ * 
+ */
+export function getLookRecordList(data) {
+	return request({
+		url: `/api/lookRecord/1/100`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 删除房源带看记录
+ * 
+ * 
+ */
+export function deleteLookRecordById(id) {
+	return request({
+		url: `/api/lookRecord/delete/${id}`,
+		method: 'delete'
+	})
 }

+ 2 - 1
virgo.wzfrontend/console/src/main.js

@@ -5,6 +5,7 @@ import store from './store'
 import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import dayjs from 'dayjs';
+import './assets/icons/index.js'
 
 Vue.prototype.$dayjs = dayjs;
 Vue.use(ElementUI);
@@ -23,7 +24,7 @@ import field from './config/field.js'
 Vue.prototype.$field = field;
 
 import message from './uitls/message.js';
-Vue.prototype.$msg = message;
+Vue.prototype.$msg = message;
 
 Vue.prototype.$confirm = (title, callback) => {
 	return ElementUI.MessageBox.confirm(title, '有极提示', {

+ 23 - 0
virgo.wzfrontend/console/src/router/modules/contract.js

@@ -0,0 +1,23 @@
+const contract = [{
+	path: 'contract/template',
+	component: () => import('@/views/work/contract/template'),
+	name: '合同模板',
+	meta: {
+		title: '合同模板'
+	}
+}, {
+	path: 'contract/tag',
+	component: () => import('@/views/work/contract/tag'),
+	name: '合同标签',
+	meta: {
+		title: '合同标签'
+	}
+}, {
+	path: 'contract/list',
+	component: () => import('@/views/work/contract/list'),
+	name: '合同列表',
+	meta: {
+		title: '合同列表'
+	}
+}]
+export default contract;

+ 18 - 0
virgo.wzfrontend/console/src/views/work/contract/list.vue

@@ -0,0 +1,18 @@
+<template>
+	<div class="contract-list">
+		<empty description="合同列表"></empty>
+	</div>
+</template>
+
+<script>
+</script>
+
+<style lang="scss">
+	.contract-list {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+</style>

+ 119 - 0
virgo.wzfrontend/console/src/views/work/contract/tag.vue

@@ -0,0 +1,119 @@
+<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="insertTag({})">新建标签</el-button>
+			</div>
+			<div class="hui-flex-box">
+				<el-table :data="treeData" row-key="id" border height="100%">
+					<el-table-column label="标签名称" prop="name"></el-table-column>
+					<el-table-column label="操作" width="240">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation" @click="lookFlow(scope.row)">
+									详情
+								</span>
+								<span class="table-operation" @click="insertTag(scope.row)">
+									添加子标签
+								</span>
+								<span class="table-operation" @click="updateTag(scope.row)">
+									编辑
+								</span>
+								<span class="table-operation" @click="deleteTag(scope.row)">
+									删除
+								</span>
+							</div>
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<empty description="暂无数据"></empty>
+					</template>
+				</el-table>
+			</div>
+		</div>
+		<el-dialog :title="isUpdate?'编辑':'新增'" :visible.sync="visible" width="900px" :append-to-body="true">
+			<edit v-if="visible" @callback="callback" :isUpdate="isUpdate" :part="part">
+			</edit>
+		</el-dialog>
+		<el-drawer title="标签详情" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<detail v-if="drawer" :detail="part"></detail>
+		</el-drawer>
+	</div>
+</template>
+
+<script>
+	import {
+		getTagList,
+		deleteTag
+	} from '@/httpApi/contract'
+	import edit from '@/components/work/contract/tag/edit'
+	import detail from '@/components/work/contract/tag/detail'
+	import avatar from '@/components/common/avatar'
+	export default {
+		data() {
+			return {
+				treeData: [],
+				visible: false,
+				isUpdate: false,
+				part: {},
+				drawer: false
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				return;
+				getTagList(this.$store.getters.organization.id, this.$store.getters.project.id).then(res => {
+					if (res.state) {
+						this.treeData = res.data;
+					}
+				})
+			},
+			currentChange(currPage) {
+				this.currPage = currPage;
+				this.init();
+			},
+			insertTag(val) {
+				this.part = JSON.parse(JSON.stringify(val));
+				this.visible = true;
+				this.isUpdate = false;
+			},
+			lookFlow(val) {
+				this.part = JSON.parse(JSON.stringify(val));
+				this.drawer = true;
+			},
+			updateTag(val) {
+				this.part = JSON.parse(JSON.stringify(val));
+				this.isUpdate = true;
+				this.visible = true;
+			},
+			deleteTag(val) {
+				this.$confirm('确定要删除该标签?', () => {
+					deleteTag(val.id).then(res => {
+						if (res.state) {
+							this.$message.success('操作成功');
+							this.init();
+						}
+					})
+				});
+			},
+			callback(type) {
+				this.visible = false;
+				if (type === 'init') this.init();
+			}
+		},
+		components: {
+			edit,
+			avatar,
+			detail
+		},
+	}
+</script>
+
+<style lang="scss">
+</style>

+ 18 - 0
virgo.wzfrontend/console/src/views/work/contract/template.vue

@@ -0,0 +1,18 @@
+<template>
+	<div class="contract-template">
+		<empty description="合同模板"></empty>
+	</div>
+</template>
+
+<script>
+</script>
+
+<style lang="scss">
+	.contract-template {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+</style>

+ 21 - 6
virgo.wzfrontend/console/src/views/work/crm/customer.vue

@@ -24,6 +24,14 @@
 							</div>
 						</template>
 					</el-table-column>
+					<el-table-column label="跟进记录" width="100">
+						<template slot-scope="scope">
+							<div class="hui-table-operation">
+								<span class="table-operation"
+									@click="lookCustomer(scope.row,'followUpRecord')">查看</span>
+							</div>
+						</template>
+					</el-table-column>
 					<el-table-column label="邀请项目" width="150">
 						<template slot-scope="scope">
 							<div class="hui-table-operation" v-if="!scope.row.status">
@@ -57,7 +65,7 @@
 					<el-table-column label="操作" width="200">
 						<template slot-scope="scope">
 							<div class="hui-table-operation">
-								<span class="table-operation" @click="lookCustomer(scope.row)">详情</span>
+								<span class="table-operation" @click="lookCustomer(scope.row,'customer')">详情</span>
 								<span class="table-operation" @click="updateCustomer(scope.row)">编辑</span>
 								<span class="table-operation" @click="deleteCustomer(scope.row)">删除</span>
 							</div>
@@ -77,8 +85,10 @@
 		<el-dialog :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 :title="type === 'customer'?'客户详情':'跟进列表'" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<detail v-if="drawer && type === 'customer'" :detailId="detailId"></detail>
+			<follow-up-record-detail v-if="drawer && type === 'followUpRecord'" :detailId="detailId">
+			</follow-up-record-detail>
 		</el-drawer>
 	</div>
 </template>
@@ -94,6 +104,8 @@
 	} from '@/httpApi/organization'
 	import edit from '@/components/work/crm/customer/edit'
 	import detail from '@/components/work/crm/customer/detail'
+	import followUpRecordDetail from '@/components/work/crm/customer/followUpRecordDetail'
+
 	export default {
 		data() {
 			return {
@@ -104,7 +116,8 @@
 				visible: false,
 				detailId: '',
 				isUpdate: false,
-				drawer: false
+				drawer: false,
+				type: 'customer'
 			}
 		},
 		created() {
@@ -137,8 +150,9 @@
 				this.isUpdate = true;
 				this.visible = true;
 			},
-			lookCustomer(val) {
+			lookCustomer(val, type) {
 				this.detailId = val.id;
+				this.type = type;
 				this.drawer = true;
 			},
 			putHighSeas(val, item) {
@@ -198,7 +212,8 @@
 		},
 		components: {
 			edit,
-			detail
+			detail,
+			followUpRecordDetail
 		},
 	}
 </script>

+ 116 - 56
virgo.wzfrontend/console/src/views/work/space/housing.vue

@@ -1,60 +1,94 @@
 <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="insertHouse">新增房源</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="roomNumber"></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="房源面积(m²)" prop="area"></el-table-column>
-					<el-table-column label="招商状态">
-						<template slot-scope="scope">
-							<div v-if="scope.row.investmentState === 0" class="hui-state">
-								<span class="hui-state-bage hui-state-info"></span>
-								<span class="hui-state-label">待招商</span>
-							</div>
-							<div v-else class="hui-state">
-								<span class="hui-state-bage hui-state-primary"></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="lookHouse(scope.row)">详情</span>
-								<span class="table-operation" @click="updateHouse(scope.row)">编辑</span>
-								<span class="table-operation" @click="deleteHouse(scope.row)">删除</span>
-							</div>
-						</template>
-					</el-table-column>
-					<template slot="empty">
-						<empty description="暂无数据"></empty>
-					</template>
-				</el-table>
+	<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">
+					<project-item-tree @treeclick="treeclick"></project-item-tree>
+				</div>
 			</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 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="insertHouse">新增房源</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="roomNumber"></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="房源面积(m²)" prop="area"></el-table-column>
+								<el-table-column label="招商状态">
+									<template slot-scope="scope">
+										<div v-if="scope.row.investmentState === 0" class="hui-state">
+											<span class="hui-state-bage hui-state-info"></span>
+											<span class="hui-state-label">待招商</span>
+										</div>
+										<div v-else class="hui-state">
+											<span class="hui-state-bage hui-state-primary"></span>
+											<span class="hui-state-label">已招商</span>
+										</div>
+									</template>
+								</el-table-column>
+								<el-table-column label="公海房源" width="100">
+									<template slot-scope="scope">
+										<div class="hui-table-operation">
+											<el-switch v-model="scope.row.openState" :active-value="1"
+												:inactive-value="2" @change="val=>putOpenState(val,scope.row)">
+											</el-switch>
+										</div>
+									</template>
+								</el-table-column>
+								<el-table-column label="带看记录" width="100">
+									<template slot-scope="scope">
+										<div class="hui-table-operation">
+											<span class="table-operation"
+												@click="lookHouse(scope.row,'lookRecordDetail')">查看</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="lookHouse(scope.row,'detail')">详情</span>
+											<span class="table-operation" @click="updateHouse(scope.row)">编辑</span>
+											<span class="table-operation" @click="deleteHouse(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>
+				</div>
 			</div>
 		</div>
 		<el-dialog :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 :title="type === 'detail'?'房源详情':'带看列表'" :visible.sync="drawer" :size="400" :append-to-body="true">
+			<detail v-if="drawer && type === 'detail'" :detailId="detailId"></detail>
+			<look-record-detail v-if="drawer && type === 'lookRecordDetail'" :detailId="detailId"></look-record-detail>
 		</el-drawer>
 	</div>
 </template>
@@ -62,10 +96,13 @@
 <script>
 	import {
 		getHouseListByPage,
-		deleteHouseById
+		deleteHouseById,
+		updateHouse
 	} from '@/httpApi/space'
 	import edit from '@/components/work/space/house/edit'
 	import detail from '@/components/work/space/house/detail'
+	import lookRecordDetail from '@/components/work/space/house/lookRecordDetail'
+	import projectItemTree from '@/components/common/projectItemTree'
 	export default {
 		data() {
 			return {
@@ -76,7 +113,9 @@
 				visible: false,
 				detailId: '',
 				isUpdate: false,
-				drawer: false
+				drawer: false,
+				type: 'detail',
+				projectItemTargetId: ''
 			}
 		},
 		created() {
@@ -84,17 +123,24 @@
 		},
 		methods: {
 			init() {
-				getHouseListByPage({
+				let postData = {
 					currPage: this.currPage,
 					pageSize: this.pageSize,
 					projectId: this.$store.getters.project.id
-				}).then(res => {
+				}
+				if (this.projectItemTargetId) postData['projectItemTargetId'] = this.projectItemTargetId;
+				getHouseListByPage(postData).then(res => {
 					if (res.state) {
 						this.tableData = res.data.dataList;
 						this.totalCount = res.data.totalCount;
 					}
 				})
 			},
+			treeclick(id) {
+				this.projectItemTargetId = id;
+				this.currPage = 1;
+				this.init();
+			},
 			currentChange(currPage) {
 				this.currPage = currPage;
 				this.init();
@@ -108,8 +154,20 @@
 				this.isUpdate = true;
 				this.visible = true;
 			},
-			lookHouse(val) {
+			putOpenState(val, item) {
+				updateHouse({
+					id: item.id,
+					openState: val
+				}).then(res => {
+					if (res.state) {
+						this.init();
+						this.$message.success('操作成功');
+					}
+				})
+			},
+			lookHouse(val, type) {
 				this.detailId = val.id;
+				this.type = type;
 				this.drawer = true;
 			},
 			deleteHouse(val) {
@@ -129,7 +187,9 @@
 		},
 		components: {
 			edit,
-			detail
+			detail,
+			lookRecordDetail,
+			projectItemTree
 		},
 	}
 </script>

+ 11 - 0
virgo.wzfrontend/console/vue.config.js

@@ -20,6 +20,17 @@ module.exports = {
 		config.plugins.delete('prefetch')
 		// 移除 preload 插件
 		config.plugins.delete('preload');
+		config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
+		config.module
+			.rule("icons")
+			.test(/\.svg$/)
+			.include.add(resolve("src/assets/icons"))
+			.end()
+			.use("svg-sprite-loader")
+			.loader("svg-sprite-loader")
+			.options({
+				symbolId: "icon-[name]",
+			})
 		// 生产环境配置
 		if (isProduction) {
 			// 压缩代码

BIN
virgo.wzfrontend/src/main/resources/static/.DS_Store


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/css/index.min.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 13
virgo.wzfrontend/src/main/resources/static/css/swiper-bundle.min.css


BIN
virgo.wzfrontend/src/main/resources/static/fonts/hanyiyaku.ttf


BIN
virgo.wzfrontend/src/main/resources/static/image/.DS_Store


BIN
virgo.wzfrontend/src/main/resources/static/image/android_code.png


BIN
virgo.wzfrontend/src/main/resources/static/image/ios_code.png


BIN
virgo.wzfrontend/src/main/resources/static/image/side1.png


BIN
virgo.wzfrontend/src/main/resources/static/image/side2.png


BIN
virgo.wzfrontend/src/main/resources/static/image/side3.png


BIN
virgo.wzfrontend/src/main/resources/static/image/side4.png


BIN
virgo.wzfrontend/src/main/resources/static/image/solution5.png


BIN
virgo.wzfrontend/src/main/resources/static/image/video-bg.mp4


BIN
virgo.wzfrontend/src/main/resources/static/image/wechat_code.jpg


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 337
virgo.wzfrontend/src/main/resources/static/index.html


+ 0 - 42
virgo.wzfrontend/src/main/resources/static/js/index.min.js

@@ -1,42 +0,0 @@
-let bannerSwiper = new Swiper(".banner-swiper", {
-    direction: "horizontal",
-    speed: 300,
-    loop: !0,
-    autoplay: {delay: 3e4},
-    pagination: {el: ".banner-swiper .swiper-pagination", clickable: !0}
-}), caseSwiper = new Swiper(".case-swiper", {
-    effect: "horizontal", loop: !1, on: {
-        transitionEnd: function (a) {
-            $(".product-tab .active").removeClass("active"), $("#product-tab-item" + a.activeIndex).addClass("active")
-        }
-    }
-});
-$(".product-tab-item").click(function () {
-    caseSwiper.slideTo($(this).attr("name"))
-});
-let solutionIndex = 0, solutionSwiper = new Swiper(".solution-swiper", {
-    effect: "horizontal", loop: !1, on: {
-        transitionEnd: function (a) {
-            solutionIndex = a.activeIndex, solutionItemActive(solutionIndex)
-        }
-    }
-});
-$(".solution-item").click(function () {
-    solutionSwiper.slideTo($(this).attr("name"))
-});
-
-function solutionItemActive(a) {
-    $(".solution-tab .active").removeClass("active"), $(".solution-item").eq(a).addClass("active"), $(".solution-item-bg").css({left: 162 * a + "px"})
-}
-
-$(".nav-link").click(function () {
-    $(".nav-link-active").removeClass("nav-link-active"), $(this).addClass("nav-link-active");
-    let a = $(this).attr("to") ? $($(this).attr("to")).offset().top : 0;
-    return $("html, body").animate({scrollTop: a}, {duration: 500, easing: "swing"}), !1
-}), $(".login").click(function () {
-    window.location.href = "https://www.workark.com/frontend/#/loginRegister/login"
-}), $(".register").click(function () {
-    window.location.href = "https://www.workark.com/frontend/#/loginRegister/register"
-}), $(".jianzao").click(function () {
-    window.location.href = "https://www.youjiyun.net/console/index.html"
-});

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 1
virgo.wzfrontend/src/main/resources/static/js/jquery.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 13
virgo.wzfrontend/src/main/resources/static/js/swiper-bundle.min.js


+ 174 - 188
virgo.wzfrontend/src/main/resources/static/css/common.css

@@ -1,189 +1,175 @@
-/* 禁用iPhone中Safari的字号自动调整 */
-* {
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	outline: none;
-	font-family: LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, Helvetica Neue, Tahoma, PingFang SC, Microsoft Yahei, Arial, Hiragino Sans GB, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
-	font-weight: 400;
-	-webkit-font-smoothing: antialiased;
-}
-
-html {
-	-webkit-text-size-adjust: 100%;
-	-ms-text-size-adjust: 100%;
-}
-
-/* 去除iPhone中默认的input样式 */
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input,
-button {
-	/* -webkit-appearance:none; */
-	resize: none;
-}
-
-input::-webkit-outer-spin-button,
-input::-webkit-inner-spin-button {
-	-webkit-appearance: none;
-}
-
-button {
-	border: none;
-}
-
-/* 设置HTML5元素为块 */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-menu,
-nav,
-section {
-	display: block;
-}
-
-/* 图片自适应 */
-img {
-	/*max-width: 100%;*/
-	height: auto;
-	width: auto\9;
-	/* ie8 */
-	-ms-interpolation-mode: bicubic;
-	/*为了照顾ie图片缩放失真*/
-}
-
-/* 初始化 */
-body,
-div,
-ul,
-li,
-ol,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-input,
-textarea,
-select,
-p,
-dl,
-dt,
-dd,
-a,
-img,
-button,
-form,
-table,
-th,
-tr,
-td,
-tbody,
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-menu,
-nav,
-section {
-	margin: 0;
-	padding: 0;
-	border: none;
-	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-	/*取消链接高亮*/
-	box-sizing: border-box;
-}
-
-
-em,
-i {
-	font-style: normal;
-}
-
-strong {
-	font-weight: normal;
-}
-
-.clearfix:after {
-	content: "";
-	display: block;
-	visibility: hidden;
-	height: 0;
-	clear: both;
-}
-
-.clearfix {
-	zoom: 1;
-}
-
-a {
-	text-decoration: none;
-}
-
-a:hover,
-a:active,
-a:visited {
-	text-decoration: none;
-}
-
-ul,
-ol {
-	list-style: none;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-	font-size: 100%;
-}
-
-img {
-	border: none;
-	vertical-align: middle;
-}
-
-body,
-html {
-	width: 100%;
-	height: 100%;
-	margin: 0 auto;
-	position: relative;
-}
-
-.clear-both {
-	clear: both;
-}
-
-body {
-	font-size: 14px;
-	-webkit-touch-callout: none;
-	/* iOS Safari */
-	-webkit-user-select: none;
-	/* Chrome/Safari/Opera */
-	-moz-user-select: none;
-	/* Firefox */
-	-ms-user-select: none;
-	/* Internet Explorer/Edge */
-	user-select: none;
-}
-
-@font-face {
-	font-family: "hanyiyaku";
-	font-weight: 400;
-	src: url("../fonts/hanyiyaku.ttf") format("truetype");
-	font-display: swap;
+/* 禁用iPhone中Safari的字号自动调整 */
+* {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	outline: none;
+	font-family: LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, Helvetica Neue, Tahoma, PingFang SC, Microsoft Yahei, Arial, Hiragino Sans GB, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
+	font-weight: 400;
+	-webkit-font-smoothing: antialiased;
+}
+
+html {
+	-webkit-text-size-adjust: 100%;
+	-ms-text-size-adjust: 100%;
+}
+
+/* 去除iPhone中默认的input样式 */
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input,
+button {
+	/* -webkit-appearance:none; */
+	resize: none;
+}
+
+input::-webkit-outer-spin-button,
+input::-webkit-inner-spin-button {
+	-webkit-appearance: none;
+}
+
+button {
+	border: none;
+}
+
+/* 设置HTML5元素为块 */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+	display: block;
+}
+
+/* 图片自适应 */
+img {
+	/*max-width: 100%;*/
+	height: auto;
+	width: auto\9;
+	/* ie8 */
+	-ms-interpolation-mode: bicubic;
+	/*为了照顾ie图片缩放失真*/
+}
+
+/* 初始化 */
+body,
+div,
+ul,
+li,
+ol,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+input,
+textarea,
+select,
+p,
+dl,
+dt,
+dd,
+a,
+img,
+button,
+form,
+table,
+th,
+tr,
+td,
+tbody,
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+	margin: 0;
+	padding: 0;
+	border: none;
+	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+	/*取消链接高亮*/
+	box-sizing: border-box;
+}
+
+
+em,
+i {
+	font-style: normal;
+}
+
+strong {
+	font-weight: normal;
+}
+
+.clearfix:after {
+	content: "";
+	display: block;
+	visibility: hidden;
+	height: 0;
+	clear: both;
+}
+
+.clearfix {
+	zoom: 1;
+}
+
+a {
+	text-decoration: none;
+}
+
+a:hover,
+a:active,
+a:visited {
+	text-decoration: none;
+}
+
+ul,
+ol {
+	list-style: none;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	font-size: 100%;
+}
+
+img {
+	border: none;
+	vertical-align: middle;
+}
+
+body,
+html,
+#app {
+	width: 100%;
+	height: 100%;
+	margin: 0 auto;
+	position: relative;
+}
+
+.clear-both {
+	clear: both;
+}
+
+body {
+	color: #BDC7DB;
+	font-size: 14px;
 }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/115.77866357.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/19.3f9acf7e.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/196.9fc54f4b.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/197.5d4efa5e.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/309.e010fa72.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/393.c441a851.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/412.15af95a9.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/459.3f9acf7e.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/487.c441a851.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/498.7c3d8c94.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/507.e010fa72.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/510.7c3d8c94.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/525.f399ecd8.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/608.60fdb60a.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/652.9fc54f4b.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/711.77866357.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/719.15af95a9.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/74.d2784456.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/740.f399ecd8.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/788.61e06a70.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/893.a1df6e64.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/925.a1df6e64.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/940.bbe8d584.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/944.5d4efa5e.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/css/app.f63c5f3b.css


BIN
virgo.wzfrontend/src/main/resources/static/static/fonts/element-icons.f1a45d74.ttf


BIN
virgo.wzfrontend/src/main/resources/static/static/fonts/element-icons.ff18efd1.woff


BIN
virgo.wzfrontend/src/main/resources/static/static/img/chart-title.26c30878.png


BIN
virgo.wzfrontend/src/main/resources/static/static/img/dataNull.d2cfeb61.png


BIN
virgo.wzfrontend/src/main/resources/static/static/img/dataUndefined.25b2821b.png


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/115-legacy.2b5847c8.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/121-legacy.296071b5.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 42 - 0
virgo.wzfrontend/src/main/resources/static/static/js/19-legacy.ce22db99.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/196.47a0b1e3.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/197-legacy.c676dcc9.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/197.c676dcc9.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
virgo.wzfrontend/src/main/resources/static/static/js/309-legacy.5f1c1025.js


+ 0 - 0
virgo.wzfrontend/src/main/resources/static/static/js/322-legacy.791f4cfd.js


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels