diff --git a/src/config/area.js b/src/config/area.js index 4726a793800ec40ffc944fd3c0d97ec9d0b82bc3..d7b6fbd48452a24201efafe7c7a383dcc9cd337d 100644 --- a/src/config/area.js +++ b/src/config/area.js @@ -5,10 +5,16 @@ let getAreas = function(){ method: 'get', url: 'organ/getAreaTree' }).then(res=>{ - if(res.data.code == 200){ - resolve(res.data.body) - }else{ + if(res.status != 200){ resolve([]) + }else{ + if(res.data.resultCode == 200){ + let list = res.data.data + let filterList = setChildNull(list) + resolve(filterList) + }else{ + resolve([]) + } } }).catch(err=>{ @@ -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 } \ No newline at end of file diff --git a/src/config/httpServer.js b/src/config/httpServer.js index 7e6d48b2c2c48083429e1e36d1a8029c65c212af..9b3e95df37fdaf2cdc494bd572705381333d513e 100644 --- a/src/config/httpServer.js +++ b/src/config/httpServer.js @@ -88,7 +88,8 @@ const httpServer = (opts,data,file,timeout)=>{ if(opts.authType && opts.authType!=""){ // Authorization if(opts.authType==="back"){ - authToken=localStorage.getItem('backToken'); + //authToken=localStorage.getItem('backToken'); + authToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInVzZXJfaWQiOiIxIiwiaXNzIjoiSUFUQSIsImV4cCI6MTYxNjU5MDE3NiwiaWF0IjoxNjE2NTc1Nzc2fQ.BT7bv2fmz_mS10nhoeW8_z17MSRY0MQNta-0ozhUMkuqFC2bed88yc2xoolyMEN7DYSVUOCFvDJrwmi8NwgDgQ" }else if(opts.authType==="front"){ authToken = localStorage.getItem("token") || MyLocalStorage.Cache.get('token'); } diff --git a/src/page/system/log/devops.vue b/src/page/system/log/devops.vue index 0c642a93719bf669ced27b71cca9587ee999fc65..28cf762db6eaece8d0f2215cb0fbfde1b0787254 100644 --- a/src/page/system/log/devops.vue +++ b/src/page/system/log/devops.vue @@ -1,33 +1,24 @@ <template> + <!-- è¿ç»´æ—¥å¿— --> <div class="devops-wrapper height100"> <div class="search-container"> <el-form :inline="true" :model="form"> <el-form-item> <el-input v-model="form.user" - placeholder="请输入æ“作者" + placeholder="请输入è¿ç»´è€…è´¦å·" suffix-icon="el-icon-search" ></el-input> </el-form-item> <el-form-item> <el-date-picker - v-model="form.value" + v-model="form.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="ç»“æŸæ—¥æœŸ"> </el-date-picker> </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> <div class="btn-group"> <el-button type="primary" @click="handleSubmit">查询</el-button> @@ -53,7 +44,7 @@ export default { return{ form:{ user:'', - value:'' + date:'' }, addForm:{ diff --git a/src/page/system/orgDialog/add.vue b/src/page/system/orgDialog/add.vue index 111c57e48a6abb4cc5270e37b9506e7b30732869..abfe209a0bb8676831137e9aeb43a513cb1757ce 100644 --- a/src/page/system/orgDialog/add.vue +++ b/src/page/system/orgDialog/add.vue @@ -64,7 +64,7 @@ import { getAreas } from "@/config/area"; export default { data() { return { - dialogVisible: true, + dialogVisible: false, form: { name: "", areaId: [], @@ -72,11 +72,11 @@ export default { remarks: "", }, disabled: false, - areaOptions: [], + areaOptions: [], cascaderProps: { label: "name", value: "id", - checkStrictly: true, + checkStrictly: true }, levelOption: [], rules: { @@ -97,6 +97,10 @@ export default { type: Number, default: 1, }, + parentId:{ + type: String, + default: '0', + } }, mounted() { this.getLevelOption(); @@ -109,10 +113,20 @@ export default { handleClose() { this.$confirm("确认关é—?") .then((_) => { - done(); + this.handleReset() }) .catch((_) => {}); }, + handleReset(){ + this.dialogVisible = false + this.$refs.form.resetFields() + this.form = { + name: "", + areaId: [], + level: "", + remarks: "", + } + }, handleCancle() { this.handleClose(); }, @@ -125,24 +139,33 @@ export default { params.areaId = [...this.form.areaId].pop(); params.remarks = this.form.remarks; params.level = this.form.level; + params.parentId = this.parentId let requestparams = this.$qs.stringify(params); this.$https( { method: "post", url: "organ/add", + authType: this.backToken, }, requestparams ) .then((res) => { - console.log(res); - if (res.data.code != 200) { - this.$message({ - type: "success", - message: res.data.message, - }); + if(res.status == 200 ){ + if (res.data.resultCode == 200 ) { + this.$message({ + type: "success", + message: res.data.message, + }); + this.handleReset() + this.$emit('success',true) + } else { + this.$message.error(res.data.message); + this.$emit('success',false) + } } else { - this.$message.error(res.data.message); - } + this.$message.error(res.data); + this.$emit('success',false) + } }) .catch((err) => { console.log(res); diff --git a/src/page/system/organ.vue b/src/page/system/organ.vue index 0f85781bc9b1eb74432dc05b59629336440a992a..ab7620b6bcaee5d98ecf3f3ab7de479b7b0bdb15 100644 --- a/src/page/system/organ.vue +++ b/src/page/system/organ.vue @@ -7,17 +7,20 @@ <div class="tree-search party-form"> <el-input placeholder="请输入组织结构åç§°" - v-model="orgName" - suffix-icon="el-icon-search" - clearable + v-model="name" > + <i + slot="suffix" + class="el-input__icon el-icon-search" + @click="getOrgTree()"> + </i> </el-input> <div class="f0"> <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 content="导入" placement="top"> - <i class="icon-import party-icon-20" /> + <i class="icon-import party-icon-20" @click="handleImport('import')"/> </el-tooltip> </div> </div> @@ -43,10 +46,10 @@ </div> <div class="org-detail"> <div class="org-detail-panel-box"> - <span class="title">{{ title }}</span> + <span class="title">{{ currentInfo.name }}</span> <div class="icon-group"> - <i class="icon-edit party-icon-24"> </i> - <i class="icon-del party-icon-24"> </i> + <i class="icon-edit party-icon-24" @click="handleEdit()"> </i> + <i class="icon-del party-icon-24" @click="handleDel()"> </i> </div> </div> <div class="org-detail-panel-box-content"> @@ -58,162 +61,166 @@ </div> <el-form label-position="top" :inline="true"> <el-form-item label="上级机构" class="w50"> - <span>ä¸å›½å›½å®¶åšç‰©é¦†</span> + <span></span> </el-form-item> <el-form-item label="下级机构" class="w50"> - <span>ä¸å›½å›½å®¶åšç‰©é¦†</span> + <span> + + </span> </el-form-item> <el-form-item label="地ç†ä½ç½®" class="w100"> - <span>北京市海淀区</span> + <span> + {{currentInfo.remarks}} + </span> </el-form-item> <el-form-item label="备注信æ¯" class="w100"> <span> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean - 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. + {{currentInfo.remarks}} </span> </el-form-item> </el-form> </div> - <org-add/> - <org-edit/> + <org-add + ref="orgAdd" + :parentId="currentInfo.id" + :level="currentInfo.level" + @success="getOrgTree()" + /> + <org-edit ref="orgEdit" :currentInfo="currentInfo"/> </div> </div> </template> <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' export default { data() { return { - orgName: "", - data: res.body, + name: "", + data: [], defaultProps: { children: "children", label: "name", }, - title: "国åš", + currentId:'', + currentInfo:{}, }; }, components:{orgAdd,orgEdit}, + mounted(){ + this.getOrgTree() + }, methods: { 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> @@ -255,6 +262,11 @@ export default { } .org-tree-box-content { padding: 20px; + height: calc(100% - 56px); + .tree-content{ + height: calc(100% - 60px); + overflow-y: auto; + } } } } diff --git a/src/style/global.less b/src/style/global.less index 76e375e41d3dcfc8ad34d93a2c7a306ab33df6c9..4ca55a916d4048c1c421cc34c33c6fe733f485f0 100644 --- a/src/style/global.less +++ b/src/style/global.less @@ -392,6 +392,14 @@ } .el-tree-node{ background-color: @party-white; + &.is-current{ + >.el-tree-node__content{ + .custom-tree-node{ + background-color: @party-border-color; + } + } + + } } .el-tree-node__content{ height: auto; @@ -422,6 +430,7 @@ height: 56px; line-height: 56px; border-bottom: 1px solid @party-border-color; + padding-left: 5px; } .tree-node-level2, .tree-node-level3{