Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
8acd9a18
提交
8acd9a18
编写于
6月 17, 2020
作者:
bo.dang
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/dev-yqLive-20200611' into dev-yqLive-20200611
上级
42a8d648
8a44ca56
变更
11
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
2883 行增加
和
687 行删除
+2883
-687
package-lock.json
package-lock.json
+306
-204
package.json
package.json
+1
-1
baseinfo.vue
src/components/yqrange/baseinfo.vue
+308
-0
organzation.vue
src/components/yqrange/organzation.vue
+388
-0
range.js
src/router/range.js
+1
-0
router.js
src/router/router.js
+6
-0
fetch.js
src/utils/fetch.js
+3
-2
create-range.vue
src/views/yqrange/create-range.vue
+86
-329
edit-range.vue
src/views/yqrange/edit-range.vue
+1341
-0
role-manage.vue
src/views/yqrange/role-manage.vue
+430
-148
yq-range.vue
src/views/yqrange/yq-range.vue
+13
-3
未找到文件。
package-lock.json
浏览文件 @
8acd9a18
...
...
@@ -210,7 +210,7 @@
},
"array-find-index"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npm
js.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="
},
"array-flatten"
:
{
...
...
@@ -291,7 +291,7 @@
},
"async-foreach"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npm
js.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="
},
"async-validator"
:
{
...
...
@@ -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"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz"
,
...
...
@@ -1436,7 +1431,7 @@
},
"camelcase-keys"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"camelcase"
:
"^2.0.0"
,
...
...
@@ -1445,7 +1440,7 @@
"dependencies"
:
{
"camelcase"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npm
js.org/camelcase/-
/camelcase-2.1.1.tgz"
,
"resolved"
:
"https://registry.npm
.taobao.org/camelcase/download
/camelcase-2.1.1.tgz"
,
"integrity"
:
"sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
}
}
...
...
@@ -1705,7 +1700,6 @@
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"dev"
:
true
,
"requires"
:
{
"color-name"
:
"1.1.3"
}
...
...
@@ -1713,8 +1707,7 @@
"color-name"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
,
"dev"
:
true
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"color-string"
:
{
"version"
:
"0.3.0"
,
...
...
@@ -2104,7 +2097,7 @@
},
"currently-unhandled"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"array-find-index"
:
"^1.0.1"
...
...
@@ -2383,6 +2376,11 @@
"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"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz"
,
...
...
@@ -2439,8 +2437,8 @@
},
"error-ex"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npm
js.org/error-ex/-
/error-ex-1.3.2.tgz"
,
"integrity"
:
"sha
512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/error-ex/download
/error-ex-1.3.2.tgz"
,
"integrity"
:
"sha
1-tKxAZIEH/c3PriQvQovqihTU8b8
="
,
"requires"
:
{
"is-arrayish"
:
"^0.2.1"
}
...
...
@@ -2720,10 +2718,6 @@
"loader-utils"
:
"~0.2.5"
}
},
"file-saver"
:
{
"version"
:
"github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
,
"from"
:
"github:eligrey/FileSaver.js#1.3.8"
},
"filename-regex"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz"
,
...
...
@@ -3473,8 +3467,8 @@
},
"gaze"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npm
js.org/gaze/-
/gaze-1.1.3.tgz"
,
"integrity"
:
"sha
512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/gaze/download
/gaze-1.1.3.tgz"
,
"integrity"
:
"sha
1-xEFzPhO5J6yMD/C0w7Az8ogSkko
="
,
"requires"
:
{
"globule"
:
"^1.0.0"
}
...
...
@@ -3486,7 +3480,7 @@
},
"get-stdin"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npm
js.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="
},
"get-stream"
:
{
...
...
@@ -3588,9 +3582,9 @@
"dev"
:
true
},
"globule"
:
{
"version"
:
"1.
2.1
"
,
"resolved"
:
"https://registry.npm
js.org/globule/-/globule-1.2.1
.tgz"
,
"integrity"
:
"sha
512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ=
="
,
"version"
:
"1.
3.2
"
,
"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"
:
"sha
1-2L3Z6eTu+PluJFmZpd7n612FKcQ
="
,
"requires"
:
{
"glob"
:
"~7.1.1"
,
"lodash"
:
"~4.17.10"
,
...
...
@@ -3750,9 +3744,9 @@
}
},
"hosted-git-info"
:
{
"version"
:
"2.
7.1
"
,
"resolved"
:
"https://registry.npm
js.org/hosted-git-info/-/hosted-git-info-2.7.1
.tgz"
,
"integrity"
:
"sha
512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=
="
"version"
:
"2.
8.8
"
,
"resolved"
:
"https://registry.npm
.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8
.tgz"
,
"integrity"
:
"sha
1-dTm9S8Hg4KiVgVouAmJCCxKFhIg
="
},
"html-comment-regex"
:
{
"version"
:
"1.1.2"
,
...
...
@@ -3911,13 +3905,13 @@
"optional"
:
true
},
"in-publish"
:
{
"version"
:
"2.0.
0
"
,
"resolved"
:
"https://registry.npm
js.org/in-publish/-/in-publish-2.0.0
.tgz"
,
"integrity"
:
"sha1-
4g/146KvwmkDILbcVSaCqcf631E
="
"version"
:
"2.0.
1
"
,
"resolved"
:
"https://registry.npm
.taobao.org/in-publish/download/in-publish-2.0.1
.tgz"
,
"integrity"
:
"sha1-
lIsaU1yAMFYc6lIvc/ePS+NX4Aw
="
},
"indent-string"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"repeating"
:
"^2.0.0"
...
...
@@ -3998,7 +3992,7 @@
},
"is-arrayish"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npm
js.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="
},
"is-binary-path"
:
{
...
...
@@ -4015,14 +4009,6 @@
"resolved"
:
"https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
,
"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"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
,
...
...
@@ -4165,7 +4151,7 @@
},
"is-utf8"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npm
js.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="
},
"is-windows"
:
{
...
...
@@ -4386,6 +4372,10 @@
"base64-arraybuffer"
:
"^0.1.5"
}
},
"file-saver"
:
{
"version"
:
"github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
,
"from"
:
"github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
},
"html2canvas"
:
{
"version"
:
"1.0.0-alpha.12"
,
"resolved"
:
"https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz"
,
...
...
@@ -4473,7 +4463,7 @@
},
"load-json-file"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
...
...
@@ -4622,11 +4612,6 @@
"integrity"
:
"sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
,
"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"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz"
,
...
...
@@ -4636,11 +4621,6 @@
"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"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz"
,
...
...
@@ -4745,11 +4725,6 @@
"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"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz"
,
...
...
@@ -4816,7 +4791,7 @@
},
"loud-rejection"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"currently-unhandled"
:
"^0.4.1"
,
...
...
@@ -4854,7 +4829,7 @@
},
"map-obj"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm
js.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="
},
"map-visit"
:
{
...
...
@@ -4936,7 +4911,7 @@
},
"meow"
:
{
"version"
:
"3.7.0"
,
"resolved"
:
"https://registry.npm
js.org/meow/-
/meow-3.7.0.tgz"
,
"resolved"
:
"https://registry.npm
.taobao.org/meow/download
/meow-3.7.0.tgz"
,
"integrity"
:
"sha1-cstmi0JSKCkKu/qFaJJYcwioAfs="
,
"requires"
:
{
"camelcase-keys"
:
"^2.0.0"
,
...
...
@@ -4952,9 +4927,9 @@
},
"dependencies"
:
{
"minimist"
:
{
"version"
:
"1.2.
0
"
,
"resolved"
:
"https://registry.npm
js.org/minimist/-/minimist-1.2.0
.tgz"
,
"integrity"
:
"sha1-
o1AIsg9BOD7sH7kU9M1d95omQoQ
="
"version"
:
"1.2.
5
"
,
"resolved"
:
"https://registry.npm
.taobao.org/minimist/download/minimist-1.2.5
.tgz"
,
"integrity"
:
"sha1-
Z9ZgFLZqaoqqDAg8X9WN9OTpdgI
="
}
}
},
...
...
@@ -5082,7 +5057,9 @@
"nan"
:
{
"version"
:
"2.11.1"
,
"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"
:
{
"version"
:
"1.2.13"
,
...
...
@@ -5336,9 +5313,9 @@
}
},
"node-sass"
:
{
"version"
:
"4.
9.4
"
,
"resolved"
:
"https://registry.npm
js.org/node-sass/-/node-sass-4.9.4
.tgz"
,
"integrity"
:
"sha
512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA=
="
,
"version"
:
"4.
14.1
"
,
"resolved"
:
"https://registry.npm
.taobao.org/node-sass/download/node-sass-4.14.1
.tgz"
,
"integrity"
:
"sha
1-mch+wu+3BH7WOPtMnbfzpC4iF7U
="
,
"requires"
:
{
"async-foreach"
:
"^0.1.3"
,
"chalk"
:
"^1.1.1"
,
...
...
@@ -5347,54 +5324,57 @@
"get-stdin"
:
"^4.0.1"
,
"glob"
:
"^7.0.3"
,
"in-publish"
:
"^2.0.0"
,
"lodash.assign"
:
"^4.2.0"
,
"lodash.clonedeep"
:
"^4.3.2"
,
"lodash.mergewith"
:
"^4.6.0"
,
"lodash"
:
"^4.17.15"
,
"meow"
:
"^3.7.0"
,
"mkdirp"
:
"^0.5.1"
,
"nan"
:
"^2.1
0.0
"
,
"nan"
:
"^2.1
3.2
"
,
"node-gyp"
:
"^3.8.0"
,
"npmlog"
:
"^4.0.0"
,
"request"
:
"^2.88.0"
,
"sass-graph"
:
"
^2.2.4
"
,
"sass-graph"
:
"
2.2.5
"
,
"stdout-stream"
:
"^1.4.0"
,
"true-case-path"
:
"^1.0.2"
},
"dependencies"
:
{
"ajv"
:
{
"version"
:
"
5.5
.2"
,
"resolved"
:
"https://registry.npm
js.org/ajv/-/ajv-5.5
.2.tgz"
,
"integrity"
:
"sha1-
c7Xuyj+rZT49P5Qis0GtQiBdyWU
="
,
"version"
:
"
6.12
.2"
,
"resolved"
:
"https://registry.npm
.taobao.org/ajv/download/ajv-6.12
.2.tgz"
,
"integrity"
:
"sha1-
xinF7O0XuvMUQ3kY0tqIyZ1ZWM0
="
,
"requires"
:
{
"co"
:
"^4.6.0"
,
"fast-deep-equal"
:
"^1.0.0"
,
"fast-deep-equal"
:
"^3.1.1"
,
"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"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
js.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="
},
"aws-sign2"
:
{
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npm
js.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="
},
"cross-spawn"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"lru-cache"
:
"^4.0.1"
,
"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"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npm
js.org/form-data/-
/form-data-2.3.3.tgz"
,
"integrity"
:
"sha
512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/form-data/download
/form-data-2.3.3.tgz"
,
"integrity"
:
"sha
1-3M5SwF9kTymManq5Nr1yTO/786Y
="
,
"requires"
:
{
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.6"
,
...
...
@@ -5403,21 +5383,21 @@
},
"har-schema"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npm
js.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="
},
"har-validator"
:
{
"version"
:
"5.1.
0
"
,
"resolved"
:
"https://registry.npm
js.org/har-validator/-/har-validator-5.1.0
.tgz"
,
"integrity"
:
"sha
512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA=
="
,
"version"
:
"5.1.
3
"
,
"resolved"
:
"https://registry.npm
.taobao.org/har-validator/download/har-validator-5.1.3
.tgz"
,
"integrity"
:
"sha
1-HvievT5JllV2de7ZiTEQ3DUPoIA
="
,
"requires"
:
{
"ajv"
:
"^
5.3.0
"
,
"ajv"
:
"^
6.5.5
"
,
"har-schema"
:
"^2.0.0"
}
},
"http-signature"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"assert-plus"
:
"^1.0.0"
,
...
...
@@ -5425,20 +5405,40 @@
"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"
:
{
"version"
:
"0.9.0"
,
"resolved"
:
"https://registry.npm
js.org/oauth-sign/-
/oauth-sign-0.9.0.tgz"
,
"integrity"
:
"sha
512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=
="
"resolved"
:
"https://registry.npm
.taobao.org/oauth-sign/download
/oauth-sign-0.9.0.tgz"
,
"integrity"
:
"sha
1-R6ewFrqmi1+g7PPe4IqFxnmsZFU
="
},
"performance-now"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
},
"punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz"
,
"integrity"
:
"sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
},
"request"
:
{
"version"
:
"2.88.
0
"
,
"resolved"
:
"https://registry.npm
js.org/request/-/request-2.88.0
.tgz"
,
"integrity"
:
"sha
512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=
="
,
"version"
:
"2.88.
2
"
,
"resolved"
:
"https://registry.npm
.taobao.org/request/download/request-2.88.2
.tgz"
,
"integrity"
:
"sha
1-1zyRhzHLWofaBH4gcjQUb2ZNErM
="
,
"requires"
:
{
"aws-sign2"
:
"~0.7.0"
,
"aws4"
:
"^1.8.0"
,
...
...
@@ -5447,7 +5447,7 @@
"extend"
:
"~3.0.2"
,
"forever-agent"
:
"~0.6.1"
,
"form-data"
:
"~2.3.2"
,
"har-validator"
:
"~5.1.
0
"
,
"har-validator"
:
"~5.1.
3
"
,
"http-signature"
:
"~1.2.0"
,
"is-typedarray"
:
"~1.0.0"
,
"isstream"
:
"~0.1.2"
,
...
...
@@ -5457,18 +5457,18 @@
"performance-now"
:
"^2.1.0"
,
"qs"
:
"~6.5.2"
,
"safe-buffer"
:
"^5.1.2"
,
"tough-cookie"
:
"~2.
4.3
"
,
"tough-cookie"
:
"~2.
5.0
"
,
"tunnel-agent"
:
"^0.6.0"
,
"uuid"
:
"^3.3.2"
}
},
"tough-cookie"
:
{
"version"
:
"2.
4.3
"
,
"resolved"
:
"https://registry.npm
js.org/tough-cookie/-/tough-cookie-2.4.3
.tgz"
,
"integrity"
:
"sha
512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=
="
,
"version"
:
"2.
5.0
"
,
"resolved"
:
"https://registry.npm
.taobao.org/tough-cookie/download/tough-cookie-2.5.0
.tgz"
,
"integrity"
:
"sha
1-zZ+yoKodWhK0c72fuW+j3P9lreI
="
,
"requires"
:
{
"psl"
:
"^1.1.2
4
"
,
"punycode"
:
"^
1.4
.1"
"psl"
:
"^1.1.2
8
"
,
"punycode"
:
"^
2.1
.1"
}
}
}
...
...
@@ -5482,14 +5482,24 @@
}
},
"normalize-package-data"
:
{
"version"
:
"2.
4
.0"
,
"resolved"
:
"https://registry.npm
js.org/normalize-package-data/-/normalize-package-data-2.4
.0.tgz"
,
"integrity"
:
"sha
512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw=
="
,
"version"
:
"2.
5
.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/normalize-package-data/download/normalize-package-data-2.5
.0.tgz"
,
"integrity"
:
"sha
1-5m2xg4sgDB38IzIl0SyzZSDiNKg
="
,
"requires"
:
{
"hosted-git-info"
:
"^2.1.4"
,
"
is-builtin-module"
:
"^1.
0.0"
,
"
resolve"
:
"^1.1
0.0"
,
"semver"
:
"2 || 3 || 4 || 5"
,
"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"
:
{
...
...
@@ -5861,7 +5871,7 @@
},
"parse-json"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"error-ex"
:
"^1.2.0"
...
...
@@ -5908,8 +5918,7 @@
"path-parse"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
,
"integrity"
:
"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
,
"dev"
:
true
"integrity"
:
"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
...
...
@@ -5919,7 +5928,7 @@
},
"path-type"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
...
...
@@ -5940,7 +5949,7 @@
},
"pify"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npm
js.org/pify/-
/pify-2.3.0.tgz"
,
"resolved"
:
"https://registry.npm
.taobao.org/pify/download
/pify-2.3.0.tgz"
,
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
},
"pinkie"
:
{
...
...
@@ -6951,7 +6960,7 @@
},
"read-pkg"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"load-json-file"
:
"^1.0.0"
,
...
...
@@ -6961,7 +6970,7 @@
},
"read-pkg-up"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"find-up"
:
"^1.0.0"
,
...
...
@@ -6970,7 +6979,7 @@
"dependencies"
:
{
"find-up"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"path-exists"
:
"^2.0.0"
,
...
...
@@ -6979,7 +6988,7 @@
},
"path-exists"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"pinkie-promise"
:
"^2.0.0"
...
...
@@ -7336,7 +7345,7 @@
},
"redent"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
js.org/redent/-
/redent-1.0.0.tgz"
,
"resolved"
:
"https://registry.npm
.taobao.org/redent/download
/redent-1.0.0.tgz"
,
"integrity"
:
"sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94="
,
"requires"
:
{
"indent-string"
:
"^2.1.0"
,
...
...
@@ -7658,101 +7667,149 @@
"dev"
:
true
},
"sass-graph"
:
{
"version"
:
"2.2.
4
"
,
"resolved"
:
"https://registry.npm
js.org/sass-graph/-/sass-graph-2.2.4
.tgz"
,
"integrity"
:
"sha1-
E/vWPNHK8JCLn9k0dq1DpR0eC0k
="
,
"version"
:
"2.2.
5
"
,
"resolved"
:
"https://registry.npm
.taobao.org/sass-graph/download/sass-graph-2.2.5
.tgz"
,
"integrity"
:
"sha1-
qYHIdEa4MZ2W3OBnHkh4eb0kwug
="
,
"requires"
:
{
"glob"
:
"^7.0.0"
,
"lodash"
:
"^4.0.0"
,
"scss-tokenizer"
:
"^0.2.3"
,
"yargs"
:
"^
7.0.0
"
"yargs"
:
"^
13.3.2
"
},
"dependencies"
:
{
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz"
,
"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"
:
{
"version"
:
"
3.0.0
"
,
"resolved"
:
"https://registry.npm
js.org/camelcase/-/camelcase-3.0.0
.tgz"
,
"integrity"
:
"sha1-
MvxLn82vhF/N9+c7uXysImHwqwo
="
"version"
:
"
5.3.1
"
,
"resolved"
:
"https://registry.npm
.taobao.org/camelcase/download/camelcase-5.3.1
.tgz"
,
"integrity"
:
"sha1-
48mzFWnhBoEd8kL3FXJaH0xJQyA
="
},
"cliui"
:
{
"version"
:
"
3.2
.0"
,
"resolved"
:
"https://registry.npm
js.org/cliui/-/cliui-3.2
.0.tgz"
,
"integrity"
:
"sha1-
EgYBU3qRbSmUD5NNo7SNWFo5IT0
="
,
"version"
:
"
5.0
.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/cliui/download/cliui-5.0
.0.tgz"
,
"integrity"
:
"sha1-
3u/P2y6AB4SqNPRvoI4GhRx7u8U
="
,
"requires"
:
{
"string-width"
:
"^
1.0.1
"
,
"strip-ansi"
:
"^
3.0.1
"
,
"wrap-ansi"
:
"^
2.0
.0"
"string-width"
:
"^
3.1.0
"
,
"strip-ansi"
:
"^
5.2.0
"
,
"wrap-ansi"
:
"^
5.1
.0"
}
},
"
is-fullwidth-code-point
"
:
{
"version"
:
"
1
.0.0"
,
"resolved"
:
"https://registry.npm
js.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1
.0.0.tgz"
,
"integrity"
:
"sha1-
754xOG8DGn8NZDr4L95QxFfvAMs
="
,
"
find-up
"
:
{
"version"
:
"
3
.0.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/find-up/download/find-up-3
.0.0.tgz"
,
"integrity"
:
"sha1-
SRafHXmTQwZG2mHsxa41XCHJe3M
="
,
"requires"
:
{
"
number-is-nan"
:
"^1
.0.0"
"
locate-path"
:
"^3
.0.0"
}
},
"os-locale"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz"
,
"integrity"
:
"sha1-IPnxeuKe00XoveWDsT0gCYA8FNk="
,
"get-caller-file"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz"
,
"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"
:
{
"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"
:
{
"version"
:
"
1.0.2
"
,
"resolved"
:
"https://registry.npm
js.org/string-width/-/string-width-1.0.2
.tgz"
,
"integrity"
:
"sha1-
EYvfW4zcUaKn5w0hHgfisLmxB9M
="
,
"version"
:
"
3.1.0
"
,
"resolved"
:
"https://registry.npm
.taobao.org/string-width/download/string-width-3.1.0
.tgz"
,
"integrity"
:
"sha1-
InZ74htirxCBV0MG9prFG2IgOWE
="
,
"requires"
:
{
"
code-point-at"
:
"^1.0.0
"
,
"is-fullwidth-code-point"
:
"^
1
.0.0"
,
"strip-ansi"
:
"^
3.0
.0"
"
emoji-regex"
:
"^7.0.1
"
,
"is-fullwidth-code-point"
:
"^
2
.0.0"
,
"strip-ansi"
:
"^
5.1
.0"
}
},
"strip-ansi"
:
{
"version"
:
"
3.0.1
"
,
"resolved"
:
"https://registry.npm
js.org/strip-ansi/-/strip-ansi-3.0.1
.tgz"
,
"integrity"
:
"sha1-
ajhfuIU9lS1f8F0Oiq+UJ43GPc8
="
,
"version"
:
"
5.2.0
"
,
"resolved"
:
"https://registry.npm
.taobao.org/strip-ansi/download/strip-ansi-5.2.0
.tgz"
,
"integrity"
:
"sha1-
jJpTb+tq/JYr36WxBKUJHBrZwK4
="
,
"requires"
:
{
"ansi-regex"
:
"^
2.0
.0"
"ansi-regex"
:
"^
4.1
.0"
}
},
"which-module"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz"
,
"integrity"
:
"sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
"wrap-ansi"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz"
,
"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"
:
{
"version"
:
"
7.1.0
"
,
"resolved"
:
"https://registry.npm
js.org/yargs/-/yargs-7.1.0
.tgz"
,
"integrity"
:
"sha1-
a6MY6xaWFyf10oT46gA+jWFU0Mg
="
,
"version"
:
"
13.3.2
"
,
"resolved"
:
"https://registry.npm
.taobao.org/yargs/download/yargs-13.3.2
.tgz"
,
"integrity"
:
"sha1-
rX/+/sGqWVZayRX4Lcyzipwxot0
="
,
"requires"
:
{
"camelcase"
:
"^3.0.0"
,
"cliui"
:
"^3.2.0"
,
"decamelize"
:
"^1.1.1"
,
"get-caller-file"
:
"^1.0.1"
,
"os-locale"
:
"^1.4.0"
,
"read-pkg-up"
:
"^1.0.1"
,
"cliui"
:
"^5.0.0"
,
"find-up"
:
"^3.0.0"
,
"get-caller-file"
:
"^2.0.1"
,
"require-directory"
:
"^2.1.1"
,
"require-main-filename"
:
"^
1.0.1
"
,
"require-main-filename"
:
"^
2.0.0
"
,
"set-blocking"
:
"^2.0.0"
,
"string-width"
:
"^
1.0.2
"
,
"which-module"
:
"^
1
.0.0"
,
"y18n"
:
"^
3.2.1
"
,
"yargs-parser"
:
"^
5.0.0
"
"string-width"
:
"^
3.0.0
"
,
"which-module"
:
"^
2
.0.0"
,
"y18n"
:
"^
4.0.0
"
,
"yargs-parser"
:
"^
13.1.2
"
}
},
"yargs-parser"
:
{
"version"
:
"
5.0.0
"
,
"resolved"
:
"https://registry.npm
js.org/yargs-parser/-/yargs-parser-5.0.0
.tgz"
,
"integrity"
:
"sha1-
J17PDX/+Bcd+ZOfIbkzZS/DhIoo
="
,
"version"
:
"
13.1.2
"
,
"resolved"
:
"https://registry.npm
.taobao.org/yargs-parser/download/yargs-parser-13.1.2
.tgz"
,
"integrity"
:
"sha1-
Ew8JcC667vJlDVTObj5XBvek+zg
="
,
"requires"
:
{
"camelcase"
:
"^3.0.0"
"camelcase"
:
"^5.0.0"
,
"decamelize"
:
"^1.2.0"
}
}
}
...
...
@@ -7801,7 +7858,7 @@
},
"scss-tokenizer"
:
{
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"js-base64"
:
"^2.1.8"
,
...
...
@@ -7810,7 +7867,7 @@
"dependencies"
:
{
"source-map"
:
{
"version"
:
"0.4.4"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"amdefine"
:
">=0.0.4"
...
...
@@ -8218,32 +8275,32 @@
"dev"
:
true
},
"spdx-correct"
:
{
"version"
:
"3.
0.2
"
,
"resolved"
:
"https://registry.npm
js.org/spdx-correct/-/spdx-correct-3.0.2
.tgz"
,
"integrity"
:
"sha
512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ=
="
,
"version"
:
"3.
1.1
"
,
"resolved"
:
"https://registry.npm
.taobao.org/spdx-correct/download/spdx-correct-3.1.1
.tgz"
,
"integrity"
:
"sha
1-3s6BrJweZxPl99G28X1Gj6U9iak
="
,
"requires"
:
{
"spdx-expression-parse"
:
"^3.0.0"
,
"spdx-license-ids"
:
"^3.0.0"
}
},
"spdx-exceptions"
:
{
"version"
:
"2.
2
.0"
,
"resolved"
:
"https://registry.npm
js.org/spdx-exceptions/-/spdx-exceptions-2.2
.0.tgz"
,
"integrity"
:
"sha
512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=
="
"version"
:
"2.
3
.0"
,
"resolved"
:
"https://registry.npm
.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3
.0.tgz"
,
"integrity"
:
"sha
1-PyjOGnegA3JoPq3kpDMYNSeiFj0
="
},
"spdx-expression-parse"
:
{
"version"
:
"3.0.
0
"
,
"resolved"
:
"https://registry.npm
js.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0
.tgz"
,
"integrity"
:
"sha
512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=
="
,
"version"
:
"3.0.
1
"
,
"resolved"
:
"https://registry.npm
.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1
.tgz"
,
"integrity"
:
"sha
1-z3D1BILu/cmOPOCmgz5KU87rpnk
="
,
"requires"
:
{
"spdx-exceptions"
:
"^2.1.0"
,
"spdx-license-ids"
:
"^3.0.0"
}
},
"spdx-license-ids"
:
{
"version"
:
"3.0.
1
"
,
"resolved"
:
"https://registry.npm
js.org/spdx-license-ids/-/spdx-license-ids-3.0.1
.tgz"
,
"integrity"
:
"sha
512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=
="
"version"
:
"3.0.
5
"
,
"resolved"
:
"https://registry.npm
.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5
.tgz"
,
"integrity"
:
"sha
1-NpS1gEVnpFjTyARYQqY1hjL2JlQ
="
},
"split-string"
:
{
"version"
:
"3.1.0"
,
...
...
@@ -8317,21 +8374,21 @@
},
"stdout-stream"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npm
js.org/stdout-stream/-
/stdout-stream-1.4.1.tgz"
,
"integrity"
:
"sha
512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/stdout-stream/download
/stdout-stream-1.4.1.tgz"
,
"integrity"
:
"sha
1-WsF0zdXNcmEEqgwLK9g4FdjVNd4
="
,
"requires"
:
{
"readable-stream"
:
"^2.0.1"
},
"dependencies"
:
{
"isarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
js.org/isarray/-
/isarray-1.0.0.tgz"
,
"resolved"
:
"https://registry.npm
.taobao.org/isarray/download
/isarray-1.0.0.tgz"
,
"integrity"
:
"sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream"
:
{
"version"
:
"2.3.
6
"
,
"resolved"
:
"https://registry.npm
js.org/readable-stream/-/readable-stream-2.3.6
.tgz"
,
"integrity"
:
"sha
512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=
="
,
"version"
:
"2.3.
7
"
,
"resolved"
:
"https://registry.npm
.taobao.org/readable-stream/download/readable-stream-2.3.7
.tgz"
,
"integrity"
:
"sha
1-Hsoc9xGu+BTAT2IlKjamL2yyO1c
="
,
"requires"
:
{
"core-util-is"
:
"~1.0.0"
,
"inherits"
:
"~2.0.3"
,
...
...
@@ -8344,8 +8401,8 @@
},
"string_decoder"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npm
js.org/string_decoder/-
/string_decoder-1.1.1.tgz"
,
"integrity"
:
"sha
512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/string_decoder/download
/string_decoder-1.1.1.tgz"
,
"integrity"
:
"sha
1-nPFhG6YmhdcDCunkujQUnDrwP8g
="
,
"requires"
:
{
"safe-buffer"
:
"~5.1.0"
}
...
...
@@ -8481,7 +8538,7 @@
},
"strip-bom"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"is-utf8"
:
"^0.2.0"
...
...
@@ -8494,7 +8551,7 @@
},
"strip-indent"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm
js.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="
,
"requires"
:
{
"get-stdin"
:
"^4.0.1"
...
...
@@ -8662,7 +8719,7 @@
},
"trim-newlines"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npm
js.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="
},
"trim-right"
:
{
...
...
@@ -8673,8 +8730,8 @@
},
"true-case-path"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npm
js.org/true-case-path/-
/true-case-path-1.0.3.tgz"
,
"integrity"
:
"sha
512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/true-case-path/download
/true-case-path-1.0.3.tgz"
,
"integrity"
:
"sha
1-+BO1qMhrQNpZYGcisUTjIleZ9H0
="
,
"requires"
:
{
"glob"
:
"^7.1.2"
}
...
...
@@ -8851,6 +8908,21 @@
"integrity"
:
"sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
,
"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"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
,
...
...
@@ -8953,8 +9025,8 @@
},
"validate-npm-package-license"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npm
js.org/validate-npm-package-license/-
/validate-npm-package-license-3.0.4.tgz"
,
"integrity"
:
"sha
512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=
="
,
"resolved"
:
"https://registry.npm
.taobao.org/validate-npm-package-license/download
/validate-npm-package-license-3.0.4.tgz"
,
"integrity"
:
"sha
1-/JH2uce6FchX9MssXe/uw51PQQo
="
,
"requires"
:
{
"spdx-correct"
:
"^3.0.0"
,
"spdx-expression-parse"
:
"^3.0.0"
...
...
@@ -9114,6 +9186,36 @@
}
}
},
"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"
:
{
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz"
,
...
...
package.json
浏览文件 @
8acd9a18
...
...
@@ -28,7 +28,7 @@
"
js-md5
"
:
"
^0.7.3
"
,
"
jsencrypt
"
:
"
^3.0.0-rc.1
"
,
"
jspdf
"
:
"
^1.5.3
"
,
"
node-sass
"
:
"
^4.
9.2
"
,
"
node-sass
"
:
"
^4.
14.1
"
,
"
qrcode
"
:
"
^1.3.3
"
,
"
showdown
"
:
"
^1.6.4
"
,
"
sortablejs
"
:
"
^1.10.0-rc3
"
,
...
...
src/components/yqrange/baseinfo.vue
0 → 100644
浏览文件 @
8acd9a18
<
template
>
<el-form
ref=
"formData"
:model=
"formData"
:rules=
"rules"
label-width=
"150px"
label-suffix=
":"
class=
"basic-form"
>
<el-form-item
label=
"圈子名称"
prop=
"projectName"
>
<el-col
:span=
"13"
>
<el-input
size=
"small"
v-model=
"formData.projectName"
placeholder=
"请输入圈子名称"
style=
"width:70%;"
@
change=
"returnTypeData('projectName')"
></el-input>
<span
class=
"word-num"
>
{{
(
formData
.
projectName
).
replace
(
/
\s
+/g
,
""
).
length
}}
/24
</span>
</el-col>
</el-form-item>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"圈子头像"
class=
"required-label"
>
<el-upload
v-model=
"formData.imgUrl1"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:before-upload=
"beforeUploadPic1"
>
<img
v-if=
"formData.imgUrl1"
:src=
"formData.imgUrl1"
@
mouseover
.
stop=
"imgMouseOver1=true"
class=
"bg-img"
/>
<img
v-if=
"!formData.imgUrl1"
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>
尺寸:48*48
</p>
<p>
限制大小: 500kb
</p>
<p>
支持.jpg,.png格式
</p>
</div>
</el-upload>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage1"
>
请选择圈子头像
</p>
</div>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"圈子封面"
class=
"required-label"
>
<el-upload
v-model=
"formData.imgUrl2"
class=
"bg-uploader"
@
change=
"returnTypeData('imgUrl2')"
action=
"#"
:show-file-list=
"false"
:before-upload=
"beforeUploadPic2"
>
<img
v-if=
"formData.imgUrl2"
:src=
"formData.imgUrl2"
@
mouseover
.
stop=
"imgMouseOver2=true"
class=
"bg-img"
/>
<img
v-if=
"!formData.imgUrl2"
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>
尺寸:750*420
</p>
<p>
限制大小: 2Mb
</p>
<p>
支持.jpg,.png格式
</p>
</div>
</el-upload>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage2"
>
请选择圈子头像
</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
}}
/24
</span>
</el-col>
</el-form-item>
<el-form-item
label=
"内容发布权限"
prop=
"contentRole"
>
<el-select
v-model=
"formData.contentRole"
@
change=
"returnTypeData('contentRole')"
placeholder=
"请选择发布权限"
size=
"small"
clearable
>
<el-option
v-for=
"item in contentList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.label"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</
template
>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
export
default
{
name
:
"baseinfo"
,
props
:
{
formData
:
{
type
:
Object
,
default
:
()
=>
{
return
{}
}
}
},
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: {
projectName: [
{ required: true, message: "
请输入圈子名称
", trigger: "
blur
" },
{
min: 2,
max: 24,
message: "
输入长度为
2
-
24
的内容,可包含中英文、数字及特殊符号
",
trigger: "
blur
"
},
{ validator: checkProjectStr, trigger: "
blur
" }
],
introduce: [
{ required: true, message: "
请输入圈子名称
", trigger: "
blur
" },
{
min: 2,
max: 24,
message: "
输入长度为
2
-
24
的内容,可包含中英文、数字及特殊符号
",
trigger: "
blur
"
},
{ validator: checkProjectStr, trigger: "
blur
" }
],
contentRole: [
{ required: true, message: "
请选择内容发布权限
", trigger: "
blur
" },
]
},
imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语
imgMouseOver2: false,
uploadImgMessage2: false,
contentList: [
{
value: '1',
label: '所有人可发布'
}, {
value: '2',
label: '管理员可发布'
},
],
}
},
methods: {
returnTypeData(name) {
this.$emit('returnTypeData', {
name: name,
val: this.formData[name]
})
}
,
//上传圈子头像
beforeUploadPic1(file) {
let fileLimit = {
width: 48,
height: 48,
size: 0.5,
sizeText: "
500
K
",
key: "
imgUrl1
",
more: "
imgUrl1More
",
show: "
uploadImgMessage1
"
};
this.beforeUpload(file, fileLimit);
},
beforeUploadPic2(file) {
let fileLimit = {
width: 750,
height: 420,
size: 2,
sizeText: "
2
Mb
",
key: "
imgUrl2
",
more: "
imgUrl2More
",
show: "
uploadImgMessage2
"
};
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 (false) {
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.imgUrl1 = "";
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;
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
}
.required-label .el-form-item__label::before {
content: '*';
color: #F56C6C;
margin-right: 4px;
}
</
style
>
\ No newline at end of file
src/components/yqrange/organzation.vue
0 → 100644
浏览文件 @
8acd9a18
<
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=
"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>
</
template
>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
*
as
operationData
from
"../../utils/operation"
;
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
,
formOrganization
:
{
name
:
""
,
administrativeId
:
"0"
,
administrativeIdList
:
[
"0"
],
level
:
"-1"
,
chechAll
:
true
,
pageNum
:
1
,
pageSize
:
10
},
}
},
created
()
{
vm
=
this
;
(
this
.
projectId
=
775
);
this
.
initRange
();
//this.editManager();
vm
.
idType
=
localStorage
.
getItem
(
"storageIdType"
);
console
.
log
(
"this.idType:"
+
vm
.
idType
);
},
methods
:
{
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"
;
},
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中勾选一个
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中勾选一排
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
);
});
}
},
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
);
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
:
""
};
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
);
}
});
},
//获取医院等级
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
==
"-1"
&&
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
=
"-1"
;
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
src/router/range.js
0 → 100644
浏览文件 @
8acd9a18
<!--
圈子
router
-->
\ No newline at end of file
src/router/router.js
浏览文件 @
8acd9a18
...
...
@@ -52,6 +52,7 @@ const yqRange = r => require.ensure([], () => r(require('../views/yqrange/yq-ran
const
liveManage
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/yqrange/live-manage.vue'
)),
'live-manage'
)
const
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
[{
...
...
@@ -218,6 +219,11 @@ export default [{
path
:
'/create-live'
,
component
:
createLive
},
{
path
:
'/edit-range'
,
component
:
editRange
},
// {
// path: '/followup',
// name: 'followUp',
...
...
src/utils/fetch.js
浏览文件 @
8acd9a18
...
...
@@ -52,10 +52,11 @@ service.interceptors.request.use(config => {
if
(
config
.
headers
[
'sysCode'
]
==
undefined
)
{
config
.
headers
[
'sysCode'
]
=
12
}
if
(
process
.
env
.
BUILD_ENV
==
"development"
){
// 本地开发环境
if
(
process
.
env
.
BUILD_ENV
==
"development"
){
// 本地开发环境
qgit
// console.log('环境变量>>>> ', process.env.BUILD_ENV);
config
.
headers
[
'token'
]
=
'1C7A1CC89FD24B8A8EAA0A54A06F7C9A'
;
// config.headers['token'] = '4559D8D1D615430991878A1264830A04';
config
.
headers
[
'token'
]
=
'F4A5FA03045D473686CC6C20F0E0D80D
'
;
// config.headers['token'] = 'B6A38C32790E4462BC451C335F65848E
';
// config.headers['token'] = localStorage.getItem('storageToken')
}
else
{
config
.
headers
[
'token'
]
=
localStorage
.
getItem
(
'storageToken'
)
...
...
src/views/yqrange/create-range.vue
浏览文件 @
8acd9a18
...
...
@@ -5,10 +5,10 @@
<el-row
class=
"step-content"
>
<el-col
:span=
"14"
>
<el-steps
:active=
"active"
simple
class
>
<span
class=
"step-num"
:class=
"
{ 'on-step': stepData[0] }">1
</span>
<span
class=
"step-num"
v-bind
: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>
<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"
>
...
...
@@ -17,150 +17,38 @@
<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"
>
<div
class=
"first-step"
v-if=
"active ==
=
0"
>
<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=
"projectName"
>
<el-col
:span=
"13"
>
<el-input
size=
"small"
v-model=
"formData.projectName"
placeholder=
"请输入圈子名称"
style=
"width:70%;"
></el-input>
<span
class=
"word-num"
>
{{
(
formData
.
projectName
).
replace
(
/
\s
+/g
,
""
).
length
}}
/24
</span>
</el-col>
</el-form-item>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"圈子头像"
class=
"required-label"
>
<el-upload
v-model=
"formData.imgUrl1"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:before-upload=
"beforeUploadPic1"
>
<img
v-if=
"formData.imgUrl1"
:src=
"formData.imgUrl1"
@
mouseover
.
stop=
"imgMouseOver1=true"
class=
"bg-img"
/>
<img
v-if=
"!formData.imgUrl1"
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>
尺寸:48*48
</p>
<p>
限制大小: 500kb
</p>
<p>
支持.jpg,.png格式
</p>
</div>
</el-upload>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage1"
>
请选择圈子头像
</p>
</div>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"圈子封面"
class=
"required-label"
>
<el-upload
v-model=
"formData.imgUrl2"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:before-upload=
"beforeUploadPic2"
>
<img
v-if=
"formData.imgUrl2"
:src=
"formData.imgUrl2"
@
mouseover
.
stop=
"imgMouseOver2=true"
class=
"bg-img"
/>
<img
v-if=
"!formData.imgUrl2"
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>
尺寸:750*420
</p>
<p>
限制大小: 2Mb
</p>
<p>
支持.jpg,.png格式
</p>
</div>
</el-upload>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage2"
>
请选择圈子头像
</p>
</div>
<el-form-item
label=
"圈子介绍"
prop=
"introduce"
>
<el-col
:span=
"13"
>
<el-input
size=
"small"
v-model=
"formData.introduce"
placeholder=
"请输入圈子介绍"
style=
"width:70%;"
></el-input>
<span
class=
"word-num"
>
{{
(
formData
.
introduce
).
replace
(
/
\s
+/g
,
""
).
length
}}
/24
</span>
</el-col>
</el-form-item>
<el-form-item
label=
"内容发布权限"
prop=
"contentRole"
>
<el-select
v-model=
"formData.contentRole"
placeholder=
"请选择发布权限"
size=
"small"
clearable
>
<el-option
v-for=
"item in contentList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.label"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<base-info
:formData=
"formData"
@
returnTypeData=
"returnTypeData"
>
</base-info>
</div>
<div
class=
"second-step"
v-else-if=
"active === 1"
>
<organzation></organzation>
</div>
</div>
</div>
</
template
>
<
script
>
let
vm
=
null
;
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
BaseInfo
from
'@/components/yqrange/baseinfo.vue'
;
import
Organzation
from
'@/components/yqrange/organzation.vue'
;
export
default
{
name
:
"create-range"
,
components
:
{
BreadCrumb
BreadCrumb
,
BaseInfo
,
Organzation
},
data
(){
let
checkProjectStr
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
.
indexOf
(
"
\
\"
) != -1) {
//存在
callback(new Error("
请勿输入字符“
\\
”
"));
} else if (value.indexOf("
.
") != -1) {
callback(new Error("
请勿输入字符“
.
”
"));
} else {
callback();
}
};
return{
data
()
{
return
{
id
:
null
,
enterType
:
1
,
//1.creat 2.edit
curmbFirst
:
'云鹊小圈'
,
curmbSecond
:
'新建小圈'
,
active
:
0
,
//页面展示位置
stepData: [true, false
, false
],
stepData
:
[
true
,
false
],
showStorage
:
true
,
formData
:
{
projectName
:
''
,
...
...
@@ -170,152 +58,90 @@
imgUrl2More
:
{},
introduce
:
''
,
contentRole
:
''
,
},
imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语
imgMouseOver2: false,
uploadImgMessage2: false,
contentList: [
{
value: '1',
label: '所有人可发布动态'
},{
value: '2',
label: '嘉宾可发布动态'
},
],
rules: {
projectName: [
{ required: true, message: "
请输入圈子名称
", trigger: "
blur
" },
{
min: 2,
max: 24,
message: "
输入长度为
2
-
24
的内容,可包含中英文、数字及特殊符号
",
trigger: "
blur
"
},
{ validator: checkProjectStr, trigger: "
blur
" }
],
introduce: [
{ required: true, message: "
请输入圈子名称
", trigger: "
blur
" },
{
min: 2,
max: 24,
message: "
输入长度为
2
-
24
的内容,可包含中英文、数字及特殊符号
",
trigger: "
blur
"
},
{ validator: checkProjectStr, trigger: "
blur
" }
],
contentRole: [
{ required: true, message: "
请选择内容发布权限
", trigger: "
blur
" },
]
}
}
},
created
()
{
vm
=
this
;
// 根据ID是否有值判断编辑还是create
// debugger
const
{
enterType
,
id
}
=
this
.
$route
.
query
;
this
.
id
=
id
;
this
.
enterType
=
enterType
;
if
(
enterType
==
1
)
{
//edit
console
.
log
(
"add"
);
}
else
{
console
.
log
(
"edit"
);
}
},
methods
:
{
//上传圈子头像
beforeUploadPic1(file) {
let fileLimit = {
width: 48,
height: 48,
size: 0.5,
sizeText: "
500
K
",
key: "
imgUrl1
",
more: "
imgUrl1More
",
show: "
uploadImgMessage1
"
};
this.beforeUpload(file, fileLimit);
//暂存
storage
()
{
},
//下一步
nextStep
()
{
// debugger
if
(
this
.
enterType
==
1
)
{
//edit
console
.
log
(
"add"
);
this
.
commitQuanziInfo
();
}
else
{
console
.
log
(
"edit"
);
this
.
active
=
1
this
.
stepData
=
[
false
,
true
];
}
},
beforeUploadPic2(file) {
let fileLimit = {
width: 750,
height: 420,
size: 2,
sizeText: "
2
Mb
",
key: "
imgUrl2
",
more: "
imgUrl2More
",
show: "
uploadImgMessage2
"
};
this.beforeUpload(file, fileLimit);
//完成
complete
()
{
},
returnTypeData
(
item
)
{
this
.
formData
[
item
.
name
]
=
item
.
val
},
//上传图片
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) {
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("
上传成功
");
});
}
};
commitQuanziInfo
()
{
let
req
=
{
name
:
this
.
formData
.
projectName
,
headUrl
:
this
.
formData
.
imgUrl1
,
coverUrl
:
this
.
formData
.
imgUrl2
,
introduce
:
this
.
formData
.
introduce
,
dynamicFlag
:
this
.
formData
.
contentRole
,
};
return isJPG && isLt2M;
},
//删除图片
deleteImg(type) {
if (type == 1) {
vm.formData.imgUrl1 = "";
vm.imgMouseOver1 = false;
}
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);
this
.
formData
.
id
=
res
.
id
}
else
{
//
}
});
},
//暂存
storage() {},
//下一步
nextStep() {},
//完成
complete() {},
},
}
}
</
script
>
<
style
lang=
"scss"
>
.yqrange-index-wrapper
{
.yqrange-index-content
{
.yqrange-index-wrapper
{
.yqrange-index-content
{
background
:
#fff
;
padding
:
10px
;
.step-content
{
.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
;
...
...
@@ -328,93 +154,24 @@
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
{
.bg-img
{
float
:
left
;
width
:
84px
;
height
:
100px
;
}
.limit-text
{
float
:
left
;
margin-left
:
10px
;
margin-top
:
-10px
;
p
{
font-size
:
12px
;
color
:
#999
;
}
}
}
.el-upload__tip
{
position
:
absolute
;
top
:
-6px
;
left
:
130px
;
}
}
}
}
.
required-label
.
el-form-item__label
:
:
before
{
content
:
'*'
;
color
:
#F56C6C
;
margin-right
:
4px
;
}
</
style
>
</
style
>
\ No newline at end of file
src/views/yqrange/edit-range.vue
0 → 100644
浏览文件 @
8acd9a18
<
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
src/views/yqrange/role-manage.vue
浏览文件 @
8acd9a18
...
...
@@ -3,30 +3,47 @@
<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-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-select
v-model=
"searchForm.department"
placeholder=
"请选择科室"
clearable
style=
"margin-left:20px;"
>
<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>
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-select
v-model=
"searchForm.proTitle"
placeholder=
"请选择职称"
clearable
style=
"margin-left:20px;"
>
<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 in proList
"
:key=
"item.value
"
:label=
"item.label
"
:value=
"item.label"
>
</el-option>
</el-select>
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"
>
...
...
@@ -47,165 +64,430 @@
<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=
"scope.row.level == 2"
@
click=
"promote(scope.row)"
type=
"text"
size=
"small"
>
升为主管理员
</el-button>
<el-button
v-if=
"scope.row.level == 3"
@
click=
"promote(scope.row)"
type=
"text"
size=
"small"
>
升为管理员
</el-button>
<el-button
v-if=
"scope.row.level != 1"
@
click=
"addBlackList(scope.row)"
type=
"text"
size=
"small"
>
加入黑名单
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 0"
@
click=
"promote(scope.row, 1)"
type=
"text"
size=
"small"
>
升为管理员
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 0"
@
click=
"promote(scope.row, 2)"
type=
"text"
size=
"small"
>
升为主管理员
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 1"
@
click=
"promote(scope.row, 2)"
type=
"text"
size=
"small"
>
升为主管理员
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 1"
@
click=
"promote(scope.row, 0)"
type=
"text"
size=
"small"
>
降为普通成员
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 2"
@
click=
"promote(scope.row, 1)"
type=
"text"
size=
"small"
>
降为管理员
</el-button>
<el-button
v-if=
"this.idType != 1 && scope.row.level == 2"
@
click=
"promote(scope.row, 0)"
type=
"text"
size=
"small"
>
降为普通成员
</el-button>
<el-button
v-if=
"this.idType != 1"
@
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"
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
BreadCrumb
from
"@/components/breadcrumb.vue"
;
export
default
{
components
:
{
BreadCrumb
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
:
[
{
role
:
"普通成员"
,
name
:
"炸弹"
,
proTitle
:
""
,
department
:
""
,
hospital
:
""
,
level
:
0
,
doctorId
:
123
,
status
:
1
},
{
role
:
"管理员"
,
name
:
"炸弹3号"
,
proTitle
:
"医生"
,
department
:
"内科"
,
hospital
:
"浙江省中医院"
,
level
:
1
,
doctorId
:
456
,
status
:
1
},
{
role
:
"主管理员"
,
name
:
"炸弹4号"
,
proTitle
:
"医生"
,
department
:
"内科"
,
hospital
:
"浙江省中医院"
,
level
:
2
,
doctorId
:
456
,
status
:
1
}
],
organization
:
[
{
id
:
"1"
,
name
:
"第一医院"
},
{
id
:
"2"
,
name
:
"第二医院"
}
],
id
:
null
};
},
created
()
{
vm
=
this
;
this
.
id
=
this
.
$route
.
query
.
id
;
vm
.
getOrganization
();
this
.
idType
=
localStorage
.
getItem
(
'storageIdType'
)
console
.
log
(
"storageIdType = "
+
localStorage
.
getItem
(
'storageIdType'
));
},
methods
:
{
searchList
()
{
console
.
log
(
"查询"
);
let
req
=
{
name
:
this
.
searchForm
.
searchName
,
hospitaName
:
this
.
searchForm
.
searchHospital
,
id
:
this
.
id
,
pageNo
:
1
,
pageSize
:
10
};
// vm.POST("eco/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 = [];
// for (let i = 0; i
<
data
.
length
;
i
++
)
{
// let roleName = "";
// switch (data[i].role_id) {
// case 0:
// roleName = "普通成员 1:管理员 2:主管理员 3:审核人员";
// break;
// case 1:
// roleName = "管理员";
// break;
// case 2:
// roleName = "主管理员";
// break;
// case 3:
// roleName = "审核人员";
// break;
// default:
// roleName = "普通成员";
// }
// let obj = {
// role: roleName,
// name: data[i].name,
// proTitle: data[i].title,
// department: data[i].departmentName,
// hospital: data[i].hospitalName,
// level: data[i].role_id,
// doctorId: data[i].id,
// status: data[i].status
// };
// listData.push(obj);
// }
// this.tableData = listData;
// } else {
// // vm.$message.info(res.message);
// // vm.$message.info("操作失败,请重试");
// }
// })
// .catch(function(error) {
// vm.$message.error(error);
// });
let
listData
=
[];
let
obj
=
{
role
:
"大总管"
,
name
:
"小小"
,
proTitle
:
"妇科老大"
,
department
:
"总经办"
,
hospital
:
"青山神经病院"
,
level
:
3
,
doctorId
:
789
};
listData
.
push
(
obj
);
this
.
tableData
=
listData
;
},
resetForm
()
{
console
.
log
(
"重置"
);
this
.
searchForm
.
searchName
=
""
;
this
.
searchForm
.
searchHospital
=
""
;
},
data
(){
return
{
curmbFirst
:
'云鹊小圈'
,
curmbSecond
:
'成员管理'
,
searchForm
:
{
department
:
''
,
proTitle
:
''
,
pageNo
:
1
,
pageSize
:
10
,
//获取机构
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
:
"中医院"
},
totalRows
:
0
,
departmentList
:
[{
value
:
'1'
,
label
:
'外科'
},
{
value
:
'2'
,
label
:
'内科'
}],
proList
:
[{
value
:
'1'
,
label
:
'主治医师'
},
{
value
:
'2'
,
label
:
'医生'
}],
tableData
:
[
{
role
:
'主管理员'
,
name
:
'炸弹'
,
proTitle
:
''
,
department
:
''
,
hospital
:
''
,
level
:
1
,
},
{
role
:
'普通成员'
,
name
:
'炸弹3号'
,
proTitle
:
'医生'
,
department
:
'内科'
,
hospital
:
'浙江省中医院'
,
level
:
3
,
}
],
{
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
;
},
methods
:
{
searchList
()
{
console
.
log
(
'查询'
)
},
resetForm
()
{
console
.
log
(
'重置'
)
},
//管理员升级
promote
(
row
)
{
let
currentName
=
''
,
willName
;
if
(
row
.
level
==
1
)
{
currentName
=
'主管理员'
;
}
else
if
(
row
.
level
==
2
)
{
currentName
=
'管理员'
;
willName
=
'主管理员'
;
}
else
if
(
row
.
level
==
3
)
{
currentName
=
'普通成员'
;
willName
=
'管理员'
;
}
this
.
$confirm
(
`确定将
${
currentName
}
“
${
row
.
name
}
”升为
${
willName
}
`
,
''
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
customClass
:
'range-make-box'
,
}).
then
(()
=>
{
//管理员升级
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
}).
catch
(()
=>
{
// 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
();
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
)
{
this
.
$confirm
(
`确定将“
${
row
.
name
}
”加入黑名单吗`
,
''
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
customClass
:
'range-make-box'
,
}).
then
(()
=>
{
// confirm
}).
catch
(()
=>
{
},
//加入黑名单
addBlackList
(
row
)
{
vm
=
this
;
this
.
$confirm
(
`确定将“
${
row
.
name
}
”加入黑名单吗`
,
""
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"alert"
,
customClass
:
"range-make-box"
})
.
then
(()
=>
{
console
.
log
(
"查询: this.id = "
+
this
.
id
+
", row.doctorId = "
+
row
.
doctorId
);
vm
.
GET
(
"eco/circle/"
+
this
.
id
+
"/"
+
row
.
doctorId
+
"/freeControl"
,
req
)
.
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
$message
({
type
:
"success"
,
message
:
"操作成功"
});
vm
.
search
();
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
();
},
},
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
{
.yqrange-index-wrapper
{
.yqrange-index-content
{
background
:
#fff
;
padding
:
10px
;
.header-title
{
padding
:
10px
12px
;
font-size
:
12px
;
color
:
#449284
;
font-size
:
14px
;
&
:
:
after
{
content
:
''
;
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: 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
;
}
border-right
:
none
;
}
}
}
}
</
style
>
src/views/yqrange/yq-range.vue
浏览文件 @
8acd9a18
...
...
@@ -106,8 +106,9 @@ export default {
},
//新建小圈
createRange
()
{
let
enterType
=
1
;
//1:add 2 edit
this
.
$router
.
push
({
path
:
'/create-range'
,
path
:
`/create-range?enterType=
${
enterType
}
`
})
},
//上线
...
...
@@ -147,11 +148,20 @@ export default {
//成员管理
roleManage
(
row
)
{
this
.
$router
.
push
({
path
:
'/role-manage
'
,
path
:
'/role-manage
?id='
+
row
.
id
,
})
},
//编辑
editRange
(
row
)
{},
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
}
”吗?`
,
''
,
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录