Explorar o código

1、添加商铺管理及详情静态页面
2、添加车位管理及详情静态页面
3、添加社区管理、楼栋管理、房屋管理等校验、添加(批量添加)详情、下载等功能
4、添加表单样式

wangfen %!s(int64=3) %!d(string=hai) anos
pai
achega
0a3f49c937
Modificáronse 26 ficheiros con 2489 adicións e 282 borrados
  1. 104 8
      operationSupport/package-lock.json
  2. 1 1
      operationSupport/package.json
  3. 4 5
      operationSupport/src/assets/common.styl
  4. 13 0
      operationSupport/src/assets/css/main.scss
  5. 17 0
      operationSupport/src/assets/element-variables.scss
  6. 23 0
      operationSupport/src/assets/fun.styl
  7. 21 0
      operationSupport/src/assets/sc-variables.styl
  8. 185 0
      operationSupport/src/assets/ucd.styl
  9. 79 0
      operationSupport/src/assets/v2.styl
  10. 253 0
      operationSupport/src/assets/zz.styl
  11. 0 1
      operationSupport/src/components/common/Sidebar.vue
  12. 5 1
      operationSupport/src/main.js
  13. 24 2
      operationSupport/src/router/index.js
  14. 53 35
      operationSupport/src/views/buildingManagement/index.vue
  15. 1 1
      operationSupport/src/views/communityManagement/index.vue
  16. 242 228
      operationSupport/src/views/housingManagement/index.vue
  17. 137 0
      operationSupport/src/views/parkingLotAdministration/garageList.vue
  18. 37 0
      operationSupport/src/views/parkingLotAdministration/index.vue
  19. 112 0
      operationSupport/src/views/parkingLotAdministration/pageJump/garageSaveEdits.vue
  20. 139 0
      operationSupport/src/views/parkingLotAdministration/pageJump/parkingLotSaveEdits.vue
  21. 127 0
      operationSupport/src/views/parkingLotAdministration/pageJump/partitionManagement.vue
  22. 113 0
      operationSupport/src/views/parkingLotAdministration/pageJump/zoneAddEdit.vue
  23. 173 0
      operationSupport/src/views/parkingLotAdministration/parkingSpaceList.vue
  24. 183 0
      operationSupport/src/views/shopManagement/AddOrEdit.vue
  25. 259 0
      operationSupport/src/views/shopManagement/index.vue
  26. 184 0
      operationSupport/src/views/shopManagement/pageJump/saveEdits.vue

+ 104 - 8
operationSupport/package-lock.json

@@ -2053,8 +2053,7 @@
     "atob": {
       "version": "2.1.2",
       "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
-      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
-      "dev": true
+      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
     },
     "autoprefixer": {
       "version": "9.8.6",
@@ -3540,6 +3539,32 @@
         "randomfill": "^1.0.3"
       }
     },
+    "css": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/css/download/css-3.0.0.tgz?cache=0&sync_timestamp=1593663543619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss%2Fdownload%2Fcss-3.0.0.tgz",
+      "integrity": "sha1-REek1Y/dAzZ8UWyp9krjZc7kql0=",
+      "requires": {
+        "inherits": "^2.0.4",
+        "source-map": "^0.6.1",
+        "source-map-resolve": "^0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
+        },
+        "source-map-resolve": {
+          "version": "0.6.0",
+          "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.6.0.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.6.0.tgz",
+          "integrity": "sha1-PZ34fiNrU/FtAeWBUPx3EROOXtI=",
+          "requires": {
+            "atob": "^2.1.2",
+            "decode-uri-component": "^0.2.0"
+          }
+        }
+      }
+    },
     "css-color-names": {
       "version": "0.0.4",
       "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
@@ -3824,8 +3849,7 @@
     "decode-uri-component": {
       "version": "0.2.0",
       "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
     },
     "deep-equal": {
       "version": "1.1.1",
@@ -6402,7 +6426,6 @@
       "version": "1.4.0",
       "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz",
       "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
-      "dev": true,
       "requires": {
         "big.js": "^5.2.2",
         "emojis-list": "^3.0.0",
@@ -6413,7 +6436,6 @@
           "version": "1.0.1",
           "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
           "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
-          "dev": true,
           "requires": {
             "minimist": "^1.2.0"
           }
@@ -6435,6 +6457,11 @@
       "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597335994883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
       "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
     },
+    "lodash.clonedeep": {
+      "version": "4.5.0",
+      "resolved": "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz",
+      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
+    },
     "lodash.defaultsdeep": {
       "version": "4.6.1",
       "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz",
@@ -9355,8 +9382,7 @@
     "sax": {
       "version": "1.2.4",
       "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
-      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
-      "dev": true
+      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk="
     },
     "schema-utils": {
       "version": "2.7.1",
@@ -10280,6 +10306,48 @@
         }
       }
     },
+    "stylus": {
+      "version": "0.55.0",
+      "resolved": "https://registry.nlark.com/stylus/download/stylus-0.55.0.tgz",
+      "integrity": "sha1-vUBKNt2T+od0Sp3S0rG4RQNF5fw=",
+      "requires": {
+        "css": "^3.0.0",
+        "debug": "~3.1.0",
+        "glob": "^7.1.6",
+        "mkdirp": "~1.0.4",
+        "safer-buffer": "^2.1.2",
+        "sax": "~1.2.4",
+        "semver": "^6.3.0",
+        "source-map": "^0.7.3"
+      },
+      "dependencies": {
+        "mkdirp": {
+          "version": "1.0.4",
+          "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz",
+          "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34="
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
+          "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="
+        },
+        "source-map": {
+          "version": "0.7.3",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz",
+          "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M="
+        }
+      }
+    },
+    "stylus-loader": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/stylus-loader/download/stylus-loader-3.0.2.tgz?cache=0&sync_timestamp=1634037061456&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstylus-loader%2Fdownload%2Fstylus-loader-3.0.2.tgz",
+      "integrity": "sha1-J6cGQgsFo44DjnyssVNXjUUFE8Y=",
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "lodash.clonedeep": "^4.5.0",
+        "when": "~3.6.x"
+      }
+    },
     "supports-color": {
       "version": "5.5.0",
       "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
@@ -10763,6 +10831,21 @@
       "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
       "dev": true
     },
+    "uppercamelcase": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npm.taobao.org/uppercamelcase/download/uppercamelcase-1.1.0.tgz",
+      "integrity": "sha1-Mk2YprOvx+iolT4QZBUJsOTiP5c=",
+      "requires": {
+        "camelcase": "^1.2.1"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "1.2.1",
+          "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1636945151239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz",
+          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
+        }
+      }
+    },
     "uri-js": {
       "version": "4.4.0",
       "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz",
@@ -10949,6 +11032,14 @@
       "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz",
       "integrity": "sha1-9evU+mvShpQD4pqJau1JBEVskSM="
     },
+    "vue-amap": {
+      "version": "0.5.10",
+      "resolved": "https://registry.nlark.com/vue-amap/download/vue-amap-0.5.10.tgz",
+      "integrity": "sha1-RkUWIDrwwIXUBL2Kyr8kAeSjb/Y=",
+      "requires": {
+        "uppercamelcase": "^1.1.0"
+      }
+    },
     "vue-cropperjs": {
       "version": "3.0.0",
       "resolved": "https://registry.npm.taobao.org/vue-cropperjs/download/vue-cropperjs-3.0.0.tgz",
@@ -11633,6 +11724,11 @@
       "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
       "dev": true
     },
+    "when": {
+      "version": "3.6.4",
+      "resolved": "http://registry.npm.taobao.org/when/download/when-3.6.4.tgz",
+      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404="
+    },
     "which": {
       "version": "1.3.1",
       "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",

+ 1 - 1
operationSupport/package.json

@@ -19,7 +19,7 @@
     "node-sass": "^4.14.1",
     "sass-loader": "^10.0.3",
     "stylus": "^0.55.0",
-    "stylus-loader": "^6.2.0",
+    "stylus-loader": "^3.0.2",
     "vue": "^2.6.10",
     "vue-amap": "^0.5.10",
     "vue-cropperjs": "^3.0.0",

+ 4 - 5
operationSupport/src/assets/common.styl

@@ -227,7 +227,7 @@ textarea:focus:invalid,
 		background-color #FFF
 		border-radius vw(5)
 		padding-top vw(20)
-		
+
 		top vw(15)
 		left vw(15)
 		bottom vw(15)
@@ -722,7 +722,7 @@ textarea:focus:invalid,
   .tabs {
     font-size: vw(14);
     width: 100%;
-   
+
     padding: vw(20);
     box-sizing: border-box;
     display: flex;
@@ -744,13 +744,13 @@ textarea:focus:invalid,
   }
 	.tabs-right{
 		 padding: vw(20);
-		  height: vw(60); 
+		  height: vw(60);
 			 box-sizing: border-box;
 		}
 }
 
 .content {
-    
+
 		/*height:100%;*/
     .content-right {
       width: calc(100% - 280px);
@@ -768,4 +768,3 @@ textarea:focus:invalid,
       }
     }
   }
- 

+ 13 - 0
operationSupport/src/assets/css/main.scss

@@ -674,6 +674,19 @@ a {
         url("//at.alicdn.com/t/font_2167017_wrd31fts4a.woff?t=1623035434172") format("woff"),
         url("//at.alicdn.com/t/font_2167017_wrd31fts4a.ttf?t=1623035434172") format("truetype");
 }
+.zoniot_font {
+    font-family: "zoniot_font" !important;
+    color: #409eff;
+    font-size: 16px;
+    font-style: normal;
+    -webkit-font-smoothing: antialiased;
+    -webkit-text-stroke-width: 0.2px;
+    -moz-osx-font-smoothing: grayscale;
+    cursor: pointer;
+    &.red{
+        color: red;
+    }
+}
 .iconfont {
     font-family: "iconfont" !important;
     font-size: 14px;

+ 17 - 0
operationSupport/src/assets/element-variables.scss

@@ -0,0 +1,17 @@
+
+/* element-UI theme global configs start */
+/* 改变主题色变量 */
+$--color-primary: #409EFF;
+
+/* 改变 icon 字体路径变量,必需 */
+$--font-path: '~element-ui/lib/theme-chalk/fonts';
+
+@import "~element-ui/packages/theme-chalk/src/index";
+
+/* element-UI theme global configs end */
+
+.zoniot_font.item.el-fl-right{
+  font-size: 30px;
+  margin-left: 20px;
+}
+

+ 23 - 0
operationSupport/src/assets/fun.styl

@@ -0,0 +1,23 @@
+vw(size)
+	(size/19.2)vw
+alignMiddle()
+	&:before
+		content: ' '
+		height: 100%
+		width: 0
+		visibility: hidden
+		display: inline-block
+		vertical-align: middle
+button(bg, color)
+	background-color: bg
+	color: color
+	border: none
+	&:hover
+		background-color: darken(bg, 30%)
+		color: color
+	&:focus
+		background-color: darken(bg, 30%)
+		color: color
+	&.is-disabled
+		background-color: #B4C0C8
+	

+ 21 - 0
operationSupport/src/assets/sc-variables.styl

@@ -0,0 +1,21 @@
+/* smart_city theme global configs start */
+
+$sc-color-primary = #409EFF
+$sc-color-success = #67c23a
+$sc-color-warning = #e6a23c
+$sc-color-danger = #DC3C00
+$sc-color-info = #909399
+$sc-color-blue = #409EFF
+
+$border-color = #EAEDF3
+
+/* smart_city theme global configs end */
+el-button(n)
+	background-color: n
+	border-color: n
+	&:hover, &:focus
+		background-color: lighten(n, 30%)
+		border-color: lighten(n, 30%)
+	&:active
+		background-color: lighten(n, 10%)
+		border-color: lighten(n, 10%)

+ 185 - 0
operationSupport/src/assets/ucd.styl

@@ -0,0 +1,185 @@
+@import './fun.styl'
+
+// 公共样式-start
+.el-cursor
+	cursor: pointer !important
+.el-display-inblock
+	display: inline-block !important
+.el-text-ellipsis
+	display: inline-block
+	width: 90%
+	text-overflow: ellipsis
+	overflow: hidden
+	white-space: nowrap
+.el-mgTop-xs
+	margin-top: vw(5)
+.el-mgTop-sm
+	margin-top: vw(10)
+.el-mgTop-md
+	margin-top: vw(20)
+.el-mgTop-lg
+	margin-top: vw(30)
+.el-mgLeft-xs
+	margin-left: vw(5)
+.el-mgLeft-sm
+	margin-left: vw(10)
+.el-mgLeft-md
+	margin-left: vw(20)
+.el-mgLeft-lg
+	margin-left: vw(30)
+.el-mgRight-xs
+	margin-right: vw(5)
+.el-mgRight-sm
+	margin-right: vw(10)
+.el-mgRight-md
+	margin-right: vw(20)
+.el-mgRight-lg
+	margin-right: vw(30)
+.el-mgBottom-xs
+	margin-bottom: vw(5)
+.el-mgBottom-sm
+	margin-bottom: vw(10)
+.el-mgBottom-md
+	margin-bottom: vw(20)
+.el-mgBottom-lg
+	margin-bottom: vw(30)
+.el-pdTop-xs
+	padding-top: vw(5)
+.el-pdTop-sm
+	padding-top: vw(10)
+.el-pdTop-md
+	padding-top: vw(20)
+.el-pdTop-lg
+	padding-top: vw(30)
+.el-pdLeft-xs
+	padding-left: vw(5)
+.el-pdLeft-sm
+	padding-left: vw(10)
+.el-pdLeft-md
+	padding-left: vw(20)
+.el-pdLeft-lg
+	padding-left: vw(30)
+.el-pdRight-xs
+	padding-right: vw(5)
+.el-pdRight-sm
+	padding-right: vw(10)
+.el-pdRight-md
+	padding-right: vw(20)
+.el-pdRight-lg
+	padding-right: vw(30)
+.el-pdBottom-xs
+	padding-bottom: vw(5)
+.el-pdBottom-sm
+	padding-bottom: vw(10)
+.el-pdBottom-md
+	padding-bottom: vw(20)
+.el-pdBottom-lg
+	padding-bottom: vw(30)
+.el-fl-left
+	float: left
+.el-fl-right
+	float: right
+.el-link
+	color: rgb(13, 135, 249)
+	text-decoration: none
+	cursor: pointer
+	font-size: vw(12)
+	line-height: vw(32)
+	&:hover
+		opacity 0.8
+		text-decoration: underline
+.el-btn-icon, .el-icon-close
+	color: #909399
+	cursor: pointer
+	font-size: vw(16)
+	&:hover
+		color: #42CCCC
+
+/* 按钮颜色 */
+.btn-purple
+	button(#00c1de, #fff)
+.btn-blue
+	button(#4AB4D5, #fff)
+.btn-4bb2d4
+	button(#4bb2d4, #fff)
+.btn-light-blue
+	button(#65A7E7, #fff)
+.el-button.is-disabled
+	background-color #b4c0c8
+	color: #fff
+	border: none
+	&:hover
+		background-color: #b4c0c8
+		color: #fff
+
+/* icon图标 */
+.el-icon-export, .el-icon-add2, .el-icon-template,
+.el-icon-cksb, .el-icon-ckxq, .el-icon-jb, .el-icon-qx, .el-icon-glgz, .el-icon-kl,
+.el-icon-cl, .el-icon-lcxx, .el-icon-jzxq, .el-icon-sssj, .el-icon-sbgl, .el-icon-lcsj,
+.el-icon-bs, .el-icon-bz, .el-icon-start, .el-icon-pause, .el-icon-esc, .el-icon-personnel,
+.el-icon-create, .el-icon-manage, .el-icon-acceptance, .icon_plxzzbjhd
+	display inline-block
+	width vw(12)
+	height vw(12)
+	background no-repeat center
+	background-image url('/static/imgs/icon-export.png')
+	background-size vw(12)
+.el-icon-add2
+	background-image url('/static/imgs/icon-add2.png')
+.el-icon-template
+	background-image url('/static/imgs/icon-template.png')
+// .el-icon-edit
+// 	&:before
+// 		content: "\E616"
+.el-icon-cksb
+	background-image url('/static/imgs/icon_cksb.png')
+.el-icon-ckxq
+	background-image url('/static/imgs/icon_ckxq.png')
+.el-icon-jb
+	background-image url('/static/imgs/icon_jb.png')
+.el-icon-qx
+	background-image url('/static/imgs/icon_qx.png')
+	background-size vw(10) vw(12)
+.el-icon-glgz
+	background-image url('/static/imgs/icon_glgz.png')
+.el-icon-kl
+	background-image url('/static/imgs/icon_kl.png')
+.el-icon-cl
+	background-image url('/static/imgs/icon_cl.png')
+.el-icon-lcxx
+	background-image url('/static/imgs/icon_lcxx.png')
+.el-icon-jzxq
+	background-image url('/static/imgs/icon_jzxq.png')
+.el-icon-sssj
+	background-image url('/static/imgs/icon_sssj.png')
+.el-icon-sbgl
+	background-image url('/static/imgs/icon_sbgl.png')
+.el-icon-lcsj
+	background-image url('/static/imgs/icon_lcsj.png')
+.el-icon-bs
+	background-image url('/static/imgs/icon_bs.png')
+.el-icon-bz
+	background-image url('/static/imgs/icon_bz.png')
+	width vw(12)
+	height vw(16)
+	background-size vw(12) vw(16)
+.el-icon-start
+	background-image url('/static/imgs/icon_start.png')
+.el-icon-pause
+	background-image url('/static/imgs/icon_pause.png')
+.el-icon-esc
+	background-image url('/static/imgs/icon_tcqp.png')
+	width vw(16)
+	height vw(16)
+	background-size vw(16) vw(16)
+.el-icon-personnel
+	background-image url('/static/imgs/icon_personnel_type.png')
+.el-icon-create
+	background-image url('/static/imgs/icon_cjzbjhd.png')
+.el-icon-manage
+	background-image url('/static/imgs/icon_yssbgl.png')
+.el-icon-acceptance
+	background-image url('/static/imgs/icon_ys.png')
+.icon_plxzzbjhd
+	background-image url('/static/imgs/icon_plxzzbjhd.png')
+	margin-right vw(5)

+ 79 - 0
operationSupport/src/assets/v2.styl

@@ -0,0 +1,79 @@
+@import './fun.styl'
+
+/* 大弹窗样式 */
+.popups-large
+	background #fff
+	
+	top 0
+	left 0
+	width: 100%
+	height 100%
+	z-index 1999
+	.popups-large__title
+		height: vw(54)
+		line-height: vw(54)
+		border-radius: vw(8) vw(8) 0 0
+		padding:0 vw(25)
+		border-bottom: 1px solid #EAEDF3
+		font-size: vw(16)
+		background: white
+		.close
+			width: vw(20)
+			height: vw(20)
+			float: right
+			text-align: right
+			cursor: pointer
+			margin-right: vw(20)
+			line-height: 1
+			margin-top: vw(17)
+	.popups-large__main
+		
+		top: vw(54)
+		bottom 0
+		left 0
+		width 100%
+		padding vw(20) 0
+		overflow hidden
+		&::-webkit-scrollbar
+			display none
+		.popups-large__main_content
+			
+			height 100%
+			margin auto
+		
+			overflow auto
+			border-radius vw(5)
+			&::-webkit-scrollbar
+				display none
+			.search-wrap
+				background transparent
+				box-shadow none
+				border-bottom none
+				margin-left -(vw(20))
+			.select-search-dropdown
+				position absolute !important
+
+
+/* 页面标题区域 */
+.page-title
+	background-color #FFF
+	height vw(60)
+	line-height vw(60)
+	font-size vw(16)
+	color #333333
+	padding 0 vw(20)
+	border-radius vw(4) vw(4) 0 0
+	border-bottom 1px solid #EEF5F7
+	.go-back
+		color #666666
+		font-size vw(14)
+		cursor pointer !important		
+		&:before
+			content " "
+			display inline-block
+			width vw(14)
+			height vw(12)
+			background no-repeat center
+			background-image url('/static/imgs/icon_go_back.png')
+			background-size vw(14) vw(12)
+			padding-right vw(10)

+ 253 - 0
operationSupport/src/assets/zz.styl

@@ -0,0 +1,253 @@
+@import './fun.styl'
+.system-menu
+	background-color: transparent
+	border-radius: 0
+	border: none
+	bottom: 0
+.elcfire-monitor
+	border-radius: 0
+.elcfire-device, .elcfire-spss
+	background-color: transparent
+	border: none
+	border-radius: 0
+.alarm-select-color
+	position: absolute
+	top: 1px
+	right: 0
+	width: 40%
+	height: vw(32)
+	border-left: 1px solid #dcdfe6
+	padding-left: 3px
+	color: #3E3E3E
+	line-height: vw(32)
+	.color-picker
+		border: none
+		vertical-align: top
+	.el-color-picker__trigger
+		border: none
+		width: vw(32)
+		height: vw(32)
+
+.zz-tip
+	position: absolute
+	top: -999px
+	left: 0
+	background-color: #000
+	color: #fff
+	border-radius: 4px
+	line-height: 1
+	padding: 10px
+	z-index: 99
+	&:after
+		font-family: element-icons!important;
+		speak: none;
+		font-style: normal;
+		font-weight: 400;
+		font-variant: normal;
+		text-transform: none;
+		line-height: 1;
+		vertical-align: baseline;
+		display: inline-block;
+		-webkit-font-smoothing: antialiased
+		content: "\E60B"
+		font-size: 32px
+		position: absolute;
+		top: 100%;
+		color: #000;
+		left: 50%;
+		margin-top: -12px
+
+.floor-info
+	.el-radio-button__inner
+		width: 100%
+		border: 1px solid #dcdfe6
+		border-radius: 4px !important
+// 站点管理提示框
+.site-tips
+	background: #303133
+	height: auto
+	max-width: 375px
+	position: absolute
+	top: -25px
+	left: 115px
+	box-shadow:0px 4px 26px 0px rgba(206,206,206, .3);
+	border-radius:5px;
+	color: #fff
+	padding: 12px 14px
+	z-index: 9999
+	transform: translate(-50%, -120%)
+	word-break: break-all;
+	&:after
+		content: ' '
+		position: absolute
+		bottom: -(vw(9))
+		left: 50%
+		margin-left: -(vw(10))
+		width:0; 
+		height:0; 
+		border-left: vw(10) solid transparent;
+		border-right:vw(10) solid transparent;
+		border-top:vw(10) solid #303133;
+	strong
+		text-overflow: ellipsis;
+		overflow: hidden;
+		display: block;
+
+.real
+	height: 100%
+	position: relative
+	.model-ctrl
+		width: vw(218)
+		height: vw(36)
+		position: absolute
+		top: vw(10)
+		right: vw(20)
+		background:rgba(255,255,255,1)
+		box-shadow: 0px 2px 12px 0px rgba(110, 106, 106, 0.74)
+		transition: all .3s
+		transition-delay: 0s
+		z-index: 1
+		&.popper
+			transition-delay: .1s
+			right: vw(370)
+		li
+			width: 50%
+			height: 100%
+			float: left
+			alignMiddle()
+			font-size: vw(14)
+			text-align: center
+			cursor: pointer
+			color: #6D7081
+			&.active
+				color: #42CCCC
+			span, img
+				vertical-align: middle
+			.icon-map
+				height: vw(14)
+			.icon-list
+				height: vw(9)
+	.search-ctrl
+		position: absolute
+		top: vw(10)
+		left: vw(20)
+		width: vw(300)
+		height: vw(36)
+		background-color: #fff
+		box-shadow: 0px 2px 12px 0px rgba(110, 106, 106, 0.74)
+		padding: vw(2) 0
+		font-size: 0
+		.el-input__inner
+			border: none
+			font-size: vw(16)
+			padding: 0 vw(10)
+		.el-input
+			width: vw(225)
+		.el-select
+			width: vw(75)
+			.el-input
+				width: vw(75)
+			.el-select__caret
+				font-size: vw(14)
+				width: vw(14)
+			&:after
+				content: ' '
+				display: block
+				width: vw(2)
+				height: vw(20)
+				background-color: #EAEDF3
+				position: absolute
+				top: vw(8)
+				right: 0
+	.zoom
+		width: vw(24)
+		height: vw(33)
+		position: absolute
+		right: vw(338)
+		top: 50%
+		margin-top: -(vw(11.5))
+		z-index: 2
+		cursor: pointer
+		transition: all .3s
+		transition-delay: .1s
+		&.zoomout
+			right: -(vw(4))
+			transition-delay: 0s
+	.listbox
+		border-radius: vw(5)
+		position: absolute
+		top: vw(20)
+		left: vw(20)
+		bottom: vw(20)
+		right: vw(20)
+		overflow: auto
+		background: #fff
+		h3
+			padding: vw(20) vw(20)
+			background: #fff
+			font-size: vw(20)
+			color: #6D7081
+
+	.realDialog
+		.el-dialog__headerbtn
+			z-index: 1
+		.el-dialog__body
+			top: 0
+.real-index__search_popper
+	margin-top: vw(10) !important
+	min-width: vw(225)
+	width: auto !important
+.real-index,.rule-manage-modal
+	.el-dialog
+		width: 100% !important
+		height: 100% !important
+		padding: 0
+		margin: 0 !important
+		.el-dialog__header
+			height vw(54)
+			line-height vw(54)
+			padding: 0 vw(32)
+			text-align: left 
+			font-size: vw(20)
+			color: #3E3E3E
+			border-bottom: 1px solid #EAEDF3
+		.el-dialog__headerbtn 
+			top: vw(15)
+			.el-dialog__close
+				color: #8F8F8C
+				font-size: vw(18)
+		.el-dialog__body
+			padding: 0
+			position: absolute
+			top: vw(105)
+			left: 0
+			bottom: 0
+			width: 100%
+			overflow: hidden
+
+/* 表单单纯显示必填*号 */
+.show-required-icon
+	.el-form-item__label
+		&:before
+			content: '*'
+			color: #f56c6c
+			margin-right: 4px
+
+.organ-management
+	.form-box
+		.el-cascader, .el-input, .el-textarea, .el-select
+			width vw(544) !important
+#img-view
+	position: fixed 
+	top 0
+	left 0
+	width: 100%
+	height 100%
+	z-index: 2000;
+	background: rgba(0,0,0,.8);
+	text-align: center
+	color: #fff
+	overflow: auto
+	img
+		display: block
+		margin: 10px auto 0 auto

+ 0 - 1
operationSupport/src/components/common/Sidebar.vue

@@ -1,4 +1,3 @@
-
 <template>
     <div class="sidebar" :style="collapse ? 'width:85px' : ''">
         <div class="logo" v-if="!collapse">

+ 5 - 1
operationSupport/src/main.js

@@ -16,6 +16,7 @@ import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
 import moment from 'moment';
 moment.locale('zh-cn');
 import './assets/css/icon.css';
+import "./assets/element-variables.scss";
 import './assets/css/main.scss';
 import './assets/css/element-variables.scss';
 import '@utils/rem.js';
@@ -25,7 +26,10 @@ import apiService from './api/index';
 import store from './store/store.js';
 import '@utils/utils.js';
 import 'babel-polyfill';
-// import "./assets/common.styl";
+import "./assets/common.styl";
+import "./assets/v2.styl";
+import "./assets/zz.styl";
+import "./assets/ucd.styl";
 
 // import VueAMap from 'vue-amap';
 

+ 24 - 2
operationSupport/src/router/index.js

@@ -42,13 +42,18 @@ export default new Router({
                     //     },
                     // ]
                 },{
-                    path:'/communityManagement/popups/AddOrEdit',
+                    path:'/communityManagement/pageJump/AddOrEdit',
                     meta: { title: '添加社区' },
                     component:() => import(/* webpackChunkName: "404" */ '@views/communityManagement/pageJump/AddOrEdit.vue'),
                 },{
                     path: '/buildingManagement',
                     component: () => import(/* webpackChunkName: "404" */ '@views/buildingManagement'),
                     meta: { title: '楼栋管理' }
+                },
+                {
+                    path: '/buildingManagement/pageJump/addoredit',
+                    component: () => import(/* webpackChunkName: "404" */ '@views/buildingManagement/pageJump/addoredit.vue'),
+                    meta: { title: '添加编辑楼栋管理' }
                 },{
                     path: '/housingManagement',
                     component: () => import(/* webpackChunkName: "404" */ '@views/housingManagement'),
@@ -56,7 +61,24 @@ export default new Router({
                 },{
                     path: '/housingManagement/pageJump/saveEdits',
                     component: () => import(/* webpackChunkName: "404" */ '@views/housingManagement/pageJump/saveEdits.vue'),
-                    meta: { title: '房屋管理' }
+                    meta: { title: '房屋编辑' }
+                },{
+                    path: '/shopManagement',
+                    component: () => import(/* webpackChunkName: "404" */ '@views/shopManagement'),
+                    meta: { title: '商铺管理' }
+                },{
+                    path: '/shopManagement/pageJump/saveEdits',
+                    component: () => import(/* webpackChunkName: "404" */ '@views/shopManagement/pageJump/saveEdits.vue'),
+                    meta: { title: '商铺编辑' }
+                },{
+                    path: '/parkingLotAdministration',
+                    component: () => import(/* webpackChunkName: "404" */ '@views/parkingLotAdministration'),
+                    meta: { title: '车位管理' }
+                }
+                ,{
+                    path: '/parkingLotAdministration/pageJump/partitionManagement',
+                    component: () => import(/* webpackChunkName: "404" */ '@views/parkingLotAdministration/pageJump/partitionManagement.vue'),
+                    meta: { title: '车库分区管理' }
                 }
             ]
         },

+ 53 - 35
operationSupport/src/views/buildingManagement/index.vue

@@ -9,17 +9,50 @@
 <script src="../../../../../../WEB/WEB/userCenter/src/router/index.js"></script>
 <template>
     <div class="main">
-        <div v-if='!showaddDialog'>
+        <div>
             <div class="search">
                 <el-input placeholder="请输入资料代码或名称" class="search-input" v-model.trim="mixins_query.keyWords"></el-input>
                 <el-button type="primary" @click="mixins_search" class="search-btn" icon="el-icon-search">查询
                     <!-- <i class="iconfont">&#xe6fc;</i> -->
                 </el-button>
-                <div class="search-icon">
-                    <!-- 删除 新增 -->
-                    <i class="iconfont" @click="deleteRow" v-txt-tip data-txt="删除">&#xe63b;</i>
-                    <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
-                </div>
+                <template>
+                    <el-tooltip
+                            class="item"
+                            effect="light"
+                            placement="bottom"
+                            content="导出"
+                    >
+              <span class="zoniot_font item el-fl-right" @click="exportExcel()"
+              >&#xe66d;</span
+              >
+                    </el-tooltip>
+                    <el-dropdown
+                            type="primary"
+                            @command="addCommand"
+                            class="el-fl-right"
+                    >
+                        <span class="zoniot_font item el-fl-right">&#xe664;</span>
+                        <el-dropdown-menu
+                                slot="dropdown"
+                                hide-on-click="false"
+                                class="device-search-dropdown"
+                        >
+                            <el-dropdown-item command="add">单个添加</el-dropdown-item>
+                            <el-dropdown-item command="batchAdd">
+                                <div class="upload_div">
+                                    <xk-upload
+                                            class="upload_class"
+                                            @callback="mixins_search"
+                                            :params="{ importType: 7 }"
+                                    >
+                                        <span class="upload_text" slot="content">批量添加</span>
+                                    </xk-upload>
+                                </div>
+                            </el-dropdown-item>
+                            <el-dropdown-item command="template">下载模板</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </template>
             </div>
             <div class="dictionarys-wrap">
                 <zz-table
@@ -38,13 +71,13 @@
                 </zz-table>
             </div>
         </div>
-        <addplan :userinfo='userinfo' v-if="showaddDialog" @close='showaddDialog = false'  @refresh='mixins_search'></addplan>
+<!--        <addplan :userinfo='userinfo' v-if="showaddDialog" @close='showaddDialog = false'  @refresh='mixins_search'></addplan>-->
     </div>
 </template>
 
 <script>
 import list from '@utils/list.js';
-import addplan from './pageJump/addoredit';
+// import addplan from './pageJump/addoredit';
 export default {
     mixins: [list],
     data() {
@@ -101,39 +134,24 @@ export default {
                 }
             ],
             selectRow: [],
-            showaddDialog:false,
+            // showaddDialog:false,
         };
     },
     components: {
-        addplan
+        // addplan
         // viewDetail
     },
     methods: {
-        addOrEdit(todo, index) {
-            new Promise((resolve) => {
-                let row,
-                    title = '编辑楼栋';
-                if ('add' == todo) {
-                    title = '新增楼栋';
-                } else {
-                    row = this.mixins_list[index] || {};
-                    row = JSON.parse(JSON.stringify(row));
-                }
-                // this.$store.dispatch('openModal', {
-                //     url: '/system/dictionarys/popups/AddOrEdit.vue',
-                //     title: title,
-                //     width: '850px',
-                //     height: '600px',
-                //     props: {
-                //         data: row,
-                //         todo: todo,
-                //         callback: this.mixins_search
-                //     }
-                // });
-                this.showaddDialog=true
-            }).then(() => {
-                this.mixins_search();
-            });
+        addCommand(command) {
+            if (command === "add") {
+                // this.showaddDialog=true
+                this.$router.push('/buildingManagement/pageJump/addoredit')
+                return;
+            }
+            if (command === "template") {
+                // this.__exportExcel("/installPlan/plan/downTemplate");
+                return;
+            }
         },
         //批量删除
         deleteRow() {

+ 1 - 1
operationSupport/src/views/communityManagement/index.vue

@@ -100,7 +100,7 @@ export default {
                 //         callback: this.mixins_search
                 //     }
                 // });
-                this.$router.push('/communityManagement/popups/AddOrEdit')
+                this.$router.push('/communityManagement/pageJump/AddOrEdit')
             }).then(() => {
                 this.mixins_search();
             });

+ 242 - 228
operationSupport/src/views/housingManagement/index.vue

@@ -7,253 +7,267 @@
 -->
 
 <template>
-  <div class="content">
-    <div>
-      <organ-tree @organId="currentOrganId"></organ-tree>
-      <div class="content-right">
-        <div class="search">
-          <el-input
-                  clearable
-                  placeholder="机构代码/机构名称"
-                  class="search-input"
-                  v-trim
-                  v-model.trim="mixins_query.questParams"
-          ></el-input>
-          <el-button
-                  class="search-btn"
-                  type="primary"
-                  @click="mixins_search()"
-                  :disabled="mixins_onQuery"
-                  :loading="mixins_onQuery"
-                  icon="el-icon-search"
-          >搜索</el-button
-          >
-          <!-- <el-button class="el-fl-right" type="primary" @click="addOrEdit('add')"
-            >添加</el-button
-          > -->
-          <el-tooltip
-                  placement="bottom"
-                  class="item"
-                  effect="light"
-                  content="添加"
-          >
-          <span class="zoniot_font item el-fl-right" @click="addOrEdit('add')"
-          >&#xe664;</span
-          >
-          </el-tooltip>
-        </div>
-        <zz-table
-                :settings="{ showIndex: true }"
-                :cols="cols"
-                :loading="mixins_onQuery"
-                :data="mixins_list"
-                :pageset="mixins_pageset"
-                @page-change="pageChange"
-                @selection-change="selectionChange"
-        >
-          <template slot-scope="scope" slot="transactionsNumber">
+    <div class="content">
+        <div>
+            <organ-tree @organId="currentOrganId"></organ-tree>
+            <div class="content-right">
+                <div class="search">
+                    <el-input
+                            clearable
+                            placeholder="机构代码/机构名称"
+                            class="search-input"
+                            v-trim
+                            v-model.trim="mixins_query.questParams"
+                    ></el-input>
+                    <el-button
+                            class="search-btn"
+                            type="primary"
+                            @click="mixins_search()"
+                            :disabled="mixins_onQuery"
+                            :loading="mixins_onQuery"
+                            icon="el-icon-search"
+                    >搜索
+                    </el-button>
+                    <template>
+                        <el-tooltip
+                                class="item"
+                                effect="light"
+                                placement="bottom"
+                                content="导出"
+                        >
+                            <span class="zoniot_font item el-fl-right" @click="exportExcel()">&#xe66d;</span>
+                        </el-tooltip>
+                        <el-dropdown
+                                type="primary"
+                                @command="addCommand"
+                                class="el-fl-right"
+                        >
+                            <span class="zoniot_font item el-fl-right">&#xe664;</span>
+                            <el-dropdown-menu
+                                    slot="dropdown"
+                                    hide-on-click="false"
+                                    class="device-search-dropdown"
+                            >
+                                <el-dropdown-item command="add">单个添加</el-dropdown-item>
+                                <el-dropdown-item command="batchAdd">
+                                    <div class="upload_div">
+                                        <xk-upload
+                                                class="upload_class"
+                                                @callback="mixins_search"
+                                                :params="{ importType: 7 }"
+                                        >
+                                            <span class="upload_text" slot="content">批量添加</span>
+                                        </xk-upload>
+                                    </div>
+                                </el-dropdown-item>
+                                <el-dropdown-item command="template">下载模板</el-dropdown-item>
+                            </el-dropdown-menu>
+                        </el-dropdown>
+                    </template>
+                </div>
+                <zz-table
+                        :settings="{ showIndex: true }"
+                        :cols="cols"
+                        :loading="mixins_onQuery"
+                        :data="mixins_list"
+                        :pageset="mixins_pageset"
+                        @page-change="pageChange"
+                        @selection-change="selectionChange"
+                >
+                    <template slot-scope="scope" slot="transactionsNumber">
           <span
                   v-if="scope.row.transactionsNumber"
                   class="el-link"
                   @click="toTransactionDetails(scope.row)"
-          >{{ scope.row.transactionsNumber }}</span
-          >
-            <span v-else>{{ scope.row.transactionsNumber }}</span>
-          </template>
-          <template slot-scope="scope" slot="opt">
-            <!-- <el-button type="primary" @click="addOrEdit('edit', scope.index)"
-              >编辑</el-button
-            >
-            <el-button @click="deleteRow(scope.row)" :loading="scope.row.onDelete"
-              >删除</el-button
-            > -->
-            <div class="opt">
-              <el-tooltip
-                      class="item"
-                      effect="light"
-                      placement="bottom"
-                      content="编辑"
-              >
-              <span class="zoniot_font" @click="addOrEdit('edit', scope.index)"
-              >&#xe689;</span
-              >
-              </el-tooltip>
-              <el-tooltip
-                      class="item"
-                      effect="light"
-                      placement="bottom"
-                      content="删除"
-              >
+          >{{ scope.row.transactionsNumber }}</span>
+                        <span v-else>{{ scope.row.transactionsNumber }}</span>
+                    </template>
+                    <template slot-scope="scope" slot="opt">
+                        <div class="opt">
+                            <el-tooltip
+                                    class="item"
+                                    effect="light"
+                                    placement="bottom"
+                                    content="编辑"
+                            >
+                                <span class="zoniot_font" @click="addOrEdit('edit', scope.index)">&#xe689;</span>
+                            </el-tooltip>
+                            <el-tooltip
+                                    class="item"
+                                    effect="light"
+                                    placement="bottom"
+                                    content="删除"
+                            >
               <span
                       class="zoniot_font red"
                       @click="deleteRow(scope.row)"
-              >&#xe673;</span
-              >
-              </el-tooltip>
+              >&#xe673;</span>
+                            </el-tooltip>
+                        </div>
+                    </template>
+                </zz-table>
             </div>
-          </template>
-        </zz-table>
-      </div>
-    </div>
-    <save-edits v-if="showaddDialog"></save-edits>
+        </div>
+        <save-edits v-if="showaddDialog"></save-edits>
 
-  </div>
+    </div>
 </template>
 
 <script>
-import list from "@/js/list.js";
-import saveEdits from './pageJump/saveEdits.vue'
-export default {
-  mixins: [list],
-  data() {
-    return {
-      statusOptions: [],
-      currentId: "",
-      cols: [
-        {
-          label: "所属社区",
-          prop: "code",
-          width: 120,
-        },
-        {
-          label: "楼栋名称",
-          prop: "name",
-        },
-        {
-          label: "单元",
-          prop: "agentbranchType",
-        },
-        {
-          label: "房屋号",
-          prop: "mchid",
-          width: 150,
+    import list from "@/js/list.js";
+    import saveEdits from './pageJump/saveEdits.vue'
+
+    export default {
+        mixins: [list],
+        data() {
+            return {
+                statusOptions: [],
+                currentId: "",
+                cols: [
+                    {
+                        label: "所属社区",
+                        prop: "code",
+                        width: 120,
+                    },
+                    {
+                        label: "楼栋名称",
+                        prop: "name",
+                    },
+                    {
+                        label: "单元",
+                        prop: "agentbranchType",
+                    },
+                    {
+                        label: "房屋号",
+                        prop: "mchid",
+                        width: 150,
+                    },
+                    {
+                        label: "建筑面积",
+                        prop: "paykey",
+                        format(val) {
+                            const str = val.toString();
+                            const len = str.length;
+                            let result = "";
+                            if (len <= 10) {
+                                let lastStr = str.substr(5);
+                                result = lastStr.padStart(len, "*");
+                            } else {
+                                let lastStr = str.substr(Math.floor(len / 2));
+                                result = lastStr.padStart(Math.ceil(len / 2) + 5, "*");
+                            }
+                            return result;
+                        },
+                        width: 220,
+                    },
+                    {
+                        label: "使用状态",
+                        prop: "appid",
+                        width: 220,
+                    },
+                    {
+                        label: "操作",
+                        slot: "opt",
+                        width: 150,
+                    },
+                ],
+                showaddDialog: false,
+            };
         },
-        {
-          label: "建筑面积",
-          prop: "paykey",
-          format(val) {
-            const str = val.toString();
-            const len = str.length;
-            let result = "";
-            if (len <= 10) {
-              let lastStr = str.substr(5);
-              result = lastStr.padStart(len, "*");
-            } else {
-              let lastStr = str.substr(Math.floor(len / 2));
-              result = lastStr.padStart(Math.ceil(len / 2) + 5, "*");
-            }
-            return result;
-          },
-          width: 220,
+        components: {
+            saveEdits
+            // viewDetail
         },
-        {
-          label: "使用状态",
-          prop: "appid",
-          width: 220,
+        methods: {
+            toTransactionDetails(row) {
+                const {id, type} = row;
+                this.$router.push({
+                    name: "main",
+                    query: {
+                        url: "/BillingManage/FinancialManage/ReconciliationManage/TransactionDetails",
+                        agentbranchId: id,
+                        payType: type,
+                        prevName: "支付管理",
+                    },
+                });
+            },
+
+            addCommand(command) {
+                if (command === "add") {
+                    // this.showaddDialog=true
+                    this.$router.push('/housingManagement/pageJump/saveEdits')
+                    return;
+                }
+                if (command === "template") {
+                    // this.__exportExcel("/installPlan/plan/downTemplate");
+                    return;
+                }
+            },
+
+            addOrEdit(todo, index) {
+                new Promise((resolve) => {
+                    let row = {companyOrgId: this.mixins_query.companyId},
+                        title = "编辑支付机构";
+                    if ("add" == todo) {
+                        title = "添加支付机构";
+                    } else {
+                        Object.assign(row, this.mixins_list[index] || {});
+                        row = JSON.parse(JSON.stringify(row));
+                    }
+                    this.$router.push('/housingManagement/pageJump/saveEdits')
+                }).then(() => {
+                    this.mixins_search("refresh");
+                });
+            },
+            deleteRow(row) {
+                const {name} = row;
+                let title = `您确定要删除支付机构“${name}”`;
+                this.$msgBox(title)
+                    .then(() => {
+                        this.$http
+                            .putForm("/pay/deletePayPayAgentbranch", {id: row.id})
+                            .then(({status, msg}) => {
+                                this.$delete(row, "onDelete");
+                                if (0 === status) {
+                                    this.$message.success(msg);
+                                    this.mixins_search("del");
+                                } else {
+                                    this.$message.error(msg);
+                                }
+                            })
+                            .catch(() => {
+                                this.$delete(row, "onDelete");
+                            });
+                    })
+                    .catch(() => {
+                    });
+            },
+            currentOrganId(data) {
+                this.currentId = data || "";
+            },
         },
-        {
-          label: "操作",
-          slot: "opt",
-          width: 150,
+        watch: {
+            currentId(newValue, oldValue) {
+                this.mixins_query.companyId = newValue;
+                this.mixins_search();
+            },
         },
-      ],
-      showaddDialog:false,
-    };
-  },
-  components: {
-    saveEdits
-    // viewDetail
-  },
-  methods: {
-    toTransactionDetails(row) {
-      const { id, type } = row;
-      this.$router.push({
-        name: "main",
-        query: {
-          url: "/BillingManage/FinancialManage/ReconciliationManage/TransactionDetails",
-          agentbranchId: id,
-          payType: type,
-          prevName: "支付管理",
+        created() {
+            this.mix_path = ""; // 权限
+            this.mixins_dataUrl = "/pay/getAllPayPayAgentbranch"; // 分页查询接口
+            this.mixins_query = {
+                questParams: "",
+                companyId: "",
+            };
+            this.mixins_search("search");
         },
-      });
-    },
-    addOrEdit(todo, index) {
-      new Promise((resolve) => {
-        let row = { companyOrgId: this.mixins_query.companyId },
-          title = "编辑支付机构";
-        if ("add" == todo) {
-          title = "添加支付机构";
-        } else {
-          Object.assign(row, this.mixins_list[index] || {});
-          row = JSON.parse(JSON.stringify(row));
-        }
-        // this.$store.dispatch("openModal", {
-        //   url: "/BillingManage/ChargeManage/PaymentManage/AddOrEdit",
-        //   title: title,
-        //   width: "520px",
-        //   height: "650px",
-        //   // showCancelButton: true,
-        //   // showResetButton: true,
-        //   showFooter: false,
-        //   props: {
-        //     data: row,
-        //     todo: todo,
-        //     callback: resolve,
-        //   },
-        // });
-        this.$router.push('/housingManagement/pageJump/saveEdits')
-      }).then(() => {
-        this.mixins_search("refresh");
-      });
-    },
-    deleteRow(row) {
-      const { name } = row;
-      let title = `您确定要删除支付机构“${name}”`;
-      this.$msgBox(title)
-        .then(() => {
-          this.$http
-            .putForm("/pay/deletePayPayAgentbranch", { id: row.id })
-            .then(({ status, msg }) => {
-              this.$delete(row, "onDelete");
-              if (0 === status) {
-                this.$message.success(msg);
-                this.mixins_search("del");
-              } else {
-                this.$message.error(msg);
-              }
-            })
-            .catch(() => {
-              this.$delete(row, "onDelete");
-            });
-        })
-        .catch(() => {});
-    },
-    currentOrganId(data) {
-      this.currentId = data || "";
-    },
-  },
-  watch: {
-    currentId(newValue, oldValue) {
-      this.mixins_query.companyId = newValue;
-      this.mixins_search();
-    },
-  },
-  created() {
-    this.mix_path = ""; // 权限
-    this.mixins_dataUrl = "/pay/getAllPayPayAgentbranch"; // 分页查询接口
-    this.mixins_query = {
-      questParams: "",
-      companyId: "",
     };
-    this.mixins_search("search");
-  },
-};
 </script>
 <style lang="scss" scoped>
-  .content{
-    .content-right {
-      width: calc(100% - 280px);
-      float: right;
+    .content {
+        .content-right {
+            width: calc(100% - 280px);
+            float: right;
+        }
     }
-  }
 </style>

+ 137 - 0
operationSupport/src/views/parkingLotAdministration/garageList.vue

@@ -0,0 +1,137 @@
+<template>
+    <div class="main">
+        <div class="search">
+            <el-input placeholder="车位号" class="search-input"></el-input>
+            <el-select placeholder="请选择社区">
+                <el-option label="社区一" value="shanghai"></el-option>
+                <el-option label="社区二" value="beijing"></el-option>
+            </el-select>
+            <el-button type="primary" @click="mixins_search" class="search-btn" icon="el-icon-search">查询
+                <!-- <i class="iconfont">&#xe6fc;</i> -->
+            </el-button>
+            <div class="search-icon">
+                <!-- 删除 新增 -->
+                <i class="iconfont" @click="deleteRow" v-txt-tip data-txt="删除">&#xe63b;</i>
+                <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
+            </div>
+        </div>
+        <div>
+            <zz-table
+                    :cols="cols"
+                    :settings="{ showCheckbox: true, showIndex: true, stripe: true }"
+                    :loading="mixins_onQuery"
+                    :data="tableData"
+                    :pageset="mixins_pageset"
+                    @page-change="pageChange"
+                    @selection-change="selectionChange"
+            >
+                <template slot-scope="scope" slot="opt">
+                    <i @click="addOrEdit('edit', scope.index)" class="iconfont" style="color:#2787F1;margin-right:30px" v-txt-tip data-txt="编辑">&#xe645;</i>
+                    <i @click="deleteOne(scope.row.id)"  class="iconfont" style="color:#FF7272;margin-right:30px;" v-txt-tip data-txt="删除">&#xe63a;</i>
+                    <i @click="partitionManagement" class="iconfont" style="color:#2787F1;" v-txt-tip data-txt="分区管理">&#xe645;</i>
+                </template>
+            </zz-table>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                selectName: 'parkingLot',
+                cols: [
+                    {
+                        label: '所属社区',
+                        prop: 'communityName'
+                    },{
+                        label: '车库名称',
+                        prop: 'garageName'
+                    },{
+                        label: '车位数量',
+                        prop: 'parkingLotQuantity'
+                    },{
+                        label: '备注',
+                        prop: 'remarks'
+                    },{
+                        label: '操作',
+                        prop: 'opt',
+                        slot: 'opt'
+                    }
+                ],
+                tableData: [{
+                    communityName: '王小虎',
+                    garageName:'深圳车库',
+                    parkingLotQuantity:'2123',
+                    remarks:'还有很多',
+                }, {
+                    communityName: '王小虎',
+                    garageName:'北京车库',
+                    parkingLotQuantity:'1521',
+                    remarks:'还有不少',
+                }]
+            };
+        },
+        methods: {
+            handleClick(tab, event) {
+                console.log(tab, event);
+            },
+            addOrEdit(todo, index) {
+                new Promise((resolve) => {
+                    let row,
+                        title = '编辑车库';
+                    if ('add' == todo) {
+                        title = '新增车库';
+                    } else {
+                        row = this.mixins_list[index] || {};
+                        row = JSON.parse(JSON.stringify(row));
+                    }
+                    this.$store.dispatch('openModal', {
+                        url: '/parkingLotAdministration/pageJump/garageSaveEdits.vue',
+                        title: title,
+                        width: '850px',
+                        height: '600px',
+                        props: {
+                            data: row,
+                            todo: todo,
+                            callback: this.mixins_search
+                        }
+                    });
+                }).then(() => {
+                    this.mixins_search();
+                });
+            },
+
+            //分区管理
+            partitionManagement(){
+                this.$router.push('/parkingLotAdministration/pageJump/partitionManagement')
+            },
+            //单个删除
+            deleteOne(ids) {
+                this.$msgBox(`刪除字典`, '删除后将无法恢复,请问是否继续?')
+                    .then(() => {
+                        this.$http.post('/dict/delete', [ids]).then(({ status, data, msg }) => {
+                            if (0 === status) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '删除成功!'
+                                });
+                                this.mixins_search();
+                            } else {
+                                this.$message.error('删除失败!');
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        this.$message({
+                            type: 'info',
+                            message: '已取消删除'
+                        });
+                    });
+            },
+        },
+        created() {
+
+        }
+    };
+</script>

+ 37 - 0
operationSupport/src/views/parkingLotAdministration/index.vue

@@ -0,0 +1,37 @@
+<template>
+    <div class="main">
+        <el-tabs v-model="selectName" @tab-click="handleClick">
+            <el-tab-pane label="车位管理" name="parkingLot">
+                 <parking-space-list></parking-space-list>
+            </el-tab-pane>
+            <el-tab-pane label="车库管理" name="garage">
+                <garage-list></garage-list>
+            </el-tab-pane>
+        </el-tabs>
+    </div>
+</template>
+
+<script>
+    import parkingSpaceList from './parkingSpaceList.vue'
+    import garageList from './garageList.vue'
+
+    export default {
+        data() {
+            return {
+                selectName: 'parkingLot',
+            };
+        },
+        components: {
+            parkingSpaceList,
+            garageList
+        },
+        methods: {
+            handleClick(tab, event) {
+                console.log(tab, event);
+            }
+        },
+        created() {
+
+        }
+    };
+</script>

+ 112 - 0
operationSupport/src/views/parkingLotAdministration/pageJump/garageSaveEdits.vue

@@ -0,0 +1,112 @@
+<template>
+    <div class="alert-body__main_content">
+        <div>
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="社区名称" prop="communityName">
+                            <el-input v-model="ruleForm.communityName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="车库名称" prop="garageName">
+                            <el-select v-model="ruleForm.garageName" placeholder="请选择车库名称">
+                                <el-option label="北京车库" value="shanghai"></el-option>
+                                <el-option label="上海车库" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="车位数量">
+                            <el-input v-model="ruleForm.parkingLotQuantity"></el-input>
+                        </el-form-item>
+                        <el-form-item label="备注信息">
+                            <el-input type="textarea" :rows="4" v-model="ruleForm.remark" maxlength="300">
+                            </el-input>
+                            <span style="position:absolute;bottom:0;right:10px">{{ruleForm.remark.length}}/300</span>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        data() {
+            return {
+                ruleForm: {
+                    communityName: '',//社区名称
+                    garageName:'',//车库名称
+                    parkingLotQuantity:'',//车位数量
+                    remark:'',//备注
+                },
+                rules: {
+                    communityName: [
+                        { required: true, message: '请输入社区名称', trigger: 'change' },
+                        // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+                    ],
+                    garageName:[{ required: true, message: '请输入车库名称', trigger: 'change' }],
+                },
+                radio: '1',
+            }
+        },
+        components:{
+
+        },
+        computed: {},
+        methods: {
+            submit() {
+                this.$refs['ruleForm'].validate((valid) => {
+                    if (valid) {
+                        alert('submit!');
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                });
+            },
+            resetForm(formName) {
+                this.$refs[formName].resetFields();
+            },
+
+            handleAvatarSuccess(res, file) {
+                this.imageUrl = URL.createObjectURL(file.raw);
+            },
+            beforeAvatarUpload(file) {
+                const isJPG = file.type === 'image/jpeg';
+                const isLt2M = file.size / 1024 / 1024 < 2;
+
+                if (!isJPG) {
+                    this.$message.error('上传头像图片只能是 JPG 格式!');
+                }
+                if (!isLt2M) {
+                    this.$message.error('上传头像图片大小不能超过 2MB!');
+                }
+                return isJPG && isLt2M;
+            },
+            coordinateClick(){
+                this.$confirm('确认关闭?')
+                    .then(_ => {
+                        done();
+                    })
+                    .catch(_ => {});
+            },
+            addressQueryClick(){
+                this.mapPopUpStatus=true;
+            }
+
+
+        },
+        created() {
+
+        }
+    };
+</script>
+<style lang='scss'>
+    .alert-body__main_content{
+    .blockName{
+        padding:20px;
+    i{
+        color:red;
+    }
+    }
+
+    }
+</style>

+ 139 - 0
operationSupport/src/views/parkingLotAdministration/pageJump/parkingLotSaveEdits.vue

@@ -0,0 +1,139 @@
+<template>
+    <div class="alert-body__main_content">
+        <div>
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="社区名称" prop="communityName">
+                            <el-input v-model="ruleForm.communityName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="车库区域">
+                            <el-select v-model="ruleForm.garageArea" placeholder="请选择车库区域">
+                                <el-option label="1车库区域" value="shanghai"></el-option>
+                                <el-option label="2车库区域" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="前缀名称" prop="prefixName">
+                            <el-input v-model="ruleForm.prefixName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="车位编号">
+                            <el-input v-model="ruleForm.parkingSpaceNumber"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车库名称" prop="garageName">
+                            <el-select v-model="ruleForm.garageName" placeholder="请选择车库名称">
+                                <el-option label="北京车库" value="shanghai"></el-option>
+                                <el-option label="上海车库" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="车位类别" prop="parkingLotCategory">
+                            <el-radio v-model="radio" label="1">公共车位</el-radio>
+                            <el-radio v-model="radio" label="2">私人车位</el-radio>
+                        </el-form-item>
+                        <el-form-item label="车位面积">
+                            <el-input v-model="ruleForm.useArea"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="备注信息">
+                            <el-input type="textarea" :rows="4" v-model="ruleForm.remark" maxlength="300">
+                            </el-input>
+                            <span style="position:absolute;bottom:0;right:10px">{{ruleForm.remark.length}}/300</span>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        data() {
+            return {
+                ruleForm: {
+                    communityName: '',//社区名称
+                    garageArea:'',//车位区域
+                    prefixName:'',//前缀名称
+                    parkingSpaceNumber:'',//车位编号
+                    garageName:'',//车库名称
+                    parkingLotCategory:'',//车位类别
+                    remark:'',//备注
+                },
+                rules: {
+                    communityName: [
+                        { required: true, message: '请输入社区名称', trigger: 'change' },
+                        // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+                    ],
+                    prefixName:[{ required: true, message: '请输入前缀名称', trigger: 'change' }],
+                    garageName:[{ required: true, message: '请输入前缀名称', trigger: 'change' }],
+                    parkingLotCategory:[{ required: true, message: '请输入前缀名称', trigger: 'change' }],
+                },
+                radio: '1',
+            }
+        },
+        components:{
+
+        },
+        computed: {},
+        methods: {
+            submit() {
+                this.$refs['ruleForm'].validate((valid) => {
+                    if (valid) {
+                        alert('submit!');
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                });
+            },
+            resetForm(formName) {
+                this.$refs[formName].resetFields();
+            },
+
+            handleAvatarSuccess(res, file) {
+                this.imageUrl = URL.createObjectURL(file.raw);
+            },
+            beforeAvatarUpload(file) {
+                const isJPG = file.type === 'image/jpeg';
+                const isLt2M = file.size / 1024 / 1024 < 2;
+
+                if (!isJPG) {
+                    this.$message.error('上传头像图片只能是 JPG 格式!');
+                }
+                if (!isLt2M) {
+                    this.$message.error('上传头像图片大小不能超过 2MB!');
+                }
+                return isJPG && isLt2M;
+            },
+            coordinateClick(){
+                this.$confirm('确认关闭?')
+                    .then(_ => {
+                        done();
+                    })
+                    .catch(_ => {});
+            },
+            addressQueryClick(){
+                this.mapPopUpStatus=true;
+            }
+
+
+        },
+        created() {
+
+        }
+    };
+</script>
+<style lang='scss'>
+    .alert-body__main_content{
+        .blockName{
+            padding:20px;
+            i{
+                color:red;
+            }
+        }
+
+    }
+</style>

+ 127 - 0
operationSupport/src/views/parkingLotAdministration/pageJump/partitionManagement.vue

@@ -0,0 +1,127 @@
+<template>
+    <div class="main">
+        <div class="search">
+            <el-input placeholder="分区名称" class="search-input"></el-input>
+            <el-button type="primary" @click="mixins_search" class="search-btn" icon="el-icon-search">查询
+                <!-- <i class="iconfont">&#xe6fc;</i> -->
+            </el-button>
+            <div class="search-icon">
+                <!-- 删除 新增 -->
+                <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
+                <i class="iconfont" @click="deleteRow" v-txt-tip data-txt="删除">&#xe63b;</i>
+            </div>
+        </div>
+        <div>
+            <zz-table
+                    :cols="cols"
+                    :settings="{ showCheckbox: true, showIndex: true, stripe: true }"
+                    :loading="mixins_onQuery"
+                    :data="tableData"
+                    :pageset="mixins_pageset"
+                    @page-change="pageChange"
+                    @selection-change="selectionChange"
+            >
+                <template slot-scope="scope" slot="opt">
+                    <i @click="addOrEdit('edit', scope.index)" class="iconfont" style="color:#2787F1;margin-right:30px" v-txt-tip data-txt="编辑">&#xe645;</i>
+                    <i @click="deleteOne(scope.row.id)"  class="iconfont" style="color:#FF7272;margin-right:30px;" v-txt-tip data-txt="删除">&#xe63a;</i>
+                </template>
+            </zz-table>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                selectName: 'parkingLot',
+                cols: [
+                   {
+                        label: '车库名称',
+                        prop: 'garageName'
+                    },{
+                        label: '分区名称',
+                        prop: 'garageName'
+                    },{
+                        label: '车位数量',
+                        prop: 'parkingLotQuantity'
+                    },{
+                        label: '备注',
+                        prop: 'remarks'
+                    },{
+                        label: '操作',
+                        prop: 'opt',
+                        slot: 'opt'
+                    }
+                ],
+                tableData: [{
+                    communityName: '王小虎',
+                    garageName:'深圳车库',
+                    parkingLotQuantity:'2123',
+                    remarks:'还有很多',
+                }, {
+                    communityName: '王小虎',
+                    garageName:'北京车库',
+                    parkingLotQuantity:'1521',
+                    remarks:'还有不少',
+                }]
+            };
+        },
+        methods: {
+            handleClick(tab, event) {
+                console.log(tab, event);
+            },
+            addOrEdit(todo, index) {
+                new Promise((resolve) => {
+                    let row,
+                        title = '分区编辑';
+                    if ('add' == todo) {
+                        title = '分区添加';
+                    } else {
+                        row = this.mixins_list[index] || {};
+                        row = JSON.parse(JSON.stringify(row));
+                    }
+                    this.$store.dispatch('openModal', {
+                        url: '/parkingLotAdministration/pageJump/zoneAddEdit.vue',
+                        title: title,
+                        width: '850px',
+                        height: '600px',
+                        props: {
+                            data: row,
+                            todo: todo,
+                            callback: this.mixins_search
+                        }
+                    });
+                }).then(() => {
+
+                });
+            },
+            //单个删除
+            deleteOne(ids) {
+                this.$msgBox(`刪除字典`, '删除后将无法恢复,请问是否继续?')
+                    .then(() => {
+                        this.$http.post('/dict/delete', [ids]).then(({ status, data, msg }) => {
+                            if (0 === status) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '删除成功!'
+                                });
+                                this.mixins_search();
+                            } else {
+                                this.$message.error('删除失败!');
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        this.$message({
+                            type: 'info',
+                            message: '已取消删除'
+                        });
+                    });
+            },
+        },
+        created() {
+
+        }
+    };
+</script>

+ 113 - 0
operationSupport/src/views/parkingLotAdministration/pageJump/zoneAddEdit.vue

@@ -0,0 +1,113 @@
+<template>
+    <div class="alert-body__main_content">
+        <div>
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="车库名称" prop="garageName">
+                            <el-select v-model="ruleForm.garageName" placeholder="请选择车库名称">
+                                <el-option label="北京车库" value="shanghai"></el-option>
+                                <el-option label="上海车库" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="分区名称" prop="partitionName">
+                            <el-input v-model="ruleForm.partitionName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="车位数量">
+                            <el-input v-model="ruleForm.parkingLotQuantity"></el-input>
+                        </el-form-item>
+                        <el-form-item label="备注信息">
+                            <el-input type="textarea" :rows="4" v-model="ruleForm.remark" maxlength="300">
+                            </el-input>
+                            <span style="position:absolute;bottom:0;right:10px">{{ruleForm.remark.length}}/300</span>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </div>
+        <!--        <div style="text-align: right;">-->
+        <!--            <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>-->
+        <!--            <el-button>取消</el-button>-->
+        <!--        </div>-->
+    </div>
+</template>
+<script>
+    export default {
+        data() {
+            return {
+                ruleForm: {
+                    garageName:'',//车库名称
+                    partitionName:'',//分区名称
+                    parkingLotQuantity:'',//车位数量
+                    remark:'',//备注
+                },
+                rules: {
+                    garageName:[{ required: true, message: '请输入车库名称', trigger: 'change' }],
+                    partitionName:[{ required: true, message: '请输入分区名称', trigger: 'change' }],
+                },
+                radio: '1',
+            }
+        },
+        components:{
+
+        },
+        computed: {},
+        methods: {
+            submit() {
+                this.$refs['ruleForm'].validate((valid) => {
+                    if (valid) {
+                        alert('submit!');
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                });
+            },
+            resetForm(formName) {
+                this.$refs[formName].resetFields();
+            },
+
+            handleAvatarSuccess(res, file) {
+                this.imageUrl = URL.createObjectURL(file.raw);
+            },
+            beforeAvatarUpload(file) {
+                const isJPG = file.type === 'image/jpeg';
+                const isLt2M = file.size / 1024 / 1024 < 2;
+
+                if (!isJPG) {
+                    this.$message.error('上传头像图片只能是 JPG 格式!');
+                }
+                if (!isLt2M) {
+                    this.$message.error('上传头像图片大小不能超过 2MB!');
+                }
+                return isJPG && isLt2M;
+            },
+            coordinateClick(){
+                this.$confirm('确认关闭?')
+                    .then(_ => {
+                        done();
+                    })
+                    .catch(_ => {});
+            },
+            addressQueryClick(){
+                this.mapPopUpStatus=true;
+            }
+
+
+        },
+        created() {
+
+        }
+    };
+</script>
+<style lang='scss'>
+    .alert-body__main_content{
+    .blockName{
+        padding:20px;
+    i{
+        color:red;
+    }
+    }
+
+    }
+</style>

+ 173 - 0
operationSupport/src/views/parkingLotAdministration/parkingSpaceList.vue

@@ -0,0 +1,173 @@
+<template>
+    <div class="main">
+        <div class="search">
+            <el-input placeholder="车位号" class="search-input"></el-input>
+            <el-select placeholder="请选择社区">
+                <el-option label="社区一" value="shanghai"></el-option>
+                <el-option label="社区二" value="beijing"></el-option>
+            </el-select>
+            <el-select placeholder="所属车库">
+                <el-option label="车库一" value="shanghai"></el-option>
+                <el-option label="车库二" value="beijing"></el-option>
+            </el-select>
+            <el-button type="primary" @click="mixins_search" class="search-btn" icon="el-icon-search">查询
+                <!-- <i class="iconfont">&#xe6fc;</i> -->
+            </el-button>
+            <div class="search-icon">
+                <!-- 删除 新增 -->
+                <i class="iconfont" @click="deleteRow" v-txt-tip data-txt="删除">&#xe63b;</i>
+                <i class="iconfont" @click="addOrEdit('add')" v-left-txt-tip data-txt="新增">&#xe641;</i>
+            </div>
+        </div>
+        <div>
+            <zz-table
+                    :cols="cols"
+                    :settings="{ showCheckbox: true, showIndex: true, stripe: true }"
+                    :loading="mixins_onQuery"
+                    :data="tableData"
+                    :pageset="mixins_pageset"
+                    @page-change="pageChange"
+                    @selection-change="selectionChange"
+            >
+                <template slot-scope="scope" slot="opt">
+                    <i @click="addOrEdit('edit', scope.index)" class="iconfont" style="color:#2787F1;margin-right:30px" v-txt-tip data-txt="编辑">&#xe645;</i>
+                    <i @click="deleteOne(scope.row.id)"  class="iconfont" style="color:#FF7272" v-txt-tip data-txt="删除">&#xe63a;</i>
+                </template>
+            </zz-table>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                selectName: 'parkingLot',
+                cols: [
+                    {
+                        label: '所属社区',
+                        prop: 'communityName'
+                    },
+                    {
+                        label: '车库名称',
+                        prop: 'garageName'
+                    },
+                    {
+                        label: '所在地区',
+                        prop: 'region'
+                    },
+                    {
+                        label: '车库区域',
+                        prop: 'garageArea'
+                    },
+                    {
+                        label: '车位号',
+                        prop: 'parkingSpaceNumber'
+                    },
+                    {
+                        label: '车位类别',
+                        prop: 'parkingSpaceCategory'
+                    },
+                    {
+                        label: '车位面积',
+                        prop: 'parkingSpaceArea'
+                    },
+                    {
+                        label: '操作',
+                        prop: 'opt',
+                        slot: 'opt'
+                    }
+                ],
+                tableData: [{
+                    communityName: '王小虎',
+                    garageName:'深圳车库',
+                    region:'深圳',
+                    garageArea:'宝安区',
+                    parkingSpaceNumber:'001',
+                    parkingSpaceCategory:'丰田',
+                    parkingSpaceArea:'2.5米'
+                }, {
+                    communityName: '王小虎',
+                    garageName:'北京车库',
+                    region:'北京',
+                    garageArea:'定海区',
+                    parkingSpaceNumber:'002',
+                    parkingSpaceCategory:'红旗',
+                    parkingSpaceArea:'2.5米'
+                }, {
+                    communityName: '王小虎',
+                    garageName:'上海车库',
+                    region:'上海',
+                    garageArea:'闵行区',
+                    parkingSpaceNumber:'003',
+                    parkingSpaceCategory:'大众',
+                    parkingSpaceArea:'2.5米'
+                }, {
+                    communityName: '王小虎',
+                    garageName:'广州车库',
+                    region:'广州',
+                    garageArea:'天河区',
+                    parkingSpaceNumber:'004',
+                    parkingSpaceCategory:'本田',
+                    parkingSpaceArea:'2.5米'
+                }]
+            };
+        },
+        methods: {
+            handleClick(tab, event) {
+                console.log(tab, event);
+            },
+            addOrEdit(todo, index) {
+                new Promise((resolve) => {
+                    let row,
+                        title = '编辑车位';
+                    if ('add' == todo) {
+                        title = '新增车位';
+                    } else {
+                        row = this.mixins_list[index] || {};
+                        row = JSON.parse(JSON.stringify(row));
+                    }
+                    this.$store.dispatch('openModal', {
+                        url: '/parkingLotAdministration/pageJump/parkingLotSaveEdits.vue',
+                        title: title,
+                        width: '850px',
+                        height: '600px',
+                        props: {
+                            data: row,
+                            todo: todo,
+                            callback: this.mixins_search
+                        }
+                    });
+                }).then(() => {
+                    this.mixins_search();
+                });
+            },
+            //单个删除
+            deleteOne(ids) {
+                this.$msgBox(`刪除字典`, '删除后将无法恢复,请问是否继续?')
+                    .then(() => {
+                        this.$http.post('/dict/delete', [ids]).then(({ status, data, msg }) => {
+                            if (0 === status) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '删除成功!'
+                                });
+                                this.mixins_search();
+                            } else {
+                                this.$message.error('删除失败!');
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        this.$message({
+                            type: 'info',
+                            message: '已取消删除'
+                        });
+                    });
+            },
+        },
+        created() {
+
+        }
+    };
+</script>

+ 183 - 0
operationSupport/src/views/shopManagement/AddOrEdit.vue

@@ -0,0 +1,183 @@
+<!--
+ * @Author: 陈龙
+ * @Date: 2020-04-16 16:02:37
+ * @LastEditors: 陈龙
+ * @LastEditTime: 2020-08-18 11:21:40
+ * @Description:  计费管理-开户管理-开户信息-添加/编辑
+ -->
+<template>
+  <div class="alert-body__main">
+    <zz-form
+      class="alert-body__main_content"
+      :cols="formCols"
+      :data="formData"
+      :rules="formRules"
+      labelWidth="80"
+      ref="form"
+    >
+      <el-select
+        slot="type"
+        v-model="formData.type"
+        placeholder="请选择机构类型"
+      >
+        <el-option
+          v-for="item in organTypes"
+          :key="item.id"
+          :value="Number(item.value)"
+          :label="item.label"
+        ></el-option>
+      </el-select>
+    </zz-form>
+    <!-- <div class="alert-body__main_btns">
+      <el-button @click="$emit('close')">取消</el-button>
+      <el-button @click="submit" type="primary">确认</el-button>
+    </div> -->
+  </div>
+</template>
+<script>
+export default {
+  props: {
+    params: {
+      type: String,
+      default: "",
+    },
+  },
+  data() {
+    return {
+      formData: {
+        id: "",
+        code: "",
+        name: "",
+        type: "",
+        mchid: "",
+        paykey: "",
+        appid: "",
+        appsecret: "",
+        remarks: "",
+        companyOrgId: "",
+      },
+      formCols: [
+        [
+          {
+            label: "机构代码",
+            prop: "code",
+            input: true,
+            placeholder: "限10位,数字",
+            maxlength: 10,
+          },
+          {
+            label: "机构名称",
+            prop: "name",
+            input: true,
+            placeholder: "限20位,汉字、字母或数字",
+            maxlength: 20,
+          },
+          {
+            label: "机构类型",
+            slot: "type",
+            disabled: false,
+          },
+          {
+            label: "商户号",
+            prop: "mchid",
+            input: true,
+            placeholder: "限10位数字",
+            maxlength: 10,
+          },
+          {
+            label: "支付密钥",
+            prop: "paykey",
+            input: true,
+            placeholder: "限6-42位字母",
+            maxlength: 42,
+          },
+          {
+            label: "应用ID",
+            prop: "appid",
+            input: true,
+            placeholder: "限18位,字母或数字",
+            maxlength: 18,
+          },
+          {
+            label: "应用密钥",
+            prop: "appsecret",
+            input: true,
+            placeholder: "32位,字母或数字",
+            maxlength: 32,
+          },
+        ],
+      ],
+      formRules: {
+        code: [
+          this.$valid.inputRequired("机构代码"),
+          this.$valid.pattern(/^[0-9]{1,10}$/),
+        ],
+        name: [
+          this.$valid.inputRequired("机构名称"),
+          this.$valid.pattern(/^[\u4e00-\u9fa5A-Za-z0-9]{1,20}$/),
+        ],
+        type: this.$valid.selectRequired("机构类型"),
+        mchid: [
+          this.$valid.inputRequired("商户号"),
+          this.$valid.pattern(/^[0-9]{1,10}$/),
+        ],
+        paykey: [
+          this.$valid.inputRequired("支付密钥"),
+          this.$valid.pattern(/^[A-Za-z]{6,42}$/),
+        ],
+        appid: [
+          this.$valid.inputRequired("应用ID"),
+          this.$valid.pattern(/^[A-Za-z0-9]{1,18}$/),
+        ],
+        appsecret: [
+          this.$valid.inputRequired("应用密钥"),
+          this.$valid.pattern(/^[A-Za-z0-9]{32}$/),
+        ],
+      },
+      organTypes: [],
+    };
+  },
+  methods: {
+    submit() {
+      new Promise((resolve) => {
+        this.$refs.form.validate(resolve);
+      }).then(() => {
+        let data = JSON.parse(JSON.stringify(this.formData)),
+          method = "post",
+          url = "/pay/addPayPayAgentbranch",
+          loading = this.$loading();
+
+        if ("edit" == this.params.todo) {
+          url = "/pay/editPayPayAgentbranch";
+          method = "put";
+        }
+        this.$http[method](url, data)
+          .then(({ status, msg }) => {
+            loading.close();
+            if (0 == status) {
+              this.$message.success(msg);
+              this.params.callback && this.params.callback();
+              this.$emit("close");
+            } else {
+              this.$message.error(msg);
+            }
+          })
+          .catch(() => {
+            loading.close();
+          });
+      });
+    },
+  },
+  created() {
+    if ("edit" == this.params.todo) {
+      this.__setValue("formData");
+    } else {
+      this.formData.companyOrgId = this.params.data.companyOrgId;
+    }
+    this.getDictionaryForType("机构类型").then((data) => {
+      this.organTypes = data;
+    });
+  },
+};
+</script>
+<style lang="stylus"></style>

+ 259 - 0
operationSupport/src/views/shopManagement/index.vue

@@ -0,0 +1,259 @@
+<!--
+ * @Author: 陈龙
+ * @Date: 2020-04-14 09:37:13
+ * @LastEditors: 陈龙
+ * @LastEditTime: 2020-08-05 16:41:07
+ * @Description: 计费管理-收费管理-支付管理+添加/编辑/删除 6h
+-->
+
+<template>
+  <div class="content">
+    <div>
+      <organ-tree @organId="currentOrganId"></organ-tree>
+      <div class="content-right">
+        <div class="search">
+          <el-input
+                  clearable
+                  placeholder="机构代码/机构名称"
+                  class="search-input"
+                  v-trim
+                  v-model.trim="mixins_query.questParams"
+          ></el-input>
+          <el-button
+                  class="search-btn"
+                  type="primary"
+                  @click="mixins_search()"
+                  :disabled="mixins_onQuery"
+                  :loading="mixins_onQuery"
+                  icon="el-icon-search"
+          >搜索</el-button
+          >
+          <!-- <el-button class="el-fl-right" type="primary" @click="addOrEdit('add')"
+            >添加</el-button
+          > -->
+          <el-tooltip
+                  placement="bottom"
+                  class="item"
+                  effect="light"
+                  content="添加"
+          >
+          <span class="zoniot_font item el-fl-right" @click="addOrEdit('add')"
+          >&#xe664;</span
+          >
+          </el-tooltip>
+        </div>
+        <zz-table
+                :settings="{ showIndex: true }"
+                :cols="cols"
+                :loading="mixins_onQuery"
+                :data="mixins_list"
+                :pageset="mixins_pageset"
+                @page-change="pageChange"
+                @selection-change="selectionChange"
+        >
+          <template slot-scope="scope" slot="transactionsNumber">
+          <span
+                  v-if="scope.row.transactionsNumber"
+                  class="el-link"
+                  @click="toTransactionDetails(scope.row)"
+          >{{ scope.row.transactionsNumber }}</span
+          >
+            <span v-else>{{ scope.row.transactionsNumber }}</span>
+          </template>
+          <template slot-scope="scope" slot="opt">
+            <!-- <el-button type="primary" @click="addOrEdit('edit', scope.index)"
+              >编辑</el-button
+            >
+            <el-button @click="deleteRow(scope.row)" :loading="scope.row.onDelete"
+              >删除</el-button
+            > -->
+            <div class="opt">
+              <el-tooltip
+                      class="item"
+                      effect="light"
+                      placement="bottom"
+                      content="编辑"
+              >
+              <span class="zoniot_font" @click="addOrEdit('edit', scope.index)"
+              >&#xe689;</span
+              >
+              </el-tooltip>
+              <el-tooltip
+                      class="item"
+                      effect="light"
+                      placement="bottom"
+                      content="删除"
+              >
+              <span
+                      class="zoniot_font red"
+                      @click="deleteRow(scope.row)"
+              >&#xe673;</span
+              >
+              </el-tooltip>
+            </div>
+          </template>
+        </zz-table>
+      </div>
+    </div>
+    <save-edits v-if="showaddDialog"></save-edits>
+
+  </div>
+</template>
+
+<script>
+import list from "@/js/list.js";
+import saveEdits from './pageJump/saveEdits.vue'
+export default {
+  mixins: [list],
+  data() {
+    return {
+      statusOptions: [],
+      currentId: "",
+      cols: [
+        {
+          label: "所属社区",
+          prop: "code",
+          width: 120,
+        },
+        {
+          label: "楼栋名称",
+          prop: "name",
+        },
+        {
+          label: "单元",
+          prop: "agentbranchType",
+        },
+        {
+          label: "房屋号",
+          prop: "mchid",
+          width: 150,
+        },
+        {
+          label: "建筑面积",
+          prop: "paykey",
+          format(val) {
+            const str = val.toString();
+            const len = str.length;
+            let result = "";
+            if (len <= 10) {
+              let lastStr = str.substr(5);
+              result = lastStr.padStart(len, "*");
+            } else {
+              let lastStr = str.substr(Math.floor(len / 2));
+              result = lastStr.padStart(Math.ceil(len / 2) + 5, "*");
+            }
+            return result;
+          },
+          width: 220,
+        },
+        {
+          label: "使用状态",
+          prop: "appid",
+          width: 220,
+        },
+        {
+          label: "操作",
+          slot: "opt",
+          width: 150,
+        },
+      ],
+      showaddDialog:false,
+    };
+  },
+  components: {
+    saveEdits
+    // viewDetail
+  },
+  methods: {
+    toTransactionDetails(row) {
+      const { id, type } = row;
+      this.$router.push({
+        name: "main",
+        query: {
+          url: "/BillingManage/FinancialManage/ReconciliationManage/TransactionDetails",
+          agentbranchId: id,
+          payType: type,
+          prevName: "支付管理",
+        },
+      });
+    },
+    addOrEdit(todo, index) {
+      new Promise((resolve) => {
+        let row = { companyOrgId: this.mixins_query.companyId },
+          title = "编辑支付机构";
+        if ("add" == todo) {
+          title = "添加支付机构";
+        } else {
+          Object.assign(row, this.mixins_list[index] || {});
+          row = JSON.parse(JSON.stringify(row));
+        }
+        // this.$store.dispatch("openModal", {
+        //   url: "/BillingManage/ChargeManage/PaymentManage/AddOrEdit",
+        //   title: title,
+        //   width: "520px",
+        //   height: "650px",
+        //   // showCancelButton: true,
+        //   // showResetButton: true,
+        //   showFooter: false,
+        //   props: {
+        //     data: row,
+        //     todo: todo,
+        //     callback: resolve,
+        //   },
+        // });
+        this.$router.push('/housingManagement/pageJump/saveEdits')
+      }).then(() => {
+        this.mixins_search("refresh");
+      });
+    },
+    deleteRow(row) {
+      const { name } = row;
+      let title = `您确定要删除支付机构“${name}”`;
+      this.$msgBox(title)
+        .then(() => {
+          this.$http
+            .putForm("/pay/deletePayPayAgentbranch", { id: row.id })
+            .then(({ status, msg }) => {
+              this.$delete(row, "onDelete");
+              if (0 === status) {
+                this.$message.success(msg);
+                this.mixins_search("del");
+              } else {
+                this.$message.error(msg);
+              }
+            })
+            .catch(() => {
+              this.$delete(row, "onDelete");
+            });
+        })
+        .catch(() => {});
+    },
+    currentOrganId(data) {
+      this.currentId = data || "";
+    },
+  },
+  watch: {
+    currentId(newValue, oldValue) {
+      this.mixins_query.companyId = newValue;
+      this.mixins_search();
+    },
+  },
+  created() {
+    this.mix_path = ""; // 权限
+    this.mixins_dataUrl = "/pay/getAllPayPayAgentbranch"; // 分页查询接口
+    this.mixins_query = {
+      questParams: "",
+      companyId: "",
+    };
+    this.mixins_search("search");
+  },
+};
+</script>
+<style lang="scss" scoped>
+  .content{
+    .content-right {
+      width: calc(100% - 280px);
+      float: right;
+    }
+  }
+</style>

+ 184 - 0
operationSupport/src/views/shopManagement/pageJump/saveEdits.vue

@@ -0,0 +1,184 @@
+<!--
+ * @Author: zouwenying
+ * @Date: 2020-10-27 09:51:50
+ * @LastEditTime: 2021-04-19 09:27:00
+ * @LastEditors: zwy
+ * @Description: In User Settings Edit
+ * @FilePath: \UMIS\src\views\system\dictionarys\popups\AddOrEdit.vue
+-->
+<template>
+    <div class="alert-body__main_content">
+        <div class="blockName">房屋编辑(<i>*</i>为必填)</div>
+        <div>
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="社区名称" prop="communityName">
+                            <el-input v-model="ruleForm.communityName"></el-input>
+                        </el-form-item>
+                        <el-form-item label="单元" prop="unit">
+                            <el-select v-model="ruleForm.unit" placeholder="请选择单元">
+                                <el-option label="1单元" value="shanghai"></el-option>
+                                <el-option label="2单元" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="房屋号" prop="houseNumber">
+                            <el-select v-model="ruleForm.houseNumber" placeholder="请选择房屋号">
+                                <el-option label="101" value="shanghai"></el-option>
+                                <el-option label="102" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="使用面积">
+                            <el-input v-model="ruleForm.useArea"></el-input>
+                        </el-form-item>
+                        <el-form-item label="房屋朝向">
+                            <div @click="addressQueryClick">
+                                <el-input v-model="ruleForm.orientation" suffix-icon="el-icon-location-outline"></el-input>
+                            </div>
+                        </el-form-item>
+                        <el-form-item label="房屋户型">
+                            <el-input v-model="ruleForm.houseType"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="楼栋" prop="buildingName">
+                            <el-select v-model="ruleForm.buildingName" placeholder="请选择楼栋">
+                                <el-option label="1栋" value="shanghai"></el-option>
+                                <el-option label="2栋" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="楼层" prop="whatFloor">
+                            <el-select v-model="ruleForm.whatFloor" placeholder="请选择楼层">
+                                <el-option label="1F" value="shanghai"></el-option>
+                                <el-option label="2F" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="房屋类型" prop="propertyType">
+                            <el-select v-model="ruleForm.propertyType" placeholder="请选择房屋类型">
+                                <el-option label="民房" value="shanghai"></el-option>
+                                <el-option label="公寓" value="beijing"></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="建筑面积">
+                            <el-input v-model="ruleForm.builtUpArea"></el-input>
+                        </el-form-item>
+                        <el-form-item label="公摊面积">
+                            <el-input v-model="ruleForm.sharedArea"></el-input>
+                        </el-form-item>
+                        <el-form-item label="装修性质">
+                            <el-input v-model="ruleForm.decorationNature"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="备注信息">
+                            <el-input type="textarea" :rows="4" v-model="ruleForm.remark" maxlength="300">
+                            </el-input>
+                            <span style="position:absolute;bottom:0;right:10px">{{ruleForm.remark.length}}/300</span>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </div>
+        <div style="text-align: right;">
+            <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
+            <el-button>取消</el-button>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        data() {
+            return {
+                ruleForm: {
+                    communityName: '',//社区名称
+                    unit:'',//单元
+                    houseNumber:'',//房屋号
+                    useArea:'',//使用面积
+                    orientation:'',//楼栋朝向
+                    houseType:'',//房屋户型
+                    buildingName:'',//楼栋,
+                    whatFloor:'',//楼层
+                    propertyType:'',//房屋类型
+                    builtUpArea:'',//建筑面积
+                    sharedArea:'',//公摊面积
+                    decorationNature:'',//装修性质
+                    remark:'',//备注
+                },
+                rules: {
+                    communityName: [
+                        { required: true, message: '请输入活动名称', trigger: 'change' },
+                        // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+                    ],
+                    unit:[{ required: true, message: '请输入单元', trigger: 'change' }],
+                    houseNumber:[{ required: true, message: '请输入房屋号', trigger: 'change' }],
+                    buildingName:[{ required: true, message: '请输入楼栋', trigger: 'change' }],
+                    whatFloor:[{ required: true, message: '请输入楼层', trigger: 'change' }],
+                    propertyType:[{ required: true, message: '请输入房屋类型', trigger: 'change' }],
+                },
+            }
+        },
+        components:{
+
+        },
+        computed: {},
+        methods: {
+            submitForm(formName) {
+                this.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        alert('submit!');
+                    } else {
+                        console.log('error submit!!');
+                        return false;
+                    }
+                });
+            },
+            resetForm(formName) {
+                this.$refs[formName].resetFields();
+            },
+
+            handleAvatarSuccess(res, file) {
+                this.imageUrl = URL.createObjectURL(file.raw);
+            },
+            beforeAvatarUpload(file) {
+                const isJPG = file.type === 'image/jpeg';
+                const isLt2M = file.size / 1024 / 1024 < 2;
+
+                if (!isJPG) {
+                    this.$message.error('上传头像图片只能是 JPG 格式!');
+                }
+                if (!isLt2M) {
+                    this.$message.error('上传头像图片大小不能超过 2MB!');
+                }
+                return isJPG && isLt2M;
+            },
+            coordinateClick(){
+                this.$confirm('确认关闭?')
+                    .then(_ => {
+                        done();
+                    })
+                    .catch(_ => {});
+            },
+            addressQueryClick(){
+                this.mapPopUpStatus=true;
+            }
+
+
+        },
+        created() {
+
+        }
+    };
+</script>
+<style lang='scss'>
+    .alert-body__main_content{
+        .blockName{
+            padding:20px;
+            i{
+                color:red;
+            }
+        }
+
+    }
+</style>