提交 d3cd186a 编写于 作者: changdi.hao's avatar changdi.hao

Merge branch 'dev-liveSix-20200817' into 'release'

小生态6期   code reviewer  张平

小生态6期   code reviewer  张平

See merge request !212
...@@ -20,6 +20,21 @@ ...@@ -20,6 +20,21 @@
} }
} }
}, },
"@babel/runtime": {
"version": "7.11.2",
"resolved": "http://192.168.110.93:4873/@babel%2fruntime/-/runtime-7.11.2.tgz",
"integrity": "sha1-9UnBPHVMxAuHZEufqfCaapX+BzY=",
"requires": {
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "http://192.168.110.93:4873/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
}
}
},
"@types/node": { "@types/node": {
"version": "10.12.0", "version": "10.12.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz",
...@@ -32,6 +47,51 @@ ...@@ -32,6 +47,51 @@
"integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==",
"dev": true "dev": true
}, },
"@videojs/http-streaming": {
"version": "1.13.2",
"resolved": "http://192.168.110.93:4873/@videojs%2fhttp-streaming/-/http-streaming-1.13.2.tgz",
"integrity": "sha512-U4Xhh+HxGpRBx9Gm0LlEadq85k9BwckzFgZmyhacauhK/27Mz0goKKFAt+BpxBNp2oHVdAdk8NHfneinsqni3Q==",
"requires": {
"aes-decrypter": "3.0.0",
"global": "^4.3.0",
"m3u8-parser": "4.4.0",
"mpd-parser": "0.10.0",
"mux.js": "5.5.1",
"url-toolkit": "^2.1.3",
"video.js": "^6.8.0 || ^7.0.0"
}
},
"@videojs/vhs-utils": {
"version": "1.3.0",
"resolved": "http://192.168.110.93:4873/@videojs%2fvhs-utils/-/vhs-utils-1.3.0.tgz",
"integrity": "sha512-oiqXDtHQqDPun7JseWkirUHGrgdYdeF12goUut5z7vwAj4DmUufEPFJ4xK5hYGXGFDyDhk2rSFOR122Ze6qXyQ==",
"requires": {
"@babel/runtime": "^7.5.5",
"global": "^4.3.2",
"url-toolkit": "^2.1.6"
}
},
"@videojs/xhr": {
"version": "2.5.1",
"resolved": "http://192.168.110.93:4873/@videojs%2fxhr/-/xhr-2.5.1.tgz",
"integrity": "sha512-wV9nGESHseSK+S9ePEru2+OJZ1jq/ZbbzniGQ4weAmTIepuBMSYPx5zrxxQA0E786T5ykpO8ts+LayV+3/oI2w==",
"requires": {
"@babel/runtime": "^7.5.5",
"global": "~4.4.0",
"is-function": "^1.0.1"
},
"dependencies": {
"global": {
"version": "4.4.0",
"resolved": "http://192.168.110.93:4873/global/-/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"abab": { "abab": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
...@@ -73,6 +133,16 @@ ...@@ -73,6 +133,16 @@
} }
} }
}, },
"aes-decrypter": {
"version": "3.0.0",
"resolved": "http://192.168.110.93:4873/aes-decrypter/-/aes-decrypter-3.0.0.tgz",
"integrity": "sha1-eEihwUW5/b9Xrj4rWxvHzwZEqPs=",
"requires": {
"commander": "^2.9.0",
"global": "^4.3.2",
"pkcs7": "^1.0.2"
}
},
"ajv": { "ajv": {
"version": "4.11.8", "version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
...@@ -1746,8 +1816,7 @@ ...@@ -1746,8 +1816,7 @@
"commander": { "commander": {
"version": "2.17.1", "version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
"dev": true
}, },
"commondir": { "commondir": {
"version": "1.0.1", "version": "1.0.1",
...@@ -1895,6 +1964,12 @@ ...@@ -1895,6 +1964,12 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
}, },
"cropperjs": {
"version": "1.5.7",
"resolved": "http://192.168.110.93:4873/cropperjs/-/cropperjs-1.5.7.tgz",
"integrity": "sha512-sGj+G/ofKh+f6A4BtXLJwtcKJgMUsXYVUubfTo9grERiDGXncttefmue/fyQFvn8wfdyoD1KhDRYLfjkJFl0yw==",
"dev": true
},
"cross-env": { "cross-env": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
...@@ -2281,6 +2356,11 @@ ...@@ -2281,6 +2356,11 @@
} }
} }
}, },
"dom-walk": {
"version": "0.1.2",
"resolved": "http://192.168.110.93:4873/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"domain-browser": { "domain-browser": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
...@@ -2443,6 +2523,11 @@ ...@@ -2443,6 +2523,11 @@
"is-arrayish": "^0.2.1" "is-arrayish": "^0.2.1"
} }
}, },
"es5-shim": {
"version": "4.5.14",
"resolved": "http://192.168.110.93:4873/es5-shim/-/es5-shim-4.5.14.tgz",
"integrity": "sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg=="
},
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
...@@ -2718,6 +2803,10 @@ ...@@ -2718,6 +2803,10 @@
"loader-utils": "~0.2.5" "loader-utils": "~0.2.5"
} }
}, },
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#1.3.8"
},
"filename-regex": { "filename-regex": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
...@@ -3575,6 +3664,22 @@ ...@@ -3575,6 +3664,22 @@
} }
} }
}, },
"global": {
"version": "4.3.2",
"resolved": "http://192.168.110.93:4873/global/-/global-4.3.2.tgz",
"integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
"requires": {
"min-document": "^2.19.0",
"process": "~0.5.1"
},
"dependencies": {
"process": {
"version": "0.5.2",
"resolved": "http://192.168.110.93:4873/process/-/process-0.5.2.tgz",
"integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
}
}
},
"globals": { "globals": {
"version": "9.18.0", "version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
...@@ -3929,6 +4034,11 @@ ...@@ -3929,6 +4034,11 @@
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
"dev": true "dev": true
}, },
"individual": {
"version": "2.0.0",
"resolved": "http://192.168.110.93:4873/individual/-/individual-2.0.0.tgz",
"integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c="
},
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
...@@ -4077,6 +4187,11 @@ ...@@ -4077,6 +4187,11 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
}, },
"is-function": {
"version": "1.0.2",
"resolved": "http://192.168.110.93:4873/is-function/-/is-function-1.0.2.tgz",
"integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
},
"is-glob": { "is-glob": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
...@@ -4372,10 +4487,6 @@ ...@@ -4372,10 +4487,6 @@
"base64-arraybuffer": "^0.1.5" "base64-arraybuffer": "^0.1.5"
} }
}, },
"file-saver": {
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
"from": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
},
"html2canvas": { "html2canvas": {
"version": "1.0.0-alpha.12", "version": "1.0.0-alpha.12",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
...@@ -4404,6 +4515,11 @@ ...@@ -4404,6 +4515,11 @@
} }
} }
}, },
"keycode": {
"version": "2.2.0",
"resolved": "http://192.168.110.93:4873/keycode/-/keycode-2.2.0.tgz",
"integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
},
"kind-of": { "kind-of": {
"version": "3.2.2", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
...@@ -4813,6 +4929,14 @@ ...@@ -4813,6 +4929,14 @@
"yallist": "^2.1.2" "yallist": "^2.1.2"
} }
}, },
"m3u8-parser": {
"version": "4.4.0",
"resolved": "http://192.168.110.93:4873/m3u8-parser/-/m3u8-parser-4.4.0.tgz",
"integrity": "sha512-iH2AygTFILtato+XAgnoPYzLHM4R3DjATj7Ozbk7EHdB2XoLF2oyOUguM7Kc4UVHbQHHL/QPaw98r7PbWzG0gg==",
"requires": {
"global": "^4.3.2"
}
},
"map-age-cleaner": { "map-age-cleaner": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "http://192.168.110.93:4873/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "resolved": "http://192.168.110.93:4873/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
...@@ -5007,6 +5131,14 @@ ...@@ -5007,6 +5131,14 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
}, },
"min-document": {
"version": "2.19.0",
"resolved": "http://192.168.110.93:4873/min-document/-/min-document-2.19.0.tgz",
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"requires": {
"dom-walk": "^0.1.0"
}
},
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
...@@ -5049,11 +5181,27 @@ ...@@ -5049,11 +5181,27 @@
"minimist": "0.0.8" "minimist": "0.0.8"
} }
}, },
"mpd-parser": {
"version": "0.10.0",
"resolved": "http://192.168.110.93:4873/mpd-parser/-/mpd-parser-0.10.0.tgz",
"integrity": "sha512-eIqkH/2osPr7tIIjhRmDWqm2wdJ7Q8oPfWvdjealzsLV2D2oNe0a0ae2gyYYs1sw5e5hdssDA2V6Sz8MW+Uvvw==",
"requires": {
"@babel/runtime": "^7.5.5",
"@videojs/vhs-utils": "^1.1.0",
"global": "^4.3.2",
"xmldom": "^0.1.27"
}
},
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"mux.js": {
"version": "5.5.1",
"resolved": "http://192.168.110.93:4873/mux.js/-/mux.js-5.5.1.tgz",
"integrity": "sha512-5VmmjADBqS4++8pTI6poSRJ+chHdaoI4XErcQPM5w4QfwaDl+FQlSI0iOgWbYDn6CBCbDRKaSCcEiN2K5aHNGQ=="
},
"nan": { "nan": {
"version": "2.11.1", "version": "2.11.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
...@@ -5869,6 +6017,11 @@ ...@@ -5869,6 +6017,11 @@
} }
} }
}, },
"parse-headers": {
"version": "2.0.3",
"resolved": "http://192.168.110.93:4873/parse-headers/-/parse-headers-2.0.3.tgz",
"integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA=="
},
"parse-json": { "parse-json": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
...@@ -5942,6 +6095,11 @@ ...@@ -5942,6 +6095,11 @@
"integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=",
"dev": true "dev": true
}, },
"pdfh5": {
"version": "1.3.19",
"resolved": "http://192.168.110.93:4873/pdfh5/-/pdfh5-1.3.19.tgz",
"integrity": "sha1-bG2kxNzEpCjIfgcQDyMEkiq+PVY="
},
"performance-now": { "performance-now": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
...@@ -5965,6 +6123,11 @@ ...@@ -5965,6 +6123,11 @@
"pinkie": "^2.0.0" "pinkie": "^2.0.0"
} }
}, },
"pkcs7": {
"version": "1.0.2",
"resolved": "http://192.168.110.93:4873/pkcs7/-/pkcs7-1.0.2.tgz",
"integrity": "sha1-ttulJ1KMKUK/wSLOLa/NteWQdOc="
},
"pkg-dir": { "pkg-dir": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
...@@ -6645,8 +6808,7 @@ ...@@ -6645,8 +6808,7 @@
"process": { "process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
"dev": true
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "2.0.0", "version": "2.0.0",
...@@ -6882,6 +7044,11 @@ ...@@ -6882,6 +7044,11 @@
} }
} }
}, },
"qrcodejs2": {
"version": "0.0.2",
"resolved": "http://192.168.110.93:4873/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
"integrity": "sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE="
},
"qs": { "qs": {
"version": "6.5.2", "version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
...@@ -7641,11 +7808,27 @@ ...@@ -7641,11 +7808,27 @@
"integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=",
"dev": true "dev": true
}, },
"rust-result": {
"version": "1.0.0",
"resolved": "http://192.168.110.93:4873/rust-result/-/rust-result-1.0.0.tgz",
"integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=",
"requires": {
"individual": "^2.0.0"
}
},
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}, },
"safe-json-parse": {
"version": "4.0.0",
"resolved": "http://192.168.110.93:4873/safe-json-parse/-/safe-json-parse-4.0.0.tgz",
"integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=",
"requires": {
"rust-result": "^1.0.0"
}
},
"safe-regex": { "safe-regex": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
...@@ -8736,6 +8919,11 @@ ...@@ -8736,6 +8919,11 @@
"glob": "^7.1.2" "glob": "^7.1.2"
} }
}, },
"tsml": {
"version": "1.0.1",
"resolved": "http://192.168.110.93:4873/tsml/-/tsml-1.0.1.tgz",
"integrity": "sha1-ifghi52eJX9H1/a1bQHFpNLGj8M="
},
"tty-browserify": { "tty-browserify": {
"version": "0.0.0", "version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
...@@ -8986,6 +9174,11 @@ ...@@ -8986,6 +9174,11 @@
"requires-port": "^1.0.0" "requires-port": "^1.0.0"
} }
}, },
"url-toolkit": {
"version": "2.2.0",
"resolved": "http://192.168.110.93:4873/url-toolkit/-/url-toolkit-2.2.0.tgz",
"integrity": "sha512-Rde0c9S4fJK3FaHim3DSgdQ8IFrSXcZCpAJo9T7/FA+BoQGhK0ow3mpwGQLJCPYsNn6TstpW7/7DzMpSpz9F9w=="
},
"use": { "use": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
...@@ -9061,6 +9254,187 @@ ...@@ -9061,6 +9254,187 @@
} }
} }
}, },
"video.js": {
"version": "7.8.4",
"resolved": "http://192.168.110.93:4873/video.js/-/video.js-7.8.4.tgz",
"integrity": "sha512-XTWWrhfdrk7nTBkqhWKslfXMpUhsDRsZ2L3ISxjuAgadpiomxFV/OARchtwxO+FdnxTm4njJstPmXbVe3F765g==",
"requires": {
"@babel/runtime": "^7.9.2",
"@videojs/http-streaming": "1.13.2",
"@videojs/xhr": "2.5.1",
"global": "4.3.2",
"keycode": "^2.2.0",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.2"
}
},
"videojs-contrib-hls": {
"version": "5.15.0",
"resolved": "http://192.168.110.93:4873/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz",
"integrity": "sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==",
"requires": {
"aes-decrypter": "1.0.3",
"global": "^4.3.0",
"m3u8-parser": "2.1.0",
"mux.js": "4.3.2",
"url-toolkit": "^2.1.3",
"video.js": "^5.19.1 || ^6.2.0",
"videojs-contrib-media-sources": "4.7.2",
"webwackify": "0.1.6"
},
"dependencies": {
"aes-decrypter": {
"version": "1.0.3",
"resolved": "http://192.168.110.93:4873/aes-decrypter/-/aes-decrypter-1.0.3.tgz",
"integrity": "sha1-nAa4pUNaWtCduTP4oBSvzxhMw04=",
"requires": {
"pkcs7": "^0.2.3"
}
},
"m3u8-parser": {
"version": "2.1.0",
"resolved": "http://192.168.110.93:4873/m3u8-parser/-/m3u8-parser-2.1.0.tgz",
"integrity": "sha1-yBcDKewc1RXQ1Yu4t2LamJbLA2g="
},
"mux.js": {
"version": "4.3.2",
"resolved": "http://192.168.110.93:4873/mux.js/-/mux.js-4.3.2.tgz",
"integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ=="
},
"pkcs7": {
"version": "0.2.3",
"resolved": "http://192.168.110.93:4873/pkcs7/-/pkcs7-0.2.3.tgz",
"integrity": "sha1-ItYGZtAQZcXyRDkJjkpIMEUic74="
},
"video.js": {
"version": "6.13.0",
"resolved": "http://192.168.110.93:4873/video.js/-/video.js-6.13.0.tgz",
"integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==",
"requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "http://192.168.110.93:4873/videojs-font/-/videojs-font-2.1.0.tgz",
"integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "http://192.168.110.93:4873/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-contrib-media-sources": {
"version": "4.7.2",
"resolved": "http://192.168.110.93:4873/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz",
"integrity": "sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==",
"requires": {
"global": "^4.3.0",
"mux.js": "4.3.2",
"video.js": "^5.17.0 || ^6.2.0",
"webwackify": "0.1.6"
},
"dependencies": {
"mux.js": {
"version": "4.3.2",
"resolved": "http://192.168.110.93:4873/mux.js/-/mux.js-4.3.2.tgz",
"integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ=="
},
"video.js": {
"version": "6.13.0",
"resolved": "http://192.168.110.93:4873/video.js/-/video.js-6.13.0.tgz",
"integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==",
"requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "http://192.168.110.93:4873/videojs-font/-/videojs-font-2.1.0.tgz",
"integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "http://192.168.110.93:4873/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-flash": {
"version": "2.2.1",
"resolved": "http://192.168.110.93:4873/videojs-flash/-/videojs-flash-2.2.1.tgz",
"integrity": "sha512-mHu6TD12EKkxMvr8tg4AcfV/DuVLff427nneoZom3N9Dd2bv0sJOWwdLPQH1v5BCuAuXAVuAOba56ovTl+G3tQ==",
"requires": {
"global": "^4.4.0",
"video.js": "^6 || ^7",
"videojs-swf": "5.4.2"
},
"dependencies": {
"global": {
"version": "4.4.0",
"resolved": "http://192.168.110.93:4873/global/-/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"videojs-font": {
"version": "3.2.0",
"resolved": "http://192.168.110.93:4873/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"videojs-hotkeys": {
"version": "0.2.27",
"resolved": "http://192.168.110.93:4873/videojs-hotkeys/-/videojs-hotkeys-0.2.27.tgz",
"integrity": "sha1-Dfl5Urnf8ObMHPikOf7X6snHPwE="
},
"videojs-ie8": {
"version": "1.1.2",
"resolved": "http://192.168.110.93:4873/videojs-ie8/-/videojs-ie8-1.1.2.tgz",
"integrity": "sha1-oj09hgitcZK2nGB3/E64SJmNNdk=",
"requires": {
"es5-shim": "^4.5.1"
}
},
"videojs-swf": {
"version": "5.4.2",
"resolved": "http://192.168.110.93:4873/videojs-swf/-/videojs-swf-5.4.2.tgz",
"integrity": "sha512-FGg+Csioa8/A/EacvFefBdb9Z0rSiMlheHDunZnN3xXfUF43jvjawcWFQnZvrv1Cs1nE1LBrHyUZjF7j2mKOLw=="
},
"videojs-vtt.js": {
"version": "0.15.2",
"resolved": "http://192.168.110.93:4873/videojs-vtt.js/-/videojs-vtt.js-0.15.2.tgz",
"integrity": "sha512-kEo4hNMvu+6KhPvVYPKwESruwhHC3oFis133LwhXHO9U7nRnx0RiJYMiqbgwjgazDEXHR6t8oGJiHM6wq5XlAw==",
"requires": {
"global": "^4.3.1"
}
},
"vm-browserify": { "vm-browserify": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
...@@ -9171,33 +9545,45 @@ ...@@ -9171,33 +9545,45 @@
"resolved": "https://registry.npmjs.org/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.2.tgz", "resolved": "https://registry.npmjs.org/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.2.tgz",
"integrity": "sha512-bZZdUmhT/n9QPdVwR10b8u2A9+Q2L6vyfr3Nls2EDKI3GmuWQwGqBwcgjBWbaM50twyHjXwAPXiKlUhn3JAFtA==" "integrity": "sha512-bZZdUmhT/n9QPdVwR10b8u2A9+Q2L6vyfr3Nls2EDKI3GmuWQwGqBwcgjBWbaM50twyHjXwAPXiKlUhn3JAFtA=="
}, },
"vuedraggable": { "vue-video-player": {
"version": "2.23.2", "version": "5.0.2",
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz", "resolved": "http://192.168.110.93:4873/vue-video-player/-/vue-video-player-5.0.2.tgz",
"integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==", "integrity": "sha512-IZXeRGGSX4YIp54G0Q5cB7iqh6Ok6Dpa2jRkjdyvMWw7MShJuh54/d5QNb1CZ+CvZUzX/TH7osnpir7mBNcFvQ==",
"requires": { "requires": {
"sortablejs": "^1.10.1" "object-assign": "^4.1.1",
"video.js": "^6.6.0",
"videojs-contrib-hls": "^5.12.2",
"videojs-flash": "^2.1.0",
"videojs-hotkeys": "^0.2.20"
}, },
"dependencies": { "dependencies": {
"sortablejs": { "video.js": {
"version": "1.10.2", "version": "6.13.0",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", "resolved": "http://192.168.110.93:4873/video.js/-/video.js-6.13.0.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==",
} "requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
} }
}, },
"vuedraggable": { "videojs-font": {
"version": "2.23.2", "version": "2.1.0",
"resolved": "http://192.168.110.93:4873/vuedraggable/-/vuedraggable-2.23.2.tgz", "resolved": "http://192.168.110.93:4873/videojs-font/-/videojs-font-2.1.0.tgz",
"integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==", "integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
"requires": {
"sortablejs": "^1.10.1"
}, },
"dependencies": { "videojs-vtt.js": {
"sortablejs": { "version": "0.12.6",
"version": "1.10.2", "resolved": "http://192.168.110.93:4873/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz",
"resolved": "http://192.168.110.93:4873/sortablejs/-/sortablejs-1.10.2.tgz", "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==" "requires": {
"global": "^4.3.1"
}
} }
} }
}, },
...@@ -9518,6 +9904,11 @@ ...@@ -9518,6 +9904,11 @@
"integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
"dev": true "dev": true
}, },
"webwackify": {
"version": "0.1.6",
"resolved": "http://192.168.110.93:4873/webwackify/-/webwackify-0.1.6.tgz",
"integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA=="
},
"whatwg-url": { "whatwg-url": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz",
...@@ -9623,6 +10014,17 @@ ...@@ -9623,6 +10014,17 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
}, },
"xhr": {
"version": "2.4.0",
"resolved": "http://192.168.110.93:4873/xhr/-/xhr-2.4.0.tgz",
"integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=",
"requires": {
"global": "~4.3.0",
"is-function": "^1.0.1",
"parse-headers": "^2.0.0",
"xtend": "^4.0.0"
}
},
"xml-name-validator": { "xml-name-validator": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
...@@ -9636,8 +10038,7 @@ ...@@ -9636,8 +10038,7 @@
"xtend": { "xtend": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
"dev": true
}, },
"y18n": { "y18n": {
"version": "3.2.1", "version": "3.2.1",
......
...@@ -87,6 +87,10 @@ ...@@ -87,6 +87,10 @@
<!--<span class="el-icon-info"></span>--> <!--<span class="el-icon-info"></span>-->
<i class="el-icon-info" style="color: #449284;"></i> <i class="el-icon-info" style="color: #449284;"></i>
</el-tooltip> </el-tooltip>
<div style="margin-top: 60px;margin-left: 250px;">
<el-button type="primary" @click="save()" center>保存</el-button>
<el-button @click="cancle()">取 消</el-button>
</div>
</el-form-item> </el-form-item>
<el-dialog <el-dialog
...@@ -325,6 +329,16 @@ ...@@ -325,6 +329,16 @@
}); });
}, },
save(){
this.submitForm();
},
cancle(){
const _this = this;
setTimeout(function () {
_this.$router.go(-1)
}, 100);
}
} }
} }
</script> </script>
......
<template>
<div class="bread-crumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item v-if="curmbFirst" :to="{ path: jumPathThird }">{{curmbFirst}}</el-breadcrumb-item>
<el-breadcrumb-item v-if="jumPathFouth" :to="{ path: jumPathFouth }">{{curmbSecond}}</el-breadcrumb-item>
<el-breadcrumb-item>{{curmbThird}}</el-breadcrumb-item>
<el-breadcrumb-item v-if="curmbFouth">{{curmbFouth}}</el-breadcrumb-item>
</el-breadcrumb>
</div>
</template>
<script>
export default {
props: {
curmbFirst: {
type: String
},
curmbSecond: {
type: String
},
curmbThird: {
type: String
},
curmbFouth: {
type: String
},
jumPathThird: {
type: String
},
jumPathFouth: {
type: String
}
}
}
</script>
<style lang="scss">
.bread-crumb {
position: fixed;
left: 255px;
top: 64px;
width: 100%;
background: #fff;
height: 61px;
padding: 20px 20px 30px;
z-index: 99;
border-top: 3px solid #F0F2F5;
.el-breadcrumb__inner {
font-size: 14px;
}
}
</style>
<template>
<div class="member-management" id="screenSet">
<el-row type="flex" justify="space-around" class="mm-nav" align="middle">
<el-col :span="20">
<el-button :type="orgbtn" round class="margin-l" @click="checkTab(1)">可访问本圈的机构 ({{orgTotal}})</el-button>
<el-button :type="plebtn" round class="margin-l" @click="checkTab(2)">可访问本圈的人员 ({{pleTotal}})</el-button>
<span class="text inlin" @click="goBalck">黑名单</span>
</el-col>
<el-col :span="4" class="mm-r">
<span class="text" @click="goManger" v-if="role == 1">设置管理员</span>
</el-col>
</el-row>
<div class="member-main">
<org
v-show="tab == 1"
:circleId='circleId'
:roleType='roleType'
@setOrgTotal="setOrgTotal"
@refreshRenYuan='refreshRenYuan'
ref='org'
></org>
<renyaun
v-show="tab == 2"
:circleId='circleId'
:roleType='roleType'
@setPleTotal="setPleTotal"
ref='renyaun'
></renyaun>
</div>
</div>
</template>
<script>
import * as commonUtil from "@/utils/utils";
import org from '@/components/yqrange/member-management/org'
import renyaun from '@/components/yqrange/member-management/renyuan'
import { getCircleRole } from '@/utils/yqrange/rangeApi'
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
circleName: {
type: String
}
},
data() {
return {
tab: 1,
orgbtn: 'primary',
plebtn: '',
orgTotal: 0,
pleTotal: 0,
role: 0
}
},
components: {
org,
renyaun
},
created() {
this.getRole()
},
// 挂载到Dom完成时
mounted: function() {
// commonUtil.resizeHeight();
},
methods: {
getRole() {
getCircleRole(this.circleId).then((res) => {
if(res.code == '000000') {
// 0普通人 1 管理员 2主管理员 3内部管理员 4 高级管理员
if (res.data.circleRoleId > 1) {
this.role = 1
}
}
})
},
checkTab(v) {
this.tab = v
if (v == 1) {
this.orgbtn = 'primary'
this.plebtn = ''
} else {
this.orgbtn = ''
this.plebtn = 'primary'
}
},
setOrgTotal(n) {
this.orgTotal = n
},
setPleTotal(n) {
this.pleTotal = n
},
goManger() {
this.$router.push(`/admin-manage?circleId=${this.circleId}&circleName=${this.circleName}`)
},
goBalck() {
this.$router.push(`/blacklist-manage?circleId=${this.circleId}&circleName=${this.circleName}`)
},
// getRole() {
// if (localStorage.getItem("highMainManager") == 1 || localStorage.getItem("mainManager") == 1 || localStorage.getItem("storageIdType") == 1) {
// this.role = 1
// } else {
// this.role = 0
// }
// },
refreshRenYuan() {
this.$refs.renyaun.initRange()
}
}
}
</script>
<style lang="scss" scoped>
.member-management {
padding: 10px;
background: #fff;
.mm-nav {
.margin-l {
margin-left: 20px;
}
.black {
margin-left: 30px;
}
.mm-r {
text-align: right;
padding-right: 20px;
}
.inlin {
margin-left: 10px;
}
.text {
color: #606266;
font-size: 14px;
cursor: pointer;
padding: 10px;
}
}
.member-main {
margin-top: 20px;
}
}
</style>
<template>
<div class="organization-alert">
<div class="organization-left">
<div>已选:{{allSelect.length}}个人员</div>
<div class="hcd">
<div class="tag-list">
<el-tag
:key="item.id"
v-for="item in allSelect"
closable
:disable-transitions="false"
style="marginTop:10px;"
@close="handleClose(item)">
{{item.name.length > 12 ? item.name.slice(0,12)+'...' : item.name}}
</el-tag>
</div>
</div>
<el-row justify="space-around" type="flex" class="btn-left">
<el-button type="primary" size="small" @click="addFn">确定添加</el-button>
<el-button size="small" @click="canclefn">取消</el-button>
</el-row>
</div>
<div class="organization-right">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
<el-input style="width:140px;" size="small" v-model="formOrganization.name" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item label>
<el-input style="width:140px;" size="small" v-model="formOrganization.peopleName" placeholder="请输入人员名称"></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" @click="resetOrgOrPerson()">取消搜索</el-button>
</el-form-item>
</el-form>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" @select-all="selectAllOrganization" @select="selectOrganization" >
<el-table-column type="selection" :selectable="selectableTableList" ></el-table-column>
<el-table-column prop="name" label="人员名称" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有机构信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { getCircleProvincesReq } from '@/utils/yqrange/rangeApi';
import { moPeopleOption, moRelAddSearch, moPeopleSave, clearPeopleCacheOrg} from '@/utils/yqrange/memberApi';
let vm = null;
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
}
},
administrativeValue: "",
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList:[],
formOrganization: {
name: "",//机构名称
peopleName:"",//人员名称
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
allSelect: []
}
},
created() {
vm = this;
},
async mounted() {
this.clear()
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
methods: {
clear() {
clearPeopleCacheOrg(this.circleId)
.then(()=>{
})
.catch((err=>{console.log(err)}))
},
// 多级地区
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
initRange() {
vm.getOrganization();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
//查询所有的人员列表
getOrganization() {
let req = {
circleId: this.circleId,
name: this.formOrganization.peopleName,
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
};
openLoading(vm);
moRelAddSearch(req).then(res => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.peoplesDtoList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
// 获取机构列表的机构状态(是否被选中)
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach(row => {
if (row.status == 1 || row.status == 2) {
this.$nextTick(function () {
this.$refs.multipleOrganization.toggleRowSelection(row);
this.selectionList.push(row);
});
}
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
this.getOrganization();
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
vm.formOrganization.peopleName = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
// 更改每页显示的数据数量
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.searchOrganization();
},
// 更改当前页数
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
this.getOrganization();
},
//人员table中勾选一页
selectAllOrganization(selection) {
this.selectionList = selection;
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (vm.tableOrganization[i].status != 2) {
setList.push(vm.tableOrganization[i].id);
}
}
for (let j = 0; j < selection.length; j++) {
selectList.push(selection[j].id);
}
let intersect = operationData.getIntersect(setList, selectList);
let typeStatus = 0;
if (intersect.length > 0) {
typeStatus = 1;
}
// let = this.$refs.multipleTable.selection
console.log(selection, setList, selectList);
if (setList.length > 0) {
let req = {
ids: setList,
circleId: this.circleId,
type: typeStatus
};
openLoading(vm);
moPeopleOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,vm.tableOrganization)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
}
},
//机构人员中勾选一个
selectOrganization(selection, row) {
this.selectionList = selection;
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
circleId: this.circleId,
type: flag === false ? 0 : 1
};
openLoading(vm);
moPeopleOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,row)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
selectableTableList(row, index) {
// if (this.status4Flag == 1) {
if (row.status == 2) {
return false;
}
return true;
// }
// return true;
},
// 通过check改变展示的已选中的数据列表
checkToList(type,item) {
if (type) {
if (Array.isArray(item)) {
this.allSelect = this.unique([...this.allSelect,...item])
} else {
this.allSelect.push(item)
}
} else {
if (Array.isArray(item)) {
for(var i = this.allSelect.length -1; i >= 0 ; i--){
for(let j = item.length -1; j >= 0; j--) {
if (this.allSelect[i] && item[j] && this.allSelect[i].id == item[j].id) {
this.allSelect.splice(i,1)
}
}
}
} else {
for(let i = this.allSelect.length-1; i >=0; i--) {
if (this.allSelect[i].id == item.id) {
this.allSelect.splice(i,1)
}
}
}
}
},
// 去重
unique(arr) {
let hashTable = {};
let newArr = [];
for(let i=0,l=arr.length;i<l;i++) {
if(!hashTable[arr[i].id] && arr[i].status != 2) {
hashTable[arr[i].id] = true;
newArr.push(arr[i]);
}
}
return newArr;
},
//删除已选中的tag
handleClose(item) {
this.selectOrganization([],item)
this.$refs.multipleOrganization.toggleRowSelection(item);
},
// 确定添加
addFn() {
if (!(this.allSelect&& this.allSelect.length)) {
this.$message.error('已选列表为空');
return
}
let params = {
circleId: this.circleId
}
moPeopleSave(params)
.then(() => {
this.$emit('addPeople')
})
.catch(() => {
this.$message.error('保存失败,请重试');
})
},
// 取消
canclefn() {
this.$emit('handleClose')
}
}
}
</script>
<style lang="scss" scoped>
.organization-alert {
display: flex;
background: #fff;
width: 100%;
padding: 10px;
.organization-left {
width: 20%;
border-right: 1px solid #ddd;
margin-right: 20px;
display: flex;
flex-direction: column;
.hcd {
flex: 1;
overflow: hiddongen;
.tag-list {
margin-top: 20px;
margin-bottom: 40px;
overflow-y: scroll;
max-height: 500px;
&::-webkit-scrollbar{
width: 2px !important;
}
.el-tag{
margin-right:10px;
}
}
}
.btn-left {
height: 40px;
margin-bottom: 20px;
}
}
.organization-right {
flex: 1;
.add-organization {
margin-left: 40px;
line-height: 20px;
cursor: pointer;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
text-align: right;
}
}
}
</style>
<template>
<div class="organization-alert">
<div class="organization-left">
<div>已选:{{allSelect.length}}个机构</div>
<div class="hcd">
<div class="tag-list">
<el-tag
:key="item.id"
v-for="item in allSelect"
closable
:disable-transitions="false"
style="marginTop:10px;"
@close="handleClose(item)">
{{item.orgName.length > 12 ? item.orgName.slice(0,12)+'...' : item.orgName}}
</el-tag>
</div>
</div>
<el-row justify="space-around" type="flex" class="btn-left">
<el-button type="primary" size="small" @click="addFn">确定添加</el-button>
<el-button size="small" @click="canclefn">取消</el-button>
</el-row>
</div>
<div class="organization-right">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
<el-cascader size="small" ref="cascaderRegion" :options="optionsRegion" :props="props"
v-model="formOrganization.administrativeIdList" @change="handleChangeRegion" filterable change-on-select
placeholder="请选择地区"></el-cascader>
</el-form-item>
<el-form-item>
<el-select size="small" v-model="formOrganization.level" placeholder="全部医院级别">
<el-option v-for="(item, index) in organizationRank" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label>
<el-input style="width:140px;" size="small" v-model="formOrganization.name" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" @click="resetOrgOrPerson()">取消搜索</el-button>
</el-form-item>
</el-form>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" @select-all="selectAllOrganization" @select="selectOrganization" >
<el-table-column type="selection" :selectable="selectableTableList" ></el-table-column>
<el-table-column prop="orgName" label="医院名称" align="center"></el-table-column>
<el-table-column prop="orgLevelName" label="医院级别" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有机构信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { getCircleProvincesReq } from '@/utils/yqrange/rangeApi';
import { moOption, moOrgSearch, moSave, clearCacheOrg} from '@/utils/yqrange/memberApi';
let vm = null;
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
}
},
administrativeValue: "",
optionsRegion: [],
organizationRank: [],
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList:[],
formOrganization: {
name: "",
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
allSelect: []
}
},
created() {
vm = this;
},
async mounted() {
this.clear()
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
methods: {
clear() {
clearCacheOrg(this.circleId)
.then(()=>{
})
.catch((err=>{console.log(err)}))
},
// 多级地区
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
initRange() {
this.getRegionOption();
this.listLevels();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
getCircleProvincesReq(idType).then(res => {
closeLoading(this);
if (res.code == "000000") {
if (idType == 1) {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
}else{
vm.optionsRegion = operationData.setRegionOption3(
res.data.provinceList
);
}
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.getOrganization();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级"
}
];
}
});
},
//查询所有的机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let administrativeIdItem = "";
// 如果是外部用户(2),只能看到所在省份的数据
if(idType == 2){
let optionRegionArray = new Array();
optionRegionArray.push(this.optionsRegion[0].provinceId);
administrativeIdItem = operationData.setAdministrativeId(
optionRegionArray
);
}
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel:"",
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moOrgSearch(req).then(res => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
// 获取机构列表的机构状态(是否被选中)
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach(row => {
if (row.status == 1 || row.status == 2) {
this.$nextTick(function () {
this.$refs.multipleOrganization.toggleRowSelection(row);
this.selectionList.push(row);
});
}
});
},
//机构搜索
getOrganizationChoose() {
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0"){
administrativeIdItem=""
}
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: this.formOrganization.level,
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moOrgSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "" &&
searchForm.name == ""
) {
this.searchOrganizationType = "";
this.getOrganization();
} else {
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
vm.formOrganization.administrativeId = vm.optionsRegion[0].id;
vm.formOrganization.administrativeIdList = [];
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.formOrganization.level = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
// 选择地区
handleChangeRegion(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
},
// 更改每页显示的数据数量
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.searchOrganization();
},
// 更改当前页数
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
if (this.searchOrganizationType == "choose") {
this.getOrganizationChoose();
} else {
this.getOrganization();
}
},
//机构table中勾选一页
selectAllOrganization(selection) {
this.selectionList = selection;
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (vm.tableOrganization[i].status != 2) {
setList.push(vm.tableOrganization[i].id);
}
}
for (let j = 0; j < selection.length; j++) {
selectList.push(selection[j].id);
}
let intersect = operationData.getIntersect(setList, selectList);
let typeStatus = 0;
if (intersect.length > 0) {
typeStatus = 1;
}
// let = this.$refs.multipleTable.selection
console.log(selection, setList, selectList);
if (setList.length > 0) {
let req = {
ids: setList,
circleId: this.circleId,
type: typeStatus
};
openLoading(vm);
moOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,vm.tableOrganization)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
}
},
//机构table中勾选一个
selectOrganization(selection, row) {
this.selectionList = selection;
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
circleId: this.circleId,
type: flag === false ? 0 : 1
};
openLoading(vm);
moOption(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type,row)
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
selectableTableList(row, index) {
// if (this.status4Flag == 1) {
if (row.status == 2) {
return false;
}
return true;
// }
// return true;
},
// 通过check改变展示的已选中的数据列表
checkToList(type,item) {
if (type) {
if (Array.isArray(item)) {
this.allSelect = this.unique([...this.allSelect,...item])
} else {
this.allSelect.push(item)
}
} else {
if (Array.isArray(item)) {
for(var i = this.allSelect.length -1; i >= 0 ; i--){
for(let j = item.length -1; j >= 0; j--) {
if (this.allSelect[i] && item[j] && this.allSelect[i].id == item[j].id) {
this.allSelect.splice(i,1)
}
}
}
} else {
for(let i = this.allSelect.length-1; i >=0; i--) {
if (this.allSelect[i].id == item.id) {
this.allSelect.splice(i,1)
}
}
}
}
},
// 去重
unique(arr) {
let hashTable = {};
let newArr = [];
for(let i=0,l=arr.length;i<l;i++) {
if(!hashTable[arr[i].id] && arr[i].status != 2) {
hashTable[arr[i].id] = true;
newArr.push(arr[i]);
}
}
return newArr;
},
//删除已选中的tag
handleClose(item) {
this.selectOrganization([],item)
this.$refs.multipleOrganization.toggleRowSelection(item);
},
// 确定添加
addFn() {
if (!(this.allSelect&& this.allSelect.length)) {
this.$message.error('已选列表为空');
return
}
let params = {
circleId: this.circleId
}
moSave(params)
.then(() => {
this.$emit('addOrg')
})
.catch(() => {
this.$message.error('保存失败,请重试');
})
},
// 取消
canclefn() {
this.$emit('handleClose')
}
}
}
</script>
<style lang="scss" scoped>
.organization-alert {
display: flex;
background: #fff;
width: 100%;
padding: 10px;
.organization-left {
width: 20%;
border-right: 1px solid #ddd;
margin-right: 20px;
display: flex;
flex-direction: column;
.hcd {
flex: 1;
overflow: hidden;
.tag-list {
margin-top: 20px;
margin-bottom: 40px;
display: table-caption;
overflow-y: scroll;
max-height: 500px;
&::-webkit-scrollbar{
width: 2px !important;
}
}
}
.btn-left {
height: 40px;
margin-bottom: 20px;
}
}
.organization-right {
flex: 1;
.add-organization {
margin-left: 40px;
line-height: 20px;
cursor: pointer;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
text-align: right;
}
}
}
</style>
<template>
<div class="organization">
<el-row type="flex" class="row-bg">
<el-col class="add-organization" >
<i class="el-icon-circle-plus-outline" @click="dialogOrgFn()"></i>
<i class="text" @click="dialogOrgFn()">添加机构</i>
</el-col>
<el-col class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label>
<el-cascader size="small" ref="cascaderRegion" :options="optionsRegion" :props="props"
v-model="formOrganization.administrativeIdList" @change="handleChangeRegion" filterable change-on-select
placeholder="请选择地区"></el-cascader>
</el-form-item>
<el-form-item>
<el-select size="small" v-model="formOrganization.level" placeholder="全部医院级别">
<el-option v-for="(item, index) in organizationRank" :key="index" :label="item.label" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label>
<el-input style="width:140px;" size="small" v-model="formOrganization.name" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" @click="resetOrgOrPerson()">取消搜索</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="orgName" label="医院名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="orgLevelName" label="医院级别" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="140">
<template slot-scope="scope">
<el-button @click="detel(scope.row)" type="text" size="small" style="color:red">删除</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有机构信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalOrganization"></el-pagination>
</div>
<el-dialog
title="添加机构"
:visible.sync="dialogOrg"
width="80%"
top="5vh"
:before-close="handleClose">
<check-org
v-if="dialogOrg"
:circleId='circleId'
:roleType='roleType'
@addOrg="addOrg"
@handleClose="handleClose">
</check-org>
</el-dialog>
<!-- 删除 弹窗 -->
<el-dialog
title="确认删除"
:show-close="false"
:visible.sync="deleteVisible"
:close-on-click-modal="false"
width="600px"
center
>
<p style="text-align: center;">{{detelMessage}}</p>
<span slot="footer" class="dialog-footer">
<el-button @click="confirmDelete">删 除</el-button>
<el-button type="primary" @click="hideDeleteFrom">取 消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { moRelSearch, morDeleteOrg } from '@/utils/yqrange/memberApi';
import { getOrgProvincesReq } from '@/utils/yqrange/rangeApi';
import checkOrg from './checkOrg'
let vm = null;
export default {
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
}
},
administrativeValue: "",
optionsRegion: [],
organizationRank: [],
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList:[],
formOrganization: {
name: "",
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
dialogOrg: false,
deleteVisible: false,
detelMessage: '',
clickItem: null
}
},
components: {
checkOrg
},
created() {
vm = this;
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
},
mounted() {
},
methods: {
initRange() {
this.getRegionOption();
this.listLevels();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
getOrgProvincesReq(idType,this.circleId,1).then(res => {
closeLoading(this);
if (res.code == "000000" && res.data) {
vm.optionsRegion = operationData.setRegionOption2(res.data.provinceList)
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.getOrganization();
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//机构搜索
getOrganizationChoose() {
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0"){
administrativeIdItem=""
}
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: this.formOrganization.level,
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moRelSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.setOrgTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//查询机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let administrativeIdItem = "";
// 如果是外部用户(2),只能看到所在省份的数据
if(idType == 2){
let optionRegionArray = new Array();
optionRegionArray.push(this.optionsRegion[0].provinceId);
administrativeIdItem = operationData.setAdministrativeId(
optionRegionArray
);
}
// let administrativeIdItem = "";
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel:"",
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType
};
openLoading(vm);
moRelSearch(req).then(res => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.setOrgTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级"
}
];
}
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "" &&
searchForm.name == ""
) {
console.log("wei")
this.searchOrganizationType = "";
this.getOrganization();
} else {
console.log("choose")
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
// vm.formOrganization.administrativeId = "0";
// vm.formOrganization.administrativeIdList = ["0"];
vm.formOrganization.administrativeId = vm.optionsRegion[0].id;
vm.formOrganization.administrativeIdList = [];
vm.formOrganization.administrativeIdList.push(vm.optionsRegion[0].value);
vm.formOrganization.level = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
handleChangeRegion(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
console.log(value, vm.administrativeValue);
},
//机构table修改
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.searchOrganization();
},
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
if (this.searchOrganizationType == "choose") {
this.getOrganizationChoose();
} else {
this.getOrganization();
}
},
detel(item) {
this.detelMessage = `删除后 "【${item.orgName}】" 将无法访问本圈,确定删除吗?`
this.deleteVisible = true
this.clickItem = item
},
confirmDelete() {
let params = {
circleId: this.circleId,
orgIds: [this.clickItem.id]
}
morDeleteOrg(params).then((res) => {
if (res.code == "000000") {
this.$message({
type: 'success',
message: '删除成功!'
});
this.deleteVisible = false
this.searchOrganization()
this.$emit('refreshRenYuan')
}
}).catch(() => {
this.deleteVisible = false
this.$message.error('删除失败,请稍后重试');
})
},
hideDeleteFrom() {
this.deleteVisible = false
this.detelMessage = ''
this.clickItem = null
},
setOrgTotal() {
vm.$emit('setOrgTotal',vm.totalOrganization)
},
dialogOrgFn() {
this.dialogOrg = true
},
handleClose() {
this.dialogOrg = false
},
addOrg() {
this.dialogOrg = false
this.searchOrganization()
this.$emit('refreshRenYuan')
}
}
}
</script>
<style >
.organization .el-dialog {
max-height: 90%;
overflow: scroll;
}
</style>
<style lang="scss" scoped>
.organization {
.add-organization {
margin-left: 36px;
line-height: 20px;
width: 120px;
cursor: pointer;
padding-top: 10px;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
text-align: right;
flex: 1;
}
}
</style>
<template>
<div class="organization">
<el-row type="flex" class="row-bg">
<el-col class="add-organization">
<i class="el-icon-circle-plus-outline" @click="dialogMemberFn()"></i>
<i class="text" @click="dialogMemberFn()">添加人员</i>
</el-col>
<el-col class="organization-search">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline" >
<el-form-item label="机构:">
<el-input style="width:140px;" size="small" v-model="formOrganization.orgName" placeholder="请输入机构名称"></el-input>
</el-form-item>
<el-form-item label="姓名:">
<el-input style="width:140px;" size="small" v-model="formOrganization.name" placeholder="请输入人员姓名"></el-input>
</el-form-item>
<el-form-item label="来源:">
<el-select size="small" v-model="formOrganization.source" placeholder="请选择来源">
<el-option v-for="(item, index) in sourceList" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="serch()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" @click="reset()">取消搜索</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-table class="rim" ref="multipleOrganization" :data="peoplesDtoList" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="name" label="人员" min-width="100" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<el-table-column prop="sourceName" label="来源" align="center"></el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
width="140">
<template slot-scope="scope">
<el-button @click="detel(scope.row)" type="text" size="small" style="color:red" v-if="scope.row.source != 1">删除</el-button>
</template>
</el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有人员信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination background @size-change="handleSizeOrganization" @current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum" :page-sizes="[10, 20, 40]" :page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="totalPeople"></el-pagination>
</div>
<el-dialog
title="添加人员"
:visible.sync="dialogOrg"
width="80%"
top="5vh"
:before-close="handleClose">
<add-member
v-if="dialogOrg"
:circleId='circleId'
:roleType='roleType'
@addPeople="addPeople"
@handleClose="handleClose">
</add-member>
</el-dialog>
<!-- 删除 弹窗 -->
<el-dialog
title="确认删除"
:show-close="false"
:visible.sync="deleteVisible"
:close-on-click-modal="false"
width="600px"
center
>
<p style="text-align: center;">{{detelMessage}}</p>
<span slot="footer" class="dialog-footer">
<el-button @click="confirmDelete">删 除</el-button>
<el-button type="primary" @click="hideDeleteFrom">取 消</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import * as operationData from "@/utils/operation";
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import { mpRelSearch, mprDeleteOrg } from '@/utils/yqrange/memberApi';
import addMember from './addMember.vue'
let vm = null;
export default {
components: {
addMember
},
props: {
circleId: {
type: Number | String,
default: 1
},
roleType: {
type: Number | String,
default: 1
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value
};
vm.GET("basic-data/position/towns", req).then(res => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
}
},
administrativeValue: "",
optionsRegion: [],
sourceList: [
{
label: '全部',
value: 0
},
{
label: '可访问本圈的机构',
value: 1
},
{
label: '手动添加',
value: 2
},
],
peoplesDtoList: [],
totalPeople: 10,
selectionList:[],
formOrganization: {
name: '',
orgName: '',
source: 0,
pageNum: 1,
pageSize: 10
},
dialogOrg:false,
deleteVisible: false,
detelMessage: ''
}
},
created() {
vm = this;
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
this.initRange();
},
mounted() {
},
methods: {
initRange() {
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.orgName = "";
this.formOrganization.source = 0
this.getList()
},
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
serch() {
this.formOrganization.pageNum = 1;
this.getList()
},
getList() {
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
countryFlag: true,
name: this.formOrganization.name.trim(),
orgName: this.formOrganization.orgName.trim(),
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
source: this.formOrganization.source,
};
openLoading(vm);
mpRelSearch(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.peoplesDtoList = res.data.peoplesDtoList;
this.totalPeople = res.data.total;
this.setPleTotal()
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//重置机构、人员查询
reset() {
this.initRange()
},
//机构table修改
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.getList();
},
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
this.getList();
},
detel(item) {
this.detelMessage = `删除后 "【${item.name}】" 将无法访问本圈, 确定删除么?`
this.deleteVisible = true
this.clickItem = item
},
confirmDelete() {
let params = {
circleId: this.circleId,
docIds: [this.clickItem.id]
}
mprDeleteOrg(params).then((res) => {
this.$message({
type: 'success',
message: '删除成功!'
});
this.deleteVisible = false
this.formOrganization.pageNum = 1;
this.getList()
}).catch(() => {
this.$message.error('删除失败,请稍后重试');
})
},
hideDeleteFrom() {
this.deleteVisible = false
this.detelMessage = ''
this.clickItem = null
},
setPleTotal() {
this.$emit('setPleTotal',this.totalPeople)
},
dialogMemberFn() {
this.dialogOrg = true
},
handleClose() {
this.dialogOrg = false
},
addPeople() {
this.dialogOrg = false
this.initRange()
}
}
}
</script>
<style lang="scss" scoped>
.organization {
.add-organization {
margin-left: 20px;
line-height: 20px;
width: 120px;
cursor: pointer;
padding-top: 10px;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
flex: 1;
margin-right: 10px;
text-align: right;
}
}
</style>
...@@ -166,7 +166,6 @@ ...@@ -166,7 +166,6 @@
getRegionOption() { getRegionOption() {
openLoading(vm); openLoading(vm);
let idType = localStorage.getItem("storageIdType"); let idType = localStorage.getItem("storageIdType");
debugger
getCircleProvincesReq(idType).then(res => { getCircleProvincesReq(idType).then(res => {
closeLoading(this); closeLoading(this);
if (res.code == "000000") { if (res.code == "000000") {
......
...@@ -58,8 +58,11 @@ const yqRange = r => require.ensure([], () => r(require('../views/yqrange/yq-ran ...@@ -58,8 +58,11 @@ const yqRange = r => require.ensure([], () => r(require('../views/yqrange/yq-ran
const liveManage = r => require.ensure([], () => r(require('../views/yqrange/live-manage.vue')), 'live-manage') const liveManage = r => require.ensure([], () => r(require('../views/yqrange/live-manage.vue')), 'live-manage')
const roleManage = r => require.ensure([], () => r(require('../views/yqrange/role-manage.vue')), 'role-manage') const roleManage = r => require.ensure([], () => r(require('../views/yqrange/role-manage.vue')), 'role-manage')
const createRange = r => require.ensure([], () => r(require('../views/yqrange/create-range.vue')), 'create-range') const createRange = r => require.ensure([], () => r(require('../views/yqrange/create-range.vue')), 'create-range')
const rangeManage = r => require.ensure([], () => r(require('../views/yqrange/range-manage.vue')), 'range-manage')
const editRange = r => require.ensure([], () => r(require('../views/yqrange/edit-range.vue')), 'edit-range') const editRange = r => require.ensure([], () => r(require('../views/yqrange/edit-range.vue')), 'edit-range')
const createLive = r => require.ensure([], () => r(require('../views/yqrange/create-live.vue')), 'create-live') const createLive = r => require.ensure([], () => r(require('../views/yqrange/create-live.vue')), 'create-live')
const blackListManage = r => require.ensure([], () => r(require('../views/yqrange/blacklist-manage.vue')), 'blacklist-manage')
const adminManage = r => require.ensure([], () => r(require('../views/yqrange/admin-manage.vue')), 'admin-manage')
const shopList = r => require.ensure([], () => r(require('../views/shop/shop-list.vue')), 'shop-list') const shopList = r => require.ensure([], () => r(require('../views/shop/shop-list.vue')), 'shop-list')
const createShop = r => require.ensure([], () => r(require('../views/shop/create-shop.vue')), 'create-shop') const createShop = r => require.ensure([], () => r(require('../views/shop/create-shop.vue')), 'create-shop')
...@@ -234,10 +237,18 @@ export default [{ ...@@ -234,10 +237,18 @@ export default [{
path: '/role-manage', path: '/role-manage',
component: roleManage component: roleManage
}, },
{
path: '/admin-manage',
component: adminManage
},
{ {
path: '/create-range', path: '/create-range',
component: createRange component: createRange
}, },
{
path: '/range-manage',
component: rangeManage
},
{ {
path: '/create-live', path: '/create-live',
component: createLive component: createLive
...@@ -246,6 +257,10 @@ export default [{ ...@@ -246,6 +257,10 @@ export default [{
path:'/edit-range', path:'/edit-range',
component: editRange component: editRange
}, },
{
path: '/blacklist-manage',
component: blackListManage
},
{ {
path: '/external-resource-manage', path: '/external-resource-manage',
component: externalResourceManage, component: externalResourceManage,
......
...@@ -54,9 +54,9 @@ service.interceptors.request.use(config => { ...@@ -54,9 +54,9 @@ service.interceptors.request.use(config => {
} }
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit
// console.log('环境变量>>>> ', process.env.BUILD_ENV); // console.log('环境变量>>>> ', process.env.BUILD_ENV);
config.headers['token'] = 'B66468F48B5847DE8A5A5CFB0F79022A'; config.headers['token'] = '9606E40DDB704396AB532B2AE771048E';
config.headers['token'] = localStorage.getItem('storageToken') // config.headers['token'] = localStorage.getItem('storageToken')
}else{ }else{
config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
} }
......
...@@ -305,6 +305,20 @@ const vueFilter = { ...@@ -305,6 +305,20 @@ const vueFilter = {
} else if (value == 2) { } else if (value == 2) {
return '取消屏蔽'; return '取消屏蔽';
} }
},
roleAdminStatus: (value) => {
if(value == 0) {
return '普通成员';
}else if(value == 1) {
return '管理员';
}
},
roleAdminButton: (value) => {
if(value == 0) {
return '升为管理员';
} else if(value == 1) {
return '降为普通成员';
}
}, },
areaText: (value) => { areaText: (value) => {
let text = '-'; let text = '-';
...@@ -474,13 +488,13 @@ const vueFilter = { ...@@ -474,13 +488,13 @@ const vueFilter = {
if (value == 0) { if (value == 0) {
return '暂存' return '暂存'
}else if (value == 10) { }else if (value == 10) {
return '线' return '未上线'
}else if (value == 20) { }else if (value == 20) {
return '' return ''
}else if (value == 30) { }else if (value == 30) {
return '上线' return '上线'
} else if (value == 40) { } else if (value == 40) {
return '下线' return '下线'
}else if (value == 50) { }else if (value == 50) {
return '已解散' return '已解散'
}else { }else {
......
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const moRelAddSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/add/search`),
method: 'post',
data: params,
description: '添加人员白名单-查询圈子to添加人员列表',
})
};
export const moPeopleOption = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/option`),
method: 'post',
data: params,
description: '添加白名单人员- 勾选操作',
})
};
export const moPeopleSave = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/save`),
method: 'post',
data: params,
description: '添加白名单人员- 保存',
})
};
export const moRelSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/related/search`),
method: 'post',
data: params,
description: '查询机构-圈子已选机构列表',
})
};
export const clearPeopleCacheOrg = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/option/clearCache/${circleId}`),
method: 'get',
description: '添加白名单人员- 勾选操作清除缓存',
})
};
export const morDeleteOrg = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/related/deleteOrg`),
method: 'post',
data: params,
description: '删除机构- 圈子已选机构',
})
};
export const moOption = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/option`),
method: 'post',
data: params,
description: '添加机构- 勾选操作',
})
};
export const moOptionBlackList = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/black/option`),
method: 'post',
data: params,
description: '黑名单- 勾选操作',
})
};
export const moSave = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/save`),
method: 'post',
data: params,
description: '添加机构-保存',
})
};
export const moSaveBlackList = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/black/save`),
method: 'post',
data: params,
description: '添加黑名单-保存',
})
};
export const moOrgSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/search`),
method: 'post',
data: params,
description: '添加机构-查询所有机构列表',
})
};
export const clearCacheOrg = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/option/clearCache/${circleId}`),
method: 'get',
description: '添加机构- 勾选操作清除缓存',
})
};
export const clearBlackListCacheOrg = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/black/option/clearCache/${circleId}`),
method: 'get',
description: '黑名单-清除缓存',
})
};
export const mpRelSearch = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/related/search`),
method: 'post',
data: params,
description: '查询人员白名单- 圈子已选人员列表',
})
};
export const mprDeleteOrg= (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/people/related/deletePeople`),
method: 'post',
data: params,
description: '删除人员白名单- 圈子已选人员',
})
};
export const getprovinces = (idType) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/provinces/idType/${idType}`),
method: 'get',
description: '根据用户ID 获取选人时省市',
})
};
...@@ -52,3 +52,20 @@ export const getMemberSelectOrgOptionReq = (data) => { ...@@ -52,3 +52,20 @@ export const getMemberSelectOrgOptionReq = (data) => {
export const getOrgProvincesReq = (idType,circleId,type=1) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/provinces/idType/${idType}/${circleId}/${type}`),
method: 'get',
description: '根据用户ID圈子id 获取选人时省市',
})
};
export const getCircleRole = (circleId) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/auth/${circleId}`),
method: 'get',
description: '根据圈子 获取人的角色',
})
};
\ No newline at end of file
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-step title="选择学员范围">3</el-step> <el-step title="选择学员范围">3</el-step>
</el-steps> </el-steps>
</el-col> </el-col>
<div> <div style="white-space: nowrap">
<div v-if="!canNext" class="dis-btn">下一步</div> <div v-if="!canNext" class="dis-btn">下一步</div>
<el-button class="dis-btn-b" v-if="active != 0 && projectStatus == 1 && isPreview != 1" size="small" @click="save">暂存</el-button> <el-button class="dis-btn-b" v-if="active != 0 && projectStatus == 1 && isPreview != 1" size="small" @click="save">暂存</el-button>
<el-button class="dis-btn-b" v-if="active !== 2 && canNext" size="small" type="primary" @click="nextStep">下一步</el-button> <el-button class="dis-btn-b" v-if="active !== 2 && canNext" size="small" type="primary" @click="nextStep">下一步</el-button>
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
/> />
<!-- 设定行政范围与设定机构 --> <!-- 设定行政范围与设定机构 -->
<div class="three-step" v-if="active === 2"> <!-- <div class="three-step" v-if="active === 2">
<el-tabs v-model="activeName" @tab-click="handleClickTabs"> <el-tabs v-model="activeName" @tab-click="handleClickTabs">
<el-tab-pane label="设定行政范围" name="first"> <el-tab-pane label="设定行政范围" name="first">
<select-region ref="selectRegion" :projectId="projectId" :status4Flag="status4Flag"></select-region> <select-region ref="selectRegion" :projectId="projectId" :status4Flag="status4Flag"></select-region>
...@@ -65,7 +65,39 @@ ...@@ -65,7 +65,39 @@
></set-organization> ></set-organization>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> -->
<!-- 改为关联小圈 -->
<div class="three-step" v-if="active === 2">
<el-form :model="formCircle" label-width="130px" class="demo-form-inline">
<el-form-item label="关联小圈:" required>
<el-select
size="small"
v-model="formCircle.microecologyId"
placeholder="请选择关联小圈"
:disabled="status4Flag == 1 || isPreview == 1"
>
<el-option
v-for="item in circleList"
:key="item.id"
:label="`${item.id}-${item.name}`"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item v-show="formCircle.microecologyId" label="圈内可见范围:" required>
<el-select
size="small"
v-model="formCircle.groupType"
placeholder="请选择圈内可见范围"
:disabled="isPreview == 1"
>
<el-option label="全体成员" :value="1"></el-option>
</el-select>
</el-form-item>
</el-form>
</div> </div>
</div> </div>
<dialog-componet :dialogObj="dialogObj" @hide="hide"></dialog-componet> <dialog-componet :dialogObj="dialogObj" @hide="hide"></dialog-componet>
...@@ -178,6 +210,13 @@ export default { ...@@ -178,6 +210,13 @@ export default {
protocolId: 22, protocolId: 22,
protocolContent: '', protocolContent: '',
isFirst: true, // 是否是第一次(不做更新) isFirst: true, // 是否是第一次(不做更新)
// 小圈
formCircle: {
microecologyId: '', // 小圈id
groupType: 1, // 关联类型:1 全部 2:分组
groupIds: [], // 分组id,全部为[]
},
circleList: [],
}; };
}, },
computed: { computed: {
...@@ -425,6 +464,8 @@ export default { ...@@ -425,6 +464,8 @@ export default {
// 查看时,点击下一步直接跳 // 查看时,点击下一步直接跳
if (vm.isPreview == 1) { if (vm.isPreview == 1) {
vm.active = 2; vm.active = 2;
this.getCircleList();
this.getCircleData();
return; return;
} }
// 调用项目信息中的下一步操作 // 调用项目信息中的下一步操作
...@@ -436,13 +477,17 @@ export default { ...@@ -436,13 +477,17 @@ export default {
next(id) { next(id) {
vm.projectId = id; vm.projectId = id;
vm.active = 2; vm.active = 2;
this.getCircleList();
this.getCircleData();
}, },
// 暂存 // 暂存
save() { save() {
if (vm.active == 1) { if (vm.active == 1) {
vm.$refs.CustomBaseinfo.save(false); vm.$refs.CustomBaseinfo.save(false);
} else if (vm.active == 2) { } else if (vm.active == 2) {
vm.regionComplete(); vm.sendCircleData(() => {
vm.$message.info("成功");
});
} }
}, },
confirmFn() { confirmFn() {
...@@ -468,7 +513,7 @@ export default { ...@@ -468,7 +513,7 @@ export default {
}, },
// 完成触发的接口 // 完成触发的接口
hidefn() { hidefn() {
vm.regionComplete(vm.changeStatus); vm.sendCircleData(vm.changeStatus);
}, },
// 选择学元范围暂存 // 选择学元范围暂存
...@@ -572,6 +617,53 @@ export default { ...@@ -572,6 +617,53 @@ export default {
}); });
}, },
// 获取圈子列表
getCircleList() {
vm
.GET("circle/portal/circle/list", {})
.then(res => {
// console.log("查询小圈列表", res);
this.circleList = res.data;
});
},
// 获取圈子数据
getCircleData() {
vm
.GET("portal/portalMicroEcology/relation/query", { projectId: this.projectId })
.then(res => {
// console.log("获取圈子数据", res);
if (res.code == "000000" && res.data) {
this.formCircle.microecologyId = res.data.microecologyId;
this.formCircle.groupType = res.data.groupType;
this.formCircle.groupIds = res.data.groupIds;
}
});
},
// 提交、修改圈子数据
sendCircleData(fishFn) {
const { microecologyId, groupType, groupIds } = this.formCircle;
if (!microecologyId) {
vm.$message({
type: "info",
message: "请选择关联小圈"
});
return;
}
const postData = {
projectId: this.projectId,
microecologyId,
groupType,
groupIds: groupType === 1 ? [0] : groupIds,
}
openLoading(vm);
vm.POST("portal/portalMicroEcology/relation/saveOrUpdate", postData).then(res => {
closeLoading(vm);
if (res.code == "000000" && fishFn) {
fishFn();
}
});
},
// 隐藏弹框 // 隐藏弹框
hide() { hide() {
vm.dialogObj.visible = false; vm.dialogObj.visible = false;
......
...@@ -569,7 +569,7 @@ ...@@ -569,7 +569,7 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<div v-else> <!-- <div v-else>
<el-form :inline="true" :model="formOrganization" class="demo-form-inline"> <el-form :inline="true" :model="formOrganization" class="demo-form-inline">
<el-form-item label> <el-form-item label>
<el-select <el-select
...@@ -627,6 +627,34 @@ ...@@ -627,6 +627,34 @@
:total="totalEcology" :total="totalEcology"
></el-pagination> ></el-pagination>
</div> </div>
</div> -->
<div v-else>
<el-form :model="formCircle" label-width="130px" class="demo-form-inline">
<el-form-item label="关联小圈:" required>
<el-select
size="small"
v-model="formCircle.microecologyId"
placeholder="请选择关联小圈"
:disabled="status4Flag == 1"
>
<el-option
v-for="item in circleList"
:key="item.id"
:label="`${item.id}-${item.name}`"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item v-show="formCircle.microecologyId" label="圈内可见范围:" required>
<el-select
size="small"
v-model="formCircle.groupType"
placeholder="请选择圈内可见范围"
>
<el-option label="全体成员" :value="1"></el-option>
</el-select>
</el-form-item>
</el-form>
</div> </div>
<el-dialog title :visible.sync="dialogShow" width="40%" center> <el-dialog title :visible.sync="dialogShow" width="40%" center>
<p class="dialog-p">设定范围数据已经被其他管理员修改,是否强制提交进行覆盖</p> <p class="dialog-p">设定范围数据已经被其他管理员修改,是否强制提交进行覆盖</p>
...@@ -1204,6 +1232,13 @@ export default { ...@@ -1204,6 +1232,13 @@ export default {
lookedEcology: [], lookedEcology: [],
changedEcology: [], changedEcology: [],
changedEcology2: [], changedEcology2: [],
// 小圈
formCircle: {
microecologyId: '', // 小圈id
groupType: 1, // 关联类型:1 全部 2:分组
groupIds: [], // 分组id,全部为[]
},
circleList: [],
//选择项目组件 数据 //选择项目组件 数据
optionsComponent: [], optionsComponent: [],
optionsCertificate: [], optionsCertificate: [],
...@@ -1683,6 +1718,9 @@ export default { ...@@ -1683,6 +1718,9 @@ export default {
attachmentPDFModel.push(PDFModel); attachmentPDFModel.push(PDFModel);
} }
//} //}
if (option == "add" && this.projectId) {
projectModel.id = this.projectId
}
if (option == "edit" || option == "storageEdit") { if (option == "edit" || option == "storageEdit") {
//编辑 //编辑
projectModel.id = this.formData.id; projectModel.id = this.formData.id;
...@@ -1729,8 +1767,10 @@ export default { ...@@ -1729,8 +1767,10 @@ export default {
this.active++; this.active++;
this.stepData = [false, true, false]; this.stepData = [false, true, false];
if (this.formData.scopeType == 1) { if (this.formData.scopeType == 1) {
this.getEcologySelect(); this.getCircleList();
//this.getEcology(); this.getCircleData();
// this.getEcologySelect();
// this.getEcology();
return; return;
} }
// this.projectId = res.data.id; // this.projectId = res.data.id;
...@@ -1899,7 +1939,7 @@ export default { ...@@ -1899,7 +1939,7 @@ export default {
this.$message.error("输入长度为2-20的内容"); this.$message.error("输入长度为2-20的内容");
return; return;
} }
let urlProjectId = vm.getUrlSearch(window.location.href, "projectId"); let urlProjectId = vm.getUrlSearch(window.location.href, "projectId") || this.projectId;
if (urlProjectId == null) { if (urlProjectId == null) {
let param = { let param = {
...@@ -1914,6 +1954,9 @@ export default { ...@@ -1914,6 +1954,9 @@ export default {
this.$message.info(res.message); this.$message.info(res.message);
} }
}); });
} else if (this.projectId){
this.formData.id = this.projectId
this.insertOrUpdate("storageEdit");
} else { } else {
//console.log('urlProjectId'+urlProjectId); //console.log('urlProjectId'+urlProjectId);
this.insertOrUpdate("storageEdit"); this.insertOrUpdate("storageEdit");
...@@ -1925,19 +1968,20 @@ export default { ...@@ -1925,19 +1968,20 @@ export default {
//暂存步骤2 //暂存步骤2
if (this.formData.scopeType == 1) { if (this.formData.scopeType == 1) {
//小生态暂存 //小生态暂存
if (this.formEcology.ecology == "") { // if (this.formEcology.ecology == "") {
vm.$message.info("完成"); // vm.$message.info("完成");
} else { // } else {
let req = {}; // let req = {};
req.ecology = []; // req.ecology = [];
req.ecology[0] = this.formEcology.ecology; // req.ecology[0] = this.formEcology.ecology;
vm // vm
.POST("portal/scope/v1/" + this.projectId + "/organization", req) // .POST("portal/scope/v1/" + this.projectId + "/organization", req)
.then(res => { // .then(res => {
//console.log('设定小生态范围',res); // //console.log('设定小生态范围',res);
vm.$message.info(res.message); // vm.$message.info(res.message);
}); // });
} // }
this.sendCircleData('storage');
return; return;
} }
if (this.tagsRegion.length == 0) { if (this.tagsRegion.length == 0) {
...@@ -2038,7 +2082,7 @@ export default { ...@@ -2038,7 +2082,7 @@ export default {
vm.formData.attachmentUrl2 != "" vm.formData.attachmentUrl2 != ""
) { ) {
//校验名字 //校验名字
let projectId = vm.getUrlSearch(window.location.href, "projectId"); let projectId = vm.getUrlSearch(window.location.href, "projectId") || this.projectId;
if (projectId == null) { if (projectId == null) {
//新建 //新建
let param = { let param = {
...@@ -2048,7 +2092,7 @@ export default { ...@@ -2048,7 +2092,7 @@ export default {
if (res.code == "000000") { if (res.code == "000000") {
//移动到第二页 选择范围 //移动到第二页 选择范围
// this.operationLast(); // this.operationLast();
this.insertOrUpdate("add"); this.insertOrUpdate();
// this.active++; // this.active++;
// this.stepData = [false, true, false]; // this.stepData = [false, true, false];
//this.initRange(); //this.initRange();
...@@ -2056,6 +2100,8 @@ export default { ...@@ -2056,6 +2100,8 @@ export default {
this.$message.info(res.message); this.$message.info(res.message);
} }
}); });
} else if (this.projectId){
this.insertOrUpdate('add');
} else { } else {
//编辑 //编辑
// this.operationLast(); // this.operationLast();
...@@ -2066,26 +2112,28 @@ export default { ...@@ -2066,26 +2112,28 @@ export default {
//进入第三步 //进入第三步
if (this.formData.scopeType == 1) { if (this.formData.scopeType == 1) {
//设定小生态范围 //设定小生态范围
if (this.formEcology.ecology == "") { // if (this.formEcology.ecology == "") {
vm.$message({ // vm.$message({
type: "info", // type: "info",
message: "请选择小生态范围" // message: "请选择小生态范围"
}); // });
return; // return;
} // }
let req = {}; // let req = {};
req.ecology = []; // req.ecology = [];
req.ecology[0] = this.formEcology.ecology; // req.ecology[0] = this.formEcology.ecology;
vm // vm
.POST("portal/scope/v1/" + this.projectId + "/organization", req) // .POST("portal/scope/v1/" + this.projectId + "/organization", req)
.then(res => { // .then(res => {
console.log("设定小生态范围", res); // console.log("设定小生态范围", res);
if (res.code == "000000") { // if (res.code == "000000") {
this.active++; // this.active++;
this.stepData = [false, false, true]; // this.stepData = [false, false, true];
this.tagDrop(); // this.tagDrop();
} // }
}); // });
// 设定小圈范围
this.sendCircleData('next');
return; return;
} }
if (this.idType == 1) { if (this.idType == 1) {
...@@ -3283,7 +3331,68 @@ export default { ...@@ -3283,7 +3331,68 @@ export default {
}); });
}); });
}, },
// // 获取圈子列表
getCircleList() {
vm
.GET("circle/portal/circle/list", {})
.then(res => {
// console.log("查询小圈列表", res);
this.circleList = res.data;
});
},
// 获取圈子数据
getCircleData() {
vm
.GET("portal/portalMicroEcology/relation/query", { projectId: this.projectId })
.then(res => {
// console.log("获取圈子数据", res);
if (res.code == "000000" && res.data) {
this.formCircle.microecologyId = res.data.microecologyId;
this.formCircle.groupType = res.data.groupType;
this.formCircle.groupIds = res.data.groupIds;
}
});
},
// 提交、修改圈子数据
sendCircleData(type = 'next') {
const { microecologyId, groupType, groupIds } = this.formCircle;
if (!microecologyId) {
if (type == 'next') {
vm.$message({
type: "info",
message: "请选择关联小圈"
});
} else {
vm.$message({
type: "info",
message: "成功"
});
}
return;
}
const postData = {
projectId: this.projectId,
microecologyId,
groupType,
groupIds: groupType === 1 ? [0] : groupIds,
}
openLoading(vm);
vm.POST("portal/portalMicroEcology/relation/saveOrUpdate", postData).then(res => {
closeLoading(vm);
if (res.code == "000000") {
if (type == 'next') {
this.active++;
this.stepData = [false, false, true];
this.tagDrop();
} else {
vm.$message({
type: "info",
message: "成功"
});
}
}
});
},
//机构table修改 //机构table修改
handleSizeOrganization(val) { handleSizeOrganization(val) {
console.log(`每页 ${val} 条`); console.log(`每页 ${val} 条`);
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb> <bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="component-content screenSet" id="screenSet"> <div class="component-content screenSet" id="screenSet">
<div class="header-title">查询条件</div> <div class="header-title">查询条件</div>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;"> <el-row :gutter="30" class="row" type="flex" style="margin-top: 10px;" align='middle' justify='space-around'>
<el-form ref="formInline" :model="formInline" label-width="75px" style="width:100%;"> <el-form ref="formInline" :model="formInline" label-width="75px" style="width:100%;">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目名称:"> <el-form-item label="项目名称:">
<el-input v-model="formInline.projectName" size="small" placeholder="请输入项目名称"></el-input> <el-input v-model="formInline.projectName" size="small" placeholder="请输入项目名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col style="width: 600px">
<el-form-item label="项目时间:"> <el-form-item label="项目时间:">
<el-date-picker <el-date-picker
v-model="formInline.projectBegintime" v-model="formInline.projectBegintime"
...@@ -19,11 +19,7 @@ ...@@ -19,11 +19,7 @@
placeholder="请选择开始时间" placeholder="请选择开始时间"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions0" :picker-options="pickerOptions0"
></el-date-picker> ></el-date-picker> ~
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="~">
<el-date-picker <el-date-picker
v-model="formInline.projectEndtime" v-model="formInline.projectEndtime"
size="small" size="small"
...@@ -35,7 +31,7 @@ ...@@ -35,7 +31,7 @@
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" style="padding:0;text-align:right;padding-right:15px;"> <el-col :span="5" style="padding:0;text-align:right;padding-right:15px; float: right">
<el-button type="primary" size="small" @click="searchList">查询</el-button> <el-button type="primary" size="small" @click="searchList">查询</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button> <el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button>
</el-col> </el-col>
......
<template>
<div class="item-shield">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird" :jumPathThird="jumPathThird" :jumPathFouth="jumPathFouth"></bread-crumb>
<div class="component-content screenSet" id="screenSet">
<div class="header-title">设置管理员</div>
<el-row :gutter="30" class="row" type="flex" style="margin-top: 10px">
<el-form :model="formInline" ref="formInline" label-width="75px" class="form-inline" style=";width:1000px;">
<el-col :span="6">
<el-form-item label="机构:">
<el-input style="width:130px" size="small" v-model="formInline.hospitalName" placeholder="请输入机构名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="名称:">
<el-input style="width:130px" size="small" v-model="formInline.doctorName" placeholder="请输入人员名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="角色:">
<el-select size="small" v-model="formInline.blackStatus" placeholder="请选择角色">
<el-option
v-for="(item, index) in statusList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="padding:0;text-align:right;padding-right:10px;">
<el-button type="primary" size="small" @click="searchList()">搜索</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">取消搜索</el-button>
</el-col>
</el-form>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="人员名称" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<el-table-column fixed="right" label="角色" align="center">
<template slot-scope="scope"><p>{{ scope.row.roleId | roleAdminStatus }}</p></template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="150" align="center">
<template slot-scope="scope">
<el-button
type="text"
size="small"
style="color:#409EFF"
@click="openDialog(scope.row)"
>{{ scope.row.roleId | roleAdminButton }}</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="formInline.pageNo"
:page-sizes="[10, 20, 30, 100]"
:page-size="formInline.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from "@/components/yqrange/breadcrumb-range.vue";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation";
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
return {
curmbFirst: "云鹊小圈",
curmbThird: "设置管理员",
jumPathThird: '/yq-range',
circleId: "",
formInline: {
blackStatus:0,//默认角色
region: ["0"],
administrativeId: "",
orgName: "",
name: "",
roleId: -1,
pageNo: 1,
pageSize: 10
},
statusList: [
{
label: "全部",
value: 0
},
{
label: "普通成员",
value: 1
},
{
label: "管理员",
value: 2
}
],
tableData: [],
totalRows: 0,
shieldBlock: "",//当前角色id
scopeRow: {},
administrativeValue: "",
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
console.log("node", node);
if (node.level == 1) {
let req = {
provinceId: node.data.value
};
vm.GET("basic-data/position/cities", req).then(res => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
console.log("newData", newData);
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value
};
vm.GET("basic-data/position/counties", req).then(res => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
console.log("newData", newData);
resolve(newData);
});
}
}
}
};
},
computed: {
...mapGetters(["_token"])
},
created() {
vm = this;
this.circleId = this.$route.query.circleId;
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.circleName + "&activeName=first";
vm.circleId = vm.getUrlSearch(window.location.href, "circleId");
vm.formInline.blackStatus = 0 ;
vm.search();
},
// 挂载到Dom完成时
mounted: function() {
commonUtil.resizeHeight();
},
methods: {
handleChange(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
if (areaId == "000_0") {
vm.administrativeValue = "";
}
console.log(value, vm.administrativeValue);
},
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
// obj.leaf = true;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
searchList() {
this.formInline.pageNo = 1;
this.search();
},
search() {
let req = {
roleId: vm.formInline.blackStatus-1,
orgName: vm.formInline.hospitalName,
name: vm.formInline.doctorName,
pageNo: vm.formInline.pageNo,
pageSize: vm.formInline.pageSize,
circleId: vm.circleId
};
openLoading(vm);
vm.POST("circle/circle/role/manager/search", req).then(res => {
closeLoading(vm);
vm.setTable(res);
// vm.tableData = res.data.list;
// vm.totalRows = res.data.count;
});
},
setTable(res) {
vm.tableData = [];
vm.totalRows = 0;
if (res.code == "000000") {
vm.tableData = res.data.memberList;
vm.totalRows = res.data.total;
} else {
vm.$message(res.message);
}
},
openDialog(row) {
vm.scopeRow = row;
vm.shieldBlock = row.roleId;
if (row.roleId == 0) {
this.$confirm(`确定要将普通成员“${row.name}”升为管理员?`, '提示', {
confirmButtonText: '确 定',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
// confirm
this.changeStatus()
}).catch(() => {
// cancel
});
}
if (row.roleId == 1) {
this.$confirm(`确定要将管理员“${row.name}”降为普通成员?`, '提示', {
confirmButtonText: '确 定',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
// confirm
this.changeStatus()
}).catch(() => {
// cancel
});
}
},
// 升为管理员/降为普通成员
changeStatus() {
let row = vm.scopeRow;
let option = "";
if (row.roleId == 0) {
option = 1;
} else if (row.roleId == 1) {
option = 0;
}
//升为管理员
let req = {
roleId: option,
id: row.id,
circleId: vm.circleId
};
openLoading(vm);
vm.POST("circle/circle/role/manager/update", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.search();
} else {
vm.$message(res.message);
}
});
},
complete() {
console.log("完成");
},
//重置表单
resetForm() {
vm.formInline = Object.assign(
{},
{
region: ["0"],
administrativeId: "",
hospitalName: "",
doctorName: "",
blackStatus: 0,
pageNo: 1,
pageSize: 10
}
);
vm.searchList();
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.formInline.pageSize = val;
vm.searchList();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.formInline.pageNo = val;
this.search();
}
}
};
</script>
<style lang="scss">
.item-shield {
.component-content {
padding: 10px;
background: #fff;
.complete {
float: right;
}
.header-title{
padding: 10px 12px;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
}
</style>
<template>
<div class="yqrange-index-wrapper">
<bread-crumb
:curmbFirst="curmbFirst"
:curmbSecond="curmbSecond"
:curmbThird="curmbThird"
:jumPathThird="jumPathThird"
:jumPathFouth="jumPathFouth"
></bread-crumb>
<div class="yqrange-index-content screenSet" id="screenSet">
<div class="header-title">黑名单</div>
<el-form
ref="searchForm"
:model="searchForm"
label-width="75px"
label-suffix=":"
:inline="true"
>
<el-row :gutter="10" type="flex" style="margin-top: 10px">
<!-- <p class="add_btn" @click="openDialogBlackList()">+ 添加人员至黑名单</p> -->
<el-col class="add-organization">
<i class="el-icon-circle-plus-outline" @click="openDialogBlackList()"></i>
<i class="text" @click="openDialogBlackList()">添加人员至黑名单</i>
</el-col>
<el-col :span="8">
<el-form-item label="机构">
<el-input size="small" v-model="searchForm.organization" placeholder="请输入机构名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="名称">
<el-input size="small" v-model="searchForm.staffName" placeholder="请输入人员名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="7" style="text-align: right;margin-top: 5px">
<el-button type="primary" size="small" @click="search">搜索</el-button>
<el-button type="default" size="small" @click="searchCancel" style="margin-left:0;">取消搜索</el-button>
</el-col>
</el-row>
</el-form>
<el-table :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;">
<el-table-column prop="name" label="人员名称" min-width="120" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" min-width="120" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" min-width="120" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" min-width="120" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" min-width="120" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" min-width="120" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" min-width="120" align="center"></el-table-column>
<el-table-column label="操作" min-width="200" align="center">
<template slot-scope="scope">
<el-button @click="removeBlackList(scope.row)" type="text" size="small">移出黑名单</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleNumChange"
:current-page="searchForm.pageNo"
:page-sizes="[10, 30, 50, 100]"
:page-size="searchForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows"
></el-pagination>
</div>
</div>
<el-dialog
title="添加人员至黑名单"
:visible.sync="dialogBlackList"
width="80%"
top="5vh"
:before-close="handleClose"
>
<checkBlackList v-if="dialogBlackList" :circleId="circleId" @addOrg="addOrg" @handleClose="handleClose"></checkBlackList>
<!-- :roleType="roleType" -->
</el-dialog>
</div>
</template>
<script>
let vm = null;
import BreadCrumb from "@/components/yqrange/breadcrumb-range.vue";
// import * as operationData from "../../../utils/operation";
import checkBlackList from "./checkBlackList";
export default {
components: {
BreadCrumb,
checkBlackList,
},
data() {
vm = this;
return {
circleId: 0,
curmbFirst: "云鹊小圈",
curmbSecond: "",
curmbThird: "黑名单",
jumPathThird: "/yq-range",
searchForm: {
organization: "",
staffName: "",
pageNo: 1,
pageSize: 10,
},
totalRows: 0,
tableData: [],
selfRoleId: 0,
docIds: [],
dialogBlackList: false,
};
},
created() {
vm = this;
// this.circleId = 131;
this.circleId = this.$route.query.circleId;
this.idType = localStorage.getItem("storageIdType");
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.jumPathFouth =
"/range-manage?id=" +
this.circleId +
"&name=" +
this.circleName +
"&activeName=first";
console.log("alex storageIdType = " + this.idType + ", id = " + this.id);
this.searchList();
},
methods: {
// 搜索
search() {
this.searchForm.pageNo = 1;
this.searchList();
},
searchCancel() {
this.searchForm.organization = "";
this.searchForm.staffName = "";
this.searchList();
},
searchList() {
console.log("查询");
let req = {
circleId: this.circleId,
name: this.searchForm.staffName,
orgName: this.searchForm.organization,
circleId: this.circleId,
pageNo: this.searchForm.pageNo,
pageSize: this.searchForm.pageSize,
};
vm.POST("circle/memberSelect/black/related/search", req)
.then((res) => {
if (res.code == "000000") {
this.tableData = res.data.peoplesDtoList;
this.totalRows = res.data.total;
} else {
// vm.$message.info(res.message);
// vm.$message.info("操作失败,请重试");
}
})
.catch(function (error) {
vm.$message.error(error);
});
},
openDialogBlackList() {
this.dialogBlackList = true;
},
resetForm() {
console.log("重置");
this.searchForm.organization = "";
this.searchForm.staffName = "";
this.search();
},
//移出黑名单
removeBlackList(row) {
vm = this;
this.$confirm(`确定将“${row.name}”移出黑名单吗?`, "", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "alert",
customClass: "range-make-box",
})
.then(() => {
console.log("移出: row.name = " + row.name);
this.docIds = [row.id];
let req = {
circleId: this.circleId,
docIds: this.docIds,
};
vm.POST("circle/memberSelect/black/related/deletePeople", req)
.then((res) => {
if (res.code == "000000") {
vm.$message({
type: "success",
message: "操作成功",
});
this.searchList();
} else {
// vm.$message.info(res.message);
vm.$message.error("操作失败,请重试");
}
})
.catch(function (error) {
vm.$message.error(error);
});
})
.catch(() => {
// cancel
});
},
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.searchForm.pageNo = 1;
this.searchList();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
handleClose() {
this.dialogBlackList = false;
},
addOrg() {
this.handleClose();
this.search();
},
},
};
</script>
<style lang="scss">
.yqrange-index-wrapper {
.yqrange-index-content {
background: #fff;
padding: 10px;
.header-title {
padding: 10px 12px;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
.el-button--text {
color: #449284;
font-size: 14px;
&::after {
content: "";
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type {
&::after {
content: "";
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
}
}
.add_btn {
width: 200px;
margin-top: 10px;
margin-left: 20px;
}
.add-organization {
margin-left: 0px;
line-height: 20px;
width: 200px;
cursor: pointer;
padding-top: 10px;
i {
font-size: 16px;
margin-right: 2px;
}
}
}
</style>
<template>
<div class="organization-alert">
<div class="organization-left">
<div>已选:{{allSelect.length}}个人员</div>
<div class="hcd">
<div class="tag-list">
<el-tag
:key="item.id"
v-for="item in allSelect"
closable
:disable-transitions="false"
style="marginTop:10px;"
@close="handleClose(item)"
>{{item.name.length > 12 ? item.name.slice(0,12)+'...' : item.name}}</el-tag>
</div>
</div>
<el-row type="flex" class="btn-left">
<el-button type="primary" size="small" @click="addFn">确定添加</el-button>
<el-button size="small" @click="canclefn">取消</el-button>
</el-row>
</div>
<div class="organization-right">
<el-form :inline="true" :model="formOrganization" class="demo-form-inline">
<el-form-item label>
<el-input
style="width:200px;"
size="small"
v-model="formOrganization.organization"
placeholder="请输入机构名称"
></el-input>
</el-form-item>
<el-form-item label>
<el-input
style="width:200px;"
size="small"
v-model="formOrganization.name"
placeholder="请输入人员名称"
></el-input>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="searchRefresh()">搜索</el-button>
</el-form-item>
<el-form-item>
<el-button size="small" type="default" @click="searchCancel()">取消搜索</el-button>
</el-form-item>
</el-form>
<el-table
class="rim"
ref="multipleOrganization"
:data="tableOrganization"
tooltip-effect="dark"
@select-all="selectAllOrganization"
@select="selectOrganization"
@cell-mouse-enter="showItemToast"
>
<!-- @cell-mouse-enter="showItemToast"-->
<el-table-column type="selection" :selectable="selectableTableList">
<!-- <template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<p>姓名: {{ scope.row.name }}</p>
<p>科室: {{ scope.row.department }}</p>
<div slot="reference">
<p size="medium">{{ "t" }}</p>
</div>
</el-popover>
</template> -->
</el-table-column>
<el-table-column prop="name" label="人员名称" align="center"></el-table-column>
<el-table-column prop="department" label="所属科室" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属医院" align="center"></el-table-column>
<el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
<el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
<el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
<el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../assets/image/no-content1.png" />
<p>没有相关信息</p>
</div>
</div>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeOrganization"
@current-change="handleCurrentOrganization"
:current-page="formOrganization.pageNum"
:page-sizes="[10, 20, 40]"
:page-size="formOrganization.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalOrganization"
></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "@/utils/utils";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import * as operationData from "@/utils/operation";
import { getCircleProvincesReq } from "@/utils/yqrange/rangeApi";
import {
moOptionBlackList,
moOrgSearch,
moSaveBlackList,
clearBlackListCacheOrg,
} from "@/utils/yqrange/memberApi";
let vm = null;
export default {
props: {
circleId: {
type: Number | String,
default: 1,
},
roleType: {
type: Number | String,
default: 1,
},
},
data() {
return {
props: {
lazy: true,
lazyLoad(node, resolve) {
const { level } = node;
if (node.level == 1) {
let req = {
provinceId: node.data.value,
};
vm.GET("basic-data/position/cities", req).then((res) => {
let newData = vm.setMoreOption(res.data.cityList, "cities");
resolve(newData);
});
} else if (node.level == 2) {
let req = {
cityId: node.data.value,
};
vm.GET("basic-data/position/counties", req).then((res) => {
let newData = vm.setMoreOption(res.data.countyList, "counties");
resolve(newData);
});
} else if (node.level == 3) {
let req = {
countyId: node.data.value,
};
vm.GET("basic-data/position/towns", req).then((res) => {
let newData = vm.setMoreOption(res.data.townList, "towns");
resolve(newData);
});
}
},
},
administrativeValue: "",
optionsRegion: [],
organizationRank: [],
tableOrganization: new Array(),
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
selectionList: [],
formOrganization: {
name: "",
organization: "",
administrativeId: "",
administrativeIdList: [],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10,
},
allSelect: [],
lastHoverAdminId: 0,
};
},
created() {
vm = this;
},
async mounted() {
this.clear();
// this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
this.search();
},
methods: {
search() {
this.searchList();
},
searchRefresh() {
this.formOrganization.pageNum = 1;
this.searchList();
},
searchCancel() {
this.formOrganization.organization = "";
this.formOrganization.name = "";
this.searchRefresh();
},
searchList() {
console.log("黑名单搜索 " + this.circleId);
let req = {
circleId: this.circleId,
name: this.formOrganization.name,
orgName: this.formOrganization.organization,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
};
vm.POST("circle/memberSelect/black/add/search", req)
.then((res) => {
if (res.code == "000000") {
// this.tableData = res.data.peoplesDtoList;
// this.totalRows = res.data.total;
this.tableOrganization = res.data.peoplesDtoList;
this.totalOrganization = res.data.total;
this.initOrganizationStatus();
} else {
// vm.$message.info(res.message);
// vm.$message.info("操作失败,请重试");
}
})
.catch(function (error) {
vm.$message.error(error);
});
},
clear() {
console.log("clear() enter");
clearBlackListCacheOrg(this.circleId)
.then(() => {
this.search();
})
.catch((err) => {
console.log(err);
});
},
// 多级地区
setMoreOption(data, type) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
if (type == "cities") {
obj.label = data[i].cityName;
obj.value = data[i].cityId;
} else if (type == "counties") {
obj.label = data[i].countyName;
obj.value = data[i].countyId;
} else if (type == "towns") {
obj.label = data[i].townName;
obj.value = data[i].townId;
obj.leaf = true;
}
option.push(obj);
}
return option;
},
initRange() {
this.getRegionOption();
this.listLevels();
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.level = "";
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
getCircleProvincesReq(idType)
.then((res) => {
closeLoading(this);
if (res.code == "000000") {
if (idType == 1) {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
} else {
vm.optionsRegion = operationData.setRegionOption3(
res.data.provinceList
);
}
vm.formOrganization.administrativeIdList.push(
vm.optionsRegion[0].value
);
vm.getOrganization();
} else {
this.$message(res.message);
}
})
.catch((err) => {
this.$message.error("请求失败");
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then((res) => {
if (res.code == "000000") {
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级",
},
];
}
});
},
//查询所有的机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let administrativeIdItem = "";
// 如果是外部用户(2),只能看到所在省份的数据
if (idType == 2) {
let optionRegionArray = new Array();
optionRegionArray.push(this.optionsRegion[0].provinceId);
administrativeIdItem = operationData.setAdministrativeId(
optionRegionArray
);
}
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: "",
member: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType,
};
openLoading(vm);
moOrgSearch(req)
.then((res) => {
closeLoading(this);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
})
.catch((err) => {
this.$message.error("请求失败");
});
},
// 获取机构列表的机构状态(是否被选中)
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach((row) => {
if (row.status == 1 || row.status == 2) {
this.$nextTick(function () {
this.$refs.multipleOrganization.toggleRowSelection(row);
this.selectionList.push(row);
});
}
});
},
//机构搜索
getOrganizationChoose() {
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0") {
administrativeIdItem = "";
}
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: administrativeIdItem,
orgLevel: this.formOrganization.level,
member: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType,
roleType: this.roleType,
};
openLoading(vm);
moOrgSearch(req)
.then((res) => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.orgList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
this.$message(res.message);
}
})
.catch((err) => {
this.$message.error("请求失败");
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "" &&
searchForm.name == ""
) {
this.searchOrganizationType = "";
this.getOrganization();
} else {
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
// 更改每页显示的数据数量
handleSizeOrganization(val) {
console.log(`每页 ${val} 条`);
this.formOrganization.pageSize = val;
this.search();
},
// 更改当前页数
handleCurrentOrganization(val) {
//console.log(`当前页: ${val}`);
this.formOrganization.pageNum = val;
console.log(
"this.formOrganization.pageNum = " + this.formOrganization.pageNum
);
this.search();
},
//机构table中勾选一页
selectAllOrganization(selection, row) {
this.selectionList = selection;
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (
vm.tableOrganization[i].status != 2 &&
(vm.tableOrganization[i].roleId == null ||
vm.tableOrganization[i].roleId == 0)
) {
setList.push(vm.tableOrganization[i].id);
}
}
for (let j = 0; j < selection.length; j++) {
selectList.push(selection[j].id);
}
let intersect = operationData.getIntersect(setList, selectList);
let typeStatus = 0;
if (intersect.length > 0) {
typeStatus = 1;
}
// let = this.$refs.multipleTable.selection
console.log(selection, setList, selectList);
if (setList.length > 0) {
let req = {
ids: setList,
circleId: this.circleId,
type: typeStatus,
};
openLoading(vm);
moOptionBlackList(req)
.then((res) => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type, vm.tableOrganization); //vm.tableOrganization
} else {
this.$message(res.message);
}
})
.catch((err) => {
this.$message.error("请求失败");
});
}
},
//机构table中勾选一个
selectOrganization(selection, row) {
console.log("selectOrganization() : " + row.name);
this.selectionList = selection;
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
circleId: this.circleId,
type: flag === false ? 0 : 1,
};
openLoading(vm);
moOptionBlackList(req)
.then((res) => {
closeLoading(vm);
if (res.code == "000000") {
this.checkToList(req.type, row);
} else {
this.$message(res.message);
}
})
.catch((err) => {
this.$message.error("请求失败");
});
},
selectableTableList(row, index) {
if (row.status == 2 || !(row.roleId == null || row.roleId == 0)) {
return false;
}
return true;
},
// 通过check改变展示的已选中的数据列表
checkToList(type, item) {
if (type) {
if (Array.isArray(item)) {
this.allSelect = this.unique([...this.allSelect, ...item]);
} else {
this.allSelect.push(item);
}
} else {
if (Array.isArray(item)) {
for (var i = this.allSelect.length - 1; i >= 0; i--) {
for (let j = item.length - 1; j >= 0; j--) {
if (
this.allSelect[i] &&
item[j] &&
this.allSelect[i].id == item[j].id
) {
this.allSelect.splice(i, 1);
}
}
}
} else {
for (let i = this.allSelect.length - 1; i >= 0; i--) {
if (this.allSelect[i].id == item.id) {
this.allSelect.splice(i, 1);
}
}
}
}
},
// 去重
unique(arr) {
let hashTable = {};
let newArr = [];
for (let i = 0, l = arr.length; i < l; i++) {
if (
!hashTable[arr[i].id] &&
arr[i].status != 2 &&
(arr[i].roleId == null || arr[i].roleId == 0)
) {
hashTable[arr[i].id] = true;
newArr.push(arr[i]);
}
}
return newArr;
},
//删除已选中的tag
handleClose(item) {
this.selectOrganization([], item);
this.$refs.multipleOrganization.toggleRowSelection(item);
},
// 确定添加
addFn() {
console.log("this.allSelect = " + this.allSelect);
console.log("this.allSelect.length = " + this.allSelect.length);
if (!(this.allSelect && this.allSelect.length)) {
this.$message.error("已选列表为空");
return;
}
let params = {
circleId: this.circleId,
};
moSaveBlackList(params)
.then(() => {
this.$emit("addOrg");
})
.catch(() => {
this.$message.error("保存失败,请重试");
});
},
// 取消
canclefn() {
console.log("alex do canclefn()");
this.$emit("handleClose");
},
showItemToast(row) {
console.log("showItemToast() : row.id = " + row.id + ", row.status = " + row.status);
let role;
if (this.lastHoverAdminId != row.id && row.roleId != null && row.roleId != 0) {
if (row.roleId == 1) {
role = "管理员";
} else if (row.roleId == 2) {
role = "主管理员";
} else if (row.roleId == 3) {
role = "内部管理员";
} else if (row.roleId == 4) {
role = "高级主管理员";
}
vm.$message.info(`该人员为[`+ role +`身份],无法加入黑名单`);
}
this.lastHoverAdminId = row.id;
},
},
};
</script>
<style lang="scss" scoped>
.organization-alert {
display: flex;
background: #fff;
width: 100%;
padding: 10px;
.organization-left {
width: 20%;
border-right: 1px solid #ddd;
margin-right: 20px;
display: flex;
flex-direction: column;
.hcd {
flex: 1;
overflow: hidden;
.tag-list {
margin-top: 20px;
margin-bottom: 40px;
display: table-caption;
overflow-y: scroll;
max-height: 500px;
&::-webkit-scrollbar() {
width: 2px !important;
}
}
}
.btn-left {
height: 40px;
margin-bottom: 20px;
}
}
.organization-right {
flex: 1;
.add-organization {
margin-left: 40px;
line-height: 20px;
cursor: pointer;
i {
font-size: 18px;
margin-right: 2px;
}
}
.organization-search {
margin-right: 20px;
text-align: right;
}
}
}
</style>
<template> <template>
<div class="yqrange-index-wrapper"> <div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird":jumPathThird="jumPathThird"></bread-crumb> <bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird" :jumPathThird="jumPathThird" :jumPathFouth="jumPathFouth"></bread-crumb>
<div class="yqrange-index-content screenSet" id="screenSet"> <div class="yqrange-index-content screenSet" id="screenSet">
<el-row class="step-content"> <el-row class="step-content">
<el-col :span="12"> <el-col :span="12">
...@@ -55,7 +55,9 @@ ...@@ -55,7 +55,9 @@
<el-radio label="1" :disabled="styleEditFlag">网页直播</el-radio> <el-radio label="1" :disabled="styleEditFlag">网页直播</el-radio>
<el-radio label="2" :disabled="styleEditFlag">拉流直播</el-radio> <el-radio label="2" :disabled="styleEditFlag">拉流直播</el-radio>
</el-radio-group> </el-radio-group>
<el-tooltip class="item" effect="dark" content="网页直播即通过生成的网页地址进行直播,拉流直播是指进入第三方流进行转播" placement="top">
<i class="el-icon-info" style="color: #449284;margin-left: 15px;"></i>
</el-tooltip>
</el-form-item> </el-form-item>
<el-form-item label="拉流地址" v-if="pullFlag" class="required-label"> <el-form-item label="拉流地址" v-if="pullFlag" class="required-label">
...@@ -112,9 +114,9 @@ ...@@ -112,9 +114,9 @@
</el-form-item> </el-form-item>
<!-- <el-form-item label="直播开始通知">--> <el-form-item label="直播开始通知">
<!-- <el-checkbox size="small" v-model="checked" :disabled="styleEditFlag">App通知</el-checkbox>--> <el-checkbox size="small" v-model="checked" :disabled="styleEditFlag">App通知</el-checkbox>
<!-- </el-form-item>--> </el-form-item>
<el-form-item label="直播中人数显示规则" prop="streamType"> <el-form-item label="直播中人数显示规则" prop="streamType">
...@@ -342,6 +344,9 @@ ...@@ -342,6 +344,9 @@
<el-radio label="0"></el-radio> <el-radio label="0"></el-radio>
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
</el-radio-group> </el-radio-group>
<el-tooltip class="item" effect="dark" content="此tab会出现在直播详情页上,用于直播内容进行拓展说明" placement="top">
<i class="el-icon-info" style="color: #449284;margin-left: 15px;"></i>
</el-tooltip>
</el-form-item> </el-form-item>
...@@ -555,7 +560,7 @@ ...@@ -555,7 +560,7 @@
</div> </div>
</template> </template>
<script> <script>
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/yqrange/breadcrumb-range.vue";
import { isEmptyUtils, openLoading, closeLoading } from "../../utils/utils"; import { isEmptyUtils, openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath, unsubscribe} from "../../utils/qiniu-util"; import { doUpload, getFilePath, unsubscribe} from "../../utils/qiniu-util";
import { checkMobile } from '../../utils/patients/checkValid'; import { checkMobile } from '../../utils/patients/checkValid';
...@@ -584,10 +589,11 @@ ...@@ -584,10 +589,11 @@
return{ return{
rtcId: '', rtcId: '',
circleId: '', circleId: '',
circleName: "",
curmbFirst: '云鹊小圈', curmbFirst: '云鹊小圈',
curmbSecond: '直播管理', // curmbSecond: '直播管理',
curmbThird: '新建直播',// /live-manage?id= curmbThird: '新建直播',// /live-manage?id=
jumPathThird: '', jumPathThird: '/yq-range',
showIntroImageFlag: false, showIntroImageFlag: false,
introduceIndex: 0, introduceIndex: 0,
isDisabledIns: false,//为了防止上传多图时,点太快图片错位 isDisabledIns: false,//为了防止上传多图时,点太快图片错位
...@@ -775,15 +781,27 @@ ...@@ -775,15 +781,27 @@
} }
} }
}, },
props: {
// curmbSecond: {
// type: String
// },
// jumPathFouth: {
// type: String
// }
},
created() { created() {
vm = this; vm = this;
// 区分内部用户和外部用户 // 区分内部用户和外部用户
let idType = localStorage.getItem('storageIdType'); let idType = localStorage.getItem('storageIdType');
this.circleId = this.$route.query.circleId; this.circleId = this.$route.query.circleId;
this.circleName = this.$route.query.circleName;
this.curmbSecond = "圈子管理-" + this.circleName;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.circleName + "&activeName=third";
this.formData.circleId = this.circleId; this.formData.circleId = this.circleId;
console.log("create-live: jumPathFouth: " + this.jumPathFouth);
this.jumPathThird = '/live-manage?id=' + this.circleId; // this.jumPathThird = '/live-manage?id=' + this.circleId;
}, },
mounted() { mounted() {
...@@ -1622,7 +1640,7 @@ ...@@ -1622,7 +1640,7 @@
this.changeSign(); this.changeSign();
// this.checked = this.formData.isAppPush == 1 ? true: false; this.checked = this.formData.isAppPush == 1 ? true: false;
if(this.formData.signMinute == 0 || this.formData.signMinute == undefined){ if(this.formData.signMinute == 0 || this.formData.signMinute == undefined){
...@@ -1716,7 +1734,7 @@ ...@@ -1716,7 +1734,7 @@
} }
} }
// this.formData.isAppPush = this.checked == true ? 1: 0; this.formData.isAppPush = this.checked == true ? 1: 0;
if(this.formData.signMinute == "" || this.formData.signMinute == undefined){ if(this.formData.signMinute == "" || this.formData.signMinute == undefined){
this.formData.signMinute = 0; this.formData.signMinute = 0;
...@@ -1791,9 +1809,11 @@ ...@@ -1791,9 +1809,11 @@
if( res.code == '000000') { if( res.code == '000000') {
this.$message.success("操作成功"); this.$message.success("操作成功");
this.$router.push({ this.$router.push({
path: '/live-manage', path: '/range-manage',
query: { query: {
id: this.formData.circleId id: this.formData.circleId,
name: this.circleName,
activeName: "third"
} }
}) })
} }
......
...@@ -4,26 +4,27 @@ ...@@ -4,26 +4,27 @@
<div class="yqrange-index-content screenSet" id="screenSet"> <div class="yqrange-index-content screenSet" id="screenSet">
<el-row class="step-content"> <el-row class="step-content">
<el-col :span="14"> <el-col :span="14">
<el-steps :active="active" simple class> <p class="p-title">{{curmbSecond}}</p>
<span class="step-num" v-bind:class="{ 'on-step': stepData[0] }">1</span> <!--<el-steps :active="active" simple class>-->
<el-step title="基础信息"></el-step> <!--<span class="step-num" v-bind:class="{ 'on-step': stepData[0] }">1</span>-->
<span class="step-num" v-bind:class="{ 'on-step': stepData[1] }">2</span> <!--<el-step title="基础信息"></el-step>-->
<el-step title="选择成员">2</el-step> <!--<span class="step-num" v-bind:class="{ 'on-step': stepData[1] }">2</span>-->
</el-steps> <!--<el-step title="选择成员">2</el-step>-->
</el-col> <!--</el-steps>-->
<el-col :span="5" :offset="5">
<el-button v-if="active<1" size="small" type="primary" @click="nextStep">下一步</el-button>
<el-button v-if="active>=1" size="small" type="primary" @click="complete">完成</el-button>
</el-col> </el-col>
<!--<el-col :span="5" :offset="5">-->
<!--<el-button v-if="active<1" size="small" type="primary" @click="nextStep">下一步</el-button>-->
<!--<el-button v-if="active>=1" size="small" type="primary" @click="complete">完成</el-button>-->
<!--</el-col>-->
</el-row> </el-row>
<div class="first-step" v-if="active === 0"> <div class="first-step" v-if="active === 0">
<p class="p-title">基础信息</p> <p class="p-title">基础信息</p>
<base-info :formData="formData" @returnTypeData="returnTypeData" @returnIsNext="returnIsNext" ref="child"> <base-info :formData="formData" @returnTypeData="returnTypeData" @returnIsNext="returnIsNext" ref="child">
</base-info> </base-info>
</div> </div>
<div class="second-step" v-else-if="active === 1"> <!--<div class="second-step" v-else-if="active === 1">-->
<organzation :formData="formData" ref="org"></organzation> <!--<organzation :formData="formData" ref="org"></organzation>-->
</div> <!--</div>-->
</div> </div>
</div> </div>
</template> </template>
...@@ -72,6 +73,10 @@ ...@@ -72,6 +73,10 @@
this.enterType = enterType; this.enterType = enterType;
this.roleType = roleType; this.roleType = roleType;
if(this.enterType != null && this.roleType != null){
this.curmbSecond = "编辑小圈"
}
if(roleType == null || roleType == undefined){ if(roleType == null || roleType == undefined){
let highMainManager = localStorage.getItem('highMainManager'); let highMainManager = localStorage.getItem('highMainManager');
let mainManager = localStorage.getItem('mainManager'); let mainManager = localStorage.getItem('mainManager');
...@@ -163,10 +168,15 @@ ...@@ -163,10 +168,15 @@
vm.POST("circle/circle/save", req).then(res => { vm.POST("circle/circle/save", req).then(res => {
if (res.code == "000000") { if (res.code == "000000") {
// console.log(res); // console.log(res);
console.log(this.$refs); // console.log(this.$refs);
vm.formData.id = res.data; // vm.formData.id = res.data;
this.active = 1; // // this.active = 1;
this.stepData = [false, true]; // this.stepData = [false, true];
this.$message.success('保存成功');
const _this = this;
setTimeout(function () {
_this.$router.go(-1)
}, 100);
} else { } else {
......
<template> <template>
<div class="yqrange-index-wrapper"> <div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb> <!--<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>-->
<div class="yqrange-index-content screenSet" id="screenSet"> <div class="yqrange-index-content" id="screenSet">
<div class="header-title">直播管理</div> <!--<div class="header-title">直播管理</div>-->
<el-form <el-form
ref="searchForm" ref="searchForm"
:model="searchForm" :model="searchForm"
...@@ -11,19 +11,19 @@ ...@@ -11,19 +11,19 @@
:inline="true" :inline="true"
> >
<el-row :gutter="30" type="flex" style="margin-top: 10px"> <el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="10"> <el-col :span="8">
<el-form-item label="直播名称"> <el-form-item label="直播名称">
<el-input v-model="searchForm.liveName" size="small" placeholder="请输入直播名称"></el-input> <el-input v-model="searchForm.liveName" size="small" placeholder="请输入直播名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="9">
<el-form-item label="直播状态"> <el-form-item label="直播状态">
<el-select <el-select
v-model="searchForm.liveStatus" v-model="searchForm.liveStatus"
id="statusSelector" id="statusSelector"
placeholder="请选择发布状态" placeholder="请选择发布状态"
clearable clearable
style="margin-left:20px;" style="margin-left:20px;height: 32px;line-height: 32px;"
> >
<el-option <el-option
v-for="item in statusList" v-for="item in statusList"
...@@ -34,9 +34,9 @@ ...@@ -34,9 +34,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" style="text-align: right"> <el-col :span="7" style="text-align: right">
<el-button type="primary" size="small" @click="search">查询</el-button> <el-button type="primary" size="small" @click="search">搜索</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button> <el-button type="default" size="small" @click="resetForm" style="margin-left:0;">取消搜索</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
...@@ -392,9 +392,15 @@ export default { ...@@ -392,9 +392,15 @@ export default {
isSign: 0, // 是否签到 isSign: 0, // 是否签到
}; };
}, },
props:{
circleName: {
type: String
}
},
created() { created() {
vm = this; vm = this;
this.circleId = this.$route.query.id; this.circleId = this.$route.query.id;
console.log("circleName: " + this.circleName);
vm.getLiveList("", ""); vm.getLiveList("", "");
}, },
methods: { methods: {
...@@ -432,12 +438,17 @@ export default { ...@@ -432,12 +438,17 @@ export default {
}, },
//新建直播 //新建直播
createLive() { createLive() {
this.$router.push({ this.$router.push({
path: "/create-live", path: "/create-live",
query: { query: {
circleId: this.circleId circleId: this.circleId,
circleName: this.circleName
} }
}); });
// this.$emit("setActive", 4);
}, },
//弹出直播链接弹窗 //弹出直播链接弹窗
liveLink(row) { liveLink(row) {
...@@ -965,7 +976,8 @@ export default { ...@@ -965,7 +976,8 @@ export default {
query: { query: {
// rtcId: "1" // rtcId: "1"
rtcId: row.rtcId, rtcId: row.rtcId,
circleId: this.circleId circleId: this.circleId,
circleName: this.circleName
} }
}); });
}, },
...@@ -1028,7 +1040,6 @@ export default { ...@@ -1028,7 +1040,6 @@ export default {
pageNo: this.searchForm.pageNo, pageNo: this.searchForm.pageNo,
pageSize: this.searchForm.pageSize pageSize: this.searchForm.pageSize
}; };
console.log("alex name = " + name + ", status = " + status);
vm.POST("rtc/liveAdmin/list", req).then(res => { vm.POST("rtc/liveAdmin/list", req).then(res => {
if (res.code == "000000") { if (res.code == "000000") {
// console.log(res); // console.log(res);
...@@ -1047,8 +1058,7 @@ export default { ...@@ -1047,8 +1058,7 @@ export default {
createTime: res.data.pageContents[i].createdTime, createTime: res.data.pageContents[i].createdTime,
startTime: res.data.pageContents[i].openTime, startTime: res.data.pageContents[i].openTime,
endTime: res.data.pageContents[i].endTime, endTime: res.data.pageContents[i].endTime,
rtcId: res.data.pageContents[i].id, rtcId: res.data.pageContents[i].id
isSign: res.data.pageContents[i].isSign
}; };
listData.push(obj); listData.push(obj);
} }
...@@ -1374,4 +1384,8 @@ export default { ...@@ -1374,4 +1384,8 @@ export default {
height: 400px; height: 400px;
margin: 0 auto; margin: 0 auto;
} }
.el-select .el-input__inner {
height: 32px;
line-height: 32px;
}
</style> </style>
<template>
<div class="resident-list">
<bread-crumb
:curmbFirst="curmbFirst"
:curmbSecond="curmbSecond"
:curmbThird="curmbThird"
:jumPathThird="jumPathThird">
</bread-crumb>
<div class="f-main-content screenSet patient-detail-wrap">
<div v-if="active == 0">
<el-tabs v-model="activeName" @tab-click="tabChangeHandler">
<el-tab-pane label="成员管理" name="first">
<mebman :circleId="circleId" :roleType="roleType" :circleName="name" v-if="circleId"></mebman>
</el-tab-pane>
<!--<el-tab-pane label="分组管理" name="second">-->
<!--</el-tab-pane>-->
<el-tab-pane label="直播管理" name="third">
<live-manage @setActive="setActive" :circleName="name"></live-manage>
</el-tab-pane>
<el-tab-pane label="应用配置" name="fourth">
<range-setting></range-setting>
</el-tab-pane>
</el-tabs>
</div>
<div v-if="active == 4">
<create-live :curmbSecond="curmbSecond" :jumPathFouth="jumPathFouth"></create-live>
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/yqrange/breadcrumb-range.vue";
import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting} from "../../utils/yqrange/yqrangeApi";
import LiveManage from "./live-manage";
import RangeSetting from "./range-setting";
import Mebman from "../../components/yqrange/mebman";
export default {
components: {
Mebman,
RangeSetting,
LiveManage,
BreadCrumb
},
data(){
return{
curmbFirst: '云鹊小圈',
curmbSecond: '圈子管理',
curmbThird: '',
jumPathFouth: "",
jumPathThird: '/yq-range',
activeName: 'first',
showAllFlag: false,
showNewFlag: false,
searchForm: {
name: '',
createdTime: '',
// endTime: '',
userType: "", // 用户标识 1:内部用户 2:外部用户,
status: "",
pageNo: 1,
pageSize: 10,
},
totalRows: 0,
tableData: [],
dialogSettingVisible: false,
circleId: null,
name: "",
active: 0,
roleType: ''
}
},
created() {
const {id, name, activeName, roleType} = this.$route.query;
this.circleId = id;
this.name = name;
this.activeName = activeName;
this.roleType = roleType;
this.curmbSecond = "圈子管理-" + name;
this.curmbThird = this.curmbSecond;
this.active = 0;
this.jumPathFouth = "/range-manage?id=" + this.circleId + "&name=" + this.name;
// this.jumPathFouth = "/yq-range";
},
methods: {
tabChangeHandler(tab) {},
setActive(active){
this.active = active;
}
},
}
</script>
<style lang="scss">
.yqrange-index-wrapper{
.yqrange-index-content{
background: #fff;
padding: 10px;
.header-title{
padding: 10px 12px;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
.el-button--text{
color: #449284;
font-size: 14px;
&::after{
content: '';
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type{
&::after{
content: '';
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
}
}
}
/*.range-make-box{*/
/*.el-message-box__btns{*/
/*margin-top: 30px;*/
/*}*/
/*}*/
</style>
<style lang="scss" scoped>
@import '../../style/patients-style/element-reset.css';
.f-main-content{
background: #ffffff;
padding: 30px;
.right-btn-group{
position: absolute;
right: 60px;
z-index: 1800;
}
.section{
.item{
display: flex;
font-size: 14px;
div{
display: flex;
flex: 1;
line-height: 36px;
.title{
width: 150px;
text-align: right;
}
.info{
color: #999;
padding-left: 15px;
width: 100%;
}
}
&.wrap-p{
div{
line-height: 28px;
}
}
.btn-right{
width: 35%;
padding-left:10px;
}
}
.has-header{
display: flex;
justify-content: space-between;
padding: 15px 0;
margin-bottom: 15px;
border-bottom: 1px dashed #888;
.right-p{
display: inline-block;
text-align: right;
color: #999;
font-size: 14px;
span:last-child{
margin-left: 15px;
}
}
}
}
.health-record-wrap{
/*height: 300px;*/
overflow-y: auto;
@media screen and (min-width:1240px) and (max-width:1545px){
height: 350px;
}
@media screen and (min-width:1545px) and (max-width:1600px){
height: 580px;
}
@media screen and (min-width:1600px){
height: 670px;
}
&::-webkit-scrollbar{
width:5px;
}
&::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
background: rgba(0,0,0,0.1);
}
}
.health-record-list{
.item{
width: 100%;
margin-bottom: 15px;
.record-date{
color: #999;
padding-bottom: 10px;
}
.record-content{
width: 100%;
border: 1px solid #E4E7ED;
border-radius: 5px;
padding: 10px 15px 13px;
.record-title{
display: flex;
justify-content: space-between;
padding: 5px 0;
span{
color: #999;
font-size: 14px;
}
}
.list-visit{
line-height: 28px;
padding: 6px 0 2px;
display: flex;
display: -webkit-flex;
align-items: flex-start;
font-size: 14px;
color: #999;
.left-label{
line-height: 28px;
}
.right-item{
flex: 1;
line-height: 28px;
p{
line-height: 28px;
.check-btn{
color: #449284;
cursor: pointer;
margin-left: 15px;
}
}
}
}
}
}
}
.no-record-content{
@media screen and (min-width:1240px) and (max-width:1545px){
height: 300px;
}
@media screen and (min-width:1545px) and (max-width:1600px){
height: 500px;
}
@media screen and (min-width:1600px){
height: 600px;
}
text-align: center;
padding: 50px 0 60px;
.no-record-info{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -60%);
}
img{
width: 120px;
}
p{
color: #B9B9C6;
font-size: 20px;
}
}
.ml10{
margin-left: 10px;
}
}
</style>
<template>
<div class="yqrange-index-wrapper">
<!--<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>-->
<div class="yqrange-index-content" id="screenSet">
<!--<div class="header-title">云鹊小圈</div>-->
<el-form ref="settingForm" :model="settingForm"
label-width="150px"
label-suffix=":"
class="basic-form">
<div v-for="(item, index) in settingForm.settingData" :key="index">
<el-form-item :label="item.appTagName">
<el-radio-group size="small" v-model="item.showOff">
<el-radio :label="1">开启</el-radio>
<el-radio :label="0">关闭</el-radio>
</el-radio-group>
</el-form-item>
</div>
</el-form>
<div style="margin-top: 60px;margin-left: 150px;">
<el-button type="primary" @click="save()" center>保存</el-button>
<!--<el-button @click="cancle()">取 消</el-button>-->
</div>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus, getCircleSettingList, saveCircleSetting} from "../../utils/yqrange/yqrangeApi";
export default {
components: {
BreadCrumb
},
data(){
return{
curmbFirst: '云鹊小圈',
showAllFlag: false,
showNewFlag: false,
searchForm: {
name: '',
createdTime: '',
// endTime: '',
userType: "", // 用户标识 1:内部用户 2:外部用户,
status: "",
pageNo: 1,
pageSize: 10,
},
totalRows: 0,
tableData: [],
dialogSettingVisible: false,
settingForm:{
circleId: null,
settingData: []
}
}
},
created() {
this.circleId = this.$route.query.id;
this.setting();
},
methods: {
// 应用配置
setting(){
let params = {
circleId: this.circleId
// circleId: 22
}
getCircleSettingList(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.settingForm.settingData = res.data;
} else {
this.settingForm.settingData = [];
}
if(this.settingForm.settingData == [] || this.settingForm.settingData.length == 0){
this.settingForm.settingData = [{
appTag: 1,
showOff: 1
},
{
appTag: 2,
showOff: 1
},
{
appTag: 3,
showOff: 1
},
{
appTag: 4,
showOff: 1
}];
}
for(let i = 0; i < this.settingForm.settingData.length; i++){
if(this.settingForm.settingData[i].appTag == 1){
this.settingForm.settingData[i].appTagName = "教培"
}
else if(this.settingForm.settingData[i].appTag == 2){
this.settingForm.settingData[i].appTagName = "直播"
}
else if(this.settingForm.settingData[i].appTag == 3){
this.settingForm.settingData[i].appTagName = "继教课程"
}
else if(this.settingForm.settingData[i].appTag == 4){
this.settingForm.settingData[i].appTagName = "职称培训"
}
}
}).catch((error) => {
this.$message.error("请重试");
})
},
// 保存
save(){
let params = {
apps: this.settingForm.settingData,
circleId: this.circleId
}
saveCircleSetting(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.$message.success("保存成功!");
// this.$router.go(-1);
}
}).catch((error) => {
this.$message.error("请重试");
})
},
cancle(){
this.$router.go(-1);
}
},
}
</script>
<style lang="scss">
.yqrange-index-wrapper{
.yqrange-index-content{
background: #fff;
padding: 10px;
.header-title{
padding: 10px 12px;
font-size: 12px;
color: #449284;
border-bottom: 1px solid #efefef;
}
}
.el-button--text{
color: #449284;
font-size: 14px;
&::after{
content: '';
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type{
&::after{
content: '';
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
}
}
}
/*.range-make-box{*/
/*.el-message-box__btns{*/
/*margin-top: 30px;*/
/*}*/
/*}*/
</style>
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
<div class="header-title">云鹊小圈</div> <div class="header-title">云鹊小圈</div>
<el-form ref="searchForm" :model="searchForm" label-width="75px" label-suffix=":" :inline="true"> <el-form ref="searchForm" :model="searchForm" label-width="75px" label-suffix=":" :inline="true">
<el-row :gutter="30" type="flex" style="margin-top: 10px"> <el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="10"> <el-col :span="8">
<el-form-item label="圈子名称"> <el-form-item label="圈子名称">
<el-input v-model="searchForm.name" size="small" placeholder="请输入圈子名称"></el-input> <el-input v-model="searchForm.name" size="small" placeholder="请输入圈子名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="9">
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="searchForm.createdTime" v-model="searchForm.createdTime"
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" style="text-align: right"> <el-col :span="7" style="text-align: right">
<el-button type="primary" size="small" @click="search">查询</el-button> <el-button type="primary" size="small" @click="search">搜索</el-button>
<el-button type="default" size="small" @click="resetForm" style="margin-left:0;">重置</el-button> <el-button type="default" size="small" @click="resetForm" style="margin-left:0;">取消搜索</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
...@@ -57,11 +57,12 @@ ...@@ -57,11 +57,12 @@
<div v-if="scope.row.status != 50"> <div v-if="scope.row.status != 50">
<el-button @click="publishRange(scope.row)" v-if="scope.row.status != 30 && scope.row.status != 0" type="text" size="small">上线</el-button> <el-button @click="publishRange(scope.row)" v-if="scope.row.status != 30 && scope.row.status != 0" type="text" size="small">上线</el-button>
<el-button @click="unPublishRange(scope.row)" v-if="scope.row.status == 30 && scope.row.status != 0" type="text" size="small">下线</el-button> <el-button @click="unPublishRange(scope.row)" v-if="scope.row.status == 30 && scope.row.status != 0" type="text" size="small">下线</el-button>
<el-button @click="liveManage(scope.row)" type="text" size="small" v-if="scope.row.status != 0">直播管理</el-button> <!--<el-button @click="liveManage(scope.row)" type="text" size="small" v-if="scope.row.status != 0">直播管理</el-button>-->
<el-button @click="roleManage(scope.row)" type="text" size="small" v-if="scope.row.status != 0">成员管理</el-button> <!--<el-button @click="roleManage(scope.row)" type="text" size="small" v-if="scope.row.status != 0">成员管理</el-button>-->
<el-button @click="editRange(scope.row)" type="text" size="small">编辑</el-button> <el-button @click="editRange(scope.row)" type="text" size="small">编辑</el-button>
<el-button @click="deleteRange(scope.row)" type="text" size="small" v-if="showAllFlag && scope.row.status != 0">解散圈子</el-button> <el-button @click="deleteRange(scope.row)" type="text" size="small" v-if="showAllFlag && scope.row.status != 0">解散圈子</el-button>
<el-button @click="setting(scope.row)" type="text" size="small" v-if="scope.row.status != 0 && showNewFlag">应用配置</el-button> <!--<el-button @click="setting(scope.row)" type="text" size="small" v-if="scope.row.status != 0 && showNewFlag">应用配置</el-button>-->
<el-button @click="rangeManage(scope.row)" type="text" size="small" v-if="scope.row.status != 0">管理</el-button>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -104,27 +105,6 @@ ...@@ -104,27 +105,6 @@
</div> </div>
<!--<el-form-item label="直播">-->
<!--<el-radio-group size="small">-->
<!--<el-radio label="1">开启</el-radio>-->
<!--<el-radio label="0">关闭</el-radio>-->
<!--</el-radio-group>-->
<!--</el-form-item>-->
<!--<el-form-item label="继教课程">-->
<!--<el-radio-group size="small">-->
<!--<el-radio label="1">开启</el-radio>-->
<!--<el-radio label="0">关闭</el-radio>-->
<!--</el-radio-group>-->
<!--</el-form-item>-->
<!--<el-form-item label="职称培训">-->
<!--<el-radio-group size="small">-->
<!--<el-radio label="1">开启</el-radio>-->
<!--<el-radio label="0">关闭</el-radio>-->
<!--</el-radio-group>-->
<!--</el-form-item>-->
</el-form> </el-form>
...@@ -330,7 +310,17 @@ export default { ...@@ -330,7 +310,17 @@ export default {
}, },
rangeManage(row) {
this.$router.push({
path: '/range-manage',
query: {
id: row.id,
name: row.name,
activeName: 'first',
roleType: row.roleId
}
})
},
//直播管理 //直播管理
liveManage(row) { liveManage(row) {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册