提交 26d983b0 编写于 作者: 张平's avatar 张平

Merge branch 'dev-yqLive-20200611' into 'release'

Dev yq live 20200611 codereviewer:ping.zhang



See merge request !166
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
}, },
"array-find-index": { "array-find-index": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
}, },
"array-flatten": { "array-flatten": {
...@@ -291,7 +291,7 @@ ...@@ -291,7 +291,7 @@
}, },
"async-foreach": { "async-foreach": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz",
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
}, },
"async-validator": { "async-validator": {
...@@ -1377,11 +1377,6 @@ ...@@ -1377,11 +1377,6 @@
} }
} }
}, },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
"builtin-status-codes": { "builtin-status-codes": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
...@@ -1436,7 +1431,7 @@ ...@@ -1436,7 +1431,7 @@
}, },
"camelcase-keys": { "camelcase-keys": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"requires": { "requires": {
"camelcase": "^2.0.0", "camelcase": "^2.0.0",
...@@ -1445,7 +1440,7 @@ ...@@ -1445,7 +1440,7 @@
"dependencies": { "dependencies": {
"camelcase": { "camelcase": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz",
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
} }
} }
...@@ -1705,7 +1700,6 @@ ...@@ -1705,7 +1700,6 @@
"version": "1.9.3", "version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": { "requires": {
"color-name": "1.1.3" "color-name": "1.1.3"
} }
...@@ -1713,8 +1707,7 @@ ...@@ -1713,8 +1707,7 @@
"color-name": { "color-name": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
"dev": true
}, },
"color-string": { "color-string": {
"version": "0.3.0", "version": "0.3.0",
...@@ -2104,7 +2097,7 @@ ...@@ -2104,7 +2097,7 @@
}, },
"currently-unhandled": { "currently-unhandled": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"requires": { "requires": {
"array-find-index": "^1.0.1" "array-find-index": "^1.0.1"
...@@ -2383,6 +2376,11 @@ ...@@ -2383,6 +2376,11 @@
"throttle-debounce": "^1.0.1" "throttle-debounce": "^1.0.1"
} }
}, },
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz",
"integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY="
},
"emojis-list": { "emojis-list": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
...@@ -2439,8 +2437,8 @@ ...@@ -2439,8 +2437,8 @@
}, },
"error-ex": { "error-ex": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
"requires": { "requires": {
"is-arrayish": "^0.2.1" "is-arrayish": "^0.2.1"
} }
...@@ -2720,10 +2718,6 @@ ...@@ -2720,10 +2718,6 @@
"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",
...@@ -2878,7 +2872,8 @@ ...@@ -2878,7 +2872,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
...@@ -2899,12 +2894,14 @@ ...@@ -2899,12 +2894,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
...@@ -2919,17 +2916,20 @@ ...@@ -2919,17 +2916,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
...@@ -3046,7 +3046,8 @@ ...@@ -3046,7 +3046,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
...@@ -3058,6 +3059,7 @@ ...@@ -3058,6 +3059,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
...@@ -3072,6 +3074,7 @@ ...@@ -3072,6 +3074,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -3079,12 +3082,14 @@ ...@@ -3079,12 +3082,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
...@@ -3103,6 +3108,7 @@ ...@@ -3103,6 +3108,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
...@@ -3183,7 +3189,8 @@ ...@@ -3183,7 +3189,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
...@@ -3195,6 +3202,7 @@ ...@@ -3195,6 +3202,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -3280,7 +3288,8 @@ ...@@ -3280,7 +3288,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.1", "version": "5.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
...@@ -3316,6 +3325,7 @@ ...@@ -3316,6 +3325,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -3335,6 +3345,7 @@ ...@@ -3335,6 +3345,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
...@@ -3378,12 +3389,14 @@ ...@@ -3378,12 +3389,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
...@@ -3454,8 +3467,8 @@ ...@@ -3454,8 +3467,8 @@
}, },
"gaze": { "gaze": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
"requires": { "requires": {
"globule": "^1.0.0" "globule": "^1.0.0"
} }
...@@ -3467,7 +3480,7 @@ ...@@ -3467,7 +3480,7 @@
}, },
"get-stdin": { "get-stdin": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
}, },
"get-stream": { "get-stream": {
...@@ -3569,9 +3582,9 @@ ...@@ -3569,9 +3582,9 @@
"dev": true "dev": true
}, },
"globule": { "globule": {
"version": "1.2.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641769816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz",
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=",
"requires": { "requires": {
"glob": "~7.1.1", "glob": "~7.1.1",
"lodash": "~4.17.10", "lodash": "~4.17.10",
...@@ -3731,9 +3744,9 @@ ...@@ -3731,9 +3744,9 @@
} }
}, },
"hosted-git-info": { "hosted-git-info": {
"version": "2.7.1", "version": "2.8.8",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz",
"integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg="
}, },
"html-comment-regex": { "html-comment-regex": {
"version": "1.1.2", "version": "1.1.2",
...@@ -3892,13 +3905,13 @@ ...@@ -3892,13 +3905,13 @@
"optional": true "optional": true
}, },
"in-publish": { "in-publish": {
"version": "2.0.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz",
"integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" "integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw="
}, },
"indent-string": { "indent-string": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"requires": { "requires": {
"repeating": "^2.0.0" "repeating": "^2.0.0"
...@@ -3979,7 +3992,7 @@ ...@@ -3979,7 +3992,7 @@
}, },
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
}, },
"is-binary-path": { "is-binary-path": {
...@@ -3996,14 +4009,6 @@ ...@@ -3996,14 +4009,6 @@
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
}, },
"is-builtin-module": {
"version": "1.0.0",
"resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
"builtin-modules": "^1.0.0"
}
},
"is-data-descriptor": { "is-data-descriptor": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
...@@ -4146,7 +4151,7 @@ ...@@ -4146,7 +4151,7 @@
}, },
"is-utf8": { "is-utf8": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
}, },
"is-windows": { "is-windows": {
...@@ -4347,7 +4352,7 @@ ...@@ -4347,7 +4352,7 @@
"integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==", "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
"requires": { "requires": {
"canvg": "1.5.3", "canvg": "1.5.3",
"file-saver": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e", "file-saver": "github:eligrey/FileSaver.js#1.3.8",
"html2canvas": "1.0.0-alpha.12", "html2canvas": "1.0.0-alpha.12",
"omggif": "1.0.7", "omggif": "1.0.7",
"promise-polyfill": "8.1.0", "promise-polyfill": "8.1.0",
...@@ -4367,6 +4372,10 @@ ...@@ -4367,6 +4372,10 @@
"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",
...@@ -4454,7 +4463,7 @@ ...@@ -4454,7 +4463,7 @@
}, },
"load-json-file": { "load-json-file": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
...@@ -4603,11 +4612,6 @@ ...@@ -4603,11 +4612,6 @@
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
"dev": true "dev": true
}, },
"lodash.assign": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
},
"lodash.camelcase": { "lodash.camelcase": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz",
...@@ -4617,11 +4621,6 @@ ...@@ -4617,11 +4621,6 @@
"lodash._createcompounder": "^3.0.0" "lodash._createcompounder": "^3.0.0"
} }
}, },
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
"lodash.deburr": { "lodash.deburr": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz",
...@@ -4726,11 +4725,6 @@ ...@@ -4726,11 +4725,6 @@
"lodash.toplainobject": "^3.0.0" "lodash.toplainobject": "^3.0.0"
} }
}, },
"lodash.mergewith": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
"integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ=="
},
"lodash.pairs": { "lodash.pairs": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz",
...@@ -4797,7 +4791,7 @@ ...@@ -4797,7 +4791,7 @@
}, },
"loud-rejection": { "loud-rejection": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz",
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"requires": { "requires": {
"currently-unhandled": "^0.4.1", "currently-unhandled": "^0.4.1",
...@@ -4835,7 +4829,7 @@ ...@@ -4835,7 +4829,7 @@
}, },
"map-obj": { "map-obj": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz",
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
}, },
"map-visit": { "map-visit": {
...@@ -4917,7 +4911,7 @@ ...@@ -4917,7 +4911,7 @@
}, },
"meow": { "meow": {
"version": "3.7.0", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "resolved": "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz",
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"requires": { "requires": {
"camelcase-keys": "^2.0.0", "camelcase-keys": "^2.0.0",
...@@ -4933,9 +4927,9 @@ ...@@ -4933,9 +4927,9 @@
}, },
"dependencies": { "dependencies": {
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI="
} }
} }
}, },
...@@ -5063,7 +5057,9 @@ ...@@ -5063,7 +5057,9 @@
"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",
"integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
"dev": true,
"optional": true
}, },
"nanomatch": { "nanomatch": {
"version": "1.2.13", "version": "1.2.13",
...@@ -5317,9 +5313,9 @@ ...@@ -5317,9 +5313,9 @@
} }
}, },
"node-sass": { "node-sass": {
"version": "4.9.4", "version": "4.14.1",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz", "resolved": "https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz",
"integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==", "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
"requires": { "requires": {
"async-foreach": "^0.1.3", "async-foreach": "^0.1.3",
"chalk": "^1.1.1", "chalk": "^1.1.1",
...@@ -5328,54 +5324,57 @@ ...@@ -5328,54 +5324,57 @@
"get-stdin": "^4.0.1", "get-stdin": "^4.0.1",
"glob": "^7.0.3", "glob": "^7.0.3",
"in-publish": "^2.0.0", "in-publish": "^2.0.0",
"lodash.assign": "^4.2.0", "lodash": "^4.17.15",
"lodash.clonedeep": "^4.3.2",
"lodash.mergewith": "^4.6.0",
"meow": "^3.7.0", "meow": "^3.7.0",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"nan": "^2.10.0", "nan": "^2.13.2",
"node-gyp": "^3.8.0", "node-gyp": "^3.8.0",
"npmlog": "^4.0.0", "npmlog": "^4.0.0",
"request": "^2.88.0", "request": "^2.88.0",
"sass-graph": "^2.2.4", "sass-graph": "2.2.5",
"stdout-stream": "^1.4.0", "stdout-stream": "^1.4.0",
"true-case-path": "^1.0.2" "true-case-path": "^1.0.2"
}, },
"dependencies": { "dependencies": {
"ajv": { "ajv": {
"version": "5.5.2", "version": "6.12.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "integrity": "sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0=",
"requires": { "requires": {
"co": "^4.6.0", "fast-deep-equal": "^3.1.1",
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0" "json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
} }
}, },
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
}, },
"aws-sign2": { "aws-sign2": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
}, },
"cross-spawn": { "cross-spawn": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"requires": { "requires": {
"lru-cache": "^4.0.1", "lru-cache": "^4.0.1",
"which": "^1.2.9" "which": "^1.2.9"
} }
}, },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
"integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
},
"form-data": { "form-data": {
"version": "2.3.3", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=",
"requires": { "requires": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.6", "combined-stream": "^1.0.6",
...@@ -5384,21 +5383,21 @@ ...@@ -5384,21 +5383,21 @@
}, },
"har-schema": { "har-schema": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
}, },
"har-validator": { "har-validator": {
"version": "5.1.0", "version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz",
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=",
"requires": { "requires": {
"ajv": "^5.3.0", "ajv": "^6.5.5",
"har-schema": "^2.0.0" "har-schema": "^2.0.0"
} }
}, },
"http-signature": { "http-signature": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": { "requires": {
"assert-plus": "^1.0.0", "assert-plus": "^1.0.0",
...@@ -5406,20 +5405,40 @@ ...@@ -5406,20 +5405,40 @@
"sshpk": "^1.7.0" "sshpk": "^1.7.0"
} }
}, },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
"integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA="
},
"lodash": {
"version": "4.17.15",
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz",
"integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
},
"nan": {
"version": "2.14.1",
"resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz",
"integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE="
},
"oauth-sign": { "oauth-sign": {
"version": "0.9.0", "version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU="
}, },
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
}, },
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
"integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
},
"request": { "request": {
"version": "2.88.0", "version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
"requires": { "requires": {
"aws-sign2": "~0.7.0", "aws-sign2": "~0.7.0",
"aws4": "^1.8.0", "aws4": "^1.8.0",
...@@ -5428,7 +5447,7 @@ ...@@ -5428,7 +5447,7 @@
"extend": "~3.0.2", "extend": "~3.0.2",
"forever-agent": "~0.6.1", "forever-agent": "~0.6.1",
"form-data": "~2.3.2", "form-data": "~2.3.2",
"har-validator": "~5.1.0", "har-validator": "~5.1.3",
"http-signature": "~1.2.0", "http-signature": "~1.2.0",
"is-typedarray": "~1.0.0", "is-typedarray": "~1.0.0",
"isstream": "~0.1.2", "isstream": "~0.1.2",
...@@ -5438,18 +5457,18 @@ ...@@ -5438,18 +5457,18 @@
"performance-now": "^2.1.0", "performance-now": "^2.1.0",
"qs": "~6.5.2", "qs": "~6.5.2",
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"tough-cookie": "~2.4.3", "tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0", "tunnel-agent": "^0.6.0",
"uuid": "^3.3.2" "uuid": "^3.3.2"
} }
}, },
"tough-cookie": { "tough-cookie": {
"version": "2.4.3", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
"requires": { "requires": {
"psl": "^1.1.24", "psl": "^1.1.28",
"punycode": "^1.4.1" "punycode": "^2.1.1"
} }
} }
} }
...@@ -5463,14 +5482,24 @@ ...@@ -5463,14 +5482,24 @@
} }
}, },
"normalize-package-data": { "normalize-package-data": {
"version": "2.4.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
"requires": { "requires": {
"hosted-git-info": "^2.1.4", "hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0", "resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5", "semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1" "validate-npm-package-license": "^3.0.1"
},
"dependencies": {
"resolve": {
"version": "1.17.0",
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz",
"integrity": "sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=",
"requires": {
"path-parse": "^1.0.6"
}
}
} }
}, },
"normalize-path": { "normalize-path": {
...@@ -5842,7 +5871,7 @@ ...@@ -5842,7 +5871,7 @@
}, },
"parse-json": { "parse-json": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"requires": { "requires": {
"error-ex": "^1.2.0" "error-ex": "^1.2.0"
...@@ -5889,8 +5918,7 @@ ...@@ -5889,8 +5918,7 @@
"path-parse": { "path-parse": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"dev": true
}, },
"path-to-regexp": { "path-to-regexp": {
"version": "0.1.7", "version": "0.1.7",
...@@ -5900,7 +5928,7 @@ ...@@ -5900,7 +5928,7 @@
}, },
"path-type": { "path-type": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
...@@ -5921,7 +5949,7 @@ ...@@ -5921,7 +5949,7 @@
}, },
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}, },
"pinkie": { "pinkie": {
...@@ -6932,7 +6960,7 @@ ...@@ -6932,7 +6960,7 @@
}, },
"read-pkg": { "read-pkg": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"requires": { "requires": {
"load-json-file": "^1.0.0", "load-json-file": "^1.0.0",
...@@ -6942,7 +6970,7 @@ ...@@ -6942,7 +6970,7 @@
}, },
"read-pkg-up": { "read-pkg-up": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"requires": { "requires": {
"find-up": "^1.0.0", "find-up": "^1.0.0",
...@@ -6951,7 +6979,7 @@ ...@@ -6951,7 +6979,7 @@
"dependencies": { "dependencies": {
"find-up": { "find-up": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"requires": { "requires": {
"path-exists": "^2.0.0", "path-exists": "^2.0.0",
...@@ -6960,7 +6988,7 @@ ...@@ -6960,7 +6988,7 @@
}, },
"path-exists": { "path-exists": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"requires": { "requires": {
"pinkie-promise": "^2.0.0" "pinkie-promise": "^2.0.0"
...@@ -7317,7 +7345,7 @@ ...@@ -7317,7 +7345,7 @@
}, },
"redent": { "redent": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"requires": { "requires": {
"indent-string": "^2.1.0", "indent-string": "^2.1.0",
...@@ -7639,101 +7667,149 @@ ...@@ -7639,101 +7667,149 @@
"dev": true "dev": true
}, },
"sass-graph": { "sass-graph": {
"version": "2.2.4", "version": "2.2.5",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz",
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=",
"requires": { "requires": {
"glob": "^7.0.0", "glob": "^7.0.0",
"lodash": "^4.0.0", "lodash": "^4.0.0",
"scss-tokenizer": "^0.2.3", "scss-tokenizer": "^0.2.3",
"yargs": "^7.0.0" "yargs": "^13.3.2"
}, },
"dependencies": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz",
"integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
"requires": {
"color-convert": "^1.9.0"
}
}, },
"camelcase": { "camelcase": {
"version": "3.0.0", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
}, },
"cliui": { "cliui": {
"version": "3.2.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz",
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
"requires": { "requires": {
"string-width": "^1.0.1", "string-width": "^3.1.0",
"strip-ansi": "^3.0.1", "strip-ansi": "^5.2.0",
"wrap-ansi": "^2.0.0" "wrap-ansi": "^5.1.0"
} }
}, },
"is-fullwidth-code-point": { "find-up": {
"version": "1.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
"requires": { "requires": {
"number-is-nan": "^1.0.0" "locate-path": "^3.0.0"
} }
}, },
"os-locale": { "get-caller-file": {
"version": "1.4.0", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34="
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
"integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz",
"integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
"requires": { "requires": {
"lcid": "^1.0.0" "p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
"integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
"requires": {
"p-limit": "^2.0.0"
} }
}, },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
"integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY="
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
"integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs="
},
"string-width": { "string-width": {
"version": "1.0.2", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
"requires": { "requires": {
"code-point-at": "^1.0.0", "emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^3.0.0" "strip-ansi": "^5.1.0"
} }
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^4.1.0"
} }
}, },
"which-module": { "wrap-ansi": {
"version": "1.0.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
"requires": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
"strip-ansi": "^5.0.0"
}
},
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz",
"integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms="
}, },
"yargs": { "yargs": {
"version": "7.1.0", "version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz",
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
"requires": { "requires": {
"camelcase": "^3.0.0", "cliui": "^5.0.0",
"cliui": "^3.2.0", "find-up": "^3.0.0",
"decamelize": "^1.1.1", "get-caller-file": "^2.0.1",
"get-caller-file": "^1.0.1",
"os-locale": "^1.4.0",
"read-pkg-up": "^1.0.1",
"require-directory": "^2.1.1", "require-directory": "^2.1.1",
"require-main-filename": "^1.0.1", "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"string-width": "^1.0.2", "string-width": "^3.0.0",
"which-module": "^1.0.0", "which-module": "^2.0.0",
"y18n": "^3.2.1", "y18n": "^4.0.0",
"yargs-parser": "^5.0.0" "yargs-parser": "^13.1.2"
} }
}, },
"yargs-parser": { "yargs-parser": {
"version": "5.0.0", "version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz",
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
"requires": { "requires": {
"camelcase": "^3.0.0" "camelcase": "^5.0.0",
"decamelize": "^1.2.0"
} }
} }
} }
...@@ -7782,7 +7858,7 @@ ...@@ -7782,7 +7858,7 @@
}, },
"scss-tokenizer": { "scss-tokenizer": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"requires": { "requires": {
"js-base64": "^2.1.8", "js-base64": "^2.1.8",
...@@ -7791,7 +7867,7 @@ ...@@ -7791,7 +7867,7 @@
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.4.4", "version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"requires": { "requires": {
"amdefine": ">=0.0.4" "amdefine": ">=0.0.4"
...@@ -8199,32 +8275,32 @@ ...@@ -8199,32 +8275,32 @@
"dev": true "dev": true
}, },
"spdx-correct": { "spdx-correct": {
"version": "3.0.2", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz",
"integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=",
"requires": { "requires": {
"spdx-expression-parse": "^3.0.0", "spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0" "spdx-license-ids": "^3.0.0"
} }
}, },
"spdx-exceptions": { "spdx-exceptions": {
"version": "2.2.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz",
"integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0="
}, },
"spdx-expression-parse": { "spdx-expression-parse": {
"version": "3.0.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=",
"requires": { "requires": {
"spdx-exceptions": "^2.1.0", "spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0" "spdx-license-ids": "^3.0.0"
} }
}, },
"spdx-license-ids": { "spdx-license-ids": {
"version": "3.0.1", "version": "3.0.5",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz",
"integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ="
}, },
"split-string": { "split-string": {
"version": "3.1.0", "version": "3.1.0",
...@@ -8298,21 +8374,21 @@ ...@@ -8298,21 +8374,21 @@
}, },
"stdout-stream": { "stdout-stream": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz",
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=",
"requires": { "requires": {
"readable-stream": "^2.0.1" "readable-stream": "^2.0.1"
}, },
"dependencies": { "dependencies": {
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}, },
"readable-stream": { "readable-stream": {
"version": "2.3.6", "version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
"requires": { "requires": {
"core-util-is": "~1.0.0", "core-util-is": "~1.0.0",
"inherits": "~2.0.3", "inherits": "~2.0.3",
...@@ -8325,8 +8401,8 @@ ...@@ -8325,8 +8401,8 @@
}, },
"string_decoder": { "string_decoder": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
"requires": { "requires": {
"safe-buffer": "~5.1.0" "safe-buffer": "~5.1.0"
} }
...@@ -8462,7 +8538,7 @@ ...@@ -8462,7 +8538,7 @@
}, },
"strip-bom": { "strip-bom": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"requires": { "requires": {
"is-utf8": "^0.2.0" "is-utf8": "^0.2.0"
...@@ -8475,7 +8551,7 @@ ...@@ -8475,7 +8551,7 @@
}, },
"strip-indent": { "strip-indent": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"requires": { "requires": {
"get-stdin": "^4.0.1" "get-stdin": "^4.0.1"
...@@ -8643,7 +8719,7 @@ ...@@ -8643,7 +8719,7 @@
}, },
"trim-newlines": { "trim-newlines": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "resolved": "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz",
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
}, },
"trim-right": { "trim-right": {
...@@ -8654,8 +8730,8 @@ ...@@ -8654,8 +8730,8 @@
}, },
"true-case-path": { "true-case-path": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz",
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=",
"requires": { "requires": {
"glob": "^7.1.2" "glob": "^7.1.2"
} }
...@@ -8832,6 +8908,21 @@ ...@@ -8832,6 +8908,21 @@
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
"dev": true "dev": true
}, },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz",
"integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=",
"requires": {
"punycode": "^2.1.0"
},
"dependencies": {
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
"integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
}
}
},
"urix": { "urix": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
...@@ -8934,8 +9025,8 @@ ...@@ -8934,8 +9025,8 @@
}, },
"validate-npm-package-license": { "validate-npm-package-license": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
"requires": { "requires": {
"spdx-correct": "^3.0.0", "spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0" "spdx-expression-parse": "^3.0.0"
...@@ -9076,9 +9167,54 @@ ...@@ -9076,9 +9167,54 @@
"dev": true "dev": true
}, },
"vue-ueditor-wrap": { "vue-ueditor-wrap": {
"version": "2.4.1", "version": "2.4.2",
"resolved": "http://192.168.110.93:4873/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.1.tgz", "resolved": "https://registry.npmjs.org/vue-ueditor-wrap/-/vue-ueditor-wrap-2.4.2.tgz",
"integrity": "sha512-UjZz0I5Fy8ADrmvjCqTJm+XJVkf52hi6/yajcTyjqG20DTS2IVByFF26TI69by9PZApwbC+eHkV/lALcvEFgjw==" "integrity": "sha512-bZZdUmhT/n9QPdVwR10b8u2A9+Q2L6vyfr3Nls2EDKI3GmuWQwGqBwcgjBWbaM50twyHjXwAPXiKlUhn3JAFtA=="
},
"vuedraggable": {
"version": "2.23.2",
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz",
"integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==",
"requires": {
"sortablejs": "^1.10.1"
},
"dependencies": {
"sortablejs": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
}
}
},
"vuedraggable": {
"version": "2.23.2",
"resolved": "http://192.168.110.93:4873/vuedraggable/-/vuedraggable-2.23.2.tgz",
"integrity": "sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==",
"requires": {
"sortablejs": "^1.10.1"
},
"dependencies": {
"sortablejs": {
"version": "1.10.2",
"resolved": "http://192.168.110.93:4873/sortablejs/-/sortablejs-1.10.2.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
}
}
},
"vuedraggable": {
"version": "2.23.2",
"resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.23.2.tgz",
"integrity": "sha1-DZXX/fTwL1Z1Wiazydylx8qc+nI=",
"requires": {
"sortablejs": "^1.10.1"
},
"dependencies": {
"sortablejs": {
"version": "1.10.2",
"resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.10.2.tgz",
"integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA="
}
}
}, },
"vuex": { "vuex": {
"version": "2.5.0", "version": "2.5.0",
......
...@@ -30,7 +30,7 @@ import VFooter from './views/layout/footer.vue' ...@@ -30,7 +30,7 @@ import VFooter from './views/layout/footer.vue'
import { base64decode, isNotEmptyUtils, getUrlParamsMap } from "./utils/utils.js" import { base64decode, isNotEmptyUtils, getUrlParamsMap } from "./utils/utils.js"
import { mapActions, mapGetters } from 'vuex' import { mapActions, mapGetters } from 'vuex'
import { getLoginUrl } from './utils/index.js' import { getLoginUrl } from './utils/index.js'
import { getRedNum } from './utils/patients/patientsapi' import { getRedNum, getCircleRole } from './utils/patients/patientsapi'
let vm = null let vm = null
export default { export default {
components:{ components:{
...@@ -131,6 +131,7 @@ export default { ...@@ -131,6 +131,7 @@ export default {
]), ]),
// 获取用户权限 // 获取用户权限
getUserAuth(token) { getUserAuth(token) {
vm.getCircleRoleData();
let req = null let req = null
req = { req = {
token: token token: token
...@@ -149,11 +150,32 @@ export default { ...@@ -149,11 +150,32 @@ export default {
vm.portrait = res.data.imageUrl vm.portrait = res.data.imageUrl
vm.authList = res.data.auth vm.authList = res.data.auth
vm.getUserName(vm.userName); vm.getUserName(vm.userName);
// vm.getCircleRoleData();
} else { } else {
vm.$message.info(res.message) vm.$message.info(res.message)
} }
}) })
}, },
setStoreData(value) {
if (value){
return 1;
}else {
return 0;
}
},
getCircleRoleData() {
getCircleRole({}).then((res) => {
if(res.code == '000000') {
//mainManager主管理员,manager管理员,ordinary普通人
const { mainManager, manager, ordinary} = res.data;
localStorage.setItem('mainManager', vm.setStoreData(mainManager))
localStorage.setItem('manager', vm.setStoreData(manager))
localStorage.setItem('ordinary', vm.setStoreData(ordinary))
} else {
vm.$message.info(res.message)
}
})
},
getRedData() { getRedData() {
getRedNum({ getRedNum({
openTime: (new Date()).getTime() openTime: (new Date()).getTime()
......
<template>
<el-form
ref="formData"
:model="formData"
:rules="rules"
label-width="150px"
label-suffix=":"
class="basic-form"
>
<el-form-item label="圈子名称" prop="name">
<el-col :span="13">
<el-input
size="small"
v-model="formData.name"
placeholder="请输入圈子名称"
style="width:70%;"
@change="returnTypeData('name')"
></el-input>
<span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/14</span>
</el-col>
</el-form-item>
<div class="basic-item-icon">
<el-form-item label="圈子头像" class="required-label">
<el-upload
v-model="formData.headUrl"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadPic1"
>
<img
v-if="formData.headUrl"
:src="formData.headUrl"
@mouseover.stop="imgMouseOver1=true"
class="bg-img"
/>
<img v-if="!formData.headUrl" class="bg-img" src="../../assets/image/small.png" />
<div
class="img-delete"
v-show="imgMouseOver1"
@click.stop="deleteImg(1)"
@mouseout.stop="imgMouseOver1=false"
>
<i class="el-icon-delete"></i>
</div>
<div class="limit-text">
<p></p>
<p>尺寸:160*160</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
</el-form-item>
<p class="upload-message" v-if="uploadImgMessage1">请选择圈子头像</p>
</div>
<el-form-item label="圈子介绍" prop="introduce">
<el-col :span="13">
<el-input
size="small"
v-model="formData.introduce"
placeholder="请输入圈子介绍"
@change="returnTypeData('introduce')"
style="width:70%;"
></el-input>
<span class="word-num">{{(formData.introduce).replace(/\s+/g,"").length}}/40</span>
</el-col>
</el-form-item>
<el-form-item label="内容发布权限" prop="dynamicFlag">
<el-select
v-model="formData.dynamicFlag"
@change="returnTypeData('dynamicFlag')"
placeholder="请选择发布权限"
size="small"
clearable
>
<el-option
v-for="(item,index) in contentList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<script>
let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
export default {
name: "baseinfo",
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
created() {
vm = this;
},
data() {
let checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
return {
rules: {
name: [
{ required: true, message: "请输入圈子名称", trigger: "blur" },
{
min: 2,
max: 14,
message: "输入长度为2-14的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: "blur" }
],
introduce: [
{ required: true, message: "请输入圈子介绍", trigger: "blur" },
{
min: 2,
max: 40,
message: "输入长度为2-40的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: "blur" }
],
headUrl: [
{ required: true, message: "请选择圈子头像", trigger: "blur" }
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权限", trigger: "blur" },
]
},
imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语
contentList: [
{
value: 1,
label: '所有人可发布'
}, {
value: 2,
label: '管理员可发布'
},
],
}
},
methods: {
returnTypeData(name) {
this.$emit('returnTypeData', {
name: name,
val: this.formData[name]
})
},
//表单校验
submitForm() {
let formName = "formData";
let flag = null;
if (!this.formData.headUrl){
this.uploadImgMessage1 = true;
}
this.$refs[formName].validate(valid => {
if (valid&&this.formData.headUrl!="") {
flag = true;
} else {
console.log("error submit!!");
flag = false;
}
});
this.$emit('returnIsNext', flag);
},
//上传圈子头像
beforeUploadPic1(file) {
let fileLimit = {
width: 48,
height: 48,
size: 0.5,
sizeText: "500K",
key: "headUrl",
more: "imgUrl1More",
show: "uploadImgMessage1"
};
this.beforeUpload(file, fileLimit);
},
//上传图片
beforeUpload(file, fileLimit) {
let vm = this;
const isJPG = file.type === "image/jpeg";
const isPNG = file.type === "image/png";
const isLt2M = file.size / 1024 / 1024 < fileLimit.size;
if (!isJPG && !isPNG) {
vm.$message.error("图片格式不符合规范,请根据规范上传图片");
// return;
}
if (!isLt2M) {
vm.$message.error("图片大小不符合规范,请根据规范上传图片 ");
return;
}
let _img = new FileReader();
_img.readAsDataURL(file);
_img.onload = function (theFile) {
let image = new Image();
image.src = theFile.target.result;
image.onload = function () {
let _this = this;
// if (_this.width != fileLimit.width || _this.height != fileLimit.height) {
if (_this.width != _this.height) {
vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
} else {
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm);
console.log('上传成功后路径', path);
if (fileLimit.show == "uploadImgMessage1") {
vm.uploadImgMessage1 = false;
} else if (fileLimit.show == "uploadImgMessage2") {
vm.uploadImgMessage2 = false;
}
vm.formData[fileLimit.key] = path.fullPath;
vm.formData[fileLimit.more] = {
attachmentName: path.name,
attachmentExt: path.ext,
attachmentSize: path.size
};
vm.$message.success("上传成功");
});
}
};
};
return isJPG && isLt2M;
},
//删除图片
deleteImg(type) {
if (type == 1) {
vm.formData.headUrl = "";
vm.imgMouseOver1 = false;
}
}
}
}
</script>
<style lang="less">
.first-step {
margin-top: 20px;
.p-title {
padding-left: 10px;
margin-bottom: 15px;
}
.basic-item-icon {
position: relative;
.require {
position: absolute;
left: 67px;
top: 11px;
color: #f56c6c;
}
.upload-message {
position: absolute;
left: 160px;
top: 105px;
font-size: 12px;
color: #f56c6c;
}
.img-delete {
position: absolute;
left: 0px;
top: 0px;
width: 84px;
height: 100px;
background: #000;
opacity: 0.7;
z-index: 999;
i {
color: #fff;
margin-top: 39px;
margin-left: 0px;
}
}
}
.word-num {
font-size: 12px;
color: #999;
padding-top: 5px;
}
.line {
margin-left: 10px;
width: 20px;
}
.bg-uploader {
.bg-img {
float: left;
width: 84px;
height: 100px;
}
.limit-text {
float: left;
margin-left: 10px;
margin-top: -10px;
p {
font-size: 12px;
color: #999;
text-align: left;
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
}
.required-label .el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
</style>
<template>
<el-tabs v-model="activeName">
<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" type="primary" @click="resetOrgOrPerson()">重置</el-button>
</el-form-item>
</el-form>
<el-table class="rim" ref="multipleOrganization" :data="tableOrganization" tooltip-effect="dark" style="width: 100%"
@select-all="selectAllOrganization" @select="selectOrganization">
<el-table-column type="selection" width="55" :selectable="selectableTableList"></el-table-column>
<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>
<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-tabs>
</template>
<script>
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import * as operationData from "../../utils/operation";
import { getCircleProvincesReq, getMemberSelectOrgReq,getMemberSelectOrgOptionReq } from '@/utils/yqrange/rangeApi';
let vm = null;
export default {
name: "organzation",
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data() {
return {
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");
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,
activeName:"",
formOrganization: {
name: "",
administrativeId: "0",
administrativeIdList: ["0"],
level: "",
chechAll: true,
pageNum: 1,
pageSize: 10
},
}
},
mounted() {
// const { enterType, id } = this.$route.query;
this.circleId = vm.formData.id;
this.initRange();
//Idtype:1,内部 2.外部
vm.idType = localStorage.getItem("storageIdType");
console.log("this.idType:" + vm.idType);
},
created() {
vm = this;
},
methods: {
initRange() {
let circleId = this.formData.id;
this.getRegionOption();
this.listLevels();
this.getOrganization();
this.activeName = "second";
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.administrativeIdList = ["0"];
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;
// 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;
},
//获取地区
getRegionOption() {
openLoading(vm);
let idType = localStorage.getItem("storageIdType");
debugger
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
);
}
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//机构table中勾选一个
selectOrganization(selection, row) {
console.log("select", selection, row);
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);
getMemberSelectOrgOptionReq(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
//机构table中勾选一排
selectAllOrganization(selection) {
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (vm.tableOrganization[i].modifyFlag == 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,
projectId: this.circleId,
type: typeStatus
};
openLoading(vm);
getMemberSelectOrgOptionReq(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
}
},
selectableTableList(row, index) {
// if (this.status4Flag == 1) {
if (row.modifyFlag == 1) {
return false;
}
return true;
// }
// return true;
},
//机构搜索
getOrganizationChoose() {
console.log('formOrganization', this.formOrganization);
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
if (administrativeIdItem == "000_0"){
administrativeIdItem=""
}
let idType = localStorage.getItem("storageIdType");
console.log('administrativeIdItem', administrativeIdItem);
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
};
openLoading(vm);
getMemberSelectOrgReq(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('请求失败');
});
},
//查询机构列表
getOrganization() {
let idType = localStorage.getItem("storageIdType");
let req = {
circleId: this.circleId,
districtIds: "",
orgLevel:"",
orgName: this.formOrganization.name,
pageNo: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
idType: idType
};
openLoading(vm);
getMemberSelectOrgReq(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('请求失败');
});
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
// console.log(res);
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();
}
},
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach(row => {
if (row.status == 1) {
this.$nextTick(function () {
this.$refs.multipleOrganization.toggleRowSelection(row);
});
}
});
},
//重置机构、人员查询
resetOrgOrPerson() {
vm.formOrganization.name = "";
vm.formOrganization.administrativeId = "0";
vm.formOrganization.administrativeIdList = ["0"];
vm.formOrganization.level = "";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
},
getTreeCheck() {
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(
this.$refs.tree.store
);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys();
let allSelectedKeys = operationData.setSelectedKeys(
checkedTree,
halfCheckedTree
);
vm.allSelectedKeys = allSelectedKeys;
//重构内容
return allSelectedKeys;
},
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();
}
},
returnTypeData(name) {
this.$emit('returnTypeData', {
name: name,
val: this.formData[name]
})
}
}
}
</script>
\ No newline at end of file
<!-- 圈子router -->
\ No newline at end of file
...@@ -48,6 +48,13 @@ const editCustom = r => require.ensure([], () => r(require('../views/education/e ...@@ -48,6 +48,13 @@ const editCustom = r => require.ensure([], () => r(require('../views/education/e
const noticeEditor = r => require.ensure([], () => r(require('../views/education/notice-editor.vue')), 'notice-editor') const noticeEditor = r => require.ensure([], () => r(require('../views/education/notice-editor.vue')), 'notice-editor')
const yqRange = r => require.ensure([], () => r(require('../views/yqrange/yq-range.vue')), 'yq-range')
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 createRange = r => require.ensure([], () => r(require('../views/yqrange/create-range.vue')), 'create-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')
export default [{ export default [{
path: '/', path: '/',
component: App, component: App,
...@@ -187,11 +194,36 @@ export default [{ ...@@ -187,11 +194,36 @@ export default [{
{ {
path: '/edu-role', path: '/edu-role',
component: eduRole component: eduRole
}, },
{ {
path: '/notice-editor', path: '/notice-editor',
component: noticeEditor component: noticeEditor
}, },
{
path: '/yq-range',
component: yqRange
},
{
path: '/live-manage',
component: liveManage
},
{
path: '/role-manage',
component: roleManage
},
{
path: '/create-range',
component: createRange
},
{
path: '/create-live',
component: createLive
},
{
path:'/edit-range',
component: editRange
},
// { // {
// path: '/followup', // path: '/followup',
// name: 'followUp', // name: 'followUp',
......
...@@ -10,7 +10,7 @@ export const envConfig = { ...@@ -10,7 +10,7 @@ export const envConfig = {
// baseUrl: 'https://uat-sc.yunqueyi.com/', // baseUrl: 'https://uat-sc.yunqueyi.com/',
// baseUrl: 'http://10.177.15.150:10401/', // baseUrl: 'http://10.177.15.150:10401/',
// baseUrl: 'http://10.177.15.150:11905/', // baseUrl: 'http://10.177.15.150:11905/',
baseUrl: 'https://uat-sc.yunqueyi.com/', baseUrl: 'https://dev-sc.yunqueyi.com/',
// baseUrl: 'https://test1-sc.yunqueyi.com/', // baseUrl: 'https://test1-sc.yunqueyi.com/',
// baseUrl: 'https://sc.yunqueyi.com/', // baseUrl: 'https://sc.yunqueyi.com/',
// baseUrl: 'https://uat-sc.yunqueyi.com/', // baseUrl: 'https://uat-sc.yunqueyi.com/',
......
...@@ -52,9 +52,10 @@ service.interceptors.request.use(config => { ...@@ -52,9 +52,10 @@ service.interceptors.request.use(config => {
if( config.headers['sysCode']==undefined) { if( config.headers['sysCode']==undefined) {
config.headers['sysCode'] = 12 config.headers['sysCode'] = 12
} }
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境 if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit
// console.log('环境变量>>>> ', process.env.BUILD_ENV); // console.log('环境变量>>>> ', process.env.BUILD_ENV);
config.headers['token'] = 'AA3888A4256A49099D14879928E3E919'; // config.headers['token'] = 'C503E1399DCD408992D8482B06747FD3';
config.headers['token'] = 'B27DC440F5A04807AEA8E31B2B58EDF8';
// 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')
......
const vueFilter = { const vueFilter = {
liveDateFilter: (value) => { liveDateFilter: (value) => {
if (!value) return ''; if (!value) return '';
// var date = new Date(value);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
// var year = date.getFullYear(),
// month = ("0" + (date.getMonth() + 1)).slice(-2),
// sdate = ("0" + date.getDate()).slice(-2),
// hour = ("0" + date.getHours()).slice(-2),
// minute = ("0" + date.getMinutes()).slice(-2),
// second = ("0" + date.getSeconds()).slice(-2);
// // 拼接
// var result = year + "-"+ month +"-"+ sdate +" "+ hour +":"+ minute +":" + second;
// var result = `${month}-${sdate} ${hour}:${minute}`;
// 返回
// return result;
return new Date(value).format("yyyy-MM-dd hh:mm:ss"); return new Date(value).format("yyyy-MM-dd hh:mm:ss");
// return new Date(value.replace(/\s/, 'T')).format("yyyy-MM-dd hh:mm:ss");
}, },
liveFilter: (value) => { liveFilter: (value) => {
if (value.liveStatus == 1) { if (value.liveStatus == 1) {
...@@ -446,5 +459,44 @@ const vueFilter = { ...@@ -446,5 +459,44 @@ const vueFilter = {
return value return value
} }
}, },
// 云鹊小圈 内容发布权限
dynamicFlagStatus: (value) => {
if (value == 1) {
return '所有人可发布'
}else if (value == 2) {
return '管理员可发布'
}else {
return '-'
}
},
// 圈子状态 0:暂存 10:待发布(已保存) 20:已发布(已提交待审核、审核被拒绝) 30:已上架(审核通过)40:下架 50:解散
rangeStatus: (value) => {
if (value == 0) {
return '暂存'
}else if (value == 10) {
return '下线'
}else if (value == 20) {
return ''
}else if (value == 30) {
return '上线'
} else if (value == 40) {
return '下线'
}else if (value == 50) {
return '已解散'
}else {
return '-'
}
},
liveStatusFilter: (value) => {
if (value == 1) {
return '预告'
}else if (value == 2) {
return '直播中'
}else if (value == 4) {
return '已结束'
}else {
return '-'
}
},
} }
export default vueFilter export default vueFilter
\ No newline at end of file
...@@ -305,6 +305,16 @@ export function setRegionOption2(data) { ...@@ -305,6 +305,16 @@ export function setRegionOption2(data) {
} }
return option; return option;
} }
export function setRegionOption3(data) {
let option = [];
for (let i = 0; i < data.length; i++) {
let obj = data[i];
obj.label = data[i].provinceName;
obj.value = data[i].provinceId;
option.push(obj);
}
return option;
}
export function setRegionOptionNew(data) { export function setRegionOptionNew(data) {
let option = []; let option = [];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
......
...@@ -499,3 +499,18 @@ export const postTrace = (actionName, viewPath) => { ...@@ -499,3 +499,18 @@ export const postTrace = (actionName, viewPath) => {
description: '手动添加埋点', description: '手动添加埋点',
}) })
} }
export const getCircleRole = (params) => {
// return utils.checkAuth(()=>{
return fetch({
headers: {
token: localStorage.getItem('storageToken')
},
url: getBaseUrl(`circle/circle/user/auth`),
method: 'get',
params: params,
description: '获取圈子展示权限',
})
// })
};
import fetch from '../fetch';
import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const getCircleInfoReq = (id) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/${id}/info`),
method: 'get',
description: '获取圈子详情',
})
};
export const getCircleProvincesReq = (idType) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/provinces/idType/${idType}`),
method: 'get',
description: '根据用户ID 获取选人时省市',
})
};
export const getMemberSelectOrgReq = (data) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/search`),
method: 'post',
data: data,
description: '圈子设置查询机构列表',
})
};
export const getMemberSelectOrgOptionReq = (data) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/option`),
method: 'post',
data: data,
description: '圈子设置勾选操作',
})
};
export const getMemberSelectOrgSaveReq = (data) => {
return fetch({
headers,
url: getBaseUrl(`circle/memberSelect/org/save`),
method: 'post',
data: data,
description: ' 圈子设置选择机构保存',
})
};
import fetch from '../fetch';
import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const getAuth = () => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/user/auth`),
method: 'get',
description: '查看外部用户权限接口',
})
};
export const getRangeList = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/list`),
method: 'post',
data: params,
description: '查看圈子列表',
})
};
export const updateRangeStatus = (params) => {
return fetch({
headers,
url: getBaseUrl(`circle/circle/change/${params.id}/status/to/${params.status}`),
method: 'get',
// params: params,
description: '查询单个直播',
})
};
export const getRtcInfo = (params) => {
return fetch({
headers,
url: getBaseUrl(`rtc/liveAdmin/${params.rtcId}`),
method: 'get',
// params: params,
description: '查询单个直播',
})
};
...@@ -311,10 +311,25 @@ ...@@ -311,10 +311,25 @@
checkAuth: true, checkAuth: true,
} }
const yqRange = {
title: '云鹊小圈',
icon: 'el-icon-setting',
index: 'yq-range'
};
vm.items[1].title = '教育培训'; vm.items[1].title = '教育培训';
vm.items.push(followSider); vm.items.push(followSider);
vm.items.push(patients); vm.items.push(patients);
vm.items.push(message); vm.items.push(message);
let mainManager = localStorage.getItem('mainManager')
let manager = localStorage.getItem('manager')
let ordinary = localStorage.getItem('ordinary')
console.log('zhu',mainManager)
console.log('guan',manager)
console.log('pu',ordinary)
if (mainManager == 1 || manager == 1) {
vm.items.push(yqRange);
}
}, },
setEntrySide() { setEntrySide() {
...@@ -367,12 +382,18 @@ ...@@ -367,12 +382,18 @@
}, },
] ]
} }
const yqRange = {
title: '云鹊小圈',
icon: 'el-icon-setting',
index: 'yq-range'
};
vm.items[1].subs.push(itemComponent); vm.items[1].subs.push(itemComponent);
vm.items[1].subs.push(templateManager); vm.items[1].subs.push(templateManager);
vm.items[1].subs.push(followSider); vm.items[1].subs.push(followSider);
vm.items.push(eduRole); vm.items.push(eduRole);
vm.items.push(cme); vm.items.push(cme);
vm.items.push(yqRange);
}, },
goToMessageSendPage(checkAuth) { goToMessageSendPage(checkAuth) {
......
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond" :curmbThird="curmbThird":jumPathThird="jumPathThird"></bread-crumb>
<div class="yqrange-index-content screenSet" id="screenSet">
<el-row class="step-content">
<el-col :span="12">
<div style="color:#666666;font-size:14px;">{{curmbThird}}</div>
<!--<el-steps :active="active" simple class>-->
<!--<span class="step-num" :class="{ 'on-step': stepData[0] }">1</span>-->
<!--<el-step title="基础信息"></el-step>-->
<!--<span class="step-num" :class="{ 'on-step': stepData[1] }">2</span>-->
<!--<el-step title="选择范围">2</el-step>-->
<!--</el-steps>-->
</el-col>
<el-col :span="6" :offset="5">
<el-button size="small" type="primary" @click="complete('formData')">完成</el-button>
</el-col>
</el-row>
<div class="first-step">
<!--<p class="p-title">基础信息</p>-->
<el-form ref="formData"
:model="formData"
:rules="rules"
label-width="150px"
label-suffix=":"
class="basic-form">
<el-form-item label="直播标题" prop="name">
<el-col :span="13">
<el-input
size="small"
v-model="formData.name"
maxlength="20"
placeholder="请输入直播标题"
style="width:70%;"
></el-input>
<span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/20</span>
</el-col>
</el-form-item>
<el-form-item label="是否公开" prop="scope">
<el-radio-group v-model="formData.scope" size="small" @change="changeScope">
<el-radio label="1">否(仅限圈内人观看)</el-radio>
<el-radio label="2">是(任何人可观看)</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否收集用户信息" prop="infoCollect" v-if="isCollectShow">
<el-radio-group v-model="formData.infoCollect" size="small">
<el-radio label="0"></el-radio>
<el-radio label="1">是(收集姓名等信息)</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="直播开始时间" prop="openTime">
<el-col :span="6">
<el-date-picker
v-model="formData.openTime"
size="small"
type="datetime"
placeholder="请选择直播开始时间"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="pickerOptions0"
style="width: 100%;"
></el-date-picker>
</el-col>
</el-form-item>
<el-form-item label="直播简介" class="required-label">
<el-col :span="12">
<div style="color:#666666;font-size:10px;">直播图片可选择仅文字版,仅图片版或文字版+图片版</div>
<el-input type="textarea" v-model="formData.textContent" placeholder="请输入直播简介" maxlength="300" rows="4" style="width:80%;"></el-input>
<span class="word-num">{{(formData.textContent).replace(/\s+/g,"").length}}/300</span>
<div style="color:#666666;font-size:12px;">文字版</div>
</el-col>
<el-col :span="12" class="basic-item-icon" style="margin-top:35px;">
<el-upload
v-model="formData.imageContent"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadPic1"
>
<img
v-if="formData.imageContent"
:src="formData.imageContent"
@mouseover.stop="imgMouseOver1=true"
class="bg-img"
/>
<img
v-if="!formData.imageContent"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete"
v-show="imgMouseOver1"
@click.stop="deleteImg(1)"
@mouseout.stop="imgMouseOver1=false"
>
<i class="el-icon-delete"></i>
</div>
<div class="limit-text">
<p>限制大小: 2mb</p>
<p>尺寸:750*(不限高度)</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
<div style="color:#666666;font-size:12px;">图片版</div>
</el-col>
</el-form-item>
<div class="basic-item-icon">
<el-form-item label="直播封面" class="required-label">
<el-upload
v-model="formData.cover"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadPic2"
>
<img
v-if="formData.cover"
:src="formData.cover"
@mouseover.stop="imgMouseOver2=true"
class="bg-img"
/>
<img
v-if="!formData.cover"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete"
v-show="imgMouseOver2"
@click.stop="deleteImg(2)"
@mouseout.stop="imgMouseOver2=false"
>
<i class="el-icon-delete"></i>
</div>
<div class="limit-text">
<p>限制大小: 200kb</p>
<p>尺寸:160*120</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
</el-form-item>
<p class="upload-message" v-if="uploadImgMessage2">请选择直播封面</p>
</div>
<div class="basic-item-icon">
<el-form-item label="直播预告图" class="required-label">
<el-upload
v-model="formData.preImage"
class="bg-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeUploadPic3"
>
<img
v-if="formData.preImage"
:src="formData.preImage"
@mouseover.stop="imgMouseOver3=true"
class="bg-img"
/>
<img
v-if="!formData.preImage"
class="bg-img"
src="../../assets/image/small.png"
/>
<div
class="img-delete"
v-show="imgMouseOver3"
@click.stop="deleteImg(3)"
@mouseout.stop="imgMouseOver3=false"
>
<i class="el-icon-delete"></i>
</div>
<div class="limit-text">
<p>限制大小: 500kb</p>
<p>尺寸:750*420</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
</el-form-item>
<p class="upload-message" v-if="uploadImgMessage3">请选择直播预告图</p>
</div>
<el-form-item label="直播角色">
<div style="color:#666666;font-size:10px;">讲师(必填)</div>
<el-col :span="10">
<el-form-item label="姓名" prop="lecturesUserName" label-width="60px;">
<el-input
size="small"
v-model="formData.lecturesUserName"
placeholder="请输入姓名"
style="width:70%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="手机" prop="lecturesPhone">
<el-input maxlength="11"
size="small"
v-model="formData.lecturesPhone"
placeholder="请输入手机号"
style="width:70%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<div style="color:#666666;font-size:10px;">嘉宾(选填)</div>
</el-col>
<div v-for="(item, index) in formData.guests" :key="index">
<el-col :span="10">
<el-form-item label="姓名" label-width="60px;">
<el-input
size="small"
v-model="item.username"
placeholder="请输入姓名"
style="width:70%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="手机">
<el-input maxlength="11"
size="small"
v-model="item.phone"
placeholder="请输入手机号"
style="width:70%;"
></el-input>
 <img
@click="addGuest(index)"
class="edit-img"
src="../../assets/image/plus.png"
v-if="isPreview!=1"
/>
<img
@click="delGuest(index)"
v-if="index >= 1 && isPreview!=1"
class="edit-img"
src="../../assets/image/trash.png"
/>
</el-form-item>
</el-col>
</div>
<!--<el-col :span="15">-->
<!--<p class="err-text" v-if="guestErrFlag"><img src="../../assets/image/err-icon.svg" alt="">{{guestErrText}}</p>-->
<!--</el-col>-->
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from "@/components/breadcrumb.vue";
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { checkMobile } from '../../utils/patients/checkValid';
import { getRtcInfo } from "../../utils/yqrange/yqrangeApi";
// import { checkPhone } from "../login.vue";
let vm = null;
export default {
components: {
BreadCrumb
},
data(){
let checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
return{
circleId: '',
curmbFirst: '云鹊小圈',
curmbSecond: '直播管理',
curmbThird: '新建直播',// /live-manage?id=
jumPathThird: '',
//页面展示位置
isCollectShow: false,
formData: {
circleId: "",// 圈子ID
name: '',// 直播名称
scope: "1",// 直播范围 1-非公开 2-公开
infoCollect: "0",// 是否采集用户信息 0-否 1-是
openTime: '',// 直播开始时间
rtcIntroduces:[{
seqNo: "",
content: '',
type: "1" // 文字
},
{
seqNo: "",
content: '',
type: "2" // 图片
}
],// 直播简介
cover: '', // 直播封面url 直播第一帧图片
preImage: '', // 直播预告图url
textContent: '', // 直播简介文字版
imageContent: '',// 直播简介图片版
// imgUrl2: '',
// imgUrl2More: {},
// imgUrl3: '',
// imgUrl3More: {},
intro:'',
hostName: '',
guestName: '',
hostMobile: '',
guestMobile: '',
mobile1: '',
lecturesUserName: '',
lecturesPhone: '',
lecturers: [{
username: '',
phone: ''
}],// 讲师
guests: [{
phone: '',
username: ''
}] // 嘉宾
},
// imgUrl1: '',
imgUrl1More: {},
guestErrFlag: false,
guestErrText: '嘉宾最多5位!',
isPreview: 0,
imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语
imgMouseOver2: false,
uploadImgMessage2: false,
imgMouseOver3: false,
uploadImgMessage3:false,
submitFlag: false,
pickerOptions0: {
disabledDate: time => {
// 在科学计数法中,为了使公式简便,可以用带“E”的格式表示。例如1.03乘10的8次方,可简写为“1.03e8”的形式
// 一天是24*60*60*1000 = 86400000 = 8.64e7
// console.log('this.maxDate',this.maxDate)
return time.getTime() < Date.now() - 8.64e7
}
},
rules: {
name: [
{ required: true, message: "请输入直播标题", trigger: "blur" },
{
min: 2,
max: 24,
message: "输入长度为2-24的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: "blur" }
],
scope:[
{required: true}
],
infoCollect: [
{required: true, message: "请选择是否收集用户信息", trigger: "blur"}
],
openTime: [
{required: true, message: "请选择直播开始时间", trigger: "blur"}
],
// // 直播简介
// introduce: [
// {required: true, message: "请选择文字版或图片版", trigger: "blur"}
// ],
lecturesUserName: [
{required: true, message: "请输入姓名", trigger: "blur"},
],
// guestName: [
// {required: true, message: "请输入姓名", trigger: "blur"},
// ],
lecturesPhone: [
{required: true, message: "请输入手机号", trigger: ['change','blur']},
{validator: checkMobile, trigger: ['change','blur']}
],
// introduce: [
// { required: true, message: "请输入", trigger: "blur" },
// {
// min: 2,
// max: 24,
// message: "输入长度为2-24的内容,可包含中英文、数字及特殊符号",
// trigger: "blur"
// },
// { validator: checkProjectStr, trigger: "blur" }
// ],
}
}
},
created() {
// 区分内部用户和外部用户
let idType = localStorage.getItem('storageIdType');
this.circleId = this.$route.query.circleId;
this.formData.circleId = this.circleId;
this.jumPathThird = '/live-manage?id=' + this.circleId;
// if(circleId){
// this.curmbThird = "新建直播";
// }
// vm = this;
// vm.entryId = vm.getUrlSearch(window.location.href, "entryId");
// vm.peopleLevel = vm.getUrlSearch(window.location.href, "level");
// vm.init();
},
mounted() {
const rtcId = this.$route.query.rtcId;
// if(rtcId){
// this.curmbThird = "编辑直播";
// }
if(rtcId){
this.curmbThird = "编辑直播";
this.initRtcInfo(rtcId);
}
},
methods: {
checkPhone(val) {
if(!(/^1[3456789]\d{9}$/.test(val))) {
return false;
} else {
return true;
}
},
// 初始化直播
initRtcInfo(rtcId){
getRtcInfo({
rtcId
}).then((res) => {
if(res.code == "000000") {
this.formData = res.data;
if(this.formData != null){
if(this.formData.guests == null || this.formData.guests.length == 0){
this.formData.guests = [{phone: '',username: ''}];
}
}
this.formData.circleId = this.circleId;
this.initFormData();
console.log(this.formData);
}
}).catch((error) => {
this.$message({
message: error,
type: 'error'
});
})
},
//上传直播简介
beforeUploadPic1(file) {
let fileLimit = {
width: 750,
height: "",
size: 2,
sizeText: "2Mb",
key: "imageContent",
more: "imgUrl1More",
show: "uploadImgMessage1"
};
this.beforeUpload(file, fileLimit);
},
// 上传直播封面
beforeUploadPic2(file) {
let fileLimit = {
width: 160,
height: 120,
size: 0.2,
sizeText: "200k",
key: "cover",
more: "imgUrl2More",
show: "uploadImgMessage2"
};
this.beforeUpload(file, fileLimit);
},
// 上传直播预告图
beforeUploadPic3(file) {
let fileLimit = {
width: 750,
height: 420,
size: 0.5,
sizeText: "500k",
key: "preImage",
more: "imgUrl3More",
show: "uploadImgMessage3"
};
this.beforeUpload(file, fileLimit);
},
//上传图片
beforeUpload(file, fileLimit) {
let vm = this;
const isJPG = file.type === "image/jpeg";
const isPNG = file.type === "image/png";
const isLt2M = file.size / 1024 / 1024 < fileLimit.size;
if (!isJPG && !isPNG) {
vm.$message.error("图片格式不符合规范,请根据规范上传图片");
return;
}
if (!isLt2M) {
vm.$message.error("图片大小不符合规范,请根据规范上传图片 ");
return;
}
let _img = new FileReader();
_img.readAsDataURL(file);
_img.onload = function(theFile) {
let image = new Image();
image.src = theFile.target.result;
image.onload = function() {
let _this = this;
if(fileLimit.key == "imageContent" & _this.width != fileLimit.width){
vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
}
else if (fileLimit.key != "imageContent" & (_this.width != fileLimit.width || _this.height != fileLimit.height)) {
vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
} else {
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function(path) {
closeLoading(vm);
console.log('上传成功后路径',path);
if (fileLimit.show == "uploadImgMessage1") {
vm.uploadImgMessage1 = false;
} else if (fileLimit.show == "uploadImgMessage2") {
vm.uploadImgMessage2 = false;
}
else if (fileLimit.show == "uploadImgMessage3") {
vm.uploadImgMessage3 = false;
}
vm.formData[fileLimit.key] = path.fullPath;
vm.formData[fileLimit.more] = {
attachmentName: path.name,
attachmentExt: path.ext,
attachmentSize: path.size
};
vm.$message.success("上传成功");
});
}
};
};
return isJPG && isLt2M;
},
// 是否公开
changeScope(value){
if(value == 2){
this.isCollectShow = true;
}
else {
this.isCollectShow = false;
}
},
// 校验直播简介文字版或图片版
checkIntroduce(){
// console.log(this.formData.rtcIntroduces[0].content);
console.log(this.formData.rtcIntroduces[1].content);
let flag = true;
if(this.formData.textContent == ""
& this.formData.imageContent == ""){
flag = false;
this.$message.error("直播简介中可选择仅文字版,仅图片版或文字版+图片版");
}
return flag;
},
//删除图片
deleteImg(type) {
if (type == 1) {
this.formData.imageContent = "";
this.imgMouseOver1 = false;
}
else if (type == 2) {
this.formData.cover = "";
this.imgMouseOver2 = false;
}
else if (type == 3) {
this.formData.preImage = "";
this.imgMouseOver3 = false;
}
},
// 校验直播封面
checkCover(){
let flag = true;
if(this.formData.cover == ""){
flag = false;
this.$message.error("请上传直播封面!");
}
return flag;
},
// 校验直播预告图
checkPreImage(){
let flag = true;
if(this.formData.preImage == ""){
flag = false;
this.$message.error("请上传直播预告图!");
}
return flag;
},
// 校验嘉宾姓名和手机号
checkGuests(){
let flag = true;
if(this.formData.guests != null & this.formData.guests.length >= 1){
for(let i=0;i<this.formData.guests.length;i++) {
if(this.formData.guests[i].username == "" & this.formData.guests[i].phone == ""){
// this.formData.guests.splice(i, 1);
if(this.submitFlag){
this.formData.guests.splice(i, 1);
continue;
}
else {
this.$message.error("请输入嘉宾姓名和手机号");
flag = false;
break;
}
}
if(this.formData.guests[i].username != "" & this.formData.guests[i].phone == ""){
this.$message.error("请输入嘉宾'" + this.formData.guests[i].username + "'的手机号");
flag = false;
break;
}
else if(this.formData.guests[i].username != "" & this.formData.guests[i].phone != ""){
if(!this.checkPhone(this.formData.guests[i].phone)){
this.$message.error("请输入嘉宾'" + this.formData.guests[i].username + "'的正确手机号");
flag = false;
break;
}
// 检查讲师和嘉宾手机号是否相同
if(!this.checkUniquePhone(this.formData.lecturesPhone, this.formData.guests[i].phone)){
this.$message.error("请输入不同的手机号");
flag = false;
break;
}
// 检查嘉宾手机号是否相同
if(this.formData.guests.length > 1){
for(let j= i + 1;j<this.formData.guests.length;j++) {
if(!this.checkUniquePhone(this.formData.guests[i].phone, this.formData.guests[j].phone)){
this.$message.error("请输入不同的手机号");
flag = false;
break;
}
}
}
}
else if(this.formData.guests[i].username == "" & this.formData.guests[i].phone != ""){
this.$message.error("请输入手机号为'" + this.formData.guests[i].phone + "'嘉宾的姓名");
flag = false;
break;
}
}
}
return flag;
},
checkUniquePhone(phone1, phone2){
let flag = true;
if(phone1 != "" & phone2 != "" & phone1 == phone2){
flag = false;
}
return flag;
},
// 增加嘉宾
addGuest(index) {
this.submitFlag = false;
if(!this.checkGuests()){
return;
}
if(this.formData.guests != null & this.formData.guests.length >= 5){
this.$message.error("嘉宾最多5位!");
// this.guestErrFlag = true;
// setTimeout(function () {
// this.guestErrFlag = false;
// }, 3000)
}
else {
this.formData.guests.push({username: "", phone: ""});
// this.formData.guests.splice(index + 1, 0, "");
}
},
// 删除嘉宾
delGuest(index) {
this.formData.guests.splice(index, 1);
},
// 封装数据
initFormData(){
this.formData.scope = String(this.formData.scope);
if(this.formData.scope == "2"){
this.isCollectShow = true;
}
this.formData.infoCollect = String(this.formData.infoCollect);
if(this.formData.rtcIntroduces != null){
for(let i=0;i<this.formData.rtcIntroduces.length;i++) {
if(this.formData.rtcIntroduces[i].type == "1"){
// this.formData.textContent = this.formData.rtcIntroduces[i].content;
this.$set(this.formData, 'textContent', this.formData.rtcIntroduces[i].content);
}
else if(this.formData.rtcIntroduces[i].type == "2"){
// this.formData.imageContent = this.formData.rtcIntroduces[i].content;
this.$set(this.formData, 'imageContent', this.formData.rtcIntroduces[i].content);
}
}
}
// 设置讲师
if(this.formData.lecturers != null){
// this.formData.lecturesUserName = this.formData.lecturers[0].username;
// this.formData.lecturesPhone = this.formData.lecturers[0].phone;
this.$set(this.formData, 'lecturesUserName', this.formData.lecturers[0].username);
this.$set(this.formData, 'lecturesPhone', this.formData.lecturers[0].phone);
}
},
// 封装数据
setFormData(){
// if(!this.formData.circleId){
// this.formData.circleId = 1;// 测试用
// }
if(this.formData.textContent){
this.formData.rtcIntroduces[0].type = 1;
this.formData.rtcIntroduces[0].content = this.formData.textContent;
}
// 直播简介图片版
if(this.formData.imageContent){
this.formData.rtcIntroduces[1].type = 2;
this.formData.rtcIntroduces[1].content = this.formData.imageContent;
}
// 设置讲师
// if(this.formData.lecturers == undefined){
// this.formData.lecturers
// }
// if(this.formData.lecturers != undefined & this.formData.lecturers.length == 0){
//
// this.formData.lecturers.push({username: this.formData.lecturesUserName, phone: this.formData.lecturesPhone});
// }
this.formData.lecturers[0].username = this.formData.lecturesUserName;
this.formData.lecturers[0].phone = this.formData.lecturesPhone;
},
complete(formName) {
console.log(this.formData);
this.$refs[formName].validate((valid) => {
if (valid) {
this.submit();
} else {
console.log('error submit!!');
return false;
}
});
},
//完成
submit() {
this.submitFlag = true;
this.setFormData();
// 校验直播简介文字版或图片版
if(!this.checkIntroduce()){
return;
}
// 校验直播封面、预告图
if(!this.checkCover() || !this.checkPreImage()){
return;
}
// 校验嘉宾姓名和手机号
if(!this.checkGuests()){
return;
}
let req = this.formData;
openLoading(this);
this.POST('rtc/liveAdmin', req).then((res) => {
closeLoading(this);
if( res.code == '000000') {
this.$message.success("操作成功");
this.$router.push({
path: '/live-manage',
query: {
id: this.formData.circleId
}
})
}
else {
this.$message.error("操作失败,请重试");
}
})
},
},
}
</script>
<style lang="scss">
.yqrange-index-wrapper{
.yqrange-index-content{
background: #fff;
padding: 10px;
.step-content{
overflow: hidden;
height: 60px;
padding: 15px 0 50px 0;
border-bottom: 1px solid #efefef;
.is-text {
display: none;
}
.el-steps--simple {
background: #fff;
padding: 10px 8%;
}
.step-num {
display: block;
margin-top: 1.5px;
font-size: 12px;
border: 1px solid #999 !important;
border-radius: 50%;
width: 25px;
height: 18px;
line-height: 15px;
text-align: center;
color: #999;
}
.el-step__title.is-wait {
color: #999;
}
.el-step__title.is-process {
color: #449284;
}
.is-finish {
color: #999 !important;
}
.on-step {
color: #449284;
border: 1px solid #449284 !important;
}
}
.first-step{
margin-top: 20px;
.p-title{
padding-left: 10px;
margin-bottom: 15px;
}
.basic-item-icon {
position: relative;
.require {
position: absolute;
left: 67px;
top: 11px;
color: #f56c6c;
}
.upload-message {
position: absolute;
left: 160px;
top: 105px;
font-size: 12px;
color: #f56c6c;
}
.img-delete {
position: absolute;
left: 0px;
top: 0px;
width: 84px;
height: 100px;
background: #000;
opacity: 0.7;
z-index: 999;
i {
color: #fff;
margin-top: 39px;
margin-left: 0px;
}
}
}
.word-num {
font-size: 12px;
color: #999;
padding-top: 5px;
}
.line {
margin-left: 10px;
width: 20px;
}
.bg-uploader {
height: 100px;
.bg-img {
float: left;
width: 84px;
height: 100px;
}
.limit-text {
float: left;
margin-left: 10px;
margin-top: -10px;
p {
font-size: 12px;
color: #999;
text-align: left;
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
}
}
}
.required-label .el-form-item__label::before {
content: '*';
color: #F56C6C;
margin-right: 4px;
}
.edit-img {
width: 20px;
vertical-align: middle;
}
</style>
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="yqrange-index-content screenSet" id="screenSet">
<el-row class="step-content">
<el-col :span="14">
<el-steps :active="active" simple class>
<span class="step-num" v-bind:class="{ 'on-step': stepData[0] }">1</span>
<el-step title="基础信息"></el-step>
<span class="step-num" v-bind:class="{ 'on-step': stepData[1] }">2</span>
<el-step title="选择成员">2</el-step>
</el-steps>
</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>
<div class="first-step" v-if="active === 0">
<p class="p-title">基础信息</p>
<base-info :formData="formData" @returnTypeData="returnTypeData" @returnIsNext="returnIsNext" ref="child">
</base-info>
</div>
<div class="second-step" v-else-if="active === 1">
<organzation :formData="formData"></organzation>
</div>
</div>
</div>
</template>
<script>
let vm = null;
import BreadCrumb from "@/components/breadcrumb.vue";
import { openLoading, closeLoading } from "../../utils/utils";
import BaseInfo from '@/components/yqrange/baseinfo.vue';
import Organzation from '@/components/yqrange/organzation.vue';
import { getCircleInfoReq, getMemberSelectOrgSaveReq } from '@/utils/yqrange/rangeApi';
export default {
name: "create-range",
components: {
BreadCrumb,
BaseInfo,
Organzation
},
data() {
return {
id: null,
enterType: 1,//1.creat 2.edit
curmbFirst: '云鹊小圈',
curmbSecond: '新建小圈',
active: 0,
//页面展示位置
stepData: [true, false],
formData: {
id: null,
name: '',
headUrl: '',
imgUrl1More: {},
imgUrl2More: {},
introduce: '',
dynamicFlag: '',
idType: localStorage.getItem("storageIdType")
}
}
},
created() {
vm = this;
// 根据ID是否有值判断编辑还是create
// debugger
const { enterType, id } = this.$route.query;
this.id = id;
this.enterType = enterType;
//edit
if (this.enterType == 2 && this.id != null) {
this.getCircleInfo();
}
},
methods: {
//下一步
nextStep() {
// debugger
this.$refs.child.submitForm();
},
//完成
complete() {
console.log(this.formData.id);
let req = {
circleId: this.formData.id,
};
openLoading(vm);
getMemberSelectOrgSaveReq(req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.$message.success('操作成功');
const _this = this;
setTimeout(function () {
_this.$router.go(-1)
}, 2000);
// vm.$router.push({ path: "yq-range" });
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
// 修改编辑基础信息
returnIsNext(flag) {
if (flag == true) {
this.commitQuanziInfo();
}
},
returnTypeData(item) {
this.formData[item.name] = item.val
},
//获取圈子详情
getCircleInfo() {
getCircleInfoReq(this.id).then(res => {
// closeLoading(this);
if (res.code == "000000") {
this.formData = { ...this.formData, ...res.data };
} else {
this.$message(res.message);
}
}).catch(err => {
this.$message.error('请求失败');
});
},
commitQuanziInfo() {
let req = this.formData;
console.log("commitQuanziInfo() : name = " + req.name + ", headUrl = " + req.headUrl
+ ", coverUrl = " + req.coverUrl + ", introduce = " + req.introduce + ", dynamicFlag = " + req.dynamicFlag)
vm.POST("circle/circle/save", req).then(res => {
if (res.code == "000000") {
// console.log(res);
console.log(this.$refs);
vm.formData.id = res.data;
this.active = 1;
this.stepData = [false, true];
} else {
//
}
});
},
}
}
</script>
<style lang="scss">
.yqrange-index-wrapper {
.yqrange-index-content {
background: #fff;
padding: 10px;
.step-content {
overflow: hidden;
height: 60px;
padding: 15px 0 50px 0;
border-bottom: 1px solid #efefef;
.is-text {
display: none;
}
.el-steps--simple {
background: #fff;
padding: 10px 8%;
}
.step-num {
display: block;
margin-top: 1.5px;
font-size: 12px;
border: 1px solid #999 !important;
border-radius: 50%;
width: 25px;
height: 18px;
line-height: 15px;
text-align: center;
color: #999;
}
.el-step__title.is-wait {
color: #999;
}
.el-step__title.is-process {
color: #449284;
}
.is-finish {
color: #999 !important;
}
.on-step {
color: #449284;
border: 1px solid #449284 !important;
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="add-manager-wrap">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
<div class="add-content screenSet" id="screenSet">
<el-row class="step-content">
<el-col :span="5" :offset="5">
<el-button size="small" type="primary" @click="nextStep">提交</el-button>
</el-col>
</el-row>
<div class="second-step" >
<div >
<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" type="primary" @click="resetOrgOrPerson('org')">重置</el-button>
</el-form-item>
</el-form>
<!--
:row-key="getRowKeys"
:reserve-selection="true"
@selection-change="selectionChangeOrganization"
-->
<el-table
class="rim"
ref="multipleOrganization"
:data="tableOrganization"
tooltip-effect="dark"
style="width: 100%"
@select-all="selectAllOrganization"
@select="selectOrganization"
>
<el-table-column
type="selection"
width="55"
:selectable="selectableTableList"
></el-table-column>
<el-table-column prop="name" label="医院名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospitalLevelName" 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>
</el-tabs>
</div>
<el-dialog
title="导入成功"
:visible.sync="dialogSuccess"
width="30%"
class="dialog-success"
center
>
<p>
本次成功导入
<span class="upload-text">{{ updateNum }}</span> 数据
</p>
<span slot="footer" class="dialog-footer">
<el-button type="primary" size="small" @click="dialogSuccess = false">关闭</el-button>
</span>
</el-dialog>
<el-dialog title="导入失败" :visible.sync="dialogFail" width="30%" class="dialog-fail" center>
<div class="fail-type" v-if="failType == 1">
<p>导入数据量已超限额,请修正后再次导入</p>
<p class="fail-notice">仅支持一次导入5000条数据</p>
</div>
<div class="fail-type" v-if="failType == 2">
<p>
<span class="fail-num">{{ failNum }}</span> 数据不符合格式要求,请修正后再次导入
</p>
<p class="fail-notice">仅支持xlsx格式的文件</p>
<p class="fail-link" @click="download('fail')">下载错误数据></p>
</div>
<span slot="footer" class="dialog-footer">
<el-upload
v-if="uploadType == 'org'"
class="upload-button"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadOrganization"
>
<el-button slot="tip" class="down-button-close" size="small" @click="dialogFail = false">取消</el-button>
<el-button
stype="position: absolute;top: -14px;"
type="primary"
size="small"
@click="closeFail()"
>重新导入</el-button>
</el-upload>
<el-upload
v-if="uploadType == 'person'"
class="upload-button"
action="#"
accept=".xlsx"
multiple
:limit="1"
:before-upload="uploadPerson"
>
<el-button slot="tip" class="down-button-close" size="small" @click="dialogFail = false">取消</el-button>
<el-button
stype="position: absolute;top: -14px;"
type="primary"
size="small"
@click="closeFail()"
>重新导入</el-button>
</el-upload>
</span>
</el-dialog>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation";
import { getExeclUrl } from "@/utils/index";
import {
uploadOrgExcel,
uploadPersonExcel
} from "@/utils/education/educationApi";
import Sortable from "sortablejs";
let vm = null;
export default {
components: {
BreadCrumb
},
data() {
let checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
let checkNormalInt = (rule, value, callback) => {
const val = parseFloat(value);
const isInteger = Number.isInteger(val);
// if((isInteger && val > 0) || checkNeedRule(val)){
if (!value || (isInteger && val >= 0 && val <= 100)) {
callback();
} else {
callback(new Error(`请输入0~100正整数`));
}
};
let checkOrgListName = (rule, value, callback) => {
console.log(rule, value, callback);
// const val = parseFloat(value);
// const isInteger = Number.isInteger(val);
// // if((isInteger && val > 0) || checkNeedRule(val)){
// if (!value || (isInteger && val >= 0 && val <= 100)) {
// callback();
// } else {
// callback(new Error(`请输入0~100正整数`));
// }
};
return {
idTypeProject: "",
customError: {
standard: {
className: "",
error: ""
},
certificate: {
className: "",
error: ""
},
passTotalLearnTime: {
className: "",
error: ""
},
passExamCount: {
className: "",
error: ""
},
passAverageScore: {
className: "",
error: ""
}
},
projectId: null,
peopleLevel: null,
orgListIndex: 0,
pickerOptions0: {
disabledDate: time => {
if (
this.formData.projectEndtime != "" &&
this.formData.projectEndtime != null
) {
return (
time.getTime() > new Date(this.formData.projectEndtime).getTime()
);
}
}
},
pickerOptions1: {
disabledDate: time => {
return (
time.getTime() < new Date(this.formData.projectBegintime).getTime()
); //减去一天的时间代表可以选择同一天;
}
},
fileList: [],
//设定机构 数据
getRowKeys(row) {
return row.id;
},
checkTableState: {
multipleOrganization: "",
multipleDepartment: "",
multiplePerson: ""
},
updatedOrganization: false,
formOrganization: {
name: "",
administrativeId: "0",
administrativeIdList: ["0"],
level: "-1",
chechAll: true,
pageNum: 1,
pageSize: 10
},
organizationRegion: [],
organizationRank: [],
hasOrganizationInit: false,
tableOrganization: new Array(),
multipleSelectionOrganization: [],
currentOrganization: 1,
totalOrganization: 10,
pageSizeOrganization: 2,
lookedOrganization: [],
changedOrganization: [],
changedOrganization2: [],
//搜索类型
searchOrganizationType: "",
searchPeopleType: "",
//v2.2.0更新
warnType: 0,
nowCheck: {},
administrativeValue: "",
optionsRegion: [],
dialogUpload: false,
searchName: "",
getRowKeysDepartment(row) {
return row.id;
},
failType: 2,
failNum: 0,
failExcelUrl: "",
dialogFail: false,
uploadType: "",
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");
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);
});
}
}
},
};
},
computed: {
...mapGetters(["_token"])
},
created() {
vm = this;
(this.projectId = 775),
(this.peopleLevel = vm.getUrlSearch(window.location.href, "level"));
this.initRange();
//this.editManager();
vm.idType = localStorage.getItem("storageIdType");
console.log("this.idType:" + vm.idType);
},
// 挂载到Dom完成时
mounted: function() {
commonUtil.resizeHeight();
},
methods: {
plusOrg(index) {
vm.formData.organizationNameList.splice(index + 1, 0, '');
},
deleteOrg(index) {
vm.formData.organizationNameList.splice(index, 1);
},
focusFun(ev, parm, index) {
if (index != undefined) {
if (parseInt(ev) < 0 || !this.checkIntFun(ev)) {
console.log(typeof index);
this.formExam.exam[index][parm] = "";
}
if (parm == "rangeMax" && parseInt(ev) > 100) {
this.formExam.exam[index][parm] = "100";
}
if (ev != "") {
if (parm == "rangeMax") {
this.formExam.exam[index].maxClass = "";
this.formExam.exam[index].maxError = "";
}
if (parm == "rangeMin") {
this.formExam.exam[index].minClass = "";
this.formExam.exam[index].minError = "";
}
}
} else {
if (parseInt(ev) < 0 || !this.checkIntFun(ev)) {
this.formComponent[parm] = "";
}
if (parm == "passAverageScore" && parseInt(ev) > 100) {
this.formComponent[parm] = "100";
}
if (ev != "") {
this.customError[parm] = {
className: "",
error: ""
};
}
}
},
//第二步 选择范围 初始化
initRange() {
let projectId = this.projectId;
this.getRegionOption();
this.listLevels();
this.getOrganization();
this.activeName = "second";
this.formOrganization.pageNum = 1;
this.formOrganization.name = "";
this.formOrganization.administrativeIdList = ["0"];
this.formOrganization.level = "-1";
},
//初始化范围树
setTreeData(administrative) {
let treeIdList = [];
let checkList = [];
for (let i = 0; i < administrative.length; i++) {
treeIdList.push(administrative[i].id);
checkList[i] = {};
checkList[i].name = administrative[i].label;
checkList[i].key = administrative[i].id;
}
//console.log(treeIdList);
this.$refs.tree.setCheckedKeys(treeIdList);
this.tagsRegion = checkList;
},
//列举选中地区
initCheckList(allSelectedKeys) {
this.tagsRegion = [];
// console.log(allSelectedKeys);
// console.log(this.$refs.tree.getCheckedNodes());
let nodeData = this.$refs.tree.getCheckedNodes();
for (let i = 0; i < nodeData.length; i++) {
for (let j = 0; j < allSelectedKeys.length; j++) {
if (
allSelectedKeys[j].type == 1 &&
nodeData[i].id == allSelectedKeys[j].key
) {
let tagObj = {};
tagObj.name = nodeData[i].label;
tagObj.key = nodeData[i].id;
this.tagsRegion.push(tagObj);
}
}
}
},
//子节点选中
appendCheck(administrative, checked) {
//console.log(checked,administrative)
let checkList = [];
checkList = this.$refs.tree.getCheckedKeys();
if (checked) {
for (let i = 0; i < administrative.length; i++) {
checkList.push(administrative[i].id);
// console.log(checkList);
}
}
this.$nextTick(function() {
this.$refs.tree.setCheckedKeys(checkList);
});
},
//添加子节点
append(data, node) {
console.log("data:", data);
console.log("node:", node);
if (data.children.length == 0) {
//let id = data.id + "add";
let statusValue = 0;
if (node.checked == true) {
statusValue = 1;
}
let req = {
id: data.id,
status: statusValue,
disabled: data.disabled
};
vm.GET("portal/scope/v1/administrative/children", req).then(res => {
if (res.code == "000000") {
let administrative = res.data.administrative;
//console.log(administrative);
data.children = administrative;
this.appendCheck(administrative, node.checked);
}
});
}
},
getCheckedKeys() {
console.log(this.$refs.tree.getCheckedKeys());
},
onChecked(node, data) {
vm.checkUpdate(node, data);
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(
this.$refs.tree.store
);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys();
let allSelectedKeys = operationData.setSelectedKeys(
checkedTree,
halfCheckedTree
);
//重构内容
this.allSelectedKeys = allSelectedKeys;
this.initCheckList(allSelectedKeys);
//console.log("allSelectedKeys", allSelectedKeys);
//改变行政范围后,更新设定机构和设定人员
this.updateOrganizationAndPerson(allSelectedKeys);
this.updatedTree = true;
},
getTreeCheck() {
debugger
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(
this.$refs.tree.store
);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys();
let allSelectedKeys = operationData.setSelectedKeys(
checkedTree,
halfCheckedTree
);
vm.allSelectedKeys = allSelectedKeys;
//重构内容
return allSelectedKeys;
},
//通过key设置tree
setCheckedKeys(tagsRegion) {
console.log(tagsRegion);
let treeKeyList = [];
for (let index = 0; index < tagsRegion.length; index++) {
treeKeyList[index] = tagsRegion[index].key;
}
console.log(treeKeyList);
this.$refs.tree.setCheckedKeys(treeKeyList);
},
//删除label节点 同步树结构
handleCloseTree(tag) {
if (this.status4Flag != 1) {
this.tagsRegion.splice(this.tagsRegion.indexOf(tag), 1);
this.setCheckedKeys(this.tagsRegion);
}
},
//获取医院等级
listLevels() {
let req = {};
vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
if (res.code == "000000") {
// console.log(res);
this.organizationRank = operationData.getLevelList(res.data.list);
} else {
this.organizationRank = [
{
id: "0",
label: "全部医院等级"
}
];
}
});
},
selectableTableList(row, index) {
// if (this.status4Flag == 1) {
if (row.modifyFlag == 1) {
return false;
}
return true;
// }
// return true;
},
selectableTableEcology(row, index) {
return false;
},
//改变 设定机构选项
selectionChangeOrganization(rows) {
this.changedOrganization = [];
this.changedOrganization2 = [];
if (rows) {
rows.forEach(row => {
if (row) {
this.changedOrganization.push(row.id);
}
});
}
this.changedOrganization2 = operationData.getDifference(
this.lookedOrganization,
this.changedOrganization
);
console.log(
"",
this.changedOrganization,
"",
this.changedOrganization2
);
this.updatePerson();
this.$refs.multiplePerson.clearSelection();
},
//改变机构 table 的check状态
selectionChangeDepartment(val) {
this.multipleSelectionDepartment = val;
},
//改变人员 table的check状态
selectionChangePerson(rows) {
this.changedPerson = [];
this.changedPerson2 = [];
if (rows) {
rows.forEach(row => {
if (row) {
this.changedPerson.push(row.id);
}
});
}
this.changedPerson2 = operationData.getDifference(
this.lookedPerson,
this.changedPerson
);
console.log("", this.changedPerson, "", this.changedPerson2);
},
//改变小生态 table check
selectionChangeEcology(rows) {
this.changedEcology = [];
this.changedEcology2 = [];
if (rows) {
rows.forEach(row => {
if (row) {
this.changedEcology.push(row.id);
}
});
}
this.changedEcology2 = operationData.getDifference(
this.lookedEcology,
this.changedEcology
);
console.log("", this.changedEcology, "", this.changedEcology2);
},
resetPeople() {
this.checkTableState.multiplePerson = "";
this.lookedPerson = [];
this.changedPerson = [];
this.changedPerson2 = [];
},
initOrganizationStatus() {
let tableStatus = this.tableOrganization;
tableStatus.forEach(row => {
if (row.status == 1) {
this.$nextTick(function() {
this.$refs.multipleOrganization.toggleRowSelection(row);
});
}
});
},
//选择搜索机构方式
searchOrganization() {
this.formOrganization.pageNum = 1;
let searchForm = this.formOrganization;
if (
searchForm.administrativeId == "0" &&
searchForm.administrativeIdList[
searchForm.administrativeIdList.length - 1
] == "0" &&
searchForm.level == "-1" &&
searchForm.name == ""
) {
console.log("wei")
this.searchOrganizationType = "";
this.getOrganization();
} else {
console.log("choose")
this.searchOrganizationType = "choose";
this.getOrganizationChoose();
}
},
//初始化搜索机构状态
initOrganizationChoose() {
let tableStatus = this.tableOrganization;
if (typeof tableStatus === "undefined") {
return;
}
tableStatus.forEach(row => {
let idList = [];
idList[0] = row.id;
//console.log('this.changedOrganization2',this.changedOrganization2);
let intersect = operationData.getIntersect(
idList,
this.changedOrganization
);
let intersect2 = operationData.getIntersect(
idList,
this.changedOrganization2
);
if (intersect.length > 0) {
//选中
//this.$refs.multipleOrganization.toggleRowSelection(row);
} else if (intersect2.length > 0) {
//不选
} else {
if (row.status == 1) {
this.$nextTick(function() {
this.$refs.multipleOrganization.toggleRowSelection(row);
});
}
}
});
},
//设定的行政范围内容
getScope(type) {
console.log(type)
let scope = "";
let noChangeTree = this.getTreeCheck();
if (type == "administrative") {
for (let i = 0; i < this.tagsRegion.length; i++) {
scope += this.tagsRegion[i].key;
if (i < this.tagsRegion.length - 1) {
scope += "|";
}
}
} else if (type == "administrativeUpdate") {
console.log("this.allSelectedKeys", this.allSelectedKeys);
if (this.allSelectedKeys.length > 0) {
for (let i = 0; i < this.allSelectedKeys.length; i++) {
scope +=
this.allSelectedKeys[i].key + ":" + this.allSelectedKeys[i].type;
if (i < this.allSelectedKeys.length - 1) {
scope += "|";
}
}
} else {
// let noChangeTree = this.getTreeCheck();
console.log("noChangeTree", noChangeTree);
if (noChangeTree.length > 0) {
for (let i = 0; i < noChangeTree.length; i++) {
scope += noChangeTree[i].key + ":" + noChangeTree[i].type;
if (i < noChangeTree.length - 1) {
scope += "|";
}
}
} else {
//选全国项目
if (this.tagsRegion.length > 0 && this.tagsRegion[0].key == "000") {
scope = "000:1";
console.log(this.tagsRegion, "scope", scope);
}
}
}
}
//console.log(scope);
if (scope == "") {
return null;
}
return scope;
},
//机构搜索
getOrganizationChoose() {
console.log('formOrganization',this.formOrganization);
let administrativeIdItem = operationData.setAdministrativeId(
this.formOrganization.administrativeIdList
);
console.log('administrativeIdItem',administrativeIdItem);
let req = {
projectId: 775,
administrativeId: administrativeIdItem,
hospitalLevel: this.formOrganization.level,
hospitalName: this.formOrganization.name,
pageNum: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize,
scope: this.getScope("administrative")
};
openLoading(vm);
// vm.POST("portal/scope/v1/organization/choose", req).then(res => {
vm.POST("portal/new/scope/org/v1/organization/search", req).then(res => {
closeLoading(vm);
console.log(res);
if (res.code == "000000") {
this.tableOrganization = res.data.organizationList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
vm.$message(res.message);
}
});
},
//查询机构列表
getOrganization() {
let req = {
projectId: 775,
administrativeId: "",
hospitalLevel: "",
hospitalLevel: "",
scope: "000_110",
pageNum: this.formOrganization.pageNum,
pageSize: this.formOrganization.pageSize
};
openLoading(vm);
// vm.POST("portal/scope/v1/organization", req).then(res => {
vm.POST("portal/new/scope/org/v1/organization", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
this.tableOrganization = res.data.organizationList;
this.totalOrganization = res.data.total;
vm.initOrganizationStatus();
} else {
vm.$message(res.message);
}
});
},
//获取机构id列表
getScopeOrganization(type) {
let scope = "";
//2:去掉 3:选中
if (type == 2) {
// console.log(this.scopeOfOrganizationLast,this.changedOrganization);
let differenceScope = operationData.getDifference(
this.scopeOfOrganizationLast,
this.changedOrganization
);
//console.log('differenceScope',differenceScope);
let unionScope = operationData.getUnion(
this.changedOrganization2,
differenceScope
);
//console.log('unionScope',unionScope);
for (let i = 0; i < unionScope.length; i++) {
scope += unionScope[i] + "|";
}
} else if (type == 3) {
console.log(this.scopeOfOrganizationLast, this.changedOrganization2);
let differenceScope = operationData.getDifference(
this.scopeOfOrganizationLast,
this.changedOrganization2
);
let unionScope = operationData.getUnion(
this.changedOrganization,
differenceScope
);
for (let i = 0; i < unionScope.length; i++) {
scope += unionScope[i] + "|";
}
}
scope = scope.substring(0, scope.length - 1);
console.log("scope", scope);
return scope;
},
//选择搜索机构方式
searchPeople() {
this.formPerson.pageNum = 1;
let searchForm = this.formPerson;
if (searchForm.hospitalName === "" && searchForm.doctorName === "") {
this.searchPeopleType = "";
this.getPeople();
} else {
this.searchPeopleType = "choose";
this.getPeopleChoose();
}
},
//判断项目范围选择
showScopeType() {
if (this.projectStatus == "" || this.projectStatus == 1) {
if (this.peopleLevel != "L3") {
return false;
}
}
return true;
},
//机构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();
}
},
//角色table修改
handleSizePerson(val) {
console.log(`每页 ${val} 条`);
this.formPerson.pageSize = val;
this.searchPeople();
},
handleCurrentPerson(val) {
console.log(`当前页: ${val}`);
this.formPerson.pageNum = val;
if (this.searchPeopleType == "choose") {
this.getPeopleChoose();
} else {
this.getPeople();
}
},
handleSizeEcology(val) {
console.log(`每页 ${val} 条`);
this.formEcology.pageSize = val;
this.getEcology();
},
handleCurrentEcology(val) {
console.log(`当前页: ${val}`);
this.formEcology.pageNum = val;
this.getEcology();
},
//行政范围改变更新设定机构和设定人员
updateOrganizationAndPerson(allSelectedKeys) {
this.tableOrganization = [];
this.tablePerson = [];
this.$refs.multipleOrganization.clearSelection();
this.lookedOrganization = [];
this.changedOrganization = [];
this.changedOrganization2 = [];
},
initTags(value) {
//console.log('value',value,'optionsComponent',this.optionsComponent);
this.tagsComponent = [];
let len = 0;
for (let i = 0; i < value.length; i++) {
for (let j = 0; j < this.optionsComponent.length; j++) {
if (value[i] == this.optionsComponent[j].value) {
this.tagsComponent[len] = {};
this.tagsComponent[len].value = this.optionsComponent[j].value;
this.tagsComponent[len].name = this.optionsComponent[j].label;
if (vm.status4Flag == 1) {
this.optionsComponent[j].disabled = true;
this.tagsComponent[len].disabled = true;
}
len++;
}
}
}
console.log("this.optionsComponent值:", this.optionsComponent);
},
// add 校验输入是否为整数
checkIntFun(str) {
let r = /^\+?[0-9]*$/;
return r.test(str);
},
hideErrorInfo(str) {
if (str) {
this.customError[str] = {
className: "",
error: ""
};
} else {
this.customError = {};
}
},
dioErrorPop(str) {
return this.$message({
message: str,
type: "warning"
});
},
blurName() {
vm.visibleName = false;
setTimeout(function() {
// console.log('失去焦点');
vm.submitForm("formData");
}, 200);
},
focusName(index) {
let textLength = vm.formData.organizationNameList[index].length;
if (textLength == 0) {
this.orgListIndex = index;
vm.visibleName = true;
} else {
vm.visibleName = false;
}
},
changeOrganizationName() {
let textLength = vm.formData.organizationName.length;
console.log("文字长度", textLength);
if (textLength == 0) {
vm.visibleName = true;
} else {
vm.visibleName = false;
}
},
checkDefault() {
// vm.formData.organizationNameList[0] = vm.organizationContent;
vm.formData.organizationNameList.splice(this.orgListIndex, 1, vm.organizationContent);
// vm.formData.organizationNameList.push(vm.organizationContent);
// vm.formData.organizationName = vm.organizationContent;
vm.visibleName = false;
},
//v2.2教培更新
checkUpdate(node, data) {
let flag = -1;
flag = data.checkedKeys.indexOf(node.id);
if (vm.status4Flag == 1 && flag >= 0) {
console.log(node, data, flag, vm.status4Flag);
vm.nowCheck = node;
vm.warnType = 0;
vm.dialogWarn = true;
// this.$refs.tree.setChecked(data,false)
}
},
handleChangeRegion(value) {
let areaId = "000";
for (let i = 0; i < value.length; i++) {
areaId += "_" + value[i];
}
vm.administrativeValue = areaId;
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;
},
//获取地区
getRegionOption() {
let req = {};
openLoading(vm);
vm.GET("basic-data/position/provinces", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.optionsRegion = operationData.setRegionOption2(
res.data.provinceList
);
}
});
},
//机构table中勾选一排
selectAllOrganization(selection) {
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tableOrganization.length; i++) {
if (vm.tableOrganization[i].modifyFlag == 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,
projectId: this.projectId,
type: typeStatus
};
openLoading(vm);
vm.PUT("portal/new/scope/org/v1/organization/option", req).then(res => {
closeLoading(vm);
});
}
},
//机构table中勾选一个
selectOrganization(selection, row) {
console.log("select", selection, row);
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
projectId: this.projectId,
type: flag === false ? 0 : 1
};
openLoading(vm);
vm.PUT("portal/new/scope/org/v1/organization/option", req).then(res => {
closeLoading(vm);
});
},
//
//人员table中勾选一排
selectAllPerson(selection) {
let setList = [];
let selectList = [];
for (let i = 0; i < vm.tablePerson.length; i++) {
if (vm.tablePerson[i].modifyFlag == 0) {
setList.push(vm.tablePerson[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;
}
console.log(selection, setList, selectList);
if (setList.length > 0) {
let req = {
ids: setList,
projectId: this.projectId,
type: typeStatus
};
openLoading(vm);
vm.PUT("portal/new/scope/doctor/v1/doctor/option", req).then(res => {
closeLoading(vm);
});
}
},
//人员table中勾选一个
selectPerson(selection, row) {
console.log("select", selection, row);
let flag = false;
for (let i = 0; i < selection.length; i++) {
if (selection[i].id == row.id) {
flag = true;
}
}
let req = {
ids: [row.id],
projectId: this.projectId,
type: flag === false ? 0 : 1
};
openLoading(vm);
vm.PUT("portal/new/scope/doctor/v1/doctor/option", req).then(res => {
closeLoading(vm);
});
},
//重置机构、人员查询
resetOrgOrPerson(type) {
if (type == "org") {
vm.formOrganization.name = "";
vm.formOrganization.administrativeId = "0";
vm.formOrganization.administrativeIdList = ["0"];
vm.formOrganization.level = "-1";
vm.formOrganization.pageNum = 1;
vm.searchOrganization();
} else if (type == "person") {
vm.formPerson.hospitalName = "";
vm.formPerson.doctorName = "";
vm.formPerson.pageNum = 1;
vm.searchPeople();
}
}
}
};
</script>
<style lang="scss">
.min-label {
.el-form-item__label {
line-height: 26px;
}
.el-form-item__content {
line-height: 26px;
}
}
.add-manager-wrap {
.add-content {
background: #fff;
}
.rim {
border: 1px solid #dddddd;
}
.mleft60 {
margin-left: 60px;
}
.soure-configure {
background: #f9f9f9;
padding: 15px;
width: 550px;
font-size: 12px;
color: #606266;
position: relative;
margin-bottom: 20px;
.configure-option {
position: absolute;
right: -95px;
top: 50%;
margin-top: -15px;
}
.mb15 {
margin-bottom: 15px;
}
.configure-item {
overflow: hidden;
.configure-item-l {
display: inline-block;
width: 60px;
text-align: right;
}
}
}
.mini-source {
background: #f9f9f9;
width: 650px;
padding: 15px;
margin-bottom: 20px;
.source-item {
padding-top: 0px;
font-size: 12px;
line-height: 28px;
color: #606266;
}
}
.second-step {
margin: 10px 0 0 20px;
.area-p {
margin-bottom: 15px;
font-size: 14px;
}
.span_ecology {
line-height: 45px;
margin-left: 8px;
}
.dialog-p {
text-align: center;
span {
color: #449284;
}
}
//隐藏树展开
.table-empty {
img {
width: 100px;
}
p {
margin-top: -50px;
}
}
.el-tree-node__expand-icon {
display: none;
}
.department {
margin-top: 20px;
border: 1px solid #dddddd;
}
.el-tabs__nav-wrap::after {
display: none;
}
.el-tabs__active-bar {
display: none;
}
#tab-first,
#tab-second,
#tab-third {
padding-right: 0px;
}
#tab-first::after,
#tab-second::after,
#tab-third::after {
color: #c7cbd2;
margin-left: 20px;
content: "•";
}
.el-tabs__item.is-active {
color: #fff;
}
.el-tag {
margin: 0 10px 10px 0;
border: 1.3px solid #48a8fe;
color: #1e92fe;
background-color: #e7f6fe;
.el-icon-close {
width: 13px;
height: 13px;
line-height: 13px;
font-size: 12px;
background-color: #0486fe;
border-radius: 50%;
color: #d4edfe;
}
}
.down-button {
margin-left: 10px;
}
.down-button-close {
margin-left: 100px;
float: left;
}
.dialog-success {
p {
text-align: center;
.upload-text {
color: #449284;
}
}
}
.dialog-fail {
.fail-type {
p {
margin-top: 10px;
}
.fail-num {
color: #db3f52;
}
.fail-notice {
color: #e3e3e3;
font-size: 13px;
}
.fail-link {
text-align: center;
color: #449284;
cursor: pointer;
}
}
}
}
}
.edit-img {
width: 20px;
}
.popover-content {
position: relative;
top: 0;
left: 0;
}
</style>
\ No newline at end of file
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></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="30" type="flex" style="margin-top: 10px">
<el-col :span="10">
<el-form-item label="直播名称">
<el-input v-model="searchForm.liveName" size="small" placeholder="请输入直播名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="直播状态">
<el-select
v-model="searchForm.liveStatus"
id="statusSelector"
placeholder="请选择发布状态"
clearable
style="margin-left:20px;"
>
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.label"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" style="text-align: right">
<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-col>
</el-row>
<el-row>
<el-col :span="24" style="text-align: right">
<el-button type="primary" size="small" @click="createLive">新建直播</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="liveName" label="直播名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="liveStatus" label="直播状态" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.liveStatus | liveStatusFilter }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="startTime" label="开始时间" min-width="100" align="center"></el-table-column>
<el-table-column prop="endTime" label="结束时间" min-width="100" align="center"></el-table-column>
<el-table-column label="操作" min-width="300" align="center">
<template slot-scope="scope">
<!-- <el-button @click="reviewLive(scope.row)" type="text" size="small">设置回放</el-button> -->
<el-button
@click="liveLink(scope.row)"
type="text"
size="small"
v-if="!(scope.row.liveStatus==4 && scope.row.liveScope==1)"
>直播链接</el-button>
<el-button
@click="countLive(scope.row)"
type="text"
size="small"
v-if="scope.row.liveStatus==4"
>数据统计</el-button>
<el-button @click="editLive(scope.row)" type="text" size="small">编辑</el-button>
<!-- <el-button @click="deleteLive(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>
<el-dialog
title="数据统计"
:visible.sync="dialogStatisticsVisible"
width="500px"
:close-on-click-modal="false"
@close="handleStatisticsClose"
center
>
<el-table :data="dialogStatisticsData" align="center">
<el-table-column property="peopleNum" label="观看人数" align="center"></el-table-column>
<el-table-column property="liveDuration" label="直播时长(分钟)" align="center"></el-table-column>
</el-table>
</el-dialog>
<el-dialog
title="直播链接"
:visible.sync="dialogLivelinkVisible"
width="600px"
:close-on-click-modal="false"
@close="handleLivelinkClose"
center
>
<input type="text" id="copyInput" class="hidden-input" />
<div class="live_url_style" v-if="this.liveStatus==1 || this.liveStatus==2">
<div class="href_style">讲师链接 {{lecturerUrl}}</div>
<el-col class="href_outer_border">
<el-link type="primary" @click="copyTxt(1)" size="small" class="href_button_style">复制</el-link>
<el-link type="primary">|</el-link>
<el-link type="primary" @click="jumpUrl(1)" size="small">进入直播</el-link>
</el-col>
</div>
<div class="live_url_style" v-if="this.liveStatus==1 || this.liveStatus==2">
<el-col class="href_style">嘉宾链接 {{guestUrl}}</el-col>
<el-col class="href_outer_border">
<el-link type="primary" @click="copyTxt(2)" size="small" class="href_button_style">复制</el-link>
<el-link type="primary">|</el-link>
<el-link type="primary" @click="jumpUrl(2)" size="small">进入直播</el-link>
</el-col>
</div>
<div class="live_url_style" v-if="this.liveScope==2">
<div class="href_style">观众链接 {{audienceUrl}}</div>
<el-col class="href_outer_border">
<el-link type="primary" @click="copyTxt(3)" size="small" class="href_button_style">复制</el-link>
</el-col>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
let vm = null;
import BreadCrumb from "@/components/breadcrumb.vue";
export default {
components: {
BreadCrumb
},
data() {
return {
curmbFirst: "云鹊小圈",
curmbSecond: "直播管理",
dialogStatisticsVisible: false,
dialogLivelinkVisible: false,
searchForm: {
liveName: "",
liveStatus: "",
pageNo: 1,
pageSize: 10
},
totalRows: 0,
statusList: [
{
value: "1",
label: "预告"
},
{
value: "2",
label: "直播中"
},
{
value: "4",
label: "已结束"
}
],
tableData: [
// {
// liveName: "浙江医学大会第二场",
// liveScope: 1, //直播范围 1-非公开 2-公开
// liveStatus: 1, //直播状态 1-未开始 2-直播中 3-暂停中 4-已结束 5-回放中目前只能用到1,2,4
// createTime: "",
// startTime: "",
// endTime: "",
// rtcId: 0
// }
],
dialogStatisticsData: [
{
peopleNum: 234,
liveDuration: "38分钟"
}
],
liveScope: 1,
liveStatus: 1,
lecturerUrl: "https://dev.yunxin.163.com/",
guestUrl: "https://www.cnblogs.com/",
audienceUrl: "https://www.soho.com",
circleId: null
};
},
created() {
vm = this;
this.circleId = this.$route.query.id;
vm.getLiveList("", "");
},
methods: {
// 搜索按钮
search(){
this.searchForm.pageNo = 1;
this.searchList();
},
searchList() {
console.log("查询");
var searchStatusString;
var searchStatusInt;
searchStatusString = this.searchForm.liveStatus;
if (searchStatusString == "预告") {
searchStatusInt = 1;
} else if (searchStatusString == "直播中") {
searchStatusInt = 2;
} else if (searchStatusString == "已结束") {
searchStatusInt = 4;
} else {
searchStatusInt = null;
}
console.log("searchList() : searchStatusInt = " + searchStatusInt);
this.getLiveList(this.searchForm.liveName, searchStatusInt);
},
resetForm() {
console.log("重置alex");
// this.$router.push({
// path: '/role-manage',
// })
this.searchForm.liveName = "";
this.searchForm.liveStatus = "";
this.search();
},
//新建直播
createLive() {
this.$router.push({
path: "/create-live",
query: {
circleId: this.circleId
}
});
},
//弹出直播链接弹窗
liveLink(row) {
this.dialogLivelinkVisible = true;
this.liveScope = row.liveScope;
this.liveStatus = row.liveStatus;
console.log(
"liveLink() : liveScope = " +
this.liveScope +
", liveStatus = " +
this.liveStatus
);
vm.GET("rtc/liveAdmin/url/" + row.rtcId, "").then(res => {
if (res.code == "000000") {
this.lecturerUrl = res.data.lecturerUrl;
this.guestUrl = res.data.guestUrl;
this.audienceUrl = res.data.audienceUrl;
this.dialogLivelinkVisible = true;
} else {
//
}
});
},
//关闭直播链接弹窗
handleLivelinkClose() {
this.dialogLivelinkVisible = false;
},
//回放
reviewLive(row) {},
//数据统计
countLive(row) {
this.dialogStatisticsVisible = true;
console.log("getStatisticsData() : this.circleId = " + this.circleId);
vm.GET("rtc/liveAdmin/data/" + row.rtcId, "").then(res => {
if (res.code == "000000") {
let listData = [];
let obj = {
peopleNum: res.data.viewedPersonTime,
liveDuration: res.data.liveDuration
};
listData.push(obj);
this.dialogStatisticsData = listData;
} else {
this.dialogStatisticsData = [];
}
});
},
handleStatisticsClose() {
this.dialogStatisticsVisible = false;
},
//编辑直播
editLive(row) {
this.$router.push({
path: "/create-live",
query: {
// rtcId: "1"
rtcId: row.rtcId,
circleId: this.circleId
}
});
},
//删除直播
deleteLive(row) {
this.$confirm(`确定删除“${row.liveName}”吗?`, "", {
confirmButtonText: "删除",
cancelButtonText: "取消",
type: "warning"
// customClass: 'range-make-box',
})
.then(() => {
// confirm
let req = {
rtcId: row.rtcId
};
vm.DELETE("rtc/liveAdmin", req).then(res => {
if (res.code == "000000") {
vm.$message({
type: "success",
message: "删除成功"
});
this.getLiveList("", "");
} else {
vm.$message({
type: "success",
message: "删除失败"
});
}
});
})
.catch(() => {});
},
// //编辑直播
// editLive(row) {
// this.$router.push({
// path: "/create-live",
// query: {
// // rtcId: "16"
// rtcId: row.id,
//
// }
// });
// },
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.searchForm.pageNo = 1;
this.searchList();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
//查询直播列表
getLiveList(name, status) {
let req = {
circleId: this.circleId,
name: name,
liveStatus: status,
pageNo: this.searchForm.pageNo,
pageSize: this.searchForm.pageSize
};
console.log("alex name = " + name + ", status = " + status);
vm.POST("rtc/liveAdmin/list", req).then(res => {
if (res.code == "000000") {
// console.log(res);
let listData = [];
if (res.data.pageContents == null) {
return;
}
for (let i = 0; i < res.data.pageContents.length; i++) {
let obj = {
liveName: res.data.pageContents[i].name,
liveScope: res.data.pageContents[i].scope,
liveStatus: res.data.pageContents[i].liveStatus,
createTime: res.data.pageContents[i].createdTime,
startTime: res.data.pageContents[i].openTime,
endTime: res.data.pageContents[i].endTime,
rtcId: res.data.pageContents[i].id
};
listData.push(obj);
}
this.tableData = listData;
this.totalRows = res.data.totalRows;
} else {
this.tableData = [];
}
});
},
copyTxt(type) {
let txt = document.getElementById("copyInput");
if (type == 1) {
txt.value = this.lecturerUrl;
} else if (type == 2) {
txt.value = this.guestUrl;
} else {
txt.value = this.audienceUrl;
}
txt.select(); //选择对象
document.execCommand("copy");
vm.$message({
type: "success",
message: "分享链接已复制,快分享给好友吧"
});
},
jumpUrl(type) {
var url;
if (type == 1) {
url = this.lecturerUrl;
} else if (type == 2) {
url = this.guestUrl;
}
window.open(url);
}
}
};
</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;
}
}
}
}
.live_url_style {
display: flex;
padding: 10px;
}
.href_outer_border {
margin-top: 10px;
}
.href_style {
width: 1500px;
background-color: #d8d8d8;
padding:10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.href_button_style {
margin-left: 35px;
}
.hidden-input {
height: 0;
}
</style>
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></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="30" type="flex" style="margin-top: 10px">
<el-col :span="10">
<el-form-item label="姓名">
<el-input size="small" v-model="searchForm.searchName" placeholder="请输入姓名"></el-input>
<!-- <el-select
v-model="searchForm.department"
placeholder="请输入姓名"
clearable
style="margin-left:20px;"
>
<el-option
v-for="item in departmentList"
:key="item.value"
:label="item.label"
:value="item.label"
></el-option>
</el-select>-->
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="机构">
<el-input size="small" v-model="searchForm.searchHospital" placeholder="请输入机构名称"></el-input>
<!-- <el-select
v-model="searchForm.proTitle"
placeholder="请选择机构"
clearable
style="margin-left:20px;">
<el-option
v-for="(item, index) in organization"
:key="index"
:value="item.id"
:label="item.name"
></el-option>
</el-select>-->
</el-form-item>
</el-col>
<el-col :span="4" style="text-align: right">
<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-col>
</el-row>
</el-form>
<el-table :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;">
<el-table-column prop="role" label="身份" min-width="100" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" min-width="100" align="center"></el-table-column>
<el-table-column prop="proTitle" label="职称" min-width="100" align="center"></el-table-column>
<el-table-column prop="department" label="科室" min-width="100" align="center"></el-table-column>
<el-table-column prop="hospital" label="所属机构" min-width="100" align="center"></el-table-column>
<el-table-column label="操作" min-width="300" align="center">
<template slot-scope="scope">
<el-button
v-if="(idType == 1 && scope.row.level == 0) ||
(idType != 1 && scope.row.level == 0 && selfRoleId > 1)"
@click="promote(scope.row, 1)"
type="text"
size="small"
>升为管理员</el-button>
<el-button
v-if="(idType == 1 && scope.row.level == 1) ||
(idType != 1 && scope.row.level == 1 && selfRoleId > 1)"
@click="promote(scope.row, 0)"
type="text"
size="small"
>降为普通成员</el-button>
<el-button
v-if="scope.row.level != 2 &&
(idType == 1 || selfRoleId > scope.row.level) &&
scope.row.status == 1"
@click="addBlackList(scope.row)"
type="text"
size="small"
>加入黑名单</el-button>
<el-button
v-if="scope.row.level != 2 &&
(idType == 1 || selfRoleId > scope.row.level) &&
scope.row.status == 2"
@click="addBlackList(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>
</div>
</template>
<script>
let vm = null;
import BreadCrumb from "@/components/breadcrumb.vue";
// import * as operationData from "../../../utils/operation";
export default {
components: {
BreadCrumb
},
data() {
vm = this;
return {
curmbFirst: "云鹊小圈",
curmbSecond: "成员管理",
searchForm: {
searchName: "",
searchHospital: "",
department: "",
proTitle: "",
pageNo: 1,
pageSize: 10
},
totalRows: 0,
departmentList: [
{
value: "1",
label: "外科"
},
{
value: "2",
label: "内科"
}
],
proList: [
{
value: "1",
label: "主治医师"
},
{
value: "2",
label: "医生"
}
],
tableData: [
],
organization: [
{
id: "1",
name: "第一医院"
},
{
id: "2",
name: "第二医院"
}
],
id: null,
selfRoleId: 0
};
},
created() {
vm = this;
this.id = this.$route.query.id;
// vm.getOrganization();
this.idType = localStorage.getItem("storageIdType");
console.log("storageIdType = " + this.idType);
this.searchList();
},
methods: {
// 搜索
search(){
this.searchForm.pageNo = 1;
this.searchList();
},
searchList() {
console.log("查询");
let req = {
name: this.searchForm.searchName,
hospitalName: this.searchForm.searchHospital,
id: this.id,
pageNo: this.searchForm.pageNo,
pageSize: this.searchForm.pageSize
};
vm.POST("circle/circle/members", req)
.then(res => {
if (res.code == "000000") {
// this.tableData = vm.$message({
// type: "success",
// message: "操作成功"
// });
// vm.search();
// if (res.message != "success") {
// vm.$message({
// message: res.message,
// type: "warning"
// });
// }
let listData = [];
if (res.data.memberList == null) {
return;
}
for (let i = 0; i < res.data.memberList.length; i++) {
let roleName = "";
switch (res.data.memberList[i].roleId) {
case 0:
roleName = "普通成员";
break;
case 1:
roleName = "管理员";
break;
case 2:
roleName = "主管理员";
break;
case 3:
roleName = "审核人员";
break;
default:
roleName = "普通成员";
}
let obj = {
role: roleName,
name: res.data.memberList[i].name,
proTitle: res.data.memberList[i].title,
department: res.data.memberList[i].departmentName,
hospital: res.data.memberList[i].hospitalName,
level: res.data.memberList[i].roleId,
doctorId: res.data.memberList[i].id,
status: res.data.memberList[i].status
};
listData.push(obj);
}
this.tableData = listData;
console.log("tableData: " + JSON.toString(this.tableData));
this.selfRoleId = res.data.roleId;
// console.log("searchList() : this.selfRoleId = " + this.selfRoleId +
// ", name = " + tableData[1].name + ", level = " + tableData[1].level +
// ", doctorId = " + tableData[1].doctorId + ", status = " + tableData[1].status);
console.log("searchList() : this.selfRoleId = " + this.selfRoleId)
this.totalRows = res.data.count;
} else {
// vm.$message.info(res.message);
// vm.$message.info("操作失败,请重试");
}
})
.catch(function(error) {
vm.$message.error(error);
});
},
resetForm() {
console.log("重置");
this.searchForm.searchName = "";
this.searchForm.searchHospital = "";
this.search();
},
//获取机构
getOrganization() {
console.log("getOrganization***");
let req = {
id: this.id
};
console.log("alex id = " + this.id);
vm.GET("eco/circle/hospitals", req).then(res => {
if (res.code == "000000") {
// console.log(res);
vm.organization = vm.dealOrganizationData(res.data.list);
} else {
vm.organization = [
{
id: "0",
label: "请选择机构"
}
];
}
});
const org = [
{
id: "1",
name: "中医院"
},
{
id: "2",
name: "妇幼保健院"
}
];
vm.organization = org;
},
dealOrganizationData(data) {
let org = [];
// org[0] = {
// id: "-1",
// name: "请选择机构"
// };
for (let i = 0; i < data.length; i++) {
let obj = {
id: data[i].id,
label: data[i].name
};
org.push(obj);
}
return org;
},
//管理员升级
promote(row, willLevel) {
vm = this;
let currentName = "",
willName,
operation;
if (row.level == 0) {
currentName = "普通成员";
} else if (row.level == 1) {
currentName = "管理员";
} else if (row.level == 2) {
currentName = "主管理员";
}
if (willLevel > row.level) {
operation = "升为";
} else {
operation = "降为";
}
if (willLevel == 0) {
willName = "普通成员";
} else if (willLevel == 1) {
willName = "管理员";
} else if (willLevel == 2) {
willName = "主管理员";
}
vm.$confirm(
`确定将${currentName}${row.name}${operation}${willName}?`,
"",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
customClass: "range-make-box"
}
)
.then(() => {
// confirm
// vm.$message({
// message: "操作成功!!!"
// });
vm.GET(
"circle/circle/" +
this.id +
"/entrust/" +
row.doctorId +
"/" +
willLevel,
null
)
.then(res => {
if (res.code == "000000") {
vm.$message({
type: "success",
message: "操作成功"
});
// vm.search();
vm.searchList();
if (res.message != "success") {
vm.$message({
message: res.message,
type: "warning"
});
}
} else {
// vm.$message.info(res.message);
vm.$message.info("操作失败,请重试");
}
})
.catch(function(error) {
vm.$message.error(error);
});
})
.catch(() => {
// cancel
});
},
//加入黑名单
addBlackList(row) {
vm = this;
let option = "加入黑名单";
if (row.status == 2) {
option = "移出黑名单";
}
this.$confirm(`确定将“${row.name}${option}吗`, "", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "alert",
customClass: "range-make-box"
})
.then(() => {
console.log(
"查询: this.id = " + this.id + ", row.doctorId = " + row.doctorId
);
let req = {
id: this.id,
doctorId: row.doctorId
};
vm.GET(
"circle/circle/" + this.id + "/" + row.doctorId + "/freeControl",
req
)
.then(res => {
if (res.code == "000000") {
vm.$message({
type: "success",
message: "操作成功"
});
// vm.search();
this.searchList();
if (res.message != "success") {
vm.$message({
message: res.message,
type: "warning"
});
}
} else {
// vm.$message.info(res.message);
vm.$message.info("操作失败,请重试");
}
})
.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();
}
}
};
</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;
}
}
}
}
</style>
<template>
<div class="yqrange-index-wrapper">
<bread-crumb :curmbFirst="curmbFirst"></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="30" type="flex" style="margin-top: 10px">
<el-col :span="10">
<el-form-item label="圈子名称">
<el-input v-model="searchForm.name" size="small" placeholder="请输入圈子名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="创建时间">
<el-date-picker
v-model="searchForm.createdTime"
size="small"
type="date"
placeholder="请选择创建时间"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" style="text-align: right">
<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-col>
</el-row>
<el-row>
<el-col :span="24" style="text-align: right">
<el-button type="primary" size="small" @click="createRange" v-if="showNewFlag">新建小圈</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="id" label="圈子ID" min-width="100" align="center"></el-table-column>
<el-table-column prop="createdTime" label="创建时间" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.createdTime | liveDateFilter }}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="圈子名称" min-width="100" align="center"></el-table-column>
<el-table-column prop="numberOfPeople" label="圈子人数" min-width="100" align="center"></el-table-column>
<el-table-column prop="dynamicFlag" label="内容发布权限" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.dynamicFlag | dynamicFlagStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="圈子状态" min-width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.status | rangeStatus }}</span>
</template>
</el-table-column>
<el-table-column label="操作" min-width="370" align="center">
<template slot-scope="scope">
<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="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="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="deleteRange(scope.row)" type="text" size="small" v-if="showAllFlag && scope.row.status != 0">解散圈子</el-button>
</div>
</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>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus} 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: []
}
},
created() {
this.initPrivilege();
this.search();
},
methods: {
initPrivilege(){
let idType = localStorage.getItem('storageIdType');
if(idType == null || idType == ""){
idType = 1;
}
this.searchForm.userType = idType;
// 内部用户:运营人员
if(idType == "1"){
this.showAllFlag = true;
this.showNewFlag = true;
}
// 外部用户
else if(idType == "2"){
this.showAllFlag = false;
this.getUserAuth();
}
},
// 外部用户权限
getUserAuth(){
let mainManager = localStorage.getItem('mainManager');
let manager = localStorage.getItem('manager');
if(mainManager == "1"){
this.showNewFlag = true;
}
else if(manager == "1"){
this.showNewFlag = false;
}
// localStorage.setItem('ordinary', vm.setStoreData(ordinary))
},
// 搜索
search(){
this.searchForm.pageNo = 1;
this.searchList();
},
searchList() {
openLoading(this);
let params = this.searchForm;
console.log('查询圈子')
getRangeList(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
this.tableData = res.data.circleList;
this.totalRows = res.data.count;
} else {
this.tableData = [];
}
}).catch((error) => {
this.$message({
message: error,
type: 'error'
});
})
},
resetForm() {
this.searchForm.name = "";
this.searchForm.createdTime = "";
console.log('重置')
this.search();
},
//新建小圈
createRange() {
let enterType = 1;//1:add 2 edit
this.$router.push({
path: `/create-range?enterType=${enterType}`
})
},
//上线
publishRange(row) {
this.$confirm(`确定上线“${row.name}”吗?`, '', {
confirmButtonText: '上线',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
// confirm
this.updateStatus(row.id, "30");
}).catch(() => {
// cancel
// this.$message.error("上线失败");
});
},
//下线
unPublishRange(row) {
this.$confirm(`确定下线“${row.name}”吗?`, '', {
confirmButtonText: '下线',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
this.updateStatus(row.id, "40");
// confirm
}).catch(() => {
// cancel
});
},
// 更新圈子状态(上线,下线)
updateStatus(id, status){
let params = {"id": id, "status": status};
updateRangeStatus(params).then((res) => {
closeLoading(this);
if(res.code == "000000") {
if(status == "40"){
this.$message.success("下线成功");
} else if(status == "30") {
this.$message.success("上线成功");
}else if(status == "50") {
this.$message.success("解散成功");
}
this.searchList();
} else {
if(status == "40"){
this.$message.success("下线失败,请重试");
} else if(status == "30") {
this.$message.success("上线失败,请重试");
}else if(status == "50") {
this.$message.success("解散失败,请重试");
}
}
}).catch((error) => {
this.$message({
message: error,
type: 'error'
});
})
},
//直播管理
liveManage(row) {
this.$router.push({
path: '/live-manage?id=' + row.id,
})
},
//成员管理
roleManage(row) {
this.$router.push({
path: '/role-manage?id=' + row.id,
})
},
//编辑
editRange(row) {
let enterType = 2;//1:add 2 edit
this.$router.push({
path: `/create-range?enterType`,
query:{
id:row.id,
enterType:enterType
}
})
},
//解散圈子
deleteRange(row) {
this.$confirm(`确定解散“${row.name}”吗?`, '解散后圈子内的动态/直播等内容将不会保存', {
confirmButtonText: '解散',
cancelButtonText: '取消',
type: 'warning',
customClass: 'range-make-box',
}).then(() => {
this.updateStatus(row.id, "50");
// confirm
}).catch(() => {
// cancel
});
},
handleSizeChange(val) {
this.searchForm.pageSize = val;
this.search();
},
handleNumChange(val) {
this.searchForm.pageNo = val;
this.searchList();
},
},
}
</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>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册