Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
4afa62a5
提交
4afa62a5
编写于
9月 16, 2019
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev-coop-phase3-0830' into release
上级
d600dcdb
0fa9d088
变更
13
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
1139 行增加
和
88 行删除
+1139
-88
router.js
src/router/router.js
+6
-0
common.scss
src/style/common.scss
+17
-0
educationApi.js
src/utils/education/educationApi.js
+19
-0
env-config.js
src/utils/env-config.js
+6
-0
filter.js
src/utils/filter.js
+34
-0
index.js
src/utils/index.js
+5
-0
operation.js
src/utils/operation.js
+46
-1
add-manager.vue
src/views/education/add-manager.vue
+43
-29
item-shield.vue
src/views/education/item-shield.vue
+209
-0
data-alignment.vue
src/views/learning/data-alignment.vue
+6
-0
item-list.vue
src/views/learning/item-list.vue
+14
-1
item-part-in.vue
src/views/learning/item-part-in.vue
+1
-1
item-role.vue
src/views/system/item-role.vue
+733
-56
未找到文件。
src/router/router.js
浏览文件 @
4afa62a5
...
@@ -21,6 +21,8 @@ const nameList = r => require.ensure([], () => r(require('../views/learning/name
...
@@ -21,6 +21,8 @@ const nameList = r => require.ensure([], () => r(require('../views/learning/name
const
dataAlignment
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/learning/data-alignment.vue'
)),
'data-alignment'
)
const
dataAlignment
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/learning/data-alignment.vue'
)),
'data-alignment'
)
const
exportDownload
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/learning/export-download.vue'
)),
'export-download'
)
const
exportDownload
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/learning/export-download.vue'
)),
'export-download'
)
const
itemShield
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/item-shield.vue'
)),
'item-shield'
)
export
default
[{
export
default
[{
path
:
'/'
,
path
:
'/'
,
component
:
App
,
component
:
App
,
...
@@ -77,6 +79,10 @@ export default [{
...
@@ -77,6 +79,10 @@ export default [{
path
:
'/export-download'
,
path
:
'/export-download'
,
component
:
exportDownload
component
:
exportDownload
},
},
{
path
:
'/item-shield'
,
component
:
itemShield
,
},
{
{
path
:
'/msg-push'
,
path
:
'/msg-push'
,
component
:
msgPush
,
component
:
msgPush
,
...
...
src/style/common.scss
浏览文件 @
4afa62a5
...
@@ -235,4 +235,21 @@ html,body{
...
@@ -235,4 +235,21 @@ html,body{
.el-radio-button__orig-radio
:checked
+
.el-radio-button__inner
{
.el-radio-button__orig-radio
:checked
+
.el-radio-button__inner
{
background-color
:
#449284
!
important
;
background-color
:
#449284
!
important
;
border-color
:
#449284
!
important
;
border-color
:
#449284
!
important
;
}
//popover组件的特殊处理
.el-popover
{
::-webkit-scrollbar
{
width
:
4px
;
height
:
10px
;
background-color
:
#D8D8D8
;
}
::-webkit-scrollbar-thumb
{
background-color
:
#D8D8D8
;
}
.more-text
{
padding
:
0
5px
0
5px
;
max-height
:
55px
;
overflow-y
:
scroll
;
}
}
}
\ No newline at end of file
src/utils/education/educationApi.js
0 → 100644
浏览文件 @
4afa62a5
import
fetch
from
'../fetch'
;
import
{
getBaseUrl
}
from
'@/utils/index'
;
export
const
uploadExcel
=
(
data
,
projectId
)
=>
{
// return utils.checkAuth(()=>{
return
fetch
({
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
sysCode
:
12
,
token
:
localStorage
.
getItem
(
'storageToken'
),
},
url
:
getBaseUrl
(
'portal/portalProjectOrRole/importRoleFile?projectId='
+
projectId
),
method
:
'post'
,
data
:
data
,
description
:
'上传excel文件'
,
})
// })
}
\ No newline at end of file
src/utils/env-config.js
浏览文件 @
4afa62a5
...
@@ -30,6 +30,7 @@ export const envConfig = {
...
@@ -30,6 +30,7 @@ export const envConfig = {
reportUrl
:
'https://dev-sc-report.yunqueyi.com/'
,
reportUrl
:
'https://dev-sc-report.yunqueyi.com/'
,
// reportUrl: 'https://test1-sc-report.yunqueyi.com/',
// reportUrl: 'https://test1-sc-report.yunqueyi.com/',
// reportUrl: 'https://uat-sc-report.yunqueyi.com/',
// reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
},
},
dev
:
{
dev
:
{
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
...
@@ -45,6 +46,7 @@ export const envConfig = {
...
@@ -45,6 +46,7 @@ export const envConfig = {
workApiUrl
:
'https://dev-work.yunqueyi.com/web'
,
workApiUrl
:
'https://dev-work.yunqueyi.com/web'
,
workApiSrc
:
'https://dev-work.yunqueyi.com'
,
workApiSrc
:
'https://dev-work.yunqueyi.com'
,
reportUrl
:
'https://dev-sc-report.yunqueyi.com/'
,
reportUrl
:
'https://dev-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
},
},
test
:
{
test
:
{
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
...
@@ -60,6 +62,7 @@ export const envConfig = {
...
@@ -60,6 +62,7 @@ export const envConfig = {
workApiUrl
:
'https://test1-work.yunqueyi.com/web'
,
workApiUrl
:
'https://test1-work.yunqueyi.com/web'
,
workApiSrc
:
'https://test1-work.yunqueyi.com'
,
workApiSrc
:
'https://test1-work.yunqueyi.com'
,
reportUrl
:
'https://test1-sc-report.yunqueyi.com/'
,
reportUrl
:
'https://test1-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
},
},
test2
:
{
test2
:
{
baseUrl
:
'https://test2-work.yunqueyi.com/sc/'
,
baseUrl
:
'https://test2-work.yunqueyi.com/sc/'
,
...
@@ -74,6 +77,7 @@ export const envConfig = {
...
@@ -74,6 +77,7 @@ export const envConfig = {
workApiUrl
:
'https://test2-work.yunqueyi.com/web'
,
workApiUrl
:
'https://test2-work.yunqueyi.com/web'
,
workApiSrc
:
'https://test2-work.yunqueyi.com'
,
workApiSrc
:
'https://test2-work.yunqueyi.com'
,
reportUrl
:
'https://test2-sc-report.yunqueyi.com/'
,
reportUrl
:
'https://test2-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
},
},
uat
:
{
uat
:
{
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
...
@@ -89,6 +93,7 @@ export const envConfig = {
...
@@ -89,6 +93,7 @@ export const envConfig = {
workApiUrl
:
'https://uat-work.yunqueyi.com/web'
,
workApiUrl
:
'https://uat-work.yunqueyi.com/web'
,
workApiSrc
:
'https://uat-work.yunqueyi.com'
,
workApiSrc
:
'https://uat-work.yunqueyi.com'
,
reportUrl
:
'https://uat-sc-report.yunqueyi.com/'
,
reportUrl
:
'https://uat-sc-report.yunqueyi.com/'
,
excelUrl
:
'https://test-file.yunqueyi.com/File/template/portal/'
,
},
},
pro
:
{
pro
:
{
baseUrl
:
'https://sc.yunqueyi.com/'
,
baseUrl
:
'https://sc.yunqueyi.com/'
,
...
@@ -104,5 +109,6 @@ export const envConfig = {
...
@@ -104,5 +109,6 @@ export const envConfig = {
workApiUrl
:
'https://work.yunqueyi.com/web'
,
workApiUrl
:
'https://work.yunqueyi.com/web'
,
workApiSrc
:
'https://work.yunqueyi.com'
,
workApiSrc
:
'https://work.yunqueyi.com'
,
reportUrl
:
'https://sc-report.yunqueyi.com/'
,
reportUrl
:
'https://sc-report.yunqueyi.com/'
,
excelUrl
:
'https://file.yunqueyi.com/File/template/portal/'
,
}
}
}
}
src/utils/filter.js
浏览文件 @
4afa62a5
...
@@ -236,5 +236,39 @@ const vueFilter = {
...
@@ -236,5 +236,39 @@ const vueFilter = {
let
time
=
value
+
'分钟'
;
let
time
=
value
+
'分钟'
;
return
time
;
return
time
;
},
},
shieldStatus
:
(
value
)
=>
{
if
(
value
==
0
)
{
return
'已屏蔽'
;
}
else
if
(
value
==
1
)
{
return
'未屏蔽'
;
}
},
shieldButton
:
(
value
)
=>
{
if
(
value
==
0
)
{
return
'取消屏蔽'
;
}
else
if
(
value
==
1
)
{
return
'屏蔽'
;
}
},
areaText
:
(
value
)
=>
{
let
text
=
'-'
;
if
(
value
.
regions
.
length
==
0
)
{
text
=
'-'
}
else
if
(
value
.
regions
.
length
==
1
)
{
text
=
value
.
regions
[
0
];
}
else
if
(
value
.
regions
.
length
>
1
){
let
len
=
value
.
regions
.
length
;
text
=
value
.
regions
[
0
]
+
'('
+
len
+
')'
;
}
return
text
;
},
areaList
:
(
value
)
=>
{
let
list
=
''
;
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
list
+=
value
[
i
]
+
'、'
;
}
list
=
list
.
substring
(
0
,
list
.
length
-
1
);
return
list
},
}
}
export
default
vueFilter
export
default
vueFilter
\ No newline at end of file
src/utils/index.js
浏览文件 @
4afa62a5
...
@@ -210,4 +210,9 @@ function getConfigByEnvType(urlType) {
...
@@ -210,4 +210,9 @@ function getConfigByEnvType(urlType) {
// 获取report服务器域名地址
// 获取report服务器域名地址
export
function
getReportUrl
(
url
)
{
export
function
getReportUrl
(
url
)
{
return
getConfigByEnvType
(
'reportUrl'
)
+
url
return
getConfigByEnvType
(
'reportUrl'
)
+
url
}
// 获取SC服务器域名地址
export
function
getExeclUrl
(
url
)
{
return
getConfigByEnvType
(
'excelUrl'
)
+
url
}
}
\ No newline at end of file
src/utils/operation.js
浏览文件 @
4afa62a5
...
@@ -285,6 +285,7 @@ export function isOverlap(startA, endA, startB, endB) {
...
@@ -285,6 +285,7 @@ export function isOverlap(startA, endA, startB, endB) {
}
}
export
function
setRegionOption
(
data
)
{
export
function
setRegionOption
(
data
)
{
let
option
=
[];
let
option
=
[];
option
[
0
]
=
{
id
:
0
,
value
:
0
,
label
:
"全部"
,
leaf
:
true
};
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
obj
=
data
[
i
];
let
obj
=
data
[
i
];
obj
.
label
=
data
[
i
].
provinceName
;
obj
.
label
=
data
[
i
].
provinceName
;
...
@@ -483,11 +484,20 @@ export function getSearchType(formData,checkAll) {
...
@@ -483,11 +484,20 @@ export function getSearchType(formData,checkAll) {
let
type
=
0
;
let
type
=
0
;
if
(
formData
.
region
.
length
==
1
||
formData
.
region
.
length
==
2
)
{
if
(
formData
.
region
.
length
==
1
||
formData
.
region
.
length
==
2
)
{
type
=
formData
.
region
.
length
;
type
=
formData
.
region
.
length
;
if
(
formData
.
region
.
length
==
1
&&
formData
.
region
[
0
]
==
0
)
{
type
=
6
;
}
}
else
if
(
formData
.
region
.
length
==
3
)
{
}
else
if
(
formData
.
region
.
length
==
3
)
{
if
(
formData
.
organization
.
length
==
0
||
checkAll
===
true
)
{
if
(
formData
.
organization
.
length
==
0
||
checkAll
===
true
)
{
type
=
3
;
type
=
3
;
}
else
{
}
else
{
type
=
4
type
=
4
;
}
}
else
if
(
formData
.
region
.
length
==
4
)
{
if
(
formData
.
organization
.
length
==
0
||
checkAll
===
true
)
{
type
=
5
;
}
else
{
type
=
4
;
}
}
}
}
return
type
;
return
type
;
...
@@ -578,4 +588,39 @@ export function getComponent(data) {
...
@@ -578,4 +588,39 @@ export function getComponent(data) {
list
.
push
(
data
[
i
].
value
);
list
.
push
(
data
[
i
].
value
);
}
}
return
list
;
return
list
;
}
export
function
getSimpleCheckedNodes
(
store
)
{
const
checkedNodes
=
[];
const
traverse
=
function
(
node
)
{
const
childNodes
=
node
.
root
?
node
.
root
.
childNodes
:
node
.
childNodes
;
childNodes
.
forEach
(
child
=>
{
if
(
child
.
checked
)
{
checkedNodes
.
push
(
child
.
data
);
}
if
(
child
.
indeterminate
)
{
traverse
(
child
);
}
});
};
traverse
(
store
)
return
checkedNodes
;
}
export
function
setSelectedKeys
(
checkedKeys
,
halfCheckedKeys
)
{
let
selected
=
[];
for
(
let
i
=
0
;
i
<
checkedKeys
.
length
;
i
++
)
{
let
obj
=
{
key
:
checkedKeys
[
i
].
id
,
type
:
1
,
};
selected
.
push
(
obj
);
}
for
(
let
j
=
0
;
j
<
halfCheckedKeys
.
length
;
j
++
)
{
let
obj
=
{
key
:
halfCheckedKeys
[
j
],
type
:
2
,
};
selected
.
push
(
obj
);
}
return
selected
;
}
}
\ No newline at end of file
src/views/education/add-manager.vue
浏览文件 @
4afa62a5
...
@@ -2024,19 +2024,25 @@ export default {
...
@@ -2024,19 +2024,25 @@ export default {
console.log(this.$refs.tree.getCheckedKeys());
console.log(this.$refs.tree.getCheckedKeys());
},
},
onChecked() {
onChecked() {
let cData = [],
// let cData = [],
oldData = (this.treeData.length && this.treeData.slice()) || [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
checkedKeys = this.$refs.tree.getCheckedKeys(),
// checkedKeys = this.$refs.tree.getCheckedKeys(),
halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
key => {
// key => {
return { type: 1, key: key };
// return { type: 1, key: key };
}
// }
),
// ),
savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
return { type: 2, key: key };
// return { type: 2, key: key };
}),
// }),
allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
//重构归并树
let checkedTree = operationData.getSimpleCheckedNodes(this.$refs.tree.store);
let halfCheckedTree = this.$refs.tree.getHalfCheckedKeys()
let allSelectedKeys = operationData.setSelectedKeys(checkedTree,halfCheckedTree);
//重构内容
this.allSelectedKeys = allSelectedKeys;
this.allSelectedKeys = allSelectedKeys;
this.initCheckList(allSelectedKeys);
this.initCheckList(allSelectedKeys);
...
@@ -2046,20 +2052,27 @@ export default {
...
@@ -2046,20 +2052,27 @@ export default {
this.updatedTree = true;
this.updatedTree = true;
},
},
getTreeCheck() {
getTreeCheck() {
let cData = [],
// let cData = [],
oldData = (this.treeData.length && this.treeData.slice()) || [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
checkedKeys = this.$refs.tree.getCheckedKeys(),
// checkedKeys = this.$refs.tree.getCheckedKeys(),
halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
key => {
// key => {
return { type: 1, key: key };
// return { type: 1, key: key };
}
// }
),
// ),
savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
return { type: 2, key: key };
// return { type: 2, key: key };
}),
// }),
allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// console.log('allSelectedKeys值:',allSelectedKeys)
// // console.log('allSelectedKeys值:',allSelectedKeys)
//重构归并树
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;
return allSelectedKeys;
},
},
// 递归删除列表中所有子节点
// 递归删除列表中所有子节点
...
@@ -2427,6 +2440,7 @@ export default {
...
@@ -2427,6 +2440,7 @@ export default {
//设定的行政范围内容
//设定的行政范围内容
getScope(type) {
getScope(type) {
let scope = "";
let scope = "";
let noChangeTree = this.getTreeCheck();
if (type == "
administrative
") {
if (type == "
administrative
") {
for (let i = 0; i < this.tagsRegion.length; i++) {
for (let i = 0; i < this.tagsRegion.length; i++) {
scope += this.tagsRegion[i].key;
scope += this.tagsRegion[i].key;
...
@@ -2445,7 +2459,7 @@ export default {
...
@@ -2445,7 +2459,7 @@ export default {
}
}
}
}
} else {
} else {
let noChangeTree = this.getTreeCheck();
//
let noChangeTree = this.getTreeCheck();
console.log('noChangeTree值',noChangeTree);
console.log('noChangeTree值',noChangeTree);
if(noChangeTree.length > 0) {
if(noChangeTree.length > 0) {
for (let i = 0; i < noChangeTree.length; i++) {
for (let i = 0; i < noChangeTree.length; i++) {
...
@@ -2456,7 +2470,7 @@ export default {
...
@@ -2456,7 +2470,7 @@ export default {
}
}
} else {
} else {
//选全国项目
//选全国项目
if(this.tagsRegion[0].key == '000') {
if(this.tagsRegion
.length > 0 && this.tagsRegion
[0].key == '000') {
scope = '000:1';
scope = '000:1';
console.log(this.tagsRegion,'scope',scope);
console.log(this.tagsRegion,'scope',scope);
}
}
...
...
src/views/education/item-shield.vue
0 → 100644
浏览文件 @
4afa62a5
<
template
>
<div
class=
"item-shield"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<el-radio-group
v-model=
"shieldType"
@
change=
"changeType"
>
<el-radio-button
label=
"1"
>
屏蔽机构
</el-radio-button>
<el-radio-button
label=
"2"
>
屏蔽人员
</el-radio-button>
</el-radio-group>
<el-button
class=
"complete"
type=
"primary"
size=
"small"
@
click=
"complete"
>
完成
</el-button>
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;"
>
<el-form
:model=
"formInline"
ref=
"formInline"
label-width=
"75px"
class=
"form-inline"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属机构:"
>
<el-input
size=
"small"
v-model=
"formInline.organizationName"
placeholder=
"请输入机构名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"姓名:"
>
<el-input
size=
"small"
v-model=
"formInline.userName"
placeholder=
"请输入人员名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"状态:"
>
<el-select
size=
"small"
v-model=
"formInline.status"
placeholder=
"请选择状态"
>
<el-option
v-for=
"(item, index) in statusList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
style=
"padding:0;text-align:right;padding-right:10px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"searchList()"
>
搜索
</el-button>
</el-col>
</el-form>
</el-row>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"userName"
label=
"人员名称"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"hospitalName"
label=
"所属医院"
align=
"center"
></el-table-column>
<el-table-column
prop=
"departmentName"
label=
"所属科室"
align=
"center"
min-width=
"100"
></el-table-column>
<el-table-column
prop=
"province"
label=
"所属省份"
align=
"center"
></el-table-column>
<el-table-column
prop=
"city"
label=
"所属城市"
align=
"center"
></el-table-column>
<el-table-column
prop=
"county"
label=
"所属区县"
align=
"center"
></el-table-column>
<el-table-column
fixed=
"right"
label=
"状态"
width=
"200"
align=
"center"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
status
|
shieldStatus
}}
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"200"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"changeStatus(scope.row)"
>
{{
scope
.
row
.
status
|
shieldButton
}}
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"formInline.pageNo"
:page-sizes=
"[10, 20, 30, 100]"
:page-size=
"formInline.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"totalRows"
></el-pagination>
</div>
</div>
</div>
</template>
<
script
>
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
*
as
commonUtil
from
"../../utils/utils"
;
let
vm
=
null
;
export
default
{
components
:
{
BreadCrumb
},
data
()
{
return
{
curmbFirst
:
"教培项目"
,
curmbSecond
:
"屏蔽"
,
shieldType
:
1
,
formInline
:
{
organizationName
:
""
,
userName
:
""
,
status
:
""
,
pageNo
:
1
,
pageSize
:
10
},
statusList
:
[
{
label
:
"屏蔽"
,
value
:
0
},
{
label
:
"取消屏蔽"
,
value
:
1
}
],
tableData
:
[],
totalRows
:
0
,
};
},
computed
:
{
...
mapGetters
([
"_token"
])
},
created
()
{
vm
=
this
;
this
.
search
();
window
.
onbeforeunload
=
function
(
e
)
{
let
pathname
=
location
.
href
.
split
(
"/"
);
pathname
=
pathname
[
pathname
.
length
-
1
];
// console.log(pathname);
if
(
pathname
==
"item-shield"
)
{
e
=
e
||
window
.
event
;
if
(
e
)
{
e
.
returnValue
=
"关闭提示"
;
}
return
"关闭提示"
;
}
};
},
// 挂载到Dom完成时
mounted
:
function
()
{
window
.
onbeforeunload
=
function
(
e
)
{
let
pathname
=
location
.
href
.
split
(
'/'
);
pathname
=
pathname
[
pathname
.
length
-
1
];
console
.
log
(
pathname
);
if
(
pathname
==
'item-shield'
)
{
e
=
e
||
window
.
event
;
if
(
e
)
{
e
.
returnValue
=
"数据不会保存"
;
}
return
"数据不会保存"
;
}
};
commonUtil
.
resizeHeight
();
},
beforeRouteLeave
(
to
,
from
,
next
)
{
const
answer
=
window
.
confirm
(
"Do you really want to leave? you have unsaved changes!"
);
if
(
answer
)
{
next
();
}
else
{
next
(
false
);
}
},
destroyed
()
{
},
methods
:
{
searchList
()
{
this
.
formInline
.
pageNo
=
1
;
this
.
search
();
},
search
()
{
vm
.
tableData
=
[
{
userName
:
"云小鹊"
,
hospitalName
:
"测试医院"
,
departmentName
:
"呼吸科"
,
province
:
"上海市"
,
city
:
"上海市"
,
county
:
"浦东新区"
,
status
:
0
}
];
},
// 屏蔽/取消屏蔽
changeStatus
()
{
vm
.
tableData
[
0
].
status
=
1
;
},
//改变
changeType
(
value
)
{
console
.
log
(
value
);
},
complete
()
{
console
.
log
(
'完成'
);
},
handleSizeChange
(
val
)
{
console
.
log
(
`每页
${
val
}
条`
);
this
.
formInline
.
pageSize
=
val
;
},
handleCurrentChange
(
val
)
{
console
.
log
(
`当前页:
${
val
}
`
);
this
.
formInline
.
pageNo
=
val
;
this
.
search
();
},
}
};
</
script
>
<
style
lang=
"scss"
>
.item-shield
{
.component-content
{
padding
:
10px
;
background
:
#fff
;
.complete
{
float
:
right
;
}
}
}
</
style
>
\ No newline at end of file
src/views/learning/data-alignment.vue
浏览文件 @
4afa62a5
...
@@ -54,6 +54,9 @@
...
@@ -54,6 +54,9 @@
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"姓名:"
>
<el-input
v-model=
"formData.doctorName"
placeholder=
"请输入人员名称"
></el-input>
</el-form-item>
</el-form>
</el-form>
<div
class=
"form-button"
>
<div
class=
"form-button"
>
<el-button
@
click=
"searchData()"
type=
"primary"
>
查询
</el-button>
<el-button
@
click=
"searchData()"
type=
"primary"
>
查询
</el-button>
...
@@ -137,6 +140,7 @@ export default {
...
@@ -137,6 +140,7 @@ export default {
formData
:
{
formData
:
{
achievementStatus
:
""
,
achievementStatus
:
""
,
status
:
1
,
status
:
1
,
doctorName
:
''
,
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
20
,
pageSize
:
20
,
},
},
...
@@ -261,6 +265,7 @@ export default {
...
@@ -261,6 +265,7 @@ export default {
status
:
vm
.
formData
.
status
,
status
:
vm
.
formData
.
status
,
ids
:
operationData
.
getIds
(
vm
.
formInline
,
vm
.
organizationList
,
checkAll
),
ids
:
operationData
.
getIds
(
vm
.
formInline
,
vm
.
organizationList
,
checkAll
),
type
:
operationData
.
getSearchType
(
vm
.
formInline
,
checkAll
),
type
:
operationData
.
getSearchType
(
vm
.
formInline
,
checkAll
),
doctorName
:
vm
.
formData
.
doctorName
,
pageNo
:
vm
.
formData
.
pageNo
,
pageNo
:
vm
.
formData
.
pageNo
,
pageSize
:
vm
.
formData
.
pageSize
,
pageSize
:
vm
.
formData
.
pageSize
,
};
};
...
@@ -317,6 +322,7 @@ export default {
...
@@ -317,6 +322,7 @@ export default {
{
{
achievementStatus
:
""
,
achievementStatus
:
""
,
status
:
1
,
status
:
1
,
doctorName
:
''
,
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
20
,
pageSize
:
20
,
}
}
...
...
src/views/learning/item-list.vue
浏览文件 @
4afa62a5
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
@
change=
"changeOrganization"
@
change=
"changeOrganization"
multiple
multiple
collapse-tags
collapse-tags
:disabled=
"formInline.region.length
!==
3"
:disabled=
"formInline.region.length
<
3
"
style=
"width:330px"
style=
"width:330px"
>
>
<el-option
<el-option
...
@@ -182,6 +182,15 @@ export default {
...
@@ -182,6 +182,15 @@ export default {
console
.
log
(
"newData"
,
newData
);
console
.
log
(
"newData"
,
newData
);
resolve
(
newData
);
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"
);
console
.
log
(
"newData"
,
newData
);
resolve
(
newData
);
});
}
}
}
}
},
},
...
@@ -297,6 +306,10 @@ export default {
...
@@ -297,6 +306,10 @@ export default {
}
else
if
(
type
==
"counties"
)
{
}
else
if
(
type
==
"counties"
)
{
obj
.
label
=
data
[
i
].
countyName
;
obj
.
label
=
data
[
i
].
countyName
;
obj
.
value
=
data
[
i
].
countyId
;
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
;
obj
.
leaf
=
true
;
}
}
option
.
push
(
obj
);
option
.
push
(
obj
);
...
...
src/views/learning/item-part-in.vue
浏览文件 @
4afa62a5
...
@@ -154,7 +154,7 @@ export default {
...
@@ -154,7 +154,7 @@ export default {
});
});
},
},
getTableData
(
data
)
{
getTableData
(
data
)
{
if
(
vm
.
formInline
.
region
.
length
=
=
3
&&
vm
.
organizationNum
==
1
)
{
if
(
vm
.
formInline
.
region
.
length
>
=
3
&&
vm
.
organizationNum
==
1
)
{
vm
.
showTable
=
true
;
vm
.
showTable
=
true
;
vm
.
finishDetail
=
data
.
hospitalPeopleList
;
vm
.
finishDetail
=
data
.
hospitalPeopleList
;
}
else
{
}
else
{
...
...
src/views/system/item-role.vue
浏览文件 @
4afa62a5
...
@@ -2,15 +2,42 @@
...
@@ -2,15 +2,42 @@
<div
class=
"item-role-wrap"
>
<div
class=
"item-role-wrap"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:curmbThird=
"curmbThird"
></bread-crumb>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:curmbThird=
"curmbThird"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
查询条件
</div>
<div
class=
"header-title"
>
查询条件
<el-upload
v-if=
"activeUser == 'L1'"
class=
"upload-excel"
action=
"#"
accept=
".xlsx"
multiple
:limit=
"1"
:before-upload=
"beforeUpload"
>
<el-button
size=
"small"
>
导入角色权限
</el-button>
<el-button
class=
"down-button"
slot=
"tip"
size=
"small"
@
click=
"download('model')"
>
下载导入模板
</el-button>
</el-upload>
</div>
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;"
>
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;"
>
<el-form
:model=
"formInline"
ref=
"formInline"
label-width=
"75px"
class=
"form-inline"
>
<el-form
:model=
"formInline"
ref=
"formInline"
label-width=
"75px"
class=
"form-inline"
>
<el-col
:span=
"5"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属机构:"
>
<!--
<el-select
size=
"small"
v-model=
"formInline.organizationName"
placeholder=
"请选择所属机构"
>
<el-option
v-for=
"(item, index) in organizationList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option
</el-select>
-->
<el-input
size=
"small"
v-model=
"formInline.organizationName"
placeholder=
"请输入机构名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"姓名:"
>
<el-form-item
label=
"姓名:"
>
<el-input
size=
"small"
v-model=
"formInline.userName"
placeholder=
"请输入名称"
></el-input>
<el-input
size=
"small"
v-model=
"formInline.userName"
placeholder=
"请输入
人员
名称"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
5
"
>
<el-col
:span=
"
6
"
>
<el-form-item
label=
"角色:"
>
<el-form-item
label=
"角色:"
>
<el-select
size=
"small"
v-model=
"formInline.projeceRole"
placeholder=
"请选择角色"
>
<el-select
size=
"small"
v-model=
"formInline.projeceRole"
placeholder=
"请选择角色"
>
<el-option
<el-option
...
@@ -22,19 +49,8 @@
...
@@ -22,19 +49,8 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"所属机构:"
>
<!--
<el-col
:span=
"5"
>
<el-select
size=
"small"
v-model=
"formInline.organizationName"
placeholder=
"请选择所属机构"
>
<el-option
v-for=
"(item, index) in organizationList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"所属科室:"
>
<el-form-item
label=
"所属科室:"
>
<el-select
size=
"small"
v-model=
"formInline.departmentsName"
placeholder=
"请选择所属科室"
>
<el-select
size=
"small"
v-model=
"formInline.departmentsName"
placeholder=
"请选择所属科室"
>
<el-option
<el-option
...
@@ -45,8 +61,8 @@
...
@@ -45,8 +61,8 @@
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
-->
<el-col
:span=
"
4
"
style=
"padding:0;text-align:right;padding-right:10px;"
>
<el-col
:span=
"
6
"
style=
"padding:0;text-align:right;padding-right:10px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"searchList()"
>
查询
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"searchList()"
>
查询
</el-button>
<el-button
<el-button
type=
"default"
type=
"default"
...
@@ -58,40 +74,80 @@
...
@@ -58,40 +74,80 @@
</el-form>
</el-form>
</el-row>
</el-row>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
>
<
el-table-column
prop=
"userId"
label=
"用户ID"
align=
"center"
></el-table-column
>
<
!--
<el-table-column
prop=
"userId"
label=
"用户ID"
align=
"center"
></el-table-column>
--
>
<el-table-column
prop=
"userName"
label=
"姓名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"userName"
label=
"姓名"
align=
"center"
></el-table-column>
<el-table-column
prop=
"countyName"
label=
"所属区县"
align=
"center"
></el-table-column>
<el-table-column
prop=
"organizationName"
label=
"所属机构"
align=
"center"
></el-table-column>
<el-table-column
prop=
"departmentsName"
label=
"科室"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projeceRole"
label=
"角色"
align=
"center"
>
<el-table-column
prop=
"projeceRole"
label=
"角色"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
projeceRole
|
projeceRoleType
}}
</span>
<span>
{{
scope
.
row
.
projeceRole
|
projeceRoleType
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"organizationName"
label=
"所属机构"
align=
"center"
></el-table-column>
<el-table-column
prop=
"area"
label=
"负责区域"
align=
"center"
>
<el-table-column
prop=
"departmentsName"
label=
"科室"
align=
"center"
></el-table-column>
<
template
slot-scope=
"scope"
>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"300"
align=
"center"
>
<span
v-if=
"scope.row.projeceRole == 'L2'"
>
全部地区
</span>
<span
v-if=
"scope.row.projeceRole == 'L0'"
>
-
</span>
<span
v-if=
"scope.row.projeceRole == 'L3' && scope.row.regions.length == 0"
>
-
</span>
<span
v-if=
"scope.row.projeceRole == 'L3' && scope.row.regions.length == 1"
>
{{
scope
.
row
.
regions
[
0
]
}}
</span>
<el-popover
v-if=
"scope.row.projeceRole == 'L3' && scope.row.regions.length > 1"
placement=
"bottom"
title
width=
"200"
trigger=
"hover"
class=
"more-text"
>
<p
class=
"more-text"
>
{{
scope
.
row
.
regions
|
areaList
}}
</p>
<p
slot=
"reference"
>
{{
scope
.
row
|
areaText
}}
</p>
</el-popover>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"350"
align=
"left"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
type=
"primary"
class=
"button-text"
type=
"text"
size=
"small"
size=
"small"
v-show=
"showButton(scope.row,'L2')"
v-show=
"showButton(scope.row,'L2')"
@
click=
"openDialog(scope.row,'L2')"
@
click=
"openDialog(scope.row,'L2')"
>
升级项目负责人
</el-button>
>
升级项目负责人
</el-button>
<el-button
<el-button
type=
"primary"
class=
"button-text"
type=
"text"
size=
"small"
size=
"small"
v-show=
"showButton(scope.row,'L3')"
v-show=
"showButton(scope.row,'L3')"
@
click=
"openDialog(scope.row,'L3')"
@
click=
"openDialog(scope.row,'L3')"
>
升级次级负责人
</el-button>
>
升级次级负责人
</el-button>
<el-button
<el-button
type=
"primary"
class=
"button-text"
type=
"text"
size=
"small"
v-show=
"showButton(scope.row,'L3_2')"
@
click=
"openDialog(scope.row,'L3_2')"
>
降为次级负责人
</el-button>
<el-button
class=
"button-text"
type=
"text"
size=
"small"
size=
"small"
v-show=
"showButton(scope.row,'L0')"
v-show=
"showButton(scope.row,'L0')"
@
click=
"openDialog(scope.row,'L0')"
@
click=
"openDialog(scope.row,'L0')"
>
降为普通用户
</el-button>
>
降为普通用户
</el-button>
<el-button
class=
"button-text"
type=
"text"
size=
"small"
v-show=
"showAppend(scope.row.projeceRole)"
@
click=
"addArea(scope.row)"
:disabled=
"activeUser !== 'L1'"
>
追加区域权限
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<div
slot=
"empty"
>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
>
<img
src=
"../../assets/image/no-content1.png"
/
>
<p>
没有查询到相关结果
</p>
<p>
没有查询到相关结果
</p>
</div>
</div>
</div>
</div>
...
@@ -114,15 +170,16 @@
...
@@ -114,15 +170,16 @@
<span class="user-name">"{{ dialog.name }}"</span>
<span class="user-name">"{{ dialog.name }}"</span>
{{ dialog.option }}吗?"
{{ dialog.option }}吗?"
</p>
</p>
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p>
-->
<p v-else >该用户为此机构仅有的次级负责人,确认需要降级吗?</p>-->
<p
v-if=
"numL3 <= 1 && scopeRow.projeceRole == 'L3'"
class=
"dialog-p"
>
<p
该用户为此机构仅有的次级负责人,确认需要降级吗?
v-if=
"numL3 <= 1 && scopeRow.projeceRole == 'L3'"
</p>
class=
"dialog-p"
>
该用户为此机构仅有的次级负责人,确认需要降级吗?
</p>
<p
v-else
>
<p
v-else
>
确认将{{ dialog.role }}
确认将{{ dialog.role }}
<span
class=
"user-name"
>
"{{ dialog.name }}"
</span>
<span
class=
"user-name"
>
"{{ dialog.name }}"
</span>
{{ dialog.option }}吗?
"
{{ dialog.option }}吗?
</p>
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -132,14 +189,104 @@
...
@@ -132,14 +189,104 @@
</el-dialog>
</el-dialog>
<el-dialog
title
:visible
.
sync=
"dialogFull"
width=
"30%"
center
>
<el-dialog
title
:visible
.
sync=
"dialogFull"
width=
"30%"
center
>
<p
class=
"dialog-p"
>
<p
class=
"dialog-p"
>
无法操作,项目负责人已满
添加数量已达上限,不可继续添加
<
span
class=
"user-name"
>
5人
</span
>
<
!-- <span class="user-name">5人</span> --
>
</p>
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"default"
size=
"small"
@
click=
"dialogFull = false"
>
取消
</el-button>
<el-button
type=
"default"
size=
"small"
@
click=
"dialogFull = false"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"dialogFull = false"
>
确定
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"dialogFull = false"
>
确定
</el-button>
</span>
</span>
</el-dialog>
</el-dialog>
<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-button
class=
"fail-close"
size=
"small"
@
click=
"dialogFail = false"
>
取消
</el-button>
<el-upload
class=
"upload-button"
action=
"#"
accept=
".xlsx"
multiple
:limit=
"1"
:before-upload=
"beforeUpload"
>
<el-button
stype=
"position: absolute;top: -14px;"
type=
"primary"
size=
"small"
@
click=
"updateAgain()"
>
重新导入
</el-button>
</el-upload>
</span>
</el-dialog>
<el-dialog
title=
"追加区域权限"
:visible
.
sync=
"dialogArea"
width=
"70%"
class=
"dialog-area"
center
>
<el-col
class=
"area-choose"
:span=
"15"
>
<el-tree
default-expand-all
:data=
"treeData"
show-checkbox
node-key=
"id"
ref=
"tree"
highlight-current
:props=
"defaultProps"
@
check=
"onChecked"
>
<span
class=
"custom-tree-node"
slot-scope=
"{ node, data }"
>
<span>
{{ node.label }}
</span>
<span>
<el-button
type=
"text"
icon=
"el-icon-caret-bottom"
size=
"small"
@
click=
"() => append(data,node)"
></el-button>
</span>
</span>
</el-tree>
</el-col>
<el-col
class=
"area-choose"
:span=
"8"
>
<p
class=
"area-p"
>
<i
class=
"el-icon-bottom"
></i>
追加下列区域的学情报告查看权限 已选择({{ tagsRegion.length }})
</p>
<el-tag
v-for=
"tag in tagsRegion"
:key=
"tag.name"
closable
:type=
"tag.type"
@
close=
"handleCloseTree(tag)"
>
{{tag.name}}
</el-tag>
</el-col>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"dialogArea = false"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"updateAttachRegion()"
>
确认
</el-button>
</span>
</el-dialog>
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -147,7 +294,10 @@
...
@@ -147,7 +294,10 @@
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
{
create
}
from
"domain"
;
import
{
create
}
from
"domain"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
*
as
commonUtil
from
'../../utils/utils'
import
*
as
commonUtil
from
"../../utils/utils"
;
import
{
getExeclUrl
}
from
"@/utils/index"
;
import
{
uploadExcel
}
from
"@/utils/education/educationApi"
;
import
*
as
operationData
from
"../../utils/operation"
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -182,9 +332,13 @@ export default {
...
@@ -182,9 +332,13 @@ export default {
departmentsList
:
[],
departmentsList
:
[],
organizationList
:
[],
organizationList
:
[],
roleList
:
[
roleList
:
[
// {
// label: "内部管理员",
// value: "L1"
// },
{
{
label
:
"
内部管理员
"
,
label
:
"
全部
"
,
value
:
"
L1
"
value
:
""
},
},
{
{
label
:
"项目负责人"
,
label
:
"项目负责人"
,
...
@@ -210,7 +364,28 @@ export default {
...
@@ -210,7 +364,28 @@ export default {
},
},
dialogFull
:
false
,
dialogFull
:
false
,
scopeRow
:
{},
scopeRow
:
{},
activeUser
:
''
,
activeUser
:
""
,
updateNum
:
0
,
dialogSuccess
:
false
,
failType
:
2
,
failNum
:
0
,
failExcelUrl
:
""
,
dialogFail
:
false
,
defaultProps
:
{
children
:
"children"
,
label
:
"label"
,
isLeaf
:
"isLeaf"
},
treeData
:
[],
dialogArea
:
false
,
tagsRegion
:
[],
doctorId
:
""
,
allSelectedKeys
:
[],
attachRegionId
:
""
,
creator
:
false
,
hospitalMasterAdmin
:
false
,
};
};
},
},
created
()
{
created
()
{
...
@@ -222,6 +397,87 @@ export default {
...
@@ -222,6 +397,87 @@ export default {
commonUtil
.
resizeHeight
();
commonUtil
.
resizeHeight
();
},
},
methods
:
{
methods
:
{
updateAgain
()
{
vm
.
dialogFail
=
false
;
},
download
(
type
)
{
let
downloadUrl
=
""
;
if
(
type
==
"model"
)
{
downloadUrl
=
getExeclUrl
(
"%E6%95%99%E5%9F%B9%E9%A1%B9%E7%9B%AE%E8%A7%92%E8%89%B2%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx"
);
}
else
if
(
type
==
"fail"
)
{
downloadUrl
=
vm
.
failExcelUrl
;
}
console
.
log
(
"下载"
,
type
,
downloadUrl
);
setTimeout
(()
=>
{
window
.
open
(
downloadUrl
);
},
500
);
},
beforeUpload
(
file
)
{
vm
.
dialogFail
=
false
;
console
.
log
(
file
);
let
arr
=
file
.
type
.
split
(
"/"
);
let
ext
=
"."
+
arr
[
1
];
let
name
=
file
.
name
;
let
reader
=
new
FileReader
();
reader
.
onload
=
function
(
e
)
{
let
fileJson
=
{
fileName
:
file
.
name
,
file
:
e
.
target
.
result
.
substr
(
e
.
target
.
result
.
indexOf
(
"base64,"
)
+
7
),
ext
:
ext
};
let
fileArray
=
[
{
type
:
""
,
base64
:
fileJson
}
];
let
req
=
{
fileArray
:
fileArray
};
let
projectId
=
vm
.
formInline
.
portalProjectId
;
console
.
log
(
"req"
,
req
);
let
reqStr
=
JSON
.
stringify
(
req
);
console
.
log
(
"reqStr"
,
reqStr
);
openLoading
(
vm
);
uploadExcel
(
reqStr
,
projectId
).
then
(
res
=>
{
setTimeout
(
function
()
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
data
.
success
==
true
)
{
//导入成功
vm
.
dialogSuccess
=
true
;
vm
.
updateNum
=
res
.
data
.
total
;
vm
.
queryRoleList
();
}
else
{
if
(
res
.
data
.
outCount
==
true
)
{
//导入数据超5000
vm
.
failType
=
1
;
vm
.
dialogFail
=
true
;
vm
.
failNum
=
res
.
data
.
total
;
vm
.
failExcelUrl
=
res
.
data
.
url
;
}
else
{
//导入失败
// setTimeout(function() {
vm
.
failType
=
2
;
vm
.
dialogFail
=
true
;
vm
.
failNum
=
res
.
data
.
total
;
vm
.
failExcelUrl
=
res
.
data
.
url
;
// }, 800);
}
}
}
else
{
//接口失败
vm
.
$message
.
error
(
res
.
message
);
}
console
.
log
(
res
);
},
1000
);
});
};
reader
.
readAsDataURL
(
file
);
},
searchList
()
{
searchList
()
{
this
.
formInline
.
pageNo
=
1
;
this
.
formInline
.
pageNo
=
1
;
this
.
queryRoleList
();
this
.
queryRoleList
();
...
@@ -244,7 +500,8 @@ export default {
...
@@ -244,7 +500,8 @@ export default {
vm
.
tableData
=
res
.
data
.
projectRoleInfoModels
;
vm
.
tableData
=
res
.
data
.
projectRoleInfoModels
;
vm
.
totalRows
=
res
.
data
.
total
;
vm
.
totalRows
=
res
.
data
.
total
;
vm
.
activeUser
=
res
.
data
.
activeUser
;
vm
.
activeUser
=
res
.
data
.
activeUser
;
console
.
log
(
'activeUser'
,
vm
.
activeUser
);
vm
.
creator
=
res
.
data
.
creator
;
vm
.
hospitalMasterAdmin
=
res
.
data
.
hospitalMasterAdmin
;
//this.roleList = setRoleList(res.data.roleList);
//this.roleList = setRoleList(res.data.roleList);
this
.
organizationList
=
res
.
data
.
organizationList
;
this
.
organizationList
=
res
.
data
.
organizationList
;
this
.
departmentsList
=
res
.
data
.
departmentsList
;
this
.
departmentsList
=
res
.
data
.
departmentsList
;
...
@@ -263,15 +520,17 @@ export default {
...
@@ -263,15 +520,17 @@ export default {
nowL
:
this
.
scopeRow
.
projeceRole
nowL
:
this
.
scopeRow
.
projeceRole
};
};
vm
.
GET
(
"portal/portalProjectOrRole/roleLevelUpdate"
,
req
).
then
(
res
=>
{
vm
.
GET
(
"portal/portalProjectOrRole/roleLevelUpdate"
,
req
).
then
(
res
=>
{
this
.
dialog
.
show
=
false
;
vm
.
dialog
.
show
=
false
;
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
res
);
console
.
log
(
res
);
this
.
queryRoleList
();
vm
.
queryRoleList
();
vm
.
$message
({
message
:
"设置成功!"
,
type
:
"success"
});
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
}
vm
.
$message
({
type
:
'info'
,
message
:
res
.
message
,
})
});
});
},
},
handleSizeChange
(
val
)
{
handleSizeChange
(
val
)
{
...
@@ -302,10 +561,10 @@ export default {
...
@@ -302,10 +561,10 @@ export default {
//按钮展示情况
//按钮展示情况
showButton
(
row
,
projeceRole
)
{
showButton
(
row
,
projeceRole
)
{
let
flag
=
false
;
let
flag
=
false
;
if
(
vm
.
activeUser
==
"L1"
)
{
if
(
vm
.
activeUser
==
"L1"
)
{
//当前内部管理员
//当前内部管理员
if
(
row
.
projeceRole
==
"L2"
)
{
if
(
row
.
projeceRole
==
"L2"
)
{
if
(
projeceRole
==
"L0"
)
{
if
(
projeceRole
==
"L0"
||
projeceRole
==
"L3_2"
)
{
flag
=
true
;
flag
=
true
;
}
}
}
else
if
(
row
.
projeceRole
==
"L3"
)
{
}
else
if
(
row
.
projeceRole
==
"L3"
)
{
...
@@ -319,25 +578,62 @@ export default {
...
@@ -319,25 +578,62 @@ export default {
}
}
}
else
if
(
vm
.
activeUser
==
"L2"
)
{
}
else
if
(
vm
.
activeUser
==
"L2"
)
{
//当前项目负责人
//当前项目负责人
if
(
row
.
projeceRole
==
"L3"
)
{
//新规则
if
(
projeceRole
==
"L2"
||
projeceRole
==
"L0"
)
{
if
(
vm
.
creator
==
true
)
{
flag
=
true
;
//项目负责人是:项目创建者
if
(
row
.
projeceRole
==
"L3"
)
{
if
(
projeceRole
==
"L2"
||
projeceRole
==
"L0"
)
{
flag
=
true
;
}
}
else
if
(
row
.
projeceRole
==
"L0"
)
{
if
(
projeceRole
==
"L2"
||
projeceRole
==
"L3"
)
{
flag
=
true
;
}
}
else
if
(
row
.
projeceRole
==
"L2"
)
{
//创建项目项目管理员可以修改其他项目管理员
if
(
projeceRole
==
"L0"
||
projeceRole
==
"L3_2"
)
{
flag
=
true
;
}
}
}
}
else
if
(
row
.
projeceRole
==
"L0"
)
{
}
else
{
if
(
projeceRole
==
"L2"
||
projeceRole
==
"L3"
)
{
//不是项目创建者
flag
=
true
;
if
(
row
.
projeceRole
==
"L3"
)
{
if
(
projeceRole
==
"L0"
)
{
flag
=
true
;
}
}
else
if
(
row
.
projeceRole
==
"L0"
)
{
if
(
projeceRole
==
"L3"
)
{
flag
=
true
;
}
}
}
}
}
}
else
if
(
vm
.
activeUser
==
"L3"
)
{
}
else
if
(
vm
.
activeUser
==
"L3"
)
{
//当前次级负责人
//当前次级负责人
if
(
row
.
projeceRole
==
"L0"
)
{
//新规则
if
(
projeceRole
==
"L3"
)
{
if
(
vm
.
hospitalMasterAdmin
==
true
)
{
flag
=
true
;
//次级负责人是:构主管理员
if
(
row
.
projeceRole
==
"L3"
)
{
if
(
projeceRole
==
"L0"
)
{
flag
=
true
;
}
}
else
if
(
row
.
projeceRole
==
"L0"
)
{
if
(
projeceRole
==
"L3"
)
{
flag
=
true
;
}
}
}
}
}
}
}
return
flag
;
return
flag
;
},
},
showAppend
(
projeceRole
)
{
let
flag
=
false
;
if
(
vm
.
activeUser
==
"L1"
||
vm
.
activeUser
==
"L1"
)
{
if
(
projeceRole
==
"L3"
)
{
flag
=
true
;
}
}
return
flag
;
},
//打开弹出框
//打开弹出框
openDialog
(
row
,
projeceRole
)
{
openDialog
(
row
,
projeceRole
)
{
console
.
log
(
row
);
console
.
log
(
row
);
...
@@ -349,10 +645,15 @@ export default {
...
@@ -349,10 +645,15 @@ export default {
this
.
dialog
.
name
=
row
.
userName
;
this
.
dialog
.
name
=
row
.
userName
;
this
.
scopeRow
=
row
;
this
.
scopeRow
=
row
;
this
.
scopeRow
.
updateL
=
projeceRole
;
this
.
scopeRow
.
updateL
=
projeceRole
;
if
(
projeceRole
==
"L3_2"
)
{
this
.
scopeRow
.
updateL
=
"L3"
;
}
if
(
row
.
projeceRole
==
"L2"
)
{
if
(
row
.
projeceRole
==
"L2"
)
{
this
.
dialog
.
role
=
"项目负责人"
;
this
.
dialog
.
role
=
"项目负责人"
;
if
(
projeceRole
==
"L0"
)
{
if
(
projeceRole
==
"L0"
)
{
this
.
dialog
.
option
=
"降级为普通用户"
;
this
.
dialog
.
option
=
"降级为普通用户"
;
}
else
if
(
projeceRole
==
"L3_2"
)
{
this
.
dialog
.
option
=
"降级为次级负责人"
;
}
}
}
else
if
(
row
.
projeceRole
==
"L3"
)
{
}
else
if
(
row
.
projeceRole
==
"L3"
)
{
this
.
dialog
.
role
=
"次级负责人"
;
this
.
dialog
.
role
=
"次级负责人"
;
...
@@ -369,6 +670,278 @@ export default {
...
@@ -369,6 +670,278 @@ export default {
this
.
dialog
.
option
=
"升级为次级负责人"
;
this
.
dialog
.
option
=
"升级为次级负责人"
;
}
}
}
}
},
addArea
(
row
)
{
vm
.
dialogArea
=
true
;
vm
.
treeData
=
[];
vm
.
tagsRegion
=
[];
vm
.
getAdministrative
(
row
);
},
getAdministrative
(
row
)
{
vm
.
doctorId
=
row
.
userId
;
// let req = {
// projectId: vm.formInline.portalProjectId
// };
let
req
=
{
projectId
:
vm
.
formInline
.
portalProjectId
,
doctorId
:
row
.
userId
};
openLoading
(
vm
);
vm
.
GET
(
"portal/portalProjectOrRole/getAttachRegion"
,
req
).
then
(
res
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
let
administrativeAll
=
res
.
data
.
administrativeAll
;
let
administrative
=
res
.
data
.
administrative
;
this
.
treeData
=
[];
this
.
treeData
[
0
]
=
administrativeAll
;
this
.
setTreeData
(
administrative
);
vm
.
attachRegionId
=
res
.
data
.
attachRegionId
;
}
});
},
//初始化范围树
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
);
}
}
}
},
onChecked
()
{
// let cData = [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
// checkedKeys = this.$refs.tree.getCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// key => {
// return { type: 1, key: key };
// }
// ),
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// return { type: 2, key: key };
// }),
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
// vm.allSelectedKeys = allSelectedKeys;
console
.
log
(
"getHalfCheckedKeys():"
,
this
.
$refs
.
tree
.
getHalfCheckedKeys
()
);
console
.
log
(
"getSimpleCheckedNodes():"
,
operationData
.
getSimpleCheckedNodes
(
this
.
$refs
.
tree
.
store
)
);
let
checkedTree
=
operationData
.
getSimpleCheckedNodes
(
this
.
$refs
.
tree
.
store
);
let
halfCheckedTree
=
this
.
$refs
.
tree
.
getHalfCheckedKeys
();
vm
.
allSelectedKeys
=
operationData
.
setSelectedKeys
(
checkedTree
,
halfCheckedTree
);
console
.
log
(
"vm.allSelectedKeys"
,
vm
.
allSelectedKeys
);
vm
.
initCheckList
(
vm
.
allSelectedKeys
);
},
getTreeCheck
()
{
// let cData = [],
// oldData = (this.treeData.length && this.treeData.slice()) || [],
// checkedKeys = this.$refs.tree.getCheckedKeys(),
// halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
// savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
// key => {
// return { type: 1, key: key };
// }
// ),
// savedHalfCheckedKeys = halfCheckedKeys.map(key => {
// return { type: 2, key: key };
// }),
// allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
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
;
},
// // 递归删除列表中所有子节点
// delSubKeysByNode(node, checkedKeys) {
// let idIndex;
// if (node.children && node.children.length) {
// if (node.children && node.children.length) {
// node.children.forEach(elm => {
// idIndex = checkedKeys.findIndex(id => {
// return id === elm.id;
// });
// if (idIndex > -1) {
// checkedKeys.splice(idIndex, 1);
// }
// if (elm.children && elm.children.length) {
// this.delSubKeysByNode(elm, checkedKeys);
// }
// });
// }
// }
// },
// // 去除子节点
// handlerCheckedData(oldData, checkedKeys) {
// oldData.forEach(element => {
// for (let i = 0; i
<
checkedKeys
.
length
;
i
++
)
{
// // 如果此节点被选中,则删除所有子节点
// if (element.id === checkedKeys[i]) {
// this.delSubKeysByNode(element, checkedKeys);
// } else {
// if (element.children && element.children.length) {
// this.handlerCheckedData(element.children, checkedKeys);
// }
// }
// }
// });
// return checkedKeys;
// },
//添加子节点
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
);
}
});
}
},
//子节点选中
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
);
});
},
//通过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
)
{
this
.
tagsRegion
.
splice
(
this
.
tagsRegion
.
indexOf
(
tag
),
1
);
this
.
setCheckedKeys
(
this
.
tagsRegion
);
},
//设定的行政范围内容
getScope
(
type
)
{
let
scope
=
""
;
let
noChangeTree
=
this
.
getTreeCheck
();
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);
return
scope
;
},
updateAttachRegion
()
{
let
req
=
{
attachRegionId
:
vm
.
attachRegionId
,
doctorId
:
vm
.
doctorId
,
projectId
:
vm
.
formInline
.
portalProjectId
,
scopeOfAdministrative
:
vm
.
getScope
()
};
console
.
log
(
"req"
,
req
);
vm
.
POST
(
"portal/portalProjectOrRole/insertOrUpdateAttachRegion"
,
req
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
$message
({
message
:
"设置成功"
,
type
:
"success"
});
vm
.
dialogArea
=
false
;
vm
.
queryRoleList
();
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
});
}
}
}
}
};
};
...
@@ -382,10 +955,30 @@ export default {
...
@@ -382,10 +955,30 @@ export default {
margin-left
:
30px
;
margin-left
:
30px
;
}
}
.header-title
{
.header-title
{
position
:
relative
;
padding
:
10px
12px
;
padding
:
10px
12px
;
font-size
:
12px
;
font-size
:
12px
;
color
:
#449284
;
color
:
#449284
;
border-bottom
:
1px
solid
#efefef
;
border-bottom
:
1px
solid
#efefef
;
.upload-excel
{
position
:
absolute
;
top
:
-2px
;
right
:
27px
;
float
:
right
;
}
.down-button
{
margin-left
:
10px
;
}
}
.button-text
{
color
:
#449284
;
}
.user-name
{
color
:
#449284
;
}
.more-text
{
max-height
:
40px
;
overflow-y
:
scroll
;
}
}
.dialog-p
{
.dialog-p
{
text-align
:
center
;
text-align
:
center
;
...
@@ -393,6 +986,90 @@ export default {
...
@@ -393,6 +986,90 @@ export default {
color
:
#449284
;
color
:
#449284
;
}
}
}
}
.dialog-success
{
p
{
text-align
:
center
;
.upload-text
{
color
:
#449284
;
}
}
}
.dialog-fail
{
.fail-close
{
margin-left
:
-70px
;
}
.upload-button
{
position
:
absolute
;
float
:
right
;
width
:
80px
;
bottom
:
20px
;
right
:
120px
;
}
.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
;
}
}
}
.dialog-area
{
.el-tree-node__expand-icon
{
display
:
none
;
}
.el-dialog
{
height
:
700px
;
.el-dialog__body
{
overflow
:
hidden
;
.area-choose
{
padding
:
10px
0
0
10px
;
height
:
515px
;
overflow-y
:
scroll
;
border
:
1px
solid
#dddddd
;
.el-icon-caret-bottom
{
color
:
#449284
;
}
.area-p
{
color
:
#449284
;
margin-bottom
:
10px
;
}
.el-checkbox__input.is-indeterminate
.el-checkbox__inner
{
background-color
:
#449284
;
border-color
:
#449284
;
}
.is-checked
.el-checkbox__inner
{
background-color
:
#449284
;
border-color
:
#449284
;
}
}
}
}
.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
;
}
}
}
.table-empty
{
.table-empty
{
img
{
img
{
width
:
100px
;
width
:
100px
;
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录