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
提交
9557dd3b
提交
9557dd3b
编写于
11月 13, 2020
作者:
kai.wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交圈子区域保存
上级
0684265f
变更
3
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
233 行增加
和
83 行删除
+233
-83
mebman.vue
src/components/yqrange/mebman.vue
+6
-5
region.vue
src/components/yqrange/member-management/region.vue
+209
-78
yqrangeApi.js
src/utils/yqrange/yqrangeApi.js
+18
-0
未找到文件。
src/components/yqrange/mebman.vue
浏览文件 @
9557dd3b
...
@@ -12,6 +12,11 @@
...
@@ -12,6 +12,11 @@
</el-col>
</el-col>
</el-row>
</el-row>
<div
class=
"member-main"
>
<div
class=
"member-main"
>
<region
v-show=
"tab == 0"
:circleId=
'circleId'
:roleType=
'roleType'
></region>
<org
<org
v-show=
"tab == 1"
v-show=
"tab == 1"
:circleId=
'circleId'
:circleId=
'circleId'
...
@@ -27,11 +32,7 @@
...
@@ -27,11 +32,7 @@
@
setPleTotal=
"setPleTotal"
@
setPleTotal=
"setPleTotal"
ref=
'renyaun'
ref=
'renyaun'
></renyaun>
></renyaun>
<region
v-show=
"tab == 0"
:circleId=
'circleId'
:roleType=
'roleType'
></region>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
...
src/components/yqrange/member-management/region.vue
浏览文件 @
9557dd3b
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
default-expand-all
default-expand-all
:data=
"treeData"
:data=
"treeData"
show-checkbox
show-checkbox
node-key=
"
i
d"
node-key=
"
regionI
d"
ref=
"tree"
ref=
"tree"
highlight-current
highlight-current
:props=
"defaultProps"
:props=
"defaultProps"
...
@@ -26,16 +26,6 @@
...
@@ -26,16 +26,6 @@
</span>
</span>
</el-tree>
</el-tree>
</el-col>
</el-col>
<el-col
:span=
"11"
v-show =
'false'
>
<p
class=
"area-p"
>
项目范围包含下列区域所有机构和人员(
{{
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>
</el-row>
</el-row>
<div
style=
"margin-top: 60px;margin-left: 250px;"
>
<div
style=
"margin-top: 60px;margin-left: 250px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"save"
>
保存
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"save"
>
保存
</el-button>
...
@@ -50,6 +40,7 @@ import { doUpload, getFilePath } from "@/utils/qiniu-util";
...
@@ -50,6 +40,7 @@ import { doUpload, getFilePath } from "@/utils/qiniu-util";
import
*
as
operationData
from
"@/utils/operation"
;
import
*
as
operationData
from
"@/utils/operation"
;
import
{
moRelSearch
,
morDeleteOrg
}
from
'@/utils/yqrange/memberApi'
;
import
{
moRelSearch
,
morDeleteOrg
}
from
'@/utils/yqrange/memberApi'
;
import
{
getOrgProvincesReq
}
from
'@/utils/yqrange/rangeApi'
;
import
{
getOrgProvincesReq
}
from
'@/utils/yqrange/rangeApi'
;
import
{
getCircleTree
,
postCircleTree
}
from
'@/utils/yqrange/yqrangeApi'
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
props
:
{
props
:
{
...
@@ -69,87 +60,85 @@ export default {
...
@@ -69,87 +60,85 @@ export default {
organizationRegion
:
[],
organizationRegion
:
[],
defaultProps
:
{
defaultProps
:
{
children
:
"children"
,
children
:
"children"
,
label
:
"
label
"
,
label
:
"
name
"
,
isLeaf
:
"isLeaf"
isLeaf
:
"isLeaf"
},
},
treeData
:
[],
treeData
:
[]
tagsRegion
:
[]
}
}
},
},
created
()
{
created
()
{
vm
=
this
;
vm
=
this
;
//Idtype:1,内部 2.外部
vm
.
idType
=
localStorage
.
getItem
(
"storageIdType"
);
if
(
vm
.
idType
==
1
){
}
else
{
}
this
.
getAdministrative
();
this
.
getAdministrative
();
},
},
mounted
()
{
mounted
()
{
},
},
methods
:
{
methods
:
{
//通过key设置tree
//通过key设置tree
setCheckedKeys
(
tagsRegion
)
{
// setCheckedKeys(tagsRegion) {
let
treeKeyList
=
[];
// let treeKeyList = [];
for
(
let
index
=
0
;
index
<
tagsRegion
.
length
;
index
++
)
{
// for (let index = 0; index
<
tagsRegion
.
length
;
index
++
)
{
treeKeyList
[
index
]
=
tagsRegion
[
index
].
key
;
// treeKeyList[index] = tagsRegion].key;
}
// }
this
.
$refs
.
tree
.
setCheckedKeys
(
treeKeyList
);
// this.$refs.tree.setCheckedKeys(treeKeyList);
},
// },
//获取勾选树
getCheckedTree
()
{
if
(
this
.
idType
!=
2
)
{
let
allTree
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
treeData
[
0
].
children
));
let
changedTags
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tagsRegion
));
let
organizationArea
=
operationData
.
treeHandler
(
allTree
,
changedTags
);
debugger
console
.
log
(
"多级树:"
,
organizationArea
);
this
.
organizationRegion
=
organizationArea
;
}
},
//初始化范围树
//初始化范围树
setTreeData
(
administrative
)
{
setTreeData
(
administrative
)
{
let
treeIdList
=
[];
let
treeIdList
=
[];
let
checkList
=
[];
for
(
let
i
=
0
;
i
<
administrative
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
administrative
.
length
;
i
++
)
{
treeIdList
.
push
(
administrative
[
i
].
id
);
treeIdList
.
push
(
administrative
[
i
]);
checkList
[
i
]
=
{};
checkList
[
i
].
name
=
administrative
[
i
].
label
;
checkList
[
i
].
key
=
administrative
[
i
].
id
;
}
}
debugger
console
.
log
(
treeIdList
);
console
.
log
(
treeIdList
);
this
.
$refs
.
tree
.
setCheckedKeys
(
treeIdList
);
this
.
$refs
.
tree
.
setCheckedKeys
(
treeIdList
);
this
.
tagsRegion
=
checkList
;
},
},
//查询行政范围(树)
//查询行政范围(树)
getAdministrative
()
{
getAdministrative
()
{
let
req
=
{
let
req
=
{
projectId
:
87
//826,874,832
circleId
:
this
.
circleId
//826,874,832
};
};
openLoading
(
vm
);
openLoading
(
vm
);
vm
.
GET
(
"portal/scope/v1/administrative"
,
req
).
then
(
res
=>
{
getCircleTree
(
req
).
then
(
res
=>
{
closeLoading
(
vm
);
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
let
administrativeAll
=
res
.
data
.
administrativeAll
;
let
administrativeAll
=
res
.
data
.
regionTreeDto
;
let
administrative
=
res
.
data
.
administrative
;
//获取已选的区域
let
administrative
=
[];
res
.
data
.
provinceIds
.
forEach
(
element
=>
{
administrative
.
push
(
element
);
});
res
.
data
.
cityIds
.
forEach
(
element
=>
{
administrative
.
push
(
element
);
});
res
.
data
.
countryIds
.
forEach
(
element
=>
{
administrative
.
push
(
element
);
});
res
.
data
.
townIds
.
forEach
(
element
=>
{
administrative
.
push
(
element
);
});
// let administrative = res.data.administrative;
this
.
treeData
=
[];
this
.
treeData
=
[];
this
.
treeData
[
0
]
=
administrativeAll
;
this
.
treeData
[
0
]
=
administrativeAll
;
console
.
log
(
"administrative"
,
administrative
);
this
.
setTreeData
(
administrative
);
this
.
setTreeData
(
administrative
);
this
.
getCheckedTree
();
}
}
});
});
},
},
onChecked
(
node
,
data
)
{
onChecked
(
node
,
data
)
{
debugger
console
.
log
(
"11node"
,
node
);
console
.
log
(
"11data"
,
data
);
vm
.
checkUpdate
(
node
,
data
);
vm
.
checkUpdate
(
node
,
data
);
//重构归并树
//重构归并树
let
checkedTree
=
operationData
.
getSimpleCheckedNodes
(
let
checkedTree
=
operationData
.
getSimpleCheckedNodes
(
this
.
$refs
.
tree
.
store
this
.
$refs
.
tree
.
store
);
);
console
.
log
(
"checkedtree"
,
checkedTree
);
let
halfCheckedTree
=
this
.
$refs
.
tree
.
getHalfCheckedKeys
();
let
halfCheckedTree
=
this
.
$refs
.
tree
.
getHalfCheckedKeys
();
console
.
log
(
"halfcheckedtree"
,
halfCheckedTree
);
let
allSelectedKeys
=
operationData
.
setSelectedKeys
(
let
allSelectedKeys
=
operationData
.
setSelectedKeys
(
checkedTree
,
checkedTree
,
halfCheckedTree
halfCheckedTree
...
@@ -157,42 +146,184 @@ export default {
...
@@ -157,42 +146,184 @@ export default {
//重构内容
//重构内容
this
.
allSelectedKeys
=
allSelectedKeys
;
this
.
allSelectedKeys
=
allSelectedKeys
;
this
.
initCheckList
(
allSelectedKeys
);
//处理原始数据
//改变行政范围后,更新设定机构和设定人员
//1. 设置选中数据
this
.
updateOrganizationAndPerson
(
allSelectedKeys
);
let
selectedData
=
data
.
checkedKeys
;
this
.
updatedTree
=
true
;
let
halfSelectedData
=
data
.
halfCheckedKeys
;
},
let
selectedAll
=
{};
//列举选中地区 右侧显示数据
selectedData
.
forEach
(
element
=>
{
initCheckList
(
allSelectedKeys
)
{
selectedAll
[
element
]
=
1
;
this
.
tagsRegion
=
[];
});
debugger
//2.设置半选数据
let
nodeData
=
this
.
$refs
.
tree
.
getCheckedNodes
();
halfSelectedData
.
forEach
(
element
=>
{
for
(
let
i
=
0
;
i
<
nodeData
.
length
;
i
++
)
{
selectedAll
[
element
]
=
2
;
for
(
let
j
=
0
;
j
<
allSelectedKeys
.
length
;
j
++
)
{
});
if
(
console
.
log
(
"seledAll"
,
selectedAll
);
allSelectedKeys
[
j
].
type
==
1
&&
// selectedAll.forEach(element => {
nodeData
[
i
].
id
==
allSelectedKeys
[
j
].
key
//特殊处理全国选择状态
)
{
let
allSelectRegionId
=
this
.
treeData
[
0
].
regionId
;
let
tagObj
=
{};
let
isExit
=
selectedAll
[
allSelectRegionId
];
tagObj
.
name
=
nodeData
[
i
].
label
;
if
(
isExit
){
tagObj
.
key
=
nodeData
[
i
].
id
;
this
.
treeData
[
0
].
checkStatus
=
isExit
this
.
tagsRegion
.
push
(
tagObj
);
}
else
{
this
.
treeData
[
0
].
checkStatus
=
0
;
}
}
this
.
dealOrgData
(
this
.
treeData
[
0
].
children
,
selectedAll
);
},
// type 1:选中 2:半选
dealOrgData
(
orgData
,
selectedAll
){
orgData
.
forEach
(
element
=>
{
let
type
=
selectedAll
[
element
.
regionId
];
if
(
type
){
//如果是在选中列表(包含半选)里面
console
.
log
(
"elementregionid"
,
type
);
element
.
checkStatus
=
type
;
if
(
element
.
children
){
this
.
dealOrgData
(
element
.
children
,
selectedAll
);
}
}
}
else
{
element
.
checkStatus
=
0
;
}
}
});
},
},
checkUpdate
(
node
,
data
)
{
checkUpdate
(
node
,
data
)
{
let
flag
=
-
1
;
let
flag
=
-
1
;
flag
=
data
.
checkedKeys
.
indexOf
(
node
.
i
d
);
flag
=
data
.
checkedKeys
.
indexOf
(
node
.
regionI
d
);
if
(
vm
.
status4Flag
==
1
&&
flag
>=
0
)
{
console
.
log
(
"flag"
,
flag
);
console
.
log
(
node
,
data
,
flag
,
vm
.
status4Flag
);
if
(
flag
>=
0
){
vm
.
nowCheck
=
node
;
//选中
vm
.
warnType
=
0
;
this
.
$refs
.
tree
.
setChecked
(
data
,
false
)
vm
.
dialogWarn
=
true
;
}
else
{
//
this.$refs.tree.setChecked(data,false)
//
取消
}
}
// this.dealTreeData(flag,node,this.treeData[0].children,false);
// 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)
// }
},
},
//处理原始数据 isHaveFlag 是否直接赋值
dealTreeData
(
flag
,
node
,
orgTreeData
,
isHaveFlag
){
orgTreeData
.
forEach
(
element
=>
{
if
(
isHaveFlag
){
element
.
checkStatus
=
flag
>
0
?
1
:
0
}
else
{
if
(
element
.
regionId
==
node
.
regionId
){
element
.
checkStatus
=
flag
>
0
?
1
:
0
}
}
if
(
element
.
children
){
//处理原始数据
this
.
dealTreeData
(
flag
,
node
,
element
.
children
,
true
);
}
});
},
//1.如果选中父,子节点存在,全部选中
//子节点选中
appendCheck
(
administrative
,
checked
)
{
let
checkList
=
[];
checkList
=
this
.
$refs
.
tree
.
getCheckedKeys
();
if
(
checked
)
{
for
(
let
i
=
0
;
i
<
administrative
.
length
;
i
++
)
{
checkList
.
push
(
administrative
[
i
].
regionId
);
}
}
this
.
$nextTick
(
function
()
{
this
.
$refs
.
tree
.
setCheckedKeys
(
checkList
);
});
},
//添加子节点
append
(
data
,
node
)
{
console
.
log
(
"data:"
,
data
);
console
.
log
(
"node:"
,
node
);
if
(
node
.
level
-
1
==
1
)
{
let
req
=
{
provinceId
:
node
.
data
.
regionId
};
vm
.
GET
(
"basic-data/position/cities"
,
req
).
then
(
res
=>
{
vm
.
setMoreOption
(
data
,
res
.
data
.
cityList
,
"cities"
,
node
);
});
}
else
if
(
node
.
level
-
1
==
2
)
{
let
req
=
{
cityId
:
node
.
data
.
regionId
};
vm
.
GET
(
"basic-data/position/counties"
,
req
).
then
(
res
=>
{
vm
.
setMoreOption
(
data
,
res
.
data
.
countyList
,
"counties"
,
node
);
//添加数据
});
}
else
if
(
node
.
level
-
1
==
3
)
{
let
req
=
{
countyId
:
node
.
data
.
regionId
};
vm
.
GET
(
"basic-data/position/towns"
,
req
).
then
(
res
=>
{
vm
.
setMoreOption
(
data
,
res
.
data
.
townList
,
"towns"
,
node
);
});
}
},
//设置数据
// data 父节点,newdata新节点
setMoreOption
(
data
,
newdata
,
type
,
node
)
{
if
(
data
.
children
!=
null
)
return
;
let
statusValue
=
0
;
if
(
node
.
checked
==
true
)
{
statusValue
=
1
;
}
let
option
=
[];
for
(
let
i
=
0
;
i
<
newdata
.
length
;
i
++
)
{
let
obj
=
{};
if
(
type
==
"cities"
)
{
obj
.
name
=
newdata
[
i
].
cityName
;
obj
.
regionId
=
newdata
[
i
].
cityId
;
}
else
if
(
type
==
"counties"
)
{
obj
.
name
=
newdata
[
i
].
countyName
;
obj
.
regionId
=
newdata
[
i
].
countyId
;
// obj.leaf = true;
}
else
if
(
type
==
"towns"
)
{
obj
.
name
=
newdata
[
i
].
townName
;
obj
.
regionId
=
newdata
[
i
].
townId
;
// obj.leaf = true;
}
obj
.
checkStatus
=
statusValue
;
// obj.disabled = false;
obj
.
children
=
null
;
obj
.
id
=
null
option
.
push
(
obj
);
}
console
.
log
(
"childrenlist:"
,
option
);
data
.
children
=
option
;
vm
.
appendCheck
(
option
,
node
.
checked
);
},
//保存
save
(){
console
.
log
(
"treedata"
,
this
.
treeData
[
0
]);
let
res
=
this
.
treeData
[
0
];
openLoading
(
vm
);
postCircleTree
(
res
).
then
(
res
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
this
.
$message
(
"保存成功"
);
}
else
{
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
'请求失败'
);
});
},
}
}
}
}
</
script
>
</
script
>
...
...
src/utils/yqrange/yqrangeApi.js
浏览文件 @
9557dd3b
...
@@ -276,3 +276,21 @@ export const getExamAwardList = (params) => {
...
@@ -276,3 +276,21 @@ export const getExamAwardList = (params) => {
})
})
};
};
export
const
getCircleTree
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
`circle/region/tree/
${
params
.
circleId
}
`
),
method
:
'get'
,
data
:
params
,
description
:
'根据圈子id获取树结构'
,
})
};
export
const
postCircleTree
=
(
params
)
=>
{
return
fetch
({
headers
,
url
:
getBaseUrl
(
'circle/region/tree'
),
method
:
'post'
,
data
:
params
,
description
:
'保存区域'
,
})
};
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录