Commit 1a782d91 authored by xulili's avatar xulili

区域

parent 41208b65
...@@ -5,10 +5,16 @@ let getAreas = function(){ ...@@ -5,10 +5,16 @@ let getAreas = function(){
method: 'get', method: 'get',
url: 'organ/getAreaTree' url: 'organ/getAreaTree'
}).then(res=>{ }).then(res=>{
if(res.data.code == 200){ if(res.status != 200){
resolve(res.data.body)
}else{
resolve([]) resolve([])
}else{
if(res.data.resultCode == 200){
let list = res.data.data
let filterList = setChildNull(list)
resolve(filterList)
}else{
resolve([])
}
} }
}).catch(err=>{ }).catch(err=>{
...@@ -16,4 +22,21 @@ let getAreas = function(){ ...@@ -16,4 +22,21 @@ let getAreas = function(){
}) })
}) })
} }
function setChildNull(list){
if (list.length === 0) return []
list.forEach(v=>{
fs(v)
})
return list
}
function fs(v){
if(v.children && v.children.length === 0){
v.children = null
}else{
v.children.forEach(s=>{
fs(s)
})
}
}
export { getAreas } export { getAreas }
\ No newline at end of file
...@@ -88,7 +88,8 @@ const httpServer = (opts,data,file,timeout)=>{ ...@@ -88,7 +88,8 @@ const httpServer = (opts,data,file,timeout)=>{
if(opts.authType && opts.authType!=""){ if(opts.authType && opts.authType!=""){
// Authorization // Authorization
if(opts.authType==="back"){ if(opts.authType==="back"){
authToken=localStorage.getItem('backToken'); //authToken=localStorage.getItem('backToken');
authToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInVzZXJfaWQiOiIxIiwiaXNzIjoiSUFUQSIsImV4cCI6MTYxNjU5MDE3NiwiaWF0IjoxNjE2NTc1Nzc2fQ.BT7bv2fmz_mS10nhoeW8_z17MSRY0MQNta-0ozhUMkuqFC2bed88yc2xoolyMEN7DYSVUOCFvDJrwmi8NwgDgQ"
}else if(opts.authType==="front"){ }else if(opts.authType==="front"){
authToken = localStorage.getItem("token") || MyLocalStorage.Cache.get('token'); authToken = localStorage.getItem("token") || MyLocalStorage.Cache.get('token');
} }
......
<template> <template>
<!-- 运维日志 -->
<div class="devops-wrapper height100"> <div class="devops-wrapper height100">
<div class="search-container"> <div class="search-container">
<el-form :inline="true" :model="form"> <el-form :inline="true" :model="form">
<el-form-item> <el-form-item>
<el-input <el-input
v-model="form.user" v-model="form.user"
placeholder="请输入操作者" placeholder="请输入运维者账号"
suffix-icon="el-icon-search" suffix-icon="el-icon-search"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker
v-model="form.value" v-model="form.date"
type="daterange" type="daterange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期"> end-placeholder="结束日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item>
<el-select v-model="form.user" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<div class="btn-group"> <div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button> <el-button type="primary" @click="handleSubmit">查询</el-button>
...@@ -53,7 +44,7 @@ export default { ...@@ -53,7 +44,7 @@ export default {
return{ return{
form:{ form:{
user:'', user:'',
value:'' date:''
}, },
addForm:{ addForm:{
......
...@@ -64,7 +64,7 @@ import { getAreas } from "@/config/area"; ...@@ -64,7 +64,7 @@ import { getAreas } from "@/config/area";
export default { export default {
data() { data() {
return { return {
dialogVisible: true, dialogVisible: false,
form: { form: {
name: "", name: "",
areaId: [], areaId: [],
...@@ -72,11 +72,11 @@ export default { ...@@ -72,11 +72,11 @@ export default {
remarks: "", remarks: "",
}, },
disabled: false, disabled: false,
areaOptions: [], areaOptions: [],
cascaderProps: { cascaderProps: {
label: "name", label: "name",
value: "id", value: "id",
checkStrictly: true, checkStrictly: true
}, },
levelOption: [], levelOption: [],
rules: { rules: {
...@@ -97,6 +97,10 @@ export default { ...@@ -97,6 +97,10 @@ export default {
type: Number, type: Number,
default: 1, default: 1,
}, },
parentId:{
type: String,
default: '0',
}
}, },
mounted() { mounted() {
this.getLevelOption(); this.getLevelOption();
...@@ -109,10 +113,20 @@ export default { ...@@ -109,10 +113,20 @@ export default {
handleClose() { handleClose() {
this.$confirm("确认关闭?") this.$confirm("确认关闭?")
.then((_) => { .then((_) => {
done(); this.handleReset()
}) })
.catch((_) => {}); .catch((_) => {});
}, },
handleReset(){
this.dialogVisible = false
this.$refs.form.resetFields()
this.form = {
name: "",
areaId: [],
level: "",
remarks: "",
}
},
handleCancle() { handleCancle() {
this.handleClose(); this.handleClose();
}, },
...@@ -125,24 +139,33 @@ export default { ...@@ -125,24 +139,33 @@ export default {
params.areaId = [...this.form.areaId].pop(); params.areaId = [...this.form.areaId].pop();
params.remarks = this.form.remarks; params.remarks = this.form.remarks;
params.level = this.form.level; params.level = this.form.level;
params.parentId = this.parentId
let requestparams = this.$qs.stringify(params); let requestparams = this.$qs.stringify(params);
this.$https( this.$https(
{ {
method: "post", method: "post",
url: "organ/add", url: "organ/add",
authType: this.backToken,
}, },
requestparams requestparams
) )
.then((res) => { .then((res) => {
console.log(res); if(res.status == 200 ){
if (res.data.code != 200) { if (res.data.resultCode == 200 ) {
this.$message({ this.$message({
type: "success", type: "success",
message: res.data.message, message: res.data.message,
}); });
this.handleReset()
this.$emit('success',true)
} else {
this.$message.error(res.data.message);
this.$emit('success',false)
}
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data);
} this.$emit('success',false)
}
}) })
.catch((err) => { .catch((err) => {
console.log(res); console.log(res);
......
...@@ -7,17 +7,20 @@ ...@@ -7,17 +7,20 @@
<div class="tree-search party-form"> <div class="tree-search party-form">
<el-input <el-input
placeholder="请输入组织结构名称" placeholder="请输入组织结构名称"
v-model="orgName" v-model="name"
suffix-icon="el-icon-search"
clearable
> >
<i
slot="suffix"
class="el-input__icon el-icon-search"
@click="getOrgTree()">
</i>
</el-input> </el-input>
<div class="f0"> <div class="f0">
<el-tooltip content="新建" placement="top"> <el-tooltip content="新建" placement="top">
<i class="icon-add party-icon-20" /> <i class="icon-add party-icon-20" @click="handleAdd('add')"/>
</el-tooltip> </el-tooltip>
<el-tooltip content="导入" placement="top"> <el-tooltip content="导入" placement="top">
<i class="icon-import party-icon-20" /> <i class="icon-import party-icon-20" @click="handleImport('import')"/>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
...@@ -43,10 +46,10 @@ ...@@ -43,10 +46,10 @@
</div> </div>
<div class="org-detail"> <div class="org-detail">
<div class="org-detail-panel-box"> <div class="org-detail-panel-box">
<span class="title">{{ title }}</span> <span class="title">{{ currentInfo.name }}</span>
<div class="icon-group"> <div class="icon-group">
<i class="icon-edit party-icon-24"> </i> <i class="icon-edit party-icon-24" @click="handleEdit()"> </i>
<i class="icon-del party-icon-24"> </i> <i class="icon-del party-icon-24" @click="handleDel()"> </i>
</div> </div>
</div> </div>
<div class="org-detail-panel-box-content"> <div class="org-detail-panel-box-content">
...@@ -58,162 +61,166 @@ ...@@ -58,162 +61,166 @@
</div> </div>
<el-form label-position="top" :inline="true"> <el-form label-position="top" :inline="true">
<el-form-item label="上级机构" class="w50"> <el-form-item label="上级机构" class="w50">
<span>中国国家博物馆</span> <span></span>
</el-form-item> </el-form-item>
<el-form-item label="下级机构" class="w50"> <el-form-item label="下级机构" class="w50">
<span>中国国家博物馆</span> <span>
</span>
</el-form-item> </el-form-item>
<el-form-item label="地理位置" class="w100"> <el-form-item label="地理位置" class="w100">
<span>北京市海淀区</span> <span>
{{currentInfo.remarks}}
</span>
</el-form-item> </el-form-item>
<el-form-item label="备注信息" class="w100"> <el-form-item label="备注信息" class="w100">
<span> <span>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean {{currentInfo.remarks}}
euismod bibendum laoreet. Proin gravida dolor sit amet lacus
accumsan et viverra justo commodo. Proin sodales pulvinar tempor.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra
vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.
</span> </span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<org-add/> <org-add
<org-edit/> ref="orgAdd"
:parentId="currentInfo.id"
:level="currentInfo.level"
@success="getOrgTree()"
/>
<org-edit ref="orgEdit" :currentInfo="currentInfo"/>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
let res = {
code: "200",
body: [
{
children: [
{
children: [
{
children: [],
city: 1,
country: 1,
createTime: "2020-03-22",
icon: "1",
id: "3",
isDeleted: false,
level: 3,
name: "xe",
parentId: "2",
province: 1,
remarks: "1",
updateTime: "2021-03-22",
},
],
city: 1,
country: 1,
createTime: "2021-03-22",
icon: "1",
id: "2",
isDeleted: false,
level: 2,
name: "测试2级",
parentId: "1",
province: 1,
remarks: "1",
updateTime: "2021-03-22",
},
{
children: [],
city: 1,
country: 1,
createTime: "2021-03-22",
icon: "1",
id: "4",
isDeleted: false,
level: 2,
name: "测试2级2",
parentId: "1",
province: 1,
remarks: "1",
updateTime: "2021-03-22",
},
],
city: 1101,
country: 11011,
createTime: "2021-03-22",
icon: "0",
id: "1",
isDeleted: false,
level: 1,
name: "国博",
parentId: "0",
province: 110005,
remarks: "0",
updateTime: "2021-03-22",
},
{
children: [],
city: 1,
country: 1,
createTime: "2021-03-22",
icon: "1",
id: "1373918679665557505",
isDeleted: false,
level: 1,
name: "测试",
parentId: "0",
province: 1,
remarks: "1",
updateTime: "2021-03-22",
},
{
children: [],
city: 110100,
country: 110108,
createTime: "2021-03-23",
icon: "0",
id: "1374238828926935042",
isDeleted: false,
level: 1,
name: "测试11",
parentId: "0",
province: 110000,
remarks: "测试",
updateTime: "2021-03-23",
},
{
children: [],
city: 110100,
country: 110108,
createTime: "2021-03-23",
icon: "0",
id: "1374239612615909378",
isDeleted: false,
level: 1,
name: "测试22",
parentId: "0",
province: 110000,
remarks: "测试",
updateTime: "2021-03-23",
},
],
};
import {orgAdd, orgEdit} from './orgDialog' import {orgAdd, orgEdit} from './orgDialog'
export default { export default {
data() { data() {
return { return {
orgName: "", name: "",
data: res.body, data: [],
defaultProps: { defaultProps: {
children: "children", children: "children",
label: "name", label: "name",
}, },
title: "国博", currentId:'',
currentInfo:{},
}; };
}, },
components:{orgAdd,orgEdit}, components:{orgAdd,orgEdit},
mounted(){
this.getOrgTree()
},
methods: { methods: {
handleNodeClick(data) { handleNodeClick(data) {
console.log(data); this.currentId = data.id
this.getInfoById()
},
// 获取机构数详情
getInfoById(){
this.$https({
method: "get",
url: "organ/getById",
authType: this.backToken,
},{id:this.currentId}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
if(res.data.data){
this.currentInfo = res.data.data
}else{
this.currentInfo = {}
}
}else{
this.currentInfo = {}
}
}else{
this.currentInfo = {}
}
}).catch(err=>{
console.log(res)
})
},
// 获取机构树
getOrgTree(){
this.$https({
method: "get",
url: "organ/getTree",
authType: this.backToken,
},{name:this.name}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
this.data = res.data.data
}else{
this.data = []
}
}else{
this.data = []
}
}).catch(err=>{
console.log(res)
})
},
// 新增或者导入 之前判断是否选择父级
handleOperate(type){
if(JSON.stringify(this.currentInfo) === "{}"){
this.currentId.level = 1
this.currentInfo.id = '0'
}
if(type === 'add'){
this.handleAdd()
}
if(type === 'import'){
this.handleImport()
}
},
// 新增
handleAdd(){
this.$refs.orgAdd.dialogVisible = true
}, },
//导入
handleImport(){
},
handleEdit(){
},
// 删除
handleDel(){
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.delAction()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
delAction(){
this.$https({
method: `delete?id=${this.currentId}`,
url: "organ/delete",
authType: this.backToken,
}).then(res=>{
if(res.status == 200){
if(res.data.resultCode == 200){
this.$message({
type:'success',
message:res.data.message
})
this.getOrgTree()
}else{
this.$message.error(res.data.message)
}
}else{
this.$message.error(res.data)
}
}).catch(err=>{
console.log(err)
})
}
}, },
}; };
</script> </script>
...@@ -255,6 +262,11 @@ export default { ...@@ -255,6 +262,11 @@ export default {
} }
.org-tree-box-content { .org-tree-box-content {
padding: 20px; padding: 20px;
height: calc(100% - 56px);
.tree-content{
height: calc(100% - 60px);
overflow-y: auto;
}
} }
} }
} }
......
...@@ -392,6 +392,14 @@ ...@@ -392,6 +392,14 @@
} }
.el-tree-node{ .el-tree-node{
background-color: @party-white; background-color: @party-white;
&.is-current{
>.el-tree-node__content{
.custom-tree-node{
background-color: @party-border-color;
}
}
}
} }
.el-tree-node__content{ .el-tree-node__content{
height: auto; height: auto;
...@@ -422,6 +430,7 @@ ...@@ -422,6 +430,7 @@
height: 56px; height: 56px;
line-height: 56px; line-height: 56px;
border-bottom: 1px solid @party-border-color; border-bottom: 1px solid @party-border-color;
padding-left: 5px;
} }
.tree-node-level2, .tree-node-level2,
.tree-node-level3{ .tree-node-level3{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment