| | |
| | | return request.get('/sign/logout', { params: params }); |
| | | } |
| | | |
| | | //请æ±ç®å½æ æ°æ® |
| | | export function queryDirTree() { |
| | | return service.get('/dir/selectDirAll'); |
| | | } |
| | | //æ´æ°åæ¡ç®å½æ |
| | | export function updateDirTree(params) { |
| | | return service.post('/dir/updateDir', params); |
| | | } |
| | | //æ´æ°æ´ä½ç®å½æ |
| | | export function updateDirTrees(params) { |
| | | return service.post('/dir/updateDirs', params); |
| | | } |
| | | |
| | | //请æ±èåæ æ°æ® |
| | | export function queryMenuTree() { |
| | | return request.get('/Menu/selectMenuAll'); |
| | |
| | | export function updateMenuTrees(params) { |
| | | return request.post('/Menu/updateMenus', params); |
| | | } |
| | | |
| | | //请æ±ç®å½æ æ°æ® |
| | | export function queryDirTree() { |
| | | return request.get('/dir/selectDirAll'); |
| | | } |
| | | //æ°å¢åæ¡ç®å½ |
| | | export function insertDir(params) { |
| | | return request.post('/dir/insertDir', params); |
| | | } |
| | | //å é¤å¤æ¡ç®å½ |
| | | export function deleteDir(params) { |
| | | return request.get('/dir/deleteDirs?' + params); |
| | | } |
| | | //æ´æ°åæ¡ç®å½æ |
| | | export function updateDirTree(params) { |
| | | return request.post('/dir/updateDir', params); |
| | | } |
| | | //æ´æ°æ´ä½ç®å½æ |
| | | export function updateDirTrees(params) { |
| | | return request.post('/dir/updateDirs', params); |
| | | } |
| | | |
| | | |
| | | //请æ±å使 |
| | | export function queryDepTree() { |
| | | return service.get('/dep/selectDepAll'); |
| | | return request.get('/dep/selectDepAll'); |
| | | } |
| | | //æ´æ°åæ¡å使°æ® |
| | | export function updateDepTree(params) { |
| | | return service.post('/dep/updateDep', params); |
| | | return request.post('/dep/updateDep', params); |
| | | } |
| | | //æ´æ°æ´ä½å使 |
| | | export function updateDepTrees(params) { |
| | | return service.post('/dep/updateDeps', params); |
| | | return request.post('/dep/updateDeps', params); |
| | | } |
| | | |
| | | // 请æ±ç¨æ·ç®¡çæ°æ® |
| | | export function queryPageUser(pageIndex, pageSize) { |
| | | return service.get( |
| | | '/user/selectByPageAndCount?pageIndex=' + |
| | | pageIndex + |
| | | '&pageSize=' + |
| | | pageSize |
| | | ); |
| | | export function queryPageUser(params) { |
| | | return request.get('/user/selectByPageAndCount', { params: params }); |
| | | } |
| | |
| | | preservation: 'Preservation', |
| | | close: 'Close', |
| | | see: 'See', |
| | | index: 'index', |
| | | }, |
| | | dataManage: { |
| | | dataManage: 'Data Manage', |
| | |
| | | delete: 'Delete', |
| | | apply: 'Apply', |
| | | rejection: 'Rejection', |
| | | companyName: 'Company name', |
| | | depName: 'department name', |
| | | userexport: 'Excel user export', |
| | | userinput: 'Excel user input', |
| | | userStatus: "User Status", |
| | | addr: "address", |
| | | bak: "notes", |
| | | contact: "contact", |
| | | edu: "education", |
| | | email: "email", |
| | | idcard: "idcard", |
| | | job: "job", |
| | | natives: "natives", |
| | | pwd: "password", |
| | | sex: "gender", |
| | | status: "status", |
| | | uname: "username", |
| | | depid: "department", |
| | | chineseName: 'Chinese Name [User Name]', |
| | | affiliatedUnit: 'Affiliated unit [on-the-job]', |
| | | mobileNumber: 'Mobile number [receive SMS]', |
| | |
| | | preservation: 'ä¿å', |
| | | close: 'å
³é', |
| | | see: 'æ¥ç', |
| | | index: 'åºå·', |
| | | |
| | | }, |
| | | dataManage: { |
| | | dataManage: 'æ°æ®ç®¡ç', |
| | |
| | | delete: 'å é¤', |
| | | apply: 'ç³è¯·', |
| | | rejection: 'ææ¹', |
| | | companyName: 'åä½åç§°', |
| | | depName: 'åä½åç§°', |
| | | userexport: 'Excelç¨æ·å¯¼åº', |
| | | userinput: 'Excelç¨æ·å¯¼å
¥', |
| | | userStatus: "ç¨æ·ç¶æ", |
| | | uname: "ç¨æ·å", |
| | | pwd: "å¯ç ", |
| | | sex: "æ§å«", |
| | | natives: "ç±è´¯", |
| | | idcard: "è¯ä»¶å·", |
| | | job: "å·¥ä½", |
| | | edu: "æè²", |
| | | addr: "å°å", |
| | | email: "çµåé®ä»¶", |
| | | contact: "èç³»æ¹å¼", |
| | | status: "ç¶æ", |
| | | bak: "夿³¨", |
| | | depid: "æå±é¨é¨", |
| | | chineseName: '䏿å[ç¨æ·å]', |
| | | affiliatedUnit: 'æå±åä½[å¨è]', |
| | | mobileNumber: 'ææºå·[æ¥æ¶çä¿¡]', |
| | |
| | | <template> |
| | | <div class="wrap"> |
| | | <div class="bread"> |
| | | <el-breadcrumb separator="el-icon-arrow-right"> |
| | | <el-breadcrumb-item>{{ breadLabel }}</el-breadcrumb-item> |
| | | </el-breadcrumb> |
| | | </div> |
| | | <div class="treeBox"> |
| | | <el-tree |
| | | ref="tree" |
| | |
| | | :default-expanded-keys="[1, 2, 3, 4, 5, 6, 7, 8, 9]" |
| | | :draggable="draggable" |
| | | @node-drag-start="handleDragStart" |
| | | @node-click="handleNodeClick" |
| | | @node-drop="handleDrop" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | <span class="btnBox" v-show="showEdit"> |
| | | <span class="btnBox"> |
| | | <el-button type="text" size="mini" @click="() => append(data)"> |
| | | <i class="el-icon-circle-plus"></i> |
| | | </el-button> |
| | |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | <!-- <div style="margin-left:130px;"> |
| | | <el-button @click="sendChange">ä¿å</el-button> |
| | | </div> --> |
| | | </div> |
| | | <button @click="sendChange">ä¿å</button> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | queryDirTree, |
| | | queryMaxId, |
| | | updateDirTree, |
| | | deleteDirTree, |
| | | updateDirTrees, |
| | | // deleteDirTree, |
| | | } from "../api/api"; |
| | | export default { |
| | | name: "catalogueTree", |
| | | props: ["showBtn"], |
| | | data() { |
| | | return { |
| | | draggable: false, |
| | | draggable: true, |
| | | id: null, |
| | | showEdit: false, |
| | | showBread: false, |
| | | oriData: [], //åå§æ æ°æ® |
| | | dirData: [], //elæ æ°æ® |
| | | old_dirDat: [], //elæ æ°æ®(æå¨å) |
| | | newData: [], //æå¨ååå§æ°æ® |
| | | breadList: [], //é¢å
屿°ç» |
| | | breadLabel: "", //é¢å
屿å |
| | | filterText: "", |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "name", |
| | |
| | | // 请æ±ç®å½æ |
| | | getDirTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | queryMaxId().then((res) => { |
| | | this.id = res.data; |
| | | }); |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | // è·åç®å½æ æ°æ® |
| | | queryDirTree().then((res) => { |
| | | // console.log(res); |
| | | if (res.status == 200) { |
| | | this.oriData = res.data; |
| | | this.newData = res.data; |
| | | this.dirData = this.treeData(res.data); |
| | | // console.log(this.treeData(this.dirData)); |
| | | if (res.code == 200) { |
| | | this.oriData = res.result; |
| | | this.newData = res.result; |
| | | this.dirData = this.treeData(res.result); |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | // å±äºåä¸å¯¹è±¡é®é¢ï¼ä¾å¦ï¼ä»¤ a=bãc=1 ï¼ç¶åå令 b.c=c ï¼ é£ä¹ a.c=b.c=c=1 ï¼åçï¼åç»ä»¤ c.d=2 ,é£ä¹ a.c.d 乿¯=2ï¼ |
| | | // ç±æ¤å¾ªç¯å¤æ¬¡åï¼å°±è½å½¢æç¸åºçæ å½¢æ°æ®ç»æ |
| | | return father.pid == -1; // è¿åä¸çº§èå |
| | | return father.pid == 0; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | append(data) { |
| | |
| | | name: value, |
| | | pid: data.id, |
| | | // children: [], |
| | | oid: data.children ? data.children.length + 1 : 1, |
| | | orderNum: data.children ? data.children.length + 1 : 1, |
| | | }; |
| | | this.id = newChild.id; //ä¿®æ¹æ°çæå¤§I |
| | | console.log(newChild); |
| | |
| | | } |
| | | data.children.push(newChild); |
| | | this.newData.push(newChild); |
| | | this.sendChange(); |
| | | // this.sendChange(); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | |
| | | for (var i in res) { |
| | | std.push(res[i].id); |
| | | } |
| | | deleteDirTree(std); |
| | | // deleteDirTree(std); |
| | | this.getDirTree(); |
| | | this.$message({ |
| | | type: "success", |
| | |
| | | return p.concat(v.children ? this.flaten(v.children).concat(v) : v); |
| | | }, []); |
| | | }, |
| | | handleNodeClick(data) { |
| | | // console.log(data); |
| | | this.$store.commit("changeNode", data); |
| | | this.breadList = []; |
| | | this.getTreeNode(this.$refs.tree.getNode(data.id)); |
| | | }, |
| | | getTreeNode(node) { |
| | | if (node && node.label) { |
| | | this.breadList.unshift(node.label); |
| | | this.getTreeNode(node.parent); //éå½ |
| | | this.breadLabel = this.breadList.join(">"); |
| | | this.$store.commit("changeCata", this.breadLabel); |
| | | } |
| | | }, |
| | | handleDragStart(node, ev) { |
| | | this.old_dirDat = JSON.parse(JSON.stringify(this.dirData)); //å°å¤ä»½çdiréæ°èµå¼ |
| | | }, |
| | | |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | // console.log("è¢«ææ½èç¹", draggingNode); |
| | | // console.log("è¿å
¥çèç¹", dropNode); |
| | | // console.log("æ¾ç½®ä½ç½®", dropType); |
| | | // console.log("äºä»¶", ev); |
| | | // if (dropType !== "inner") { |
| | | // // 1.ä¿®æ¹ç¶èç¹pid |
| | | // draggingNode.data.pid = dropNode.data.pid; |
| | | // dropNode.parent.childNodes.forEach((item, index) => { |
| | | // // 2.ä¿®æ¹èªèº«é¡ºåºoid |
| | | // item.data.oid = index + 1; |
| | | // }); |
| | | // } |
| | | // // console.log(draggingNode.data.id); |
| | | // let res = this.oriData.filter((item) => item.id == draggingNode.data.id); |
| | | // console.log(res); |
| | | this.$confirm("æ¤æä½å°ä¿åç®å½æ´æ¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let paramData = []; |
| | | //ç¶èç¹ |
| | | let data = dropType != "inner" ? dropNode.parent.data : dropNode.data; |
| | | // ç¶èç¹ä¸å
¨é¨åèç¹ |
| | | let nodeData = |
| | | dropNode.level == 1 && dropType != "inner" ? data : data.children; |
| | | let pid = ""; |
| | | //åæ´èç¹ |
| | | nodeData.forEach((item, i) => { |
| | | if (dropType != "inner") { |
| | | if (draggingNode.data.pid === dropNode.data.pid) { |
| | | pid = item.pid; |
| | | item.pid = item.pid; |
| | | } else { |
| | | pid = dropNode.data.pid; |
| | | item.pid = dropNode.data.pid; |
| | | } |
| | | } else { |
| | | pid = data.id; |
| | | item.pid = data.id; |
| | | } |
| | | let collection = { |
| | | id: item.id, |
| | | name: item.name, |
| | | pid, |
| | | oid: i + 1, |
| | | }; |
| | | paramData.push(collection); |
| | | item.orderNum = i + 1; |
| | | }); |
| | | // console.log(paramData); |
| | | // console.log(nodeData); |
| | | //æ´æ°åå§æ´ä½æ°æ® |
| | | let arr = []; |
| | | this.oriData.forEach((e) => { |
| | | paramData.forEach((item) => { |
| | | nodeData.forEach((item) => { |
| | | if (item.id === e.id) { |
| | | e = item; |
| | | } |
| | |
| | | arr.push(e); |
| | | }); |
| | | this.newData = arr; |
| | | this.sendChange(); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "æ´æ¹æå!", |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | |
| | | this.dirData = this.old_dirDat; //å°å¤ä»½çdiréæ°èµå¼ |
| | | }); |
| | | }, |
| | | |
| | | sendChange() { |
| | | updateDirTree(this.newData).then((res) => { |
| | | updateDirTrees(this.newData).then((res) => { |
| | | console.log(res); |
| | | if (res.status == 200) { |
| | | this.$message({ |
| | |
| | | immediate: true, |
| | | handler(val) { |
| | | if (val) { |
| | | this.showEdit = val; |
| | | this.draggable = val; |
| | | } |
| | | }, |
| | | }, |
| | | showBread: { |
| | | immediate: true, |
| | | handler(val) { |
| | | if (val) this.showBread = val; |
| | | }, |
| | | }, |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="faSub"> |
| | | <template v-for="item in menuData"> |
| | | <el-submenu |
| | | v-if="item.children && item.children.length > 0" |
| | | :key="item.id" |
| | | :index="item.id + ''" |
| | | > |
| | | <template slot="title">{{ |
| | | $store.state.lang == "zh" ? item.cnName : item.enName |
| | | }}</template> |
| | | <MenuTree :menuData="item.children"></MenuTree> |
| | | </el-submenu> |
| | | <el-menu-item |
| | | v-else |
| | | :key="item.id" |
| | | :index="item.url == null ? null : item.url + ''" |
| | | > |
| | | <span slot="title">{{ |
| | | $store.state.lang == "zh" ? item.cnName : item.enName |
| | | }}</span> |
| | | </el-menu-item> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props: ["menuData"], |
| | | name: "MenuTree", |
| | | data() { |
| | | return { |
| | | name: "", |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .faSub { |
| | | /deep/ .el-submenu__title i { |
| | | background-color: transparent !important; |
| | | color: #fff; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="menu"> |
| | | <el-menu |
| | | active-text-color="#ffd04b" |
| | | background-color="#3B4D6E" |
| | | class="el-menu-vertical-demo" |
| | | default-active="2" |
| | | :default-active="activeIndex" |
| | | background-color="#586884" |
| | | text-color="#fff" |
| | | router |
| | | @open="handleOpen" |
| | | @close="handleClose" |
| | | @select="handleselect" |
| | | > |
| | | <el-submenu index="3" class="faSub"> |
| | | <template slot="title"> |
| | | <span>{{ $t('synthesis.synthesis') }}</span> |
| | | </template> |
| | | <el-menu-item index="Synthesis">{{ |
| | | $t('synthesis.synthesis') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="Thematic">{{ |
| | | $t('synthesis.themaic') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="Archive">{{ |
| | | $t('synthesis.archive') |
| | | }}</el-menu-item> |
| | | </el-submenu> |
| | | <el-submenu index="1" class="faSub"> |
| | | <template slot="title"> |
| | | <span>{{ $t('dataManage.dataManage') }}</span> |
| | | </template> |
| | | <el-menu-item index="catalogueManage">{{ |
| | | $t('dataManage.catalogueManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="dataUpdata">{{ |
| | | $t('dataManage.dataUpdata') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="metadataManage">{{ |
| | | $t('dataManage.metadataManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="dataLoading">{{ |
| | | $t('dataManage.dataLoading') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="SpatialData">{{ |
| | | $t('dataManage.SpatialData') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="versionManage">{{ |
| | | $t('dataManage.versionManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="dictionaryManage">{{ |
| | | $t('dataManage.dictionaryManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="styleManage">{{ |
| | | $t('dataManage.styleManage') |
| | | }}</el-menu-item> |
| | | </el-submenu> |
| | | <el-submenu index="2" class="faSub"> |
| | | <template slot="title"> |
| | | <span>{{ $t('operatManage.operatManage') }}</span> |
| | | </template> |
| | | <el-submenu index="2-2"> |
| | | <template slot="title">{{ |
| | | $t('operatManage.systemLayout') |
| | | }}</template> |
| | | <el-menu-item index="menuSettings">{{ |
| | | $t('operatManage.menuSettings') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="parameterConfiguration">{{ |
| | | $t('operatManage.parameterConfiguration') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="rests">{{ |
| | | $t('operatManage.rests') |
| | | }}</el-menu-item> |
| | | </el-submenu> |
| | | <el-menu-item index="authorityManagement">{{ |
| | | $t('operatManage.authorityManagement') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="safetyManagement">{{ |
| | | $t('operatManage.safetyManagement') |
| | | }}</el-menu-item> |
| | | <el-submenu index="2-5"> |
| | | <template slot="title">{{ |
| | | $t('operatManage.operationMonitoring') |
| | | }}</template> |
| | | <el-menu-item index="eventlogManage">{{ |
| | | $t('operatManage.ResourceLog') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="logLog">{{ |
| | | $t('operatManage.logLog') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="operationLog">{{ |
| | | $t('operatManage.operationLog') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="databaseMonitoring">{{ |
| | | $t('operatManage.databaseMonitoring') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="systemMonitoring">{{ |
| | | $t('operatManage.systemMonitoring') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="blackwhiteList" |
| | | >{{ $t('operatManage.blackwhiteList') }} |
| | | </el-menu-item> |
| | | <el-menu-item index="tokentool">{{ |
| | | $t('operatManage.tokentool') |
| | | }}</el-menu-item> |
| | | </el-submenu> |
| | | </el-submenu> |
| | | |
| | | <el-submenu index="4" class="faSub"> |
| | | <template slot="title"> |
| | | <span>{{ $t('userManage.userManage') }}</span> |
| | | </template> |
| | | <el-menu-item index="userInfoManage">{{ |
| | | $t('userManage.userInfoManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="orgManage">{{ |
| | | $t('userManage.orgManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="userAuditing">{{ |
| | | $t('userManage.userAuditing') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="roleManage">{{ |
| | | $t('userManage.roleManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="groupManage">{{ |
| | | $t('userManage.groupManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="authorityManage">{{ |
| | | $t('userManage.authorityManage') |
| | | }}</el-menu-item> |
| | | <el-menu-item index="resourceManage">{{ |
| | | $t('userManage.resManage') |
| | | }}</el-menu-item> |
| | | </el-submenu> |
| | | <!-- <el-submenu index="5" class="faSub"> |
| | | <template slot="title">æ°æ®äº¤æ¢</template> |
| | | <el-menu-item index="5-1">æ°æ®åå</el-menu-item> |
| | | </el-submenu> --> |
| | | <!-- <el-submenu index="6" class="faSub"> |
| | | <template slot="title">æå¡ç®¡ç</template> |
| | | <el-menu-item index="6-1">æ°æ®æå¡æ³¨åå¼å¯</el-menu-item> |
| | | </el-submenu> --> |
| | | <customElMenu :menuData="menuList"></customElMenu> |
| | | </el-menu> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { logout } from '@/api/api'; |
| | | import { removeToken, getToken } from '@/utils/auth'; |
| | | import { logout } from "@/api/api"; |
| | | import { removeToken, getToken } from "@/utils/auth"; |
| | | import customElMenu from "../components/customElMenu.vue"; |
| | | import { queryMenuTree, updateMenuTree, queryMaxId } from "../api/api"; |
| | | |
| | | export default { |
| | | name: 'navMenu', |
| | | name: "navMenu", |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | customElMenu, |
| | | }, |
| | | data() { |
| | | return { |
| | | lang: 'en', |
| | | oriData: [], //åå§æ æ°æ® |
| | | dirData: [], //elæ æ°æ® |
| | | newData: [], //æå¨åæ°æ® |
| | | lang: "zh", |
| | | activeIndex: "/", |
| | | menuList: [], |
| | | editTitle: "", |
| | | showPopover: false, |
| | | showEditInfoWrapper: false, |
| | | showEdit: false, |
| | | editMenu: false, |
| | | editCatalogue: false, |
| | | editUnit: false, |
| | | itemdetail: {}, |
| | | formLabelWidth: "70px", |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getMenuTree(); |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | getMenuTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | // è·åç®å½æ æ°æ® |
| | | queryMenuTree().then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result.length != 0) { |
| | | this.menuList = this.treeData(res.result); |
| | | } else { |
| | | alert("ææ èåæ æ°æ®"); |
| | | } |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | | }); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | // console.log(cloneData); |
| | | if (cloneData.length != 0) { |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | // å±äºåä¸å¯¹è±¡é®é¢ï¼ä¾å¦ï¼ä»¤ a=bãc=1 ï¼ç¶åå令 b.c=c ï¼ é£ä¹ a.c=b.c=c=1 ï¼åçï¼åç»ä»¤ c.d=2 ,é£ä¹ a.c.d 乿¯=2ï¼ |
| | | // ç±æ¤å¾ªç¯å¤æ¬¡åï¼å°±è½å½¢æç¸åºçæ å½¢æ°æ®ç»æ |
| | | return father.pid == 1; // è¿åä¸çº§èå |
| | | }); |
| | | } else { |
| | | alert("ææ èåæ æ°æ®"); |
| | | } |
| | | }, |
| | | logOut() { |
| | | this.$confirm('确认æ¯å¦éåºç»å½?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | this.$confirm("确认æ¯å¦éåºç»å½?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(async () => { |
| | | const data = await logout({ token: getToken() }); |
| | | console.log(data); |
| | | if (data.code != 200) { |
| | | return this.$message.error('éåºç»å½å¤±è´¥'); |
| | | return this.$message.error("éåºç»å½å¤±è´¥"); |
| | | } |
| | | removeToken(); |
| | | this.$router.push('/login'); |
| | | this.$router.push("/login"); |
| | | this.$message({ |
| | | message: 'éåºç»å½æå', |
| | | type: 'success', |
| | | message: "éåºç»å½æå", |
| | | type: "success", |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶', |
| | | type: "info", |
| | | message: "已忶", |
| | | }); |
| | | }); |
| | | }, |
| | | handleOpen(key, keyPath) { |
| | | if ( |
| | | keyPath[1] != 'dataLoading' && |
| | | keyPath[1] != '2-2' && |
| | | keyPath[1] != '2-5' |
| | | ) |
| | | this.$router.push(keyPath[1]); |
| | | }, |
| | | handleClose(key, keyPath) { |
| | | if ( |
| | | keyPath[1] != 'dataLoading' && |
| | | keyPath[1] != '2-5' && |
| | | keyPath[1] != '2-2' |
| | | ) |
| | | this.$router.push(keyPath[1]); |
| | | }, |
| | | handleselect(index) { |
| | | if (index != null) { |
| | | this.$emit('shwoMapView', false); |
| | | } |
| | | }, |
| | | showChange() { |
| | | this.$emit('shwoMapView', true); |
| | | }, |
| | | switchLang() { |
| | | if (this.lang == 'en') { |
| | | //å½åen |
| | | if (this.lang == "en") { |
| | | //è¯è¨æ¢æzh |
| | | this.lang = "zh"; |
| | | //èåæ¢ä¸ºzh |
| | | this.$store.commit("changeLang", "zh"); |
| | | //i18æ¢æzh |
| | | this.$i18n.locale = this.lang; |
| | | this.lang = 'zh'; |
| | | } else { |
| | | this.$i18n.locale = this.lang; |
| | | this.lang = 'en'; |
| | | } |
| | | //å½åzh |
| | | else { |
| | | this.lang = "en"; |
| | | this.$i18n.locale = this.lang; |
| | | this.$store.commit("changeLang", "en"); //ä¼ éç¹å»çèç¹ |
| | | } |
| | | }, |
| | | handleselect(index, indexPath) { |
| | | if (index.indexOf("http") != -1) { |
| | | this.$router.push("/databaseMonitoring"); |
| | | this.$store.commit("getIframe", index); |
| | | } else if (isNaN(Number(index))) { |
| | | this.$router.push(index); |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | $route() { |
| | | this.activeIndex = this.$route.path; |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | requireAuth: true, // æ è¯è¯¥è·¯ç±æ¯å¦éè¦ç»å½ |
| | | }, |
| | | }, |
| | | |
| | | ], |
| | | }, |
| | | ]; |
| | |
| | | state: { |
| | | catalogueName: '', |
| | | cataNode: {}, |
| | | lang: 'zh', |
| | | menuNode: {}, |
| | | verCateNode: {}, |
| | | verCateNodes: {}, |
| | | styleDirCateNodes: {}, |
| | | styleDepCateNodes: {}, |
| | | iframeMsg: '', |
| | | token: getToken(), |
| | | //请æ±è®¡æ° |
| | | apiCount: 0, |
| | |
| | | changeNode(state, msg) { |
| | | state.cataNode = msg; |
| | | }, |
| | | changeLang(state, msg) { |
| | | state.lang = msg; |
| | | }, |
| | | getIframe(state, msg) { |
| | | state.iframeMsg = msg; |
| | | }, |
| | | changeName(state, msg) { |
| | | state.menuNode = msg; |
| | | // console.log(msg); |
| | | |
| | | }, |
| | | verChangeNode(state, msg) { |
| | | state.verCateNode = msg; |
| | | }, |
| | |
| | | <template> |
| | | <div class="pageWrapper"> |
| | | <div class="leftTree"> |
| | | <div class="cataSettings_box"> |
| | | <div class="cataSettings_tree"> |
| | | <My-bread :list="['æ°æ®ç®¡ç', 'ç®å½ç®¡ç']"></My-bread> |
| | | <el-button class="saveBtn" type="primary" size="mini" @click="sendChange" |
| | | >ä¿å</el-button |
| | | > |
| | | <el-divider /> |
| | | <div class="tree"> |
| | | <catalogueTree :showBtn="showBtn"></catalogueTree> |
| | | <div class="cataTreeBox"> |
| | | <el-tree |
| | | ref="tree" |
| | | :props="defaultProps" |
| | | node-key="id" |
| | | :data="dirList" |
| | | :expand-on-click-node="false" |
| | | :default-expand-all="true" |
| | | draggable |
| | | @node-click="handleNodeClick" |
| | | @node-drag-start="handleDragStart" |
| | | @node-drag-end="handleDrop" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | <span class="btnBox"> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="() => append(node, data)" |
| | | > |
| | | <i class="el-icon-circle-plus"></i> |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="() => remove(node, data)" |
| | | > |
| | | <i class="el-icon-delete-solid"></i> |
| | | </el-button> |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | <div class="rightWrapper"> |
| | | <div class="leftTabs"> |
| | | <el-tabs type="border-card"> |
| | | <el-tab-pane label="æ¥ç"> |
| | | <el-form :model="form" :inline="true"> |
| | | <el-form-item label="ç®å½ç¼ç "> |
| | | <el-input v-model="this.$store.state.cataNode.id" disabled /> |
| | | <div class="itemSettings"> |
| | | <div class="title_box"> |
| | | <h4>详ç»ä¿¡æ¯</h4> |
| | | </div> |
| | | <div class="form_box"> |
| | | <el-form :model="itemdetail"> |
| | | <!-- <el-form-item label="ç®å½ç¼ç " :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.id" disabled /> |
| | | </el-form-item> --> |
| | | <el-form-item label="ç®å½åç§°" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.name" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç®å½åç§°" label-width="100px"> |
| | | <el-input v-model="this.$store.state.cataNode.name" disabled /> |
| | | </el-form-item> |
| | | <el-form-item label="ç®å½è¯´æ"> |
| | | <el-form-item label="ç®å½è¯´æ" :label-width="formLabelWidth"> |
| | | <el-input |
| | | v-model="form.desc" |
| | | v-model="itemdetail.descr" |
| | | type="textarea" |
| | | resize="none" |
| | | style="height: 100%; overflow: auto" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç®å½å¤æ³¨"> |
| | | <el-input v-model="form.notes" type="textarea" resize="none" /> |
| | | <el-form-item label="ç®å½å¤æ³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.bak" type="textarea" resize="none" /> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: 450px"> |
| | | <el-button type="primary" size="mini" @click="onSubmit" |
| | | >ç¡®å®</el-button |
| | | <div class="btnBox"> |
| | | <el-button type="primary" @click="updMenu">ä¿å</el-button> |
| | | <el-button type="primary" @click="reset">åæ¶</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | ' |
| | | |
| | | <el-dialog title="æ°å¢åç®å½" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="ruleForm" ref="ruleForm" :rules="rules"> |
| | | <el-form-item |
| | | label="ç®å½åç§°" |
| | | prop="name" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-button |
| | | style="margin-left: 50px" |
| | | size="mini" |
| | | @click="cancel" |
| | | >åæ¶</el-button |
| | | <el-input v-model="ruleForm.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | prop="descr" |
| | | label="ç®å½è¯´æ" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | <el-input v-model="ruleForm.descr" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="bak" label="ç®å½å¤æ³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="resetForm('ruleForm')">åæ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitForm('ruleForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >æäº¤</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | queryDirTree, |
| | | queryMaxId, |
| | | updateDirTrees, |
| | | insertDir, |
| | | deleteDir, |
| | | } from "../../api/api"; |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | import catalogueTree from "../../components/catalogueTree.vue"; |
| | | export default { |
| | | name: "catalogueManage", |
| | | components: { |
| | | catalogueTree, |
| | | MyBread, |
| | | }, |
| | | data() { |
| | | let validName = (rule, value, callback) => { |
| | | if (value === "") { |
| | | return callback(new Error("ç®å½åç§°ä¸è½ä¸ºç©º")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | showBtn: true, |
| | | form: { |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "name", |
| | | }, |
| | | fullscreenLoading: false, |
| | | oriData: [], //åå§æ æ°æ® |
| | | dirList: [], //elæ æ°æ® |
| | | old_dirDat: [], //elæ æ°æ®(æå¨å) |
| | | newData: [], //æå¨ååå§æ°æ® |
| | | itemdetail: {}, |
| | | backUpData: {}, |
| | | formLabelWidth: "170px", |
| | | delChildIDs: "", |
| | | dialogFormVisible: false, |
| | | ruleForm: { |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | name: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | descr: "", |
| | | bak: "", |
| | | }, |
| | | rules: { |
| | | name: [{ validator: validName, trigger: "blur" }], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | // 请æ±ç®å½æ |
| | | getDirTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | // è·åç®å½æ æ°æ® |
| | | queryDirTree().then((res) => { |
| | | // console.log(res); |
| | | if (res.code == 200) { |
| | | this.oriData = res.result; |
| | | this.newData = res.result; |
| | | this.dirList = this.treeData(res.result); |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | | }); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | // å±äºåä¸å¯¹è±¡é®é¢ï¼ä¾å¦ï¼ä»¤ a=bãc=1 ï¼ç¶åå令 b.c=c ï¼ é£ä¹ a.c=b.c=c=1 ï¼åçï¼åç»ä»¤ c.d=2 ,é£ä¹ a.c.d 乿¯=2ï¼ |
| | | // ç±æ¤å¾ªç¯å¤æ¬¡åï¼å°±è½å½¢æç¸åºçæ å½¢æ°æ®ç»æ |
| | | return father.pid == 0; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | append(node, data) { |
| | | this.dialogFormVisible = true; |
| | | this.ruleForm.pid = data.id; |
| | | this.ruleForm.orderNum = node.childNodes.length + 1; |
| | | this.ruleForm.level = data.level + 1; |
| | | // console.log(data); |
| | | // console.log(node); |
| | | }, |
| | | resetForm(formName) { |
| | | this.dialogFormVisible = false; |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].resetFields(); |
| | | }); |
| | | }, |
| | | submitForm(formName) { |
| | | this.$nextTick(() => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.fullscreenLoading = true; |
| | | insertDir(this.ruleForm) |
| | | .then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | message: "æ·»å æå", |
| | | type: "success", |
| | | }); |
| | | this.dialogFormVisible = false; |
| | | this.$refs[formName].resetFields(); |
| | | } |
| | | }, 2000); |
| | | }) |
| | | .catch((res) => { |
| | | console.log(res); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | | // alert("ç®å½åç§°ä¸è½ä¸ºç©º"); |
| | | return false; |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | remove(node, data) { |
| | | this.$confirm("æ¤æä½å°å é¤è¯¥èç¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // console.log(node); |
| | | // console.log(data); |
| | | |
| | | //å
å¼éæ°æåº |
| | | const parent = node.parent; |
| | | const children = parent.data.children || parent.data; |
| | | children.splice(data.orderNum - 1, 1); |
| | | children.forEach((item, index) => { |
| | | item.orderNum = index + 1; |
| | | }); |
| | | |
| | | this.traverseArr(data); //è·åå é¤çåID |
| | | let delIDs = this.delChildIDs + "id=" + data.id; //è¦å é¤çå
¨é¨ID |
| | | console.log(delIDs); |
| | | Promise.all([deleteDir(delIDs), updateDirTrees(children)]) |
| | | .then((res) => { |
| | | console.log(res); |
| | | if (res[0].code == 200 && res[1].code == 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "å 餿å!", |
| | | }); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "å é¤å¤±è´¥", |
| | | }); |
| | | }); |
| | | |
| | | //éç½®è¦å é¤çåID |
| | | this.delChildIDs = ""; |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已忶å é¤", |
| | | }); |
| | | }); |
| | | // this.dialogMessage="æ¯å¦å é¤" |
| | | // this.dialogFlag = 1; |
| | | // this.dialogFrom ={ |
| | | // node:node, |
| | | // val:data |
| | | // } |
| | | // this.dialogVisible=true;//ç®å½æ æ´æ¹å¼¹çª |
| | | // const parent = node.parent; |
| | | // const children = parent.data.children || parent.data; |
| | | // const index = children.findIndex((d) => d.id === data.id); |
| | | // let res = children.splice(index, 1); |
| | | // // console.log(res); |
| | | // // console.log(data); |
| | | // console.log(this.flaten(res)); |
| | | }, |
| | | traverseArr(obj) { |
| | | if (obj.children) { |
| | | return obj.children.forEach((item) => { |
| | | // console.log(item.id + "---" + item.name); |
| | | this.delChildIDs += "id=" + item.id + "&"; |
| | | this.traverseArr(item); |
| | | }); |
| | | } |
| | | return; |
| | | }, |
| | | flaten(arr) { |
| | | return arr.reduce((p, v, i) => { |
| | | for (let i = 0; i < p.length; i++) { |
| | | if (p[i].children) { |
| | | delete p[i].children; |
| | | } |
| | | } |
| | | return p.concat(v.children ? this.flaten(v.children).concat(v) : v); |
| | | }, []); |
| | | }, |
| | | handleDragStart(node, ev) { |
| | | this.old_dirDat = JSON.parse(JSON.stringify(this.dirList)); //å°å¤ä»½çdiréæ°èµå¼ |
| | | }, |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | this.$confirm("æ¤æä½å°ä¿åç®å½æ´æ¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //ç¶èç¹ |
| | | let data = dropType != "inner" ? dropNode.parent.data : dropNode.data; |
| | | // ç¶èç¹ä¸å
¨é¨åèç¹ |
| | | let nodeData = |
| | | dropNode.level == 1 && dropType != "inner" ? data : data.children; |
| | | //åæ´èç¹ |
| | | nodeData.forEach((item, i) => { |
| | | if (dropType != "inner") { |
| | | if (draggingNode.data.pid === dropNode.data.pid) { |
| | | item.pid = item.pid; |
| | | } else { |
| | | item.pid = dropNode.data.pid; |
| | | } |
| | | } else { |
| | | item.pid = data.id; |
| | | } |
| | | item.orderNum = i + 1; |
| | | }); |
| | | // console.log(nodeData); |
| | | //æ´æ°åå§æ´ä½æ°æ® |
| | | let arr = []; |
| | | this.oriData.forEach((e) => { |
| | | nodeData.forEach((item) => { |
| | | if (item.id === e.id) { |
| | | e = item; |
| | | } |
| | | }); |
| | | arr.push(e); |
| | | }); |
| | | this.newData = arr; |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "å·²åæ¶æ´æ¹", |
| | | }); |
| | | this.dirList = this.old_dirDat; //å°å¤ä»½çdiréæ°èµå¼ |
| | | }); |
| | | }, |
| | | sendChange() { |
| | | updateDirTrees(this.newData).then((res) => { |
| | | // console.log(res); |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "æ´æ°æå!", |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | handleNodeClick(data) { |
| | | // console.log(data); |
| | | this.backUpData = JSON.stringify(data); |
| | | this.itemdetail = JSON.parse(JSON.stringify(data)); |
| | | }, |
| | | updMenu() { |
| | | this.$message({ |
| | | message: "ä¿®æ¹æå", |
| | | type: "success", |
| | | }); |
| | | }, |
| | | cancel() { |
| | | reset() { |
| | | this.$message("已忶"); |
| | | }, |
| | | // this.updateForm.name = this.$store.state.catalogueName; |
| | | }, |
| | | mounted() { |
| | | this.getDirTree(); |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .pageWrapper { |
| | | .cataSettings_box { |
| | | border-radius: 10px; |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | height: 98.5%; |
| | | margin-top: 6px; |
| | | margin-left: 16px; |
| | | .leftTree { |
| | | .cataSettings_tree { |
| | | position: relative; |
| | | width: 344px; |
| | | height: 100%; |
| | | background: #f4f8ff; |
| | | background: rgb(240, 242, 245); |
| | | padding: 20px; |
| | | border-radius: 10px; |
| | | overflow: hidden; |
| | | .breadcrumb { |
| | | margin: 8px 0 0 24px; |
| | | } |
| | | hr { |
| | | width: 304px; |
| | | margin-top: 9px; |
| | | background: #d3d3d3; |
| | | } |
| | | .tree { |
| | | height: 90%; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | padding-left: 5px; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .cataTreeBox { |
| | | height: 88%; |
| | | width: 100%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin-left: 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | .rightWrapper { |
| | | width: calc(100% - 350px); |
| | | } |
| | | } |
| | | } |
| | | .itemSettings { |
| | | width: calc(100% - 344px); |
| | | border-radius: 10px; |
| | | background: rgb(240, 242, 245); |
| | | margin-left: 10px; |
| | | height: 100%; |
| | | margin-left: 6px; |
| | | background: #f4f8ff; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | | display: flex; |
| | | border-radius: 10px; |
| | | overflow: auto; |
| | | .leftTabs { |
| | | width: 99%; |
| | | margin: 17px auto 0; |
| | | /deep/.el-tabs--border-card { |
| | | border-radius: 3px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | } |
| | | /deep/.el-tabs--border-card > .el-tabs__content { |
| | | padding: 30px 0 0 38px; |
| | | height: 87vh; |
| | | .form_box { |
| | | border: 1px solid rgb(202, 201, 204); |
| | | border-radius: 10px; |
| | | background: #fff; |
| | | padding-top: 30px; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | .el-input, |
| | | /deep/ .el-textarea { |
| | | width: 400px; |
| | | } |
| | | .el-input { |
| | | width: 467px; |
| | | } |
| | | /deep/ .el-textarea__inner { |
| | | width: 1066px; |
| | | height: 131px; |
| | | overflow: auto; |
| | | .btnBox { |
| | | margin: 0 270px 20px; |
| | | width: 200px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div class="databaseMonitoring_box"> |
| | | <My-bread |
| | | :list="[ |
| | | `${$t('operatManage.operatManage')}`, |
| | | `${$t('operatManage.databaseMonitoring')}`, |
| | | ]" |
| | | ></My-bread> |
| | | <el-divider /> |
| | | <div class="table_box"> |
| | | <iframe |
| | | id="iframe" |
| | |
| | | |
| | | <script> |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | import { getToken } from "../../utils/auth.js"; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | |
| | | data() { |
| | | //è¿éåæ¾æ°æ® |
| | | return { |
| | | sql_Url: sql_Url |
| | | sql_Url: "", |
| | | }; |
| | | }, |
| | | //æ¹æ³éå |
| | | methods: { |
| | | handleSelectionChange() { }, |
| | | getUrl() { |
| | | if (this.$store.state.iframeMsg.indexOf("Token=") != -1) { |
| | | this.sql_Url = this.$store.state.iframeMsg + getToken(); |
| | | } else { |
| | | this.sql_Url = this.$store.state.iframeMsg; |
| | | } |
| | | }, |
| | | created() { }, |
| | | }, |
| | | created() { |
| | | this.getUrl(); |
| | | }, |
| | | mounted() { }, |
| | | }; |
| | | </script> |
| | |
| | | <div class="menuSettings_box"> |
| | | <div class="menuSettings_tree"> |
| | | <My-bread :list="['è¿ç»´ç®¡ç', 'èå设置']"></My-bread> |
| | | <el-button class="saveBtn" type="primary" size="mini" @click="sendChange" |
| | | >ä¿å</el-button |
| | | > |
| | | <el-divider /> |
| | | <div class="menuTreeBox"> |
| | | <el-tree |
| | | :data="data" |
| | | ref="tree" |
| | | :props="defaultProps" |
| | | show-checkbox |
| | | @check-change="handleCheckChange" |
| | | /> |
| | | node-key="id" |
| | | :data="menuList" |
| | | :expand-on-click-node="false" |
| | | :default-expand-all="true" |
| | | draggable |
| | | @node-click="handleNodeClick" |
| | | @node-drag-start="handleDragStart" |
| | | @node-drag-end="handleDrop" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | </span> |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | <div class="menuSettings"> |
| | | <div class="btn_box"> |
| | | <el-button type="primary">æ°å»º</el-button> |
| | | <el-button type="primary">ä¿®æ¹</el-button> |
| | | <!-- <el-button class="delBtn">æ¸
é¤</el-button> --> |
| | | <div class="title_box"> |
| | | <h4>详ç»ä¿¡æ¯</h4> |
| | | </div> |
| | | <div class="table_box"> |
| | | <el-table :data="tableData" stripe> |
| | | <el-table-column prop="menuname" label="èååç§°" /> |
| | | <el-table-column prop="parentmenuname" label="ç¶èååç§°" /> |
| | | <el-table-column prop="dataBulk" label="æ°æ®æ°é" /> |
| | | <el-table-column prop="creationtime" label="å建æ¶é´" /> |
| | | <el-table-column prop="creationname" label="å建人" /> |
| | | <el-table-column fixed="right" label="æä½" width="280"> |
| | | <template #default> |
| | | <!-- <el-button type="primary" size="small">ä¿®æ¹</el-button> --> |
| | | <el-button type="primary" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 40px" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="10" |
| | | > |
| | | </el-pagination> |
| | | <div class="form_box"> |
| | | <el-form :model="itemdetail"> |
| | | <el-form-item label="è±æåç§°" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.enName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="䏿åç§°" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.cnName" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="徿 " :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.icon" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦æ¾ç¤º" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.isShow" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="èåUrl" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.url" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ææ" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.perms" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç±»å" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.type" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <div class="btnBox"> |
| | | <el-button type="primary" @click="updMenu">ä¿å</el-button> |
| | | <el-button type="primary" @click="reset">åæ¶</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | |
| | | import { |
| | | queryMenuTree, |
| | | updateMenuTree, |
| | | updateMenuTrees, |
| | | queryMaxId, |
| | | } from "../../api/api"; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | |
| | | |
| | | data() { |
| | | return { |
| | | currentPage4: 1, |
| | | tableData: [ |
| | | { |
| | | menuname: "æ°æ®è´¨æ£", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "æ°æ®äº¤æ¢", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "æ°æ®ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "æå¡ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "综åå±ç¤º", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "è¿ç»´ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "èå管ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "ç¨æ·ç®¡ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "ç³»ç»ç®¡ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | { |
| | | menuname: "ç³»ç»é
ç½®", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "admin", |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | label: "cnName", |
| | | }, |
| | | data: [ |
| | | { |
| | | label: "æ°æ®è´¨æ£", |
| | | oriData: [], //åå§æ æ°æ® |
| | | menuList: [], //elæ æ°æ® |
| | | old_dirDat: [], //elæ æ°æ®(æå¨å) |
| | | newData: [], //æå¨ååå§æ°æ® |
| | | itemdetail: { |
| | | cnName: "", |
| | | enName: "", |
| | | icon: null, |
| | | isShow: null, |
| | | perms: null, |
| | | url: "", |
| | | type: null, |
| | | bak: "", |
| | | }, |
| | | { |
| | | label: "æ°æ®äº¤æ¢", |
| | | }, |
| | | { |
| | | label: "æ°æ®ç®¡ç", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "æå¡ç®¡ç", |
| | | }, |
| | | { |
| | | label: "综åå±ç¤º", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "è¿ç»´ç®¡ç", |
| | | children: [ |
| | | { |
| | | label: "Level two 3-1", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-1-1", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "Level two 3-2", |
| | | children: [ |
| | | { |
| | | label: "Level three 3-2-1", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | backUpData: {}, |
| | | formLabelWidth: "170px", |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`); |
| | | getMenuTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | queryMenuTree().then((res) => { |
| | | if (res.code == 200) { |
| | | this.menuList = this.treeData(res.result); |
| | | this.oriData = res.result; |
| | | this.newData = res.result; |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | | }); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | console.log(`å½å页: ${val}`); |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | return father.pid == 1; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | handleCheckChange() {}, |
| | | append(data) { |
| | | this.$prompt("请è¾å
¥åç§°", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | }) |
| | | .then(({ value }) => { |
| | | const newChild = { |
| | | id: this.id + 1, |
| | | name: value, |
| | | pid: data.id, |
| | | // children: [], |
| | | orderNum: data.children ? data.children.length + 1 : 1, |
| | | }; |
| | | this.id = newChild.id; //ä¿®æ¹æ°çæå¤§I |
| | | console.log(newChild); |
| | | |
| | | if (!data.children) { |
| | | this.$set(data, "children", []); |
| | | } |
| | | data.children.push(newChild); |
| | | this.newData.push(newChild); |
| | | // this.sendChange(); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "åæ¶è¾å
¥", |
| | | }); |
| | | }); |
| | | }, |
| | | created() {}, |
| | | remove(node, data) { |
| | | this.$confirm("æ¤æä½å°å é¤è¯¥èç¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | const parent = node.parent; |
| | | const children = parent.data.children || parent.data; |
| | | const index = children.findIndex((d) => d.id === data.id); |
| | | let res = children.splice(index, 1); |
| | | var std = []; |
| | | for (var i in res) { |
| | | std.push(res[i].id); |
| | | } |
| | | // deleteDirTree(std); |
| | | this.getDirTree(); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "å 餿å!", |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已忶å é¤", |
| | | }); |
| | | }); |
| | | // this.dialogMessage="æ¯å¦å é¤" |
| | | // this.dialogFlag = 1; |
| | | // this.dialogFrom ={ |
| | | // node:node, |
| | | // val:data |
| | | // } |
| | | // this.dialogVisible=true;//ç®å½æ æ´æ¹å¼¹çª |
| | | // const parent = node.parent; |
| | | // const children = parent.data.children || parent.data; |
| | | // const index = children.findIndex((d) => d.id === data.id); |
| | | // let res = children.splice(index, 1); |
| | | // // console.log(res); |
| | | // // console.log(data); |
| | | // console.log(this.flaten(res)); |
| | | }, |
| | | flaten(arr) { |
| | | return arr.reduce((p, v, i) => { |
| | | for (let i = 0; i < p.length; i++) { |
| | | if (p[i].children) { |
| | | delete p[i].children; |
| | | } |
| | | } |
| | | return p.concat(v.children ? this.flaten(v.children).concat(v) : v); |
| | | }, []); |
| | | }, |
| | | handleDragStart(node, ev) { |
| | | this.old_dirDat = JSON.parse(JSON.stringify(this.menuList)); //å°å¤ä»½çdiréæ°èµå¼ |
| | | }, |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | this.$confirm("æ¯å¦è°æ´è³è¯¥ä½ç½®?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //ç¶èç¹ |
| | | let data = dropType != "inner" ? dropNode.parent.data : dropNode.data; |
| | | // ç¶èç¹ä¸å
¨é¨åèç¹ |
| | | let nodeData = |
| | | dropNode.level == 1 && dropType != "inner" ? data : data.children; |
| | | //åæ´èç¹ |
| | | // console.log(nodeData); |
| | | nodeData.forEach((item, i) => { |
| | | if (dropType != "inner") { |
| | | if (draggingNode.data.pid === dropNode.data.pid) { |
| | | item.pid = item.pid; |
| | | } else { |
| | | item.pid = dropNode.data.pid; |
| | | } |
| | | } else { |
| | | item.pid = data.id; |
| | | } |
| | | item.orderNum = i + 1; |
| | | }); |
| | | console.log(nodeData); |
| | | //æ´æ°åå§æ´ä½æ°æ® |
| | | let arr = []; |
| | | this.oriData.forEach((e) => { |
| | | nodeData.forEach((item) => { |
| | | if (item.id === e.id) e = item; |
| | | }); |
| | | arr.push(e); |
| | | }); |
| | | this.newData = arr; |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "å·²åæ¶æ´æ¹", |
| | | }); |
| | | this.menuList = this.old_dirDat; //å°å¤ä»½çdiréæ°èµå¼ |
| | | }); |
| | | }, |
| | | sendChange() { |
| | | updateMenuTrees(this.newData).then((res) => { |
| | | if (res.code == 200) { |
| | | alert("æ´æ¹å®æãè¯·åæ¶å·æ°é¡µé¢ï¼"); |
| | | return; |
| | | } else { |
| | | alert("ä¿®æ¹å¤±è´¥ï¼è¯·éè¯ï¼"); |
| | | } |
| | | }); |
| | | }, |
| | | handleNodeClick(data) { |
| | | // console.log(data); |
| | | this.backUpData = JSON.stringify(data); |
| | | this.itemdetail = JSON.parse(JSON.stringify(data)); |
| | | }, |
| | | updMenu() { |
| | | updateMenuTree(this.itemdetail).then((res) => { |
| | | // console.log(res); |
| | | if (res.code == 200) { |
| | | alert("ä¿®æ¹å®æï¼è¯·åæ¶å·æ°é¡µé¢ï¼"); |
| | | return; |
| | | } else { |
| | | alert("ä¿®æ¹å¤±è´¥ï¼è¯·éè¯ï¼"); |
| | | } |
| | | }); |
| | | }, |
| | | reset() { |
| | | this.itemdetail = JSON.parse(this.backUpData); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.getMenuTree(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | .menuSettings_tree { |
| | | position: relative; |
| | | width: 344px; |
| | | height: 100%; |
| | | background: rgb(240, 242, 245); |
| | |
| | | border-radius: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .menuTreeBox { |
| | | height: 90%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | /deep/ .el-tree-node__label { |
| | | font-size: 18px; |
| | | } |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | // /deep/ .el-tree-node__label { |
| | | // font-size: 18px; |
| | | // } |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin-left: 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | .btn_box { |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | |
| | | border-radius: 10px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | .delBtn { |
| | | margin-left: auto; |
| | | } |
| | | } |
| | | .table_box { |
| | | .form_box { |
| | | border: 1px solid rgb(202, 201, 204); |
| | | border-radius: 10px; |
| | | background: #fff; |
| | | padding: 10px; |
| | | padding-top: 30px; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | .el-table__body { |
| | | width: 100% !important; |
| | | .el-input { |
| | | width: 400px; |
| | | } |
| | | .btnBox { |
| | | margin: 0 270px 20px; |
| | | width: 200px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div class="menuSettings_box"> |
| | | <div class="menuSettings_tree"> |
| | | <My-bread |
| | | :list="[ |
| | | `${$t('userManage.userManage')}`, |
| | | `${$t('userManage.orgManage')}`, |
| | | ]" |
| | | ></My-bread> |
| | | <el-divider /> |
| | | <el-tree |
| | | :data="data" |
| | | node-key="id" |
| | | default-expand-all |
| | | @node-drag-start="handleDragStart" |
| | | @node-drag-enter="handleDragEnter" |
| | | @node-drag-leave="handleDragLeave" |
| | | @node-drag-over="handleDragOver" |
| | | @node-drag-end="handleDragEnd" |
| | | @node-drop="handleDrop" |
| | | draggable |
| | | :allow-drop="allowDrop" |
| | | :allow-drag="allowDrag" |
| | | <My-bread :list="['è¿ç»´ç®¡ç', 'åä½ç®¡ç']"></My-bread> |
| | | <el-button class="saveBtn" type="primary" size="mini" @click="sendChange" |
| | | >ä¿å</el-button |
| | | > |
| | | <el-divider /> |
| | | <div class="menuTreeBox"> |
| | | <el-tree |
| | | ref="tree" |
| | | :props="defaultProps" |
| | | node-key="id" |
| | | :data="depList" |
| | | :expand-on-click-node="false" |
| | | :default-expand-all="true" |
| | | draggable |
| | | @node-click="handleNodeClick" |
| | | @node-drag-start="handleDragStart" |
| | | @node-drag-end="handleDrop" |
| | | > |
| | | <span class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <span>{{ node.label }}</span> |
| | | <span class="btnBox"> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="() => append(node, data)" |
| | | > |
| | | <i class="el-icon-circle-plus"></i> |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="mini" |
| | | @click="() => remove(node, data)" |
| | | > |
| | | <i class="el-icon-delete-solid"></i> |
| | | </el-button> |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | </div> |
| | | <div class="menuSettings"> |
| | | <div class="btn_box"> |
| | | <div class="herder_box"> |
| | | {{ $t("operatManage.operationLogObj.queryRegion") }} |
| | | </div> |
| | | <el-form :inline="true" :model="formInline" size="small"> |
| | | <el-form-item :label="$t('userManage.orgManageObj.companyName')"> |
| | | <div class="itemSettings"> |
| | | <div class="title_box"> |
| | | <h4>详ç»ä¿¡æ¯</h4> |
| | | </div> |
| | | <div class="form_box"> |
| | | <el-form :model="itemdetail"> |
| | | <el-form-item label="åç§°" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç®ç§°" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.sname" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¼ç " :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.code" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æºæä»£ç " :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.uncode" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°å" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.addr" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»æ¹å¼" :label-width="formLabelWidth"> |
| | | <el-input |
| | | v-model="formInline.user" |
| | | :placeholder="$t('userManage.orgManageObj.companyName')" |
| | | v-model="itemdetail.contact" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.flatType')"> |
| | | <el-select |
| | | v-model="formInline.region" |
| | | :placeholder="$t('userManage.orgManageObj.flatType')" |
| | | > |
| | | <el-option label="å
¨é¨" value="å
¨é¨"></el-option> |
| | | <el-option label="æµ·åè¡æ¿é¨é¨" value="æµ·åè¡æ¿é¨é¨"></el-option> |
| | | <el-option label="æµ·åçæµé¨é¨" value="æµ·åçæµé¨é¨"></el-option> |
| | | <el-option label="æµ·çæ§æ³é¨é¨" value="æµ·çæ§æ³é¨é¨"></el-option> |
| | | <el-option label="ææ¯ä¸å¿" value="ææ¯ä¸å¿"></el-option> |
| | | <el-option label="ä¿¡æ¯ä¸å¿" value="ä¿¡æ¯ä¸å¿"></el-option> |
| | | <el-option label="ç¨æµ·åä½" value="ç¨æµ·åä½"></el-option> |
| | | </el-select> |
| | | <el-form-item label="ä¼ ç" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.fax" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | @click="onSubmit" |
| | | icon="el-icon-search" |
| | | plain |
| | | >{{ $t("userManage.orgManageObj.inquire") }}</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-delete" plain>{{ |
| | | $t("userManage.orgManageObj.delete") |
| | | }}</el-button> |
| | | <el-form-item label="çµåé®ä»¶" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.email" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="鮿¿ç¼ç " :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.post" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç½ç«å°å" :label-width="formLabelWidth"> |
| | | <el-input |
| | | v-model="itemdetail.website" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="itemdetail.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <div class="btnBox"> |
| | | <el-button type="primary" @click="updDep">ä¿å</el-button> |
| | | <el-button type="primary" @click="reset">åæ¶</el-button> |
| | | </div> |
| | | </el-form> |
| | | <div> |
| | | <el-button |
| | | type="success" |
| | | @click="outerVisible = true" |
| | | icon="el-icon-circle-plus" |
| | | size="small" |
| | | >{{ $t("userManage.orgManageObj.add") }}</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="table_box"> |
| | | <el-table :data="tableData" stripe> |
| | | <el-table-column |
| | | type="index" |
| | | width="80" |
| | | :label="$t('userManage.orgManageObj.num')" |
| | | <el-dialog title="æ°å¢åç®å½" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="ruleForm" ref="ruleForm" :rules="rules"> |
| | | <el-form-item |
| | | label="ç®å½åç§°" |
| | | prop="name" |
| | | :label-width="formLabelWidth" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="menuname" |
| | | :label="$t('userManage.orgManageObj.companyName')" |
| | | /> |
| | | <el-table-column |
| | | prop="parentmenuname" |
| | | :label="$t('userManage.orgManageObj.flatType')" |
| | | /> |
| | | <el-table-column |
| | | prop="dataBulk" |
| | | :label="$t('userManage.orgManageObj.phone')" |
| | | /> |
| | | <el-table-column |
| | | fixed="right" |
| | | :label="$t('userManage.orgManageObj.operate')" |
| | | width="280" |
| | | > |
| | | <template #default> |
| | | <el-button type="warning" size="small">{{ |
| | | $t("userManage.orgManageObj.edit") |
| | | }}</el-button> |
| | | <el-button type="success" size="small">{{ |
| | | $t("userManage.orgManageObj.add") |
| | | }}</el-button> |
| | | <el-button type="danger" size="small">{{ |
| | | $t("userManage.orgManageObj.delete") |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 40px" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="10" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="æ°å¢" :visible.sync="outerVisible" :modal-append-to-body="true" :append-to-body="true"> |
| | | <el-dialog |
| | | width="30%" |
| | | :title="dialogTitle" |
| | | :visible.sync="innerVisible" |
| | | append-to-body |
| | | > |
| | | <el-form :inline="true" :model="formInline" size="small"> |
| | | <el-form-item :label="$t('userManage.orgManageObj.username')"> |
| | | <el-input |
| | | v-model="formInline.user" |
| | | :placeholder="$t('userManage.orgManageObj.username')" |
| | | ></el-input> |
| | | <el-input v-model="ruleForm.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | @click="onSubmit" |
| | | icon="el-icon-search" |
| | | plain |
| | | >{{ $t("userManage.orgManageObj.inquire") }}</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-delete" plain>{{ |
| | | $t("userManage.orgManageObj.delete") |
| | | }}</el-button> |
| | | <el-form-item label="ç®å½è¯´æ" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.descr" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="tableData1" |
| | | tooltip-effect="dark" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="name" :label="$t('userManage.orgManageObj.ChineseNameUsername')"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" :label="$t('userManage.orgManageObj.phoneNumberToTeceiveShortMessages')"> |
| | | </el-table-column> |
| | | <el-table-column prop="address" :label="$t('userManage.orgManageObj.status')"> </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 40px" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="10" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary">{{$t('userManage.orgManageObj.confirm')}}</el-button> |
| | | <el-button @click="innerVisible = false">{{$t('userManage.orgManageObj.close')}}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | width="30%" |
| | | title="è¡æ¿åºå-å表" |
| | | :visible.sync="innerVisible1" |
| | | append-to-body |
| | | > |
| | | <el-form :inline="true" :model="formInline" size="small"> |
| | | <el-form-item :label="$t('userManage.orgManageObj.name')"> |
| | | <el-input |
| | | v-model="formInline.user" |
| | | :placeholder="$t('userManage.orgManageObj.name')" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | @click="onSubmit" |
| | | icon="el-icon-search" |
| | | plain |
| | | >{{ $t("userManage.orgManageObj.inquire") }}</el-button |
| | | > |
| | | <el-button type="primary" icon="el-icon-delete" plain>{{ |
| | | $t("userManage.orgManageObj.delete") |
| | | }}</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="tableData1" |
| | | tooltip-effect="dark" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="name" :label="$t('userManage.orgManageObj.name')"> </el-table-column> |
| | | <el-table-column prop="address" :label="$t('userManage.orgManageObj.coding')" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | :label="$t('userManage.orgManageObj.codeOfAdministrativeDivision')" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | :label="$t('userManage.orgManageObj.LevelForExaminationAndApproval')" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | :label="$t('userManage.orgManageObj.seaAreaUseClass')" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 40px" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="currentPage4" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="10" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary">{{$t('userManage.orgManageObj.confirm')}}</el-button> |
| | | <el-button @click="innerVisible1 = false">{{$t('userManage.orgManageObj.close')}}</el-button> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="150px" |
| | | > |
| | | <div class="flexForm"> |
| | | <div style="width: 50%"> |
| | | <el-form-item :label="$t('userManage.orgManageObj.companyName')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.pinyinInitials')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.abbreviation')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.unitCode')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.organizationCode')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.companyAdministrator')" prop="name"> |
| | | <el-input |
| | | v-model="ruleForm.name" |
| | | :disabled="true" |
| | | style="width: calc(100% - 138px)" |
| | | ></el-input> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-more" |
| | | @click="innerVisible = true" |
| | | ></el-button> |
| | | <el-button type="danger">æ¸
é¤</el-button> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.phone')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div style="width: 50%"> |
| | | <el-form-item :label="$t('userManage.orgManageObj.picture')"> |
| | | <el-upload |
| | | :auto-upload="false" |
| | | class="avatar-uploader" |
| | | action="#" |
| | | :show-file-list="false" |
| | | :http-request="request" |
| | | :limit="1" |
| | | > |
| | | <img v-if="imageUrl" :src="imageUrl" class="avatar" /> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.flatType')" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.region" |
| | | placeholder="" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | label="æµ·åè¡æ¿é¨é¨" |
| | | value="æµ·åè¡æ¿é¨é¨" |
| | | ></el-option> |
| | | <el-option |
| | | label="æµ·åçæµé¨é¨" |
| | | value="æµ·åçæµé¨é¨" |
| | | ></el-option> |
| | | <el-option |
| | | label="æµ·çæ§æ³é¨é¨" |
| | | value="æµ·çæ§æ³é¨é¨" |
| | | ></el-option> |
| | | <el-option label="ææ¯ä¸å¿" value="ææ¯ä¸å¿"></el-option> |
| | | <el-option label="ä¿¡æ¯ä¸å¿" value="ä¿¡æ¯ä¸å¿"></el-option> |
| | | <el-option label="ç¨æµ·åä½" value="ç¨æµ·åä½"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item :label="$t('userManage.orgManageObj.division')" prop="name"> |
| | | <el-input |
| | | v-model="ruleForm.name" |
| | | :disabled="true" |
| | | style="width: calc(100% - 138px)" |
| | | ></el-input> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-more" |
| | | @click="innerVisible1 = true" |
| | | ></el-button> |
| | | <el-button type="danger">æ¸
é¤</el-button> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.EMail')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.fax')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.postalCode')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-form-item :label="$t('userManage.orgManageObj.website')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.cmpanyAddress')" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item :label="$t('userManage.orgManageObj.companyIntroduction')" prop="name"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="" |
| | | v-model="ruleForm.textarea" |
| | | > |
| | | </el-input> |
| | | <el-form-item label="ç®å½å¤æ³¨" :label-width="formLabelWidth"> |
| | | <el-input v-model="ruleForm.bak" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm('ruleForm')" |
| | | >{{$t('userManage.orgManageObj.immediatelyCreate')}}</el-button |
| | | <el-button @click="resetForm('ruleForm')">åæ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitForm('ruleForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >æäº¤</el-button |
| | | > |
| | | <el-button @click="resetForm('ruleForm')">{{$t('userManage.orgManageObj.reset')}}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | |
| | | import { |
| | | queryDepTree, |
| | | updateDepTree, |
| | | updateDepTrees, |
| | | queryMaxId, |
| | | } from "../../api/api"; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | |
| | | data() { |
| | | let validName = (rule, value, callback) => { |
| | | if (value === "") { |
| | | return callback(new Error("ç®å½åç§°ä¸è½ä¸ºç©º")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | dialogTitle:"ç¨æ·-å表", |
| | | tableData1: [ |
| | | { |
| | | date: "2016-05-03", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-02", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-04", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-01", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-08", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-06", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-07", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | ], |
| | | imageUrl: "", |
| | | ruleForm: { |
| | | name: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | }, |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: "请è¾å
¥æ´»å¨åç§°", trigger: "blur" }, |
| | | { min: 3, max: 5, message: "é¿åº¦å¨ 3 å° 5 个å符", trigger: "blur" }, |
| | | ], |
| | | region: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨åºå", trigger: "change" }, |
| | | ], |
| | | date1: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¥æ", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | date2: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¶é´", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | type: [ |
| | | { |
| | | type: "array", |
| | | required: true, |
| | | message: "请è³å°éæ©ä¸ä¸ªæ´»å¨æ§è´¨", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨èµæº", trigger: "change" }, |
| | | ], |
| | | desc: [{ required: true, message: "è¯·å¡«åæ´»å¨å½¢å¼", trigger: "blur" }], |
| | | }, |
| | | outerVisible: false, |
| | | innerVisible: false, |
| | | innerVisible1: false, |
| | | formInline: { |
| | | user: "", |
| | | region: "", |
| | | }, |
| | | currentPage4: 4, |
| | | tableData: [ |
| | | { |
| | | menuname: "æ°æ®è´¨æ£", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "æ°æ®äº¤æ¢", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "æ°æ®ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "æå¡ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "综åå±ç¤º", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "è¿ç»´ç®¡ç", |
| | | parentmenuname: "", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "èå管ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "ç¨æ·ç®¡ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "ç³»ç»ç®¡ç", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | { |
| | | menuname: "ç³»ç»é
ç½®", |
| | | parentmenuname: "è¿ç»´ç®¡ç", |
| | | dataBulk: "1", |
| | | creationtime: "2022-7-20", |
| | | creationname: "å¼ ä¸", |
| | | }, |
| | | ], |
| | | data: [ |
| | | { |
| | | id: 1, |
| | | label: "ä¸çº§ 1", |
| | | children: [ |
| | | { |
| | | id: 4, |
| | | label: "äºçº§ 1-1", |
| | | children: [ |
| | | { |
| | | id: 9, |
| | | label: "ä¸çº§ 1-1-1", |
| | | }, |
| | | { |
| | | id: 10, |
| | | label: "ä¸çº§ 1-1-2", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 2, |
| | | label: "ä¸çº§ 2", |
| | | children: [ |
| | | { |
| | | id: 5, |
| | | label: "äºçº§ 2-1", |
| | | }, |
| | | { |
| | | id: 6, |
| | | label: "äºçº§ 2-2", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 3, |
| | | label: "ä¸çº§ 3", |
| | | children: [ |
| | | { |
| | | id: 7, |
| | | label: "äºçº§ 3-1", |
| | | }, |
| | | { |
| | | id: 8, |
| | | label: "äºçº§ 3-2", |
| | | children: [ |
| | | { |
| | | id: 11, |
| | | label: "ä¸çº§ 3-2-1", |
| | | }, |
| | | { |
| | | id: 12, |
| | | label: "ä¸çº§ 3-2-2", |
| | | }, |
| | | { |
| | | id: 13, |
| | | label: "ä¸çº§ 3-2-3", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | label: "name", |
| | | }, |
| | | multipleSelection: [], |
| | | fullscreenLoading: false, |
| | | oriData: [], //åå§æ æ°æ® |
| | | depList: [], //elæ æ°æ® |
| | | old_depData: [], //elæ æ°æ®(æå¨å) |
| | | newData: [], //æå¨ååå§æ°æ® |
| | | itemdetail: { |
| | | addr: "", |
| | | bak: "", |
| | | code: "", |
| | | contact: "", |
| | | email: "", |
| | | fax: "", |
| | | name: "", |
| | | post: "", |
| | | sname: "", |
| | | uncode: "", |
| | | website: "", |
| | | }, |
| | | backUpData: {}, |
| | | formLabelWidth: "170px", |
| | | deleteIDs: "", |
| | | dialogFormVisible: false, |
| | | ruleForm: { |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | name: "", |
| | | descr: "", |
| | | bak: "", |
| | | }, |
| | | rules: { |
| | | name: [{ validator: validName, trigger: "blur" }], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | getMenuTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | queryDepTree().then((res) => { |
| | | if (res.code == 200) { |
| | | this.oriData = res.result; |
| | | this.newData = res.result; |
| | | this.depList = this.treeData(res.result); |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | | }); |
| | | }, |
| | | request(param) {}, |
| | | onSubmit() { |
| | | console.log("submit!"); |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | return father.pid == 1; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | append(node, data) { |
| | | this.dialogFormVisible = true; |
| | | this.ruleForm.pid = data.id; |
| | | this.ruleForm.orderNum = node.childNodes.length + 1; |
| | | this.ruleForm.level = data.level + 1; |
| | | // console.log(data); |
| | | // console.log(node); |
| | | }, |
| | | resetForm(formName) { |
| | | this.dialogFormVisible = false; |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | submitForm(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.fullscreenLoading = true; |
| | | // console.log(this.ruleForm); |
| | | // insertDir(this.ruleForm) |
| | | // .then((res) => { |
| | | // setTimeout(() => { |
| | | // this.fullscreenLoading = false; |
| | | // if (res.code == 200) { |
| | | // this.$message({ |
| | | // message: "æ·»å æå", |
| | | // type: "success", |
| | | // }); |
| | | // } |
| | | // }, 2000); |
| | | // }) |
| | | // .catch((res) => { |
| | | // console.log(res); |
| | | // this.fullscreenLoading = false; |
| | | // }); |
| | | |
| | | // this.validCode = ""; //æ¸
空éªè¯ç è¾å
¥æ¡çå
容 |
| | | } else { |
| | | // alert("ç®å½åç§°ä¸è½ä¸ºç©º"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | remove(node, data) { |
| | | this.$confirm("æ¤æä½å°å é¤è¯¥èç¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // console.log(node); |
| | | // console.log(data); |
| | | |
| | | const parent = node.parent; |
| | | const children = parent.data.children || parent.data; |
| | | children.splice(data.orderNum - 1, 1); |
| | | children.forEach((item, index) => { |
| | | item.orderNum = index + 1; |
| | | }); |
| | | |
| | | this.traverseArr(data); |
| | | console.log(this.deleteIDs); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "å 餿å!", |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已忶å é¤", |
| | | }); |
| | | }); |
| | | // this.dialogMessage="æ¯å¦å é¤" |
| | | // this.dialogFlag = 1; |
| | | // this.dialogFrom ={ |
| | | // node:node, |
| | | // val:data |
| | | // } |
| | | // this.dialogVisible=true;//ç®å½æ æ´æ¹å¼¹çª |
| | | // const parent = node.parent; |
| | | // const children = parent.data.children || parent.data; |
| | | // const index = children.findIndex((d) => d.id === data.id); |
| | | // let res = children.splice(index, 1); |
| | | // // console.log(res); |
| | | // // console.log(data); |
| | | // console.log(this.flaten(res)); |
| | | }, |
| | | traverseArr(obj) { |
| | | if (obj.children) { |
| | | return obj.children.forEach((item) => { |
| | | // console.log(item.id + "---" + item.name); |
| | | this.deleteIDs += "id=" + item.id + "&"; |
| | | this.traverseArr(item); |
| | | }); |
| | | } |
| | | return; |
| | | }, |
| | | flaten(arr) { |
| | | return arr.reduce((p, v, i) => { |
| | | for (let i = 0; i < p.length; i++) { |
| | | if (p[i].children) { |
| | | delete p[i].children; |
| | | } |
| | | } |
| | | return p.concat(v.children ? this.flaten(v.children).concat(v) : v); |
| | | }, []); |
| | | }, |
| | | handleDragStart(node, ev) { |
| | | console.log("drag start", node); |
| | | }, |
| | | handleDragEnter(draggingNode, dropNode, ev) { |
| | | console.log("tree drag enter: ", dropNode.label); |
| | | }, |
| | | handleDragLeave(draggingNode, dropNode, ev) { |
| | | console.log("tree drag leave: ", dropNode.label); |
| | | }, |
| | | handleDragOver(draggingNode, dropNode, ev) { |
| | | console.log("tree drag over: ", dropNode.label); |
| | | }, |
| | | handleDragEnd(draggingNode, dropNode, dropType, ev) { |
| | | console.log("tree drag end: ", dropNode && dropNode.label, dropType); |
| | | this.old_depData = JSON.parse(JSON.stringify(this.depList)); //å°å¤ä»½çdiréæ°èµå¼ |
| | | }, |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | console.log("tree drop: ", dropNode.label, dropType); |
| | | }, |
| | | allowDrop(draggingNode, dropNode, type) { |
| | | if (dropNode.data.label === "äºçº§ 3-1") { |
| | | return type !== "inner"; |
| | | this.$confirm("æ¤æä½å°ä¿åç®å½æ´æ¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | //ç¶èç¹ |
| | | let data = dropType != "inner" ? dropNode.parent.data : dropNode.data; |
| | | // ç¶èç¹ä¸å
¨é¨åèç¹ |
| | | let nodeData = |
| | | dropNode.level == 1 && dropType != "inner" ? data : data.children; |
| | | //åæ´èç¹ |
| | | // console.log(nodeData); |
| | | nodeData.forEach((item, i) => { |
| | | if (dropType != "inner") { |
| | | if (draggingNode.data.pid === dropNode.data.pid) { |
| | | item.pid = item.pid; |
| | | } else { |
| | | return true; |
| | | item.pid = dropNode.data.pid; |
| | | } |
| | | } else { |
| | | item.pid = data.id; |
| | | } |
| | | item.orderNum = i + 1; |
| | | }); |
| | | // console.log(nodeData); |
| | | //æ´æ°åå§æ´ä½æ°æ® |
| | | let arr = []; |
| | | this.oriData.forEach((e) => { |
| | | nodeData.forEach((item) => { |
| | | if (item.id === e.id) e = item; |
| | | }); |
| | | arr.push(e); |
| | | }); |
| | | this.newData = arr; |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "å·²åæ¶æ´æ¹", |
| | | }); |
| | | this.depList = this.old_depData; //å°å¤ä»½çdiréæ°èµå¼ |
| | | }); |
| | | }, |
| | | allowDrag(draggingNode) { |
| | | return draggingNode.data.label.indexOf("ä¸çº§ 3-2-2") === -1; |
| | | sendChange() { |
| | | updateDepTrees(this.newData) |
| | | .then((res) => { |
| | | // console.log(res); |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "æ´æ°æå!", |
| | | }); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | alert("ä¿®æ¹å¤±è´¥ï¼è¯·éè¯ï¼"); |
| | | }); |
| | | }, |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`); |
| | | handleNodeClick(data) { |
| | | // console.log(data); |
| | | this.backUpData = JSON.stringify(data); |
| | | this.itemdetail = JSON.parse(JSON.stringify(data)); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | console.log(`å½å页: ${val}`); |
| | | updDep() { |
| | | updateDepTree(this.itemdetail).then((res) => { |
| | | console.log(res); |
| | | }); |
| | | }, |
| | | handleCheckChange() {}, |
| | | reset() { |
| | | this.itemdetail = JSON.parse(this.backUpData); |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | mounted(){ |
| | | |
| | | // this.$nextTick(() => { |
| | | // console.log($t('operatManage.operationLogObj.add')) |
| | | // }); |
| | | } |
| | | this.getMenuTree(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | //@import url(); å¼å
¥å
Œ
±cssç±» |
| | | .menuSettings_box { |
| | | // background: rgb(240, 242, 245); |
| | | border-radius: 10px; |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | .menuSettings_tree { |
| | | position: relative; |
| | | width: 344px; |
| | | height: 100%; |
| | | background: rgb(240, 242, 245); |
| | |
| | | border-radius: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .menuTreeBox { |
| | | height: 88%; |
| | | width: 100%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | /deep/ .el-tree-node__label { |
| | | font-size: 18px; |
| | | } |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin-left: 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | .menuSettings { |
| | | } |
| | | } |
| | | .itemSettings { |
| | | width: calc(100% - 344px); |
| | | border-radius: 10px; |
| | | background: rgb(240, 242, 245); |
| | |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .btn_box { |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | | |
| | | display: flex; |
| | | border-radius: 10px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | .delBtn { |
| | | margin-left: auto; |
| | | } |
| | | .herder_box { |
| | | padding: 10px; |
| | | border-bottom: 1px solid #ccc; |
| | | margin-bottom: 20px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | .table_box { |
| | | .form_box { |
| | | border: 1px solid rgb(202, 201, 204); |
| | | border-radius: 10px; |
| | | background: #fff; |
| | | padding: 10px; |
| | | padding-top: 30px; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | .el-table__body { |
| | | width: 100% !important; |
| | | .el-input, |
| | | /deep/ .el-textarea { |
| | | width: 400px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .avatar-uploader { |
| | | width: 120px; |
| | | height: 120px; |
| | | border: 1px dashed #c0ccda; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | .avatar-uploader:hover { |
| | | border-color: #409eff; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: 120px; |
| | | height: 120px; |
| | | line-height: 120px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 120px; |
| | | height: 120px; |
| | | display: block; |
| | | } |
| | | .flexForm { |
| | | .btnBox { |
| | | margin: 0 270px 20px; |
| | | width: 200px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <el-divider /> |
| | | <div class="inquire"> |
| | | <el-form ref="ruleForm" :model="form" :inline="true"> |
| | | <el-form-item :label="$t('operatManage.ELM.username')" prop="username"> |
| | | <el-form-item :label="$t('operatManage.ELM.username')" prop="name"> |
| | | <el-input |
| | | v-model="form.username" |
| | | v-model="form.name" |
| | | :placeholder="$t('operatManage.ELM.usernameInfo')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | <!-- <el-form-item |
| | | :label="$t('userManage.userInfoObj.userStatus')" |
| | | prop="ownedSystem" |
| | | prop="userStatus" |
| | | > |
| | | <el-select |
| | | v-model="form.ownedSystem" |
| | | v-model="form.userStatus" |
| | | :placeholder="$t('userManage.userInfoObj.userStatus')" |
| | | > |
| | | <el-option :label="$t('userManage.userInfoObj.all')" value="all" /> |
| | |
| | | value="rejection" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.companyName')" |
| | | prop="requestIp" |
| | | :label="$t('userManage.userInfoObj.depName')" |
| | | prop="depName" |
| | | > |
| | | <el-input |
| | | v-model="form.requestIp" |
| | | v-model="form.depName" |
| | | :placeholder="$t('common.pleaseInput')" |
| | | /> |
| | | </el-form-item> |
| | |
| | | <el-form-item> |
| | | <el-button type="success" size="small" @click="showAddDialog" |
| | | ><i class="el-icon-plus"></i> {{ |
| | | $t('common.append') |
| | | $t("common.append") |
| | | }}</el-button |
| | | > |
| | | <el-button type="primary" size="small"> |
| | | {{ $t('userManage.userInfoObj.userinput') }}</el-button |
| | | > |
| | | <el-button type="primary" size="small"> |
| | | {{ $t('userManage.userInfoObj.userexport') }}</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: 60%"> |
| | | <el-button @click="onSubmit" |
| | | <el-button @click="onSubmit" size="mini" |
| | | ><i class="el-icon-search"></i> {{ |
| | | $t('operatManage.ELM.search') |
| | | $t("operatManage.ELM.search") |
| | | }}</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="resetForm('ruleForm')" |
| | | <el-button @click="resetForm('ruleForm')" size="mini" |
| | | ><i class="el-icon-delete"></i> {{ |
| | | $t('operatManage.ELM.reset') |
| | | $t("operatManage.ELM.reset") |
| | | }}</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="table_box"> |
| | | <el-table :data="tableData" stripe style="width: 100%" height="99%"> |
| | | <el-table |
| | | :data="tableData" |
| | | stripe |
| | | border |
| | | style="width: 100%" |
| | | max-height="99%" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | type="index" |
| | | :label="$t('operatManage.ELM.index')" |
| | | width="70px" |
| | | :label="$t('common.index')" |
| | | fixed |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="username" |
| | | width="220px" |
| | | :label="$t('userManage.userInfoObj.chineseName')" |
| | | prop="uname" |
| | | :label="$t('userManage.userInfoObj.uname')" |
| | | fixed |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="ip" |
| | | width="220px" |
| | | :label="$t('userManage.userInfoObj.affiliatedUnit')" |
| | | prop="pwd" |
| | | :label="$t('userManage.userInfoObj.pwd')" |
| | | /> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="ownedSystem" |
| | | width="230px" |
| | | :label="$t('userManage.userInfoObj.mobileNumber')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="largeModuleName" |
| | | :label="$t('userManage.userInfoObj.state')" |
| | | prop="sex" |
| | | :label="$t('userManage.userInfoObj.sex')" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag v-if="scope.row.largeModuleName == 'æ£å¸¸'" type="success">{{ |
| | | scope.row.largeModuleName |
| | | }}</el-tag> |
| | | <el-tag v-if="scope.row.largeModuleName == 'å¼å¸¸'" type="danger">{{ |
| | | scope.row.largeModuleName |
| | | }}</el-tag> |
| | | <span v-if="scope.row.sex == 1"> ç· </span> |
| | | <span v-else-if="scope.row.sex == 0">女</span> |
| | | <span v-else>æªç¥</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="smallModuleName" |
| | | :label="$t('userManage.userInfoObj.post')" |
| | | prop="natives" |
| | | :label="$t('userManage.userInfoObj.natives')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="resourceName" |
| | | :label="$t('userManage.userInfoObj.addtime')" |
| | | prop="depName" |
| | | :label="$t('userManage.userInfoObj.depName')" |
| | | /> |
| | | <el-table-column |
| | | fixed="right" |
| | | :label="$t('common.operate')" |
| | | width="200" |
| | | align="center" |
| | | prop="idcard" |
| | | :label="$t('userManage.userInfoObj.idcard')" |
| | | /><el-table-column |
| | | align="center" |
| | | prop="job" |
| | | :label="$t('userManage.userInfoObj.job')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="edu" |
| | | :label="$t('userManage.userInfoObj.edu')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="addr" |
| | | :label="$t('userManage.userInfoObj.addr')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="email" |
| | | :label="$t('userManage.userInfoObj.email')" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="contact" |
| | | :label="$t('userManage.userInfoObj.contact')" |
| | | /> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="largeModuleName" |
| | | :label="$t('userManage.userInfoObj.status')" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag v-if="scope.row.status == 0" type="success">æ£å¸¸</el-tag> |
| | | <el-tag v-if="scope.row.status == 1" type="info">ç¦ç¨</el-tag> |
| | | <el-tag v-if="scope.row.status == 2" type="warning">å é¤</el-tag> |
| | | <el-tag v-if="scope.row.status == 3">ç³è¯·</el-tag> |
| | | <el-tag v-if="scope.row.status == 4" type="danger">ææ¹</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="bak" |
| | | :label="$t('userManage.userInfoObj.bak')" |
| | | /> |
| | | <el-table-column :label="$t('common.operate')" fixed="right"> |
| | | <template #default> |
| | | <!-- <el-button type="primary" size="small">ä¿®æ¹</el-button> --> |
| | | |
| | | <el-button type="warning" size="small">{{ |
| | | $t('common.edit') |
| | | <el-button type="warning" size="mini">{{ |
| | | $t("common.edit") |
| | | }}</el-button> |
| | | <el-button type="danger" size="small">{{ |
| | | $t('common.delete') |
| | | <el-button type="danger" size="mini">{{ |
| | | $t("common.delete") |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="10" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="9" |
| | | :total="1" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <el-dialog :visible.sync="dialogTableVisible" width="57%" > |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane |
| | | :label="$t('userManage.userInfoObj.userAccount')" |
| | | name="first" |
| | | > |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.username')" |
| | | prop="name" |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.userpssword')" |
| | | prop="password" |
| | | > |
| | | <el-input type="password" v-model="ruleForm.password"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.userstate')" |
| | | prop="password" |
| | | > |
| | | <label>{{ $t('userManage.userInfoObj.toapplied') }}</label> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-tab-pane> |
| | | <el-tab-pane |
| | | :label="$t('userManage.userInfoObj.userInformation')" |
| | | name="second" |
| | | > |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="180px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.userchinesename')" |
| | | prop="name" |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.username')" |
| | | prop="name" |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.sex')" |
| | | > |
| | | <el-radio v-model="radio" label="1">{{$t('userManage.userInfoObj.userMan')}}</el-radio> |
| | | <el-radio v-model="radio" label="2">{{$t('userManage.userInfoObj.userWoMan')}}</el-radio> |
| | | </el-form-item> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.nativePlace')" |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div style="margin-left: 35px"> |
| | | <div |
| | | style=" |
| | | width: 205px; |
| | | height: 185px; |
| | | border: 1px solid gray; |
| | | margin: 5px; |
| | | " |
| | | > |
| | | <img /> |
| | | </div> |
| | | <el-upload |
| | | class="upload-demo" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | list-type="picture" |
| | | > |
| | | <el-button size="small" type="primary">{{$t('common.clickupload')}}</el-button> |
| | | <span style="color: red" |
| | | > {{$t('userManage.userInfoObj.spantitle1')}}</span |
| | | > |
| | | </el-upload> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.identityCard')" |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.education')" |
| | | |
| | | > |
| | | <el-select |
| | | v-model="form.region1" |
| | | class="select" |
| | | :placeholder="$t('userManage.userInfoObj.pleaseSelect')" |
| | | > |
| | | <el-option :label="$t('userManage.userInfoObj.doctor')" value="a1" /> |
| | | <el-option :label="$t('userManage.userInfoObj.master')" value="a2" /> |
| | | <el-option :label="$t('userManage.userInfoObj.undergraduate')" value="a3" /> |
| | | <el-option :label="$t('userManage.userInfoObj.juniorCollege')" value="a4" /> |
| | | <el-option :label="$t('userManage.userInfoObj.other')" value="a5" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.occupation')" |
| | | > |
| | | <el-select |
| | | v-model="form.region2" |
| | | class="select" |
| | | :placeholder="$t('userManage.userInfoObj.pleaseSelect')" |
| | | > |
| | | <el-option :label="$t('userManage.userInfoObj.assistant')" value="b1" /> |
| | | <el-option :label="$t('userManage.userInfoObj.intermediate')" value="b2" /> |
| | | <el-option :label="$t('userManage.userInfoObj.senior')" value="b3" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.post')" |
| | | |
| | | > |
| | | <el-select |
| | | class="select" |
| | | v-model="form.region3" |
| | | :placeholder="$t('userManage.userInfoObj.pleaseSelect')" |
| | | > |
| | | <el-option :label="$t('userManage.userInfoObj.v1')" value="c1" /> |
| | | <el-option :label="$t('userManage.userInfoObj.fv1')" value="c2" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v2')" value="c3" /> <el-option :label="$t('userManage.userInfoObj.fv2')" value="c4" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v3')" value="c5" /> |
| | | <el-option :label="$t('userManage.userInfoObj.fv3')" value="c6" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v4')" value="c7" /> |
| | | <el-option :label="$t('userManage.userInfoObj.fv4')" value="c8" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v5')" value="c9" /> |
| | | <el-option :label="$t('userManage.userInfoObj.fv5')" value="c10" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v6')" value="c11" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v7')" value="c12" /> <el-option :label="$t('userManage.userInfoObj.fv7')" value="c13" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v8')" value="c14" /> |
| | | <el-option :label="$t('userManage.userInfoObj.v9')" value="c15" /> |
| | | <el-option :label="$t('userManage.userInfoObj.fv9')" value="c16" /> |
| | | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.email')" |
| | | |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.major')" |
| | | |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.phoneNumber')" |
| | | |
| | | > |
| | | <el-input |
| | | v-model="ruleForm.name" |
| | | style="width: 225px" |
| | | ></el-input> |
| | | <el-checkbox style="margin-left: 10px" v-model="checked" |
| | | >{{$t('userManage.userInfoObj.receiveSMS')}}</el-checkbox |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.officeTelephone')" |
| | | |
| | | > |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.addressbook')" |
| | | |
| | | > |
| | | <el-input style="width:755px" v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.remarks')" |
| | | > |
| | | <el-input type="textarea" style="width:755px" v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form-item> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item |
| | | :label="$t('userManage.userInfoObj.scanningcopy')" |
| | | |
| | | > |
| | | <el-upload |
| | | class="upload-demo" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | list-type="picture" |
| | | > |
| | | <el-button size="small" type="primary">{{$t('common.upload')}}</el-button> |
| | | <span style="color: red" |
| | | > {{$t('userManage.userInfoObj.spantitle2')}}</span> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form-item> |
| | | </el-row> |
| | | </el-form> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <el-button type="primary" @click="onSubmit">{{$t('common.preservation')}}</el-button> |
| | | <el-button>{{$t('common.close')}}</el-button> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import MyBread from '../../components/MyBread.vue'; |
| | | |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | import { queryPageUser } from "../../api/api"; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | currentPage: 1, |
| | | dialogTableVisible: false, |
| | | activeName: 'first', |
| | | ruleForm: { name: '', password: '' }, |
| | | ruleForm1: { |
| | | name: '', |
| | | value: '', |
| | | }, |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥ç¨æ·å', trigger: 'blur' }, |
| | | { min: 3, max: 5, message: 'é¿åº¦å¨ 3 å° 5 个å符', trigger: 'blur' }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: '请è¾å
¥å¯ç ', trigger: 'blur' }, |
| | | { |
| | | trigger: 'blur', |
| | | validator: (rule, value, callback) => { |
| | | var passwordreg = |
| | | /(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,20}/; |
| | | if (!passwordreg.test(value)) { |
| | | callback( |
| | | new Error('å¯ç å¿
é¡»ç±æ°åã忝ãç¹æ®å符ç»å,请è¾å
¥8-20ä½') |
| | | ); |
| | | let validName = (rule, value, callback) => { |
| | | if (value === "") { |
| | | return callback(new Error("ç®å½åç§°ä¸è½ä¸ºç©º")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | return { |
| | | currentPage: 1, |
| | | form: { |
| | | username: '', |
| | | ownedSystem: 'all', |
| | | requestIp: '', |
| | | operationType: '', |
| | | date: '', |
| | | username: "", |
| | | userStatus: "all", |
| | | requestIp: "", |
| | | }, |
| | | tableData: [ |
| | | { |
| | | username: '管çå', |
| | | ip: '221.182.31.12', |
| | | date: '2022-08-05', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | tableData: [], |
| | | fullscreenLoading: false, |
| | | itemdetail: {}, |
| | | formLabelWidth: "170px", |
| | | dialogFormVisible: false, |
| | | ruleForm: { |
| | | level: null, |
| | | orderNum: null, |
| | | pid: null, |
| | | name: "", |
| | | descr: "", |
| | | bak: "", |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | rules: { |
| | | name: [{ validator: validName, trigger: "blur" }], |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'å¼å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'å¼å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'å¼å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | { |
| | | date: '2022-08-05', |
| | | username: '管çå', |
| | | ownedSystem: '', |
| | | largeModuleName: 'æ£å¸¸', |
| | | smallModuleName: 'èµæºæä½æ¥å¿', |
| | | resourceName: '', |
| | | operationType: 'æ¥è¯¢', |
| | | ip: '221.182.31.12', |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | | getUserInfo(params) { |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | queryPageUser({ |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.tableData = res.result; |
| | | } else { |
| | | console.log("æ¥å£æ¥é"); |
| | | } |
| | | }); |
| | | }, |
| | | // getUserInfo() { |
| | | // //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | // // queryMaxId().then((res) => { |
| | | // // this.id = res.data; |
| | | // // }); |
| | | // queryDepTree().then((res) => { |
| | | // if (res.status == 200) { |
| | | // this.depList = this.treeData(res.data.result); |
| | | // this.oriData = res.data.result; |
| | | // this.newData = res.data.result; |
| | | // } else { |
| | | // console.log("æ¥å£æ¥é"); |
| | | // } |
| | | // }); |
| | | // }, |
| | | |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`); |
| | | }, |
| | |
| | | console.log(`å½å页: ${val}`); |
| | | }, |
| | | onSubmit() { |
| | | console.log('submit!'); |
| | | console.log("submit!"); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | |
| | | this.dialogTableVisible = true; |
| | | }, |
| | | }, |
| | | created() { }, |
| | | mounted() { |
| | | this.getUserInfo(1, 10); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style> |