| | |
| | | margin-bottom: 5px; |
| | | } |
| | | } |
| | | .smallBtn { |
| | | width: 82px; |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | /***éèæ æå è½½æ¶èç¹ä¸çloadingï¼é²æ¢èç¹æå¨*****/ |
| | | .el-tree .el-tree-node__loading-icon{ |
| | | display: none !important; |
| | |
| | | // å¯¼åº |
| | | export const exportLog = (params) => { |
| | | return request({ |
| | | url: '/api/loginBasicController/exportLog', |
| | | url: '/api/loginBasicController/exportLogs', |
| | | method: 'get', |
| | | headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}, |
| | | responseType: 'blob', |
| | |
| | | :visible.sync="visible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | style="text-align: center" |
| | | width="50%" |
| | | width="830px" |
| | | @close="dialogClose"> |
| | | <div style="margin-bottom: 20px;" v-if="topMethodsObj !== {} && topMethodsObj"> |
| | | <div style="height: 42px;line-height: 30px;margin-top: -5px;" v-if="topMethodsObj !== {} && topMethodsObj"> |
| | | <div> |
| | | <span>å¯¼åºæ¹å¼ï¼</span> |
| | | <el-radio-group v-model="radio"> |
| | |
| | | <el-radio :label="2" v-if="topMethodsObj.page">页ç </el-radio> |
| | | </el-radio-group> |
| | | <span v-if="radio === 2" style="margin-left: 20px;color: #F56C6C; "> |
| | | <el-input v-model="pageExport" style="width: 150px"></el-input> ï¼è¾å
¥é¡µç æè
页é¢èå´ï¼å¦ï¼1-10ï¼</span> |
| | | <el-input v-model="pageExport" style="width: 150px" size="mini"></el-input> ï¼è¾å
¥é¡µç æè
页é¢èå´ï¼å¦ï¼1-10ï¼</span> |
| | | </div> |
| | | </div> |
| | | <el-transfer |
| | | v-model="rightRoleData" |
| | | v-loading="loading" |
| | | :data="data" |
| | | :filter-method="filterMethod" |
| | | :render-content="renderFunc" |
| | | :titles="transferTitle" |
| | | filter-placeholder="å
³é®è¯æç´¢" |
| | | filterable |
| | | style="text-align: left; display: inline-block;"> |
| | | </el-transfer> |
| | | <div style="text-align: center"> |
| | | <el-transfer |
| | | v-model="rightRoleData" |
| | | v-loading="loading" |
| | | :data="data" |
| | | :filter-method="filterMethod" |
| | | :render-content="renderFunc" |
| | | :titles="transferTitle" |
| | | filter-placeholder="å
³é®è¯æç´¢" |
| | | filterable |
| | | style="text-align:left;display: inline-block;"> |
| | | </el-transfer> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <div v-if="bottomValue" class="valueInfo">已设置çå¼ä¸ºï¼[{{ bottomValue }}]</div> |
| | | <el-button size="small" @click="visible = false">å æ¶</el-button> |
| | | <el-button size="small" type="primary" @click="sendHandler">ç¡® å®</el-button> |
| | | <el-button size="small" @click="visible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | <template> |
| | | <!--ç±»åAction--> |
| | | <el-container> |
| | | |
| | | <el-aside> |
| | | <basic-container> |
| | | <div ref="TreeBox" style="height: calc(100vh - 144px);!important;"> |
| | | <div class="headerCon"> |
| | | <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">å建 |
| | | </el-button> |
| | | <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">ä¿®æ¹ |
| | | </el-button> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delClickHandler">å é¤ |
| | | </el-button> |
| | | <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">å¯¼åº |
| | | </el-button> |
| | | <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">导å
¥ |
| | | </el-button> |
| | | <el-button class="smallBtn" plain size="small" type="primary" |
| | | @click="checkViewClickHandler">æ¥ç使ç¨èå´ |
| | | </el-button> |
| | | </div> |
| | | <div ref="TreeBox" style="height: calc(100vh - 154px);!important;"> |
| | | <!-- 左侧æ --> |
| | | <div style="height: calc(100vh - 280px);"> |
| | | <div style="height: calc(100vh - 190px);"> |
| | | <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"> |
| | | <span slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <span style="font-size: 15px"> |
| | | <i class="el-icon-s-promotion"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | | <span slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <span style="font-size: 15px"> |
| | | <i class="el-icon-s-promotion"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | | </avue-tree> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <el-main> |
| | | <basic-container> |
| | | <avue-crud |
| | | ref="crud" |
| | | :data="data" |
| | | :option="option" |
| | | :table-loading="tableLoading" |
| | | @selection-change="selectChangeHandler" |
| | | @row-click="rowClickHandler"> |
| | | <template slot="menuLeft"> |
| | | <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">æ·»å </el-button> |
| | | <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">ç§»é¤</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <action-dialog ref="actionDialog"></action-dialog> |
| | | </basic-container> |
| | | </el-main> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import basicOption from "@/util/basic-option"; |
| | | import { |
| | | cloneUIContextData, |
| | | delUIContextData, expUIContextData, |
| | | getBizTree, getExpContextTree, |
| | | gridUIContextData, |
| | | saveUIContextData, |
| | | updateUIContextData |
| | | } from "@/api/UI/uiDefine"; |
| | | import func from "@/util/func"; |
| | | import actionDialog from "@/views/modelingMenu/ui/Aciton/dialog" |
| | | |
| | | export default { |
| | | name: "index" |
| | | name: "index", |
| | | components:{actionDialog}, |
| | | data() { |
| | | return { |
| | | treeOption: { |
| | | height: 'auto', |
| | | defaultExpandAll: true, |
| | | menu: false, |
| | | addBtn: false, |
| | | props: { |
| | | label: 'text', |
| | | value: 'oid', |
| | | children: 'children' |
| | | } |
| | | }, |
| | | nodeRow: {}, |
| | | treeData: [], |
| | | searchParams: { |
| | | }, |
| | | tableLoading: false, |
| | | selectList: [], |
| | | option: { |
| | | ...basicOption, |
| | | calcHeight: -50, |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | tip: false, |
| | | searchMenuSpan: 6, |
| | | align: 'left', |
| | | menu:false, |
| | | column: [ |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'plCode', |
| | | overHidden: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'plName', |
| | | overHidden: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: 'C/S类路å¾', |
| | | prop: 'plCSClass', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'B/S龿¥å°å', |
| | | prop: 'plBSUrl', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'ç±»å', |
| | | prop: 'plTypeType', |
| | | search: true, |
| | | type: 'select', |
| | | width:100, |
| | | dicData: [{ |
| | | label: 'ä¸å¡ç±»å', |
| | | value: 'business' |
| | | }, { |
| | | label: '龿¥ç±»å', |
| | | value: 'link' |
| | | }] |
| | | }, |
| | | { |
| | | label: 'æè¿°', |
| | | prop: 'plDesc', |
| | | search: true, |
| | | overHidden: true, |
| | | }, |
| | | ] |
| | | }, |
| | | data: [], |
| | | } |
| | | }, |
| | | created() { |
| | | this.getTreeList(); |
| | | }, |
| | | methods: { |
| | | //æ 表æ¥è¯¢ |
| | | getTreeList() { |
| | | const loading = this.$loading({}); |
| | | getBizTree().then(res => { |
| | | this.treeData = [res.data.obj]; |
| | | loading.close(); |
| | | }).catch(error => { |
| | | loading.close(); |
| | | }) |
| | | }, |
| | | // æ ç¹å» |
| | | nodeClick(row) { |
| | | if (row.oid) { |
| | | this.nodeRow = row; |
| | | this.tableLoading = true; |
| | | this.getTableList(); |
| | | } |
| | | }, |
| | | getTableList() { |
| | | const params = Object.assign(this.searchParams, { |
| | | 'conditionMap[btmName]': this.nodeRow.attributes.name, |
| | | }) |
| | | gridUIContextData(1, 50, params).then(res => { |
| | | this.data = res.data.data; |
| | | this.$refs.crud.clearSelection(); |
| | | this.tableLoading = false; |
| | | }) |
| | | }, |
| | | // å¤é |
| | | selectChangeHandler(row) { |
| | | this.selectList = row; |
| | | }, |
| | | // è¡ç¹å» |
| | | rowClickHandler(row) { |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.crud, |
| | | this.lastIndex, |
| | | (newIndex) => { |
| | | this.lastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | //å建 |
| | | addHandler() { |
| | | if (this.nodeRow && this.nodeRow.oid && this.nodeRow.oid!='') { |
| | | this.$refs.actionDialog.openDialog(this.nodeRow); |
| | | } else { |
| | | this.$message.error('è¯·éæ©ä¸å¡ç±»å'); |
| | | } |
| | | }, |
| | | delHandler() { |
| | | if (this.selectList.length <= 0) { |
| | | this.$message.error('请è³å°éæ©ä¸æ¡æ°æ®'); |
| | | return; |
| | | } |
| | | const params = { |
| | | oids: this.selectList.map(item => item.plOId).join(',') |
| | | } |
| | | this.$confirm('æ¯å¦ç§»é¤éä¸çActionï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | delUIContextData(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success('å 餿å'); |
| | | this.getTableList(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | .el-scrollbar__wrap { |
| | | overflow: auto !important; |
| | | } |
| | | .headerCon{ |
| | | .el-button{ |
| | | width: 82px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .headerCon { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-bottom: 5px; |
| | | |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | |
| | | .el-button { |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | |
| | | .headerCon > .el-button:nth-child(4) { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | .headerCon > .el-button:nth-child(7) { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | |
| | | .smallBtn { |
| | | width: 82px; |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog v-dialogDrag |
| | | :append-to-body="true" |
| | | :close-on-click-modal="false" |
| | | :destroy-on-close="true" |
| | | :title="dialog.title" |
| | | :visible.sync="dialog.showDialog" |
| | | class="avue-dialog" |
| | | width="1400px" |
| | | @close="cancelDialog"> |
| | | <el-container> |
| | | <el-aside> |
| | | <basic-container> |
| | | <!-- 左侧æ --> |
| | | <div style="height: 200px;"> |
| | | <avue-tree |
| | | ref="tree" |
| | | v-model="treeForm" |
| | | :data="treeData" |
| | | :option="treeOption" |
| | | @node-click="nodeClick"> |
| | | <span slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <span style="font-size: 15px"> |
| | | <i class="el-icon-s-promotion"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | | </avue-tree> |
| | | </div> |
| | | </basic-container> |
| | | </el-aside> |
| | | |
| | | <el-main> |
| | | <basic-container> |
| | | <div> |
| | | <avue-crud |
| | | ref="crud" |
| | | :data="data" |
| | | :option="option" |
| | | :page.sync="page" |
| | | :table-loading="tableLoading" |
| | | @search-change="handleSearch" |
| | | @search-reset="handleReset" |
| | | @refresh-change="handleRefresh" |
| | | @selection-change="selectChangeHandler" |
| | | @row-click="rowClickHandler"> |
| | | <template slot="plTypeType" slot-scope="{row}"> |
| | | <el-tag :type="row.plTypeType === 'business' ? '' : 'success'"> |
| | | {{ row.plTypeType === 'business' ? 'ä¸å¡ç±»å' : '龿¥ç±»å' }} |
| | | </el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | </basic-container> |
| | | </el-main> |
| | | </el-container> |
| | | <div slot="footer" class="dialog-footer avue-dialog__footer"> |
| | | <el-button size="small" type="primary" @click="submitDialog">ç¡® å®</el-button> |
| | | <el-button size="small" @click="cancelDialog">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getActionTree, |
| | | getActionTableData, |
| | | saveAction, |
| | | updateAction, |
| | | exportAction, |
| | | deleteAction, |
| | | getPLActionParam, |
| | | savePLActionParam, |
| | | updatePLActionParam, |
| | | deletePLActionParam, |
| | | saveActionCls, |
| | | updateActionCls, |
| | | deleteActionCls |
| | | } from '@/api/UI/Action/api' |
| | | import func from "@/util/func"; |
| | | import basicOption from "@/util/basic-option"; |
| | | import {clonePageDef, cloneTabButton, clonetabPage} from "@/api/UI/uiDefine"; |
| | | |
| | | export default { |
| | | name: "index", |
| | | data() { |
| | | return { |
| | | dialog: { |
| | | showDialog: false, |
| | | title: "鿩Action", |
| | | loading: false, |
| | | type: "add", |
| | | }, |
| | | currenRow: {}, // actionå½åè¡ä¿¡æ¯ |
| | | tableLoading: false, |
| | | lastIndex: null, |
| | | selectList: [], |
| | | data: [], |
| | | option: { |
| | | ...basicOption, |
| | | addBtn: false, |
| | | height: 200, |
| | | highlightCurrentRow: true, |
| | | menu:false, |
| | | column: [ |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'plCode', |
| | | overHidden: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'plName', |
| | | overHidden: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: 'C/S类路å¾', |
| | | prop: 'plCSClass', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'B/S龿¥å°å', |
| | | prop: 'plBSUrl', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'ç±»å', |
| | | prop: 'plTypeType', |
| | | search: true, |
| | | type: 'select', |
| | | width:100, |
| | | dicData: [{ |
| | | label: 'ä¸å¡ç±»å', |
| | | value: 'business' |
| | | }, { |
| | | label: '龿¥ç±»å', |
| | | value: 'link' |
| | | }] |
| | | }, |
| | | { |
| | | label: 'æè¿°', |
| | | prop: 'plDesc', |
| | | search: true, |
| | | overHidden: true, |
| | | }, |
| | | ] |
| | | }, |
| | | treeNodeRow: {}, |
| | | treeForm: {}, |
| | | treeOption: { |
| | | addBtn: false, |
| | | defaultExpandedKeys: ['root'], |
| | | props: { |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childs' |
| | | } |
| | | }, |
| | | treeData: [], |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | openDialog(data) { |
| | | this.dialog.showDialog = true; |
| | | this.getTreeList() |
| | | this.data = []; |
| | | }, |
| | | cancelDialog() { |
| | | this.dialog.loading = false; |
| | | this.dialog.showDialog = false; |
| | | }, |
| | | submitDialog() { |
| | | if (this.selectList.length==0) { |
| | | this.$message.error('è¯·éæ©Action'); |
| | | return; |
| | | } |
| | | const saveFunction = { |
| | | 'pageDef': '' |
| | | }; |
| | | saveFunction[this.type](params).then(res => { |
| | | if(res.data.code == 200){ |
| | | this.$message.success(res.data.obj); |
| | | this.cancelDialog(); |
| | | } |
| | | }) |
| | | }, |
| | | // 左侧æ è¯·æ± |
| | | getTreeList(status) { |
| | | const params = { |
| | | isExp: status ? true : false |
| | | } |
| | | getActionTree(params).then(res => { |
| | | const data = res.data.obj; |
| | | this.treeData = [data]; |
| | | }) |
| | | }, |
| | | |
| | | // 左侧æ è¡ç¹å» |
| | | nodeClick(row) { |
| | | this.treeNodeRow = row; |
| | | this.getRightTableList(row); |
| | | this.bottomData = []; |
| | | }, |
| | | |
| | | // 头é¨å·æ°æé® |
| | | handleRefresh() { |
| | | if (func.isEmptyObject(this.treeNodeRow)) { |
| | | return; |
| | | } |
| | | this.getRightTableList(this.treeNodeRow); |
| | | }, |
| | | |
| | | // å³ä¾§è¡¨æ ¼ä¿¡æ¯ |
| | | getRightTableList(row) { |
| | | this.tableLoading = true; |
| | | const params = { |
| | | plactioncls: row.id |
| | | } |
| | | getActionTableData(params).then(res => { |
| | | const data = res.data.data; |
| | | this.data = data; |
| | | this.tableLoading = false; |
| | | }) |
| | | }, |
| | | |
| | | // è¡¨æ ¼å¤é |
| | | selectChangeHandler(row) { |
| | | this.selectList = row; |
| | | }, |
| | | |
| | | // è¡ç¹å» |
| | | rowClickHandler(row) { |
| | | this.currenRow = row; |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.crud, |
| | | this.lastIndex, |
| | | (newIndex) => { |
| | | this.lastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | // æç´¢ |
| | | handleSearch(params, done) { |
| | | if (func.isEmptyObject(this.treeNodeRow)) { |
| | | this.$message.error('请å
å¨å·¦ä¾§éæ©èç¹åæä½'); |
| | | return done(); |
| | | } |
| | | this.tableLoading = true; |
| | | const apiParams = { |
| | | plactioncls: this.treeNodeRow.id === 'root' ? '' : this.treeNodeRow.id, |
| | | ...params |
| | | } |
| | | |
| | | getActionTableData(apiParams).then(res => { |
| | | const data = res.data.data; |
| | | this.data = data; |
| | | this.tableLoading = false; |
| | | }) |
| | | done(); |
| | | }, |
| | | |
| | | // éç½®æç´¢æ¡ä»¶ |
| | | handleReset() { |
| | | if (func.isEmptyObject(this.treeNodeRow)) { |
| | | this.$message.error('请å
å¨å·¦ä¾§éæ©èç¹åæä½'); |
| | | return; |
| | | } |
| | | this.getRightTableList(this.treeNodeRow); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep { |
| | | .el-scrollbar__wrap { |
| | | overflow: auto !important; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | addBtn: false, |
| | | height: 350, |
| | | highlightCurrentRow: true, |
| | | menuWidth:160, |
| | | column: [ |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'plCode', |
| | | overHidden: true, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'plName', |
| | | overHidden: true, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | |
| | | ] |
| | | }, |
| | | { |
| | | label: '类路å¾', |
| | | label: 'C/S类路å¾', |
| | | prop: 'plCSClass', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | |
| | | dicData: [] |
| | | }, |
| | | { |
| | | label: '龿¥å°å', |
| | | label: 'B/S龿¥å°å', |
| | | prop: 'plBSUrl', |
| | | search: true, |
| | | searchLabelWidth:120, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: 'ç±»å', |
| | | prop: 'plTypeType', |
| | | search: true, |
| | | type: 'select', |
| | | width:100, |
| | | dicData: [{ |
| | | label: 'ä¸å¡ç±»å', |
| | | value: 'business' |
| | |
| | | const data = res.data.obj; |
| | | this.treeData = [data]; |
| | | const selectTreeData = this.option.column.find(item => item.prop === 'plActionCls'); // æ¾å°actionæ·»å åç±»æ |
| | | selectTreeData.dicData = [data]; |
| | | const dicData=[data]; |
| | | dicData[0].disabled=true;//æ ¹èç¹ä¸è½é |
| | | selectTreeData.dicData = dicData; |
| | | }) |
| | | }, |
| | | |
| | |
| | | overflow: auto !important; |
| | | } |
| | | } |
| | | |
| | | .smallBtn { |
| | | width: 82px; |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | .el-scrollbar__wrap { |
| | | overflow: auto !important; |
| | | } |
| | | |
| | | .headerCon { |
| | | .el-button { |
| | | width: 82px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .headerCon { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-bottom: 5px; |
| | | |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | |
| | | .el-button { |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | |
| | | .headerCon > .el-button:nth-child(4) { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | .headerCon > .el-button:nth-child(7) { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | |
| | | .smallBtn { |
| | | width: 82px; |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | </el-main> |
| | | </el-container> |
| | | <div class="dialog-footer avue-dialog__footer"> |
| | | <el-button plain size="small" type="primary" @click="submitDialog">ä¿ å</el-button> |
| | | <el-button size="small" type="primary" @click="submitDialog">ä¿ å</el-button> |
| | | <el-button size="small" @click="cancelDialog">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getUIAuthor} from "@/api/authority/ui/uiAuthor"; |
| | | import {getBizTree, getAllLevelTreeByBtm, clonePageDef, clonetabPage, cloneTabButton} from "@/api/UI/uiDefine"; |
| | | |
| | | export default { |
| | |
| | | width="800px" |
| | | @close="dialogClose" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small" style="margin-bottom: 30px;"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="页é¢ç¼ç ï¼" prop="plCode"> |
| | |
| | | <div>4ãè¾å
¥æ¶ï¼ä¸è¦æ²å车æ¢è¡ã</div> |
| | | </div> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogClose">å æ¶</el-button> |
| | | <el-button type="primary" @click="saveHandler">ç¡® å®</el-button> |
| | | <span slot="footer" class="dialog-footer avue-dialog__footer"> |
| | | <el-button size="small" type="primary" @click="saveHandler">ä¿ å</el-button> |
| | | <el-button size="small" @click="dialogClose">å æ¶</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" type="tabPage" paramsType="ui"></clone-dialog> |
| | |
| | | ref="logCrud" |
| | | :data="tableData" |
| | | :option="option" |
| | | :page.sync="page" |
| | | :table-loading="tableLoading" |
| | | @on-load="getTableList" |
| | | @refresh-change="handleRefresh" |
| | | @search-change="handleSearch" |
| | | @search-reset="handleReset" |
| | | @size-change="sizeChange" |
| | | @current-change="currentChange" |
| | | @row-save="rowSaveHandler" |
| | | @row-update="rowUpdateHandler" |
| | | @row-del="rowDeleteHandler" |
| | | > |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">导åº</el-button> |
| | | </template> |
| | | <template #menu="{row,index,size}"> |
| | | <el-button icon="el-icon-user" type="text" size="small" @click="userHandler(row,index)">åé
æå</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <!-- åé
æåç©¿æ¢æ¡ --> |
| | | <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" |
| | | :transferTitle="transferTitle" title="æä»¶ææ·»å æå" |
| | | @transferSend="roleSendHandler"> |
| | | </transfer> |
| | | </basic-container> |
| | | </template> |
| | | |
| | |
| | | import {exportLog, getLogListByContion} from "@/api/system/log/logBasic"; |
| | | import func from "@/util/func"; |
| | | import basicOption from "@/util/basic-option"; |
| | | import {addUser, deleteUser, updateUser} from "@/api/system/user/api"; |
| | | import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api"; |
| | | |
| | | export default { |
| | | name: "index", |
| | |
| | | tableData: [], |
| | | option: { |
| | | ...basicOption, |
| | | addBtn:false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | calcHeight: -60, |
| | | align:'left', |
| | | headerAlign:'center', |
| | | menu:false, |
| | | searchMenuSpan: 6, |
| | | searchIcon:false, |
| | | menuWidth:260, |
| | | dialogMenuPosition: 'right', |
| | | dialogWidth:600, |
| | | column: [ |
| | | { |
| | | label: 'å·å', |
| | | prop: 'truename', |
| | | width: 300 |
| | | }, { |
| | | label: 'æºå¨ç±»å', |
| | | prop: 'username', |
| | | width: 150 |
| | | },{ |
| | | label: 'è·¯å¾åç§°', |
| | | prop: 'userIp' |
| | | },{ |
| | | label: 'é¦éè·¯å¾', |
| | | prop: 'moduleName', |
| | | width: 200, |
| | | span: 24, |
| | | rules: [{ required: true, message: '请è¾å
¥å·å', trigger: 'blur' }] |
| | | },{ |
| | | label: 'æå¡å¨', |
| | | prop: 'type', |
| | | width: 150 |
| | | span: 24, |
| | | rules: [{ required: true, message: '请è¾å
¥æå¡å¨', trigger: 'blur' }] |
| | | },{ |
| | | label: 'å·æå¡', |
| | | prop: 'date', |
| | | span: 24, |
| | | rules: [{ required: true, message: '请è¾å
¥å·æå¡', trigger: 'blur' }] |
| | | }, { |
| | | label: 'æºå¨ç±»å', |
| | | prop: 'username', |
| | | width: 120, |
| | | span: 24, |
| | | type:'radio', |
| | | dicData:[{ |
| | | label:'Unix', |
| | | value:'Unix' |
| | | },{ |
| | | label:'Win NT', |
| | | value:'Win NT' |
| | | }], |
| | | value:'Win NT' |
| | | },{ |
| | | label: 'è·¯å¾åç§°', |
| | | prop: 'userIp', |
| | | span: 24, |
| | | overHidden: true, |
| | | rules: [{ required: true, message: '请è¾å
¥è·¯å¾åç§°', trigger: 'blur' }] |
| | | },{ |
| | | label: 'é¦éè·¯å¾', |
| | | prop: 'loc', |
| | | width: 120, |
| | | span: 24, |
| | | type: 'switch', |
| | | value:false |
| | | }] |
| | | }, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 50, |
| | | total: 0, |
| | | pageSizes: [10, 30, 50, 100], |
| | | }, |
| | | searchParams: {} |
| | | currentRow:null, |
| | | leftRoleData: [], // åé
æåç©¿æ¢æ¡å·¦ä¾§åå§æ°æ® |
| | | rightRoleData: [], // åé
æåç©¿æ¢æ¡å³ä¾§åå§æ°æ® |
| | | transferTitle: ['æä»¶æå¤æå', 'æä»¶æå
æå'], |
| | | } |
| | | }, |
| | | methods: { |
| | | // è¡¨æ ¼è¯·æ± |
| | | getTableList() { |
| | | this.tableLoading = true; |
| | | getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => { |
| | | getLogListByContion(1, 50, {}).then(res => { |
| | | this.tableData = res.data.data; |
| | | this.page.total = res.data.total; |
| | | this.tableLoading = false; |
| | | }) |
| | | }, |
| | | |
| | | // æç´¢æ¥è¯¢ |
| | | handleSearch(params, done) { |
| | | this.searchParams = { |
| | | userName:params.truename, |
| | | ipText:params.userIp, |
| | | startDate:params.date[0], |
| | | endDate:params.date[1] |
| | | }; |
| | | |
| | | this.getTableList(); |
| | | done(); |
| | | // æ°å¢ |
| | | rowSaveHandler(row, done,loading) { |
| | | addUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | done(); |
| | | } |
| | | }).catch(err => { |
| | | loading() |
| | | }); |
| | | }, |
| | | |
| | | // éç½®æç´¢æ¡ä»¶ |
| | | handleReset() { |
| | | this.searchParams = {}; |
| | | this.getTableList(); |
| | | // ç¼è¾ |
| | | rowUpdateHandler(row, index, done,loading) { |
| | | updateUser(row).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | done() |
| | | } |
| | | }).catch(err => { |
| | | loading() |
| | | }); |
| | | }, |
| | | |
| | | // æ¡æ° |
| | | sizeChange(val) { |
| | | this.page.pageSize = val; |
| | | }, |
| | | // å é¤ |
| | | rowDeleteHandler(row) { |
| | | let params = { |
| | | ids: row.id |
| | | } |
| | | |
| | | // 页ç |
| | | currentChange(val) { |
| | | this.page.currentPage = val; |
| | | }, |
| | | |
| | | handleRefresh(){ |
| | | this.getTableList(); |
| | | this.$confirm('æ¨ç¡®å®è¦å é¤å½åçå·èç¹åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteUser(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | } |
| | | }); |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // å¯¼åº |
| | | exportClickHandler() { |
| | |
| | | loading.close(); |
| | | }) |
| | | }, |
| | | |
| | | //åé
æå |
| | | userHandler(row,index){ |
| | | this.currentRow=row; |
| | | Promise.all([ |
| | | listUserUnInRoleOid({pkRole: row.id}), |
| | | listUserByRoleOid({pkRole: row.id}) |
| | | ]).then(([unInRoleRes, byRoleRes]) => { |
| | | if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) { |
| | | const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data]; |
| | | // ç»è£
å¥½ç©¿æ¢æ¡å¯ç¨æ°æ® |
| | | this.leftRoleData = leftData.map(item => { |
| | | return { |
| | | name: item.name + `(${item.id})`, |
| | | oid: item.oid |
| | | } |
| | | }) |
| | | this.rightRoleData = byRoleRes.data.data.map(item => item.oid); |
| | | this.$refs.transfer.visible = true; |
| | | } |
| | | }); |
| | | }, |
| | | // åé
æåç©¿æ¢æ¡åå¡« |
| | | roleSendHandler(row) { |
| | | let params = { |
| | | userOids: row.join(','), |
| | | roleId: this.currentRow.id |
| | | } |
| | | saveRight(params).then(res => { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | // è¡¨æ ¼è¯·æ± |
| | | getTableList() { |
| | | this.tableLoading = true; |
| | | getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType': this.$route.query.logType, ...this.searchParams}).then(res => { |
| | | getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType': this.$route.query.logType,'roleType':this.$route.query.roleType, ...this.searchParams}).then(res => { |
| | | this.tableData = res.data.data; |
| | | this.page.total = res.data.total; |
| | | this.tableLoading = false; |
| | |
| | | // å¯¼åº |
| | | exportClickHandler() { |
| | | const loading = this.$loading({}); |
| | | exportLog().then(res => { |
| | | exportLog({'pageNo':1,'pageSize':-1,'logType': this.$route.query.logType,'roleType':this.$route.query.roleType, ...this.searchParams}).then(res => { |
| | | func.downloadFileByBlobHandler(res); |
| | | this.createdLoading = false |
| | | this.$message.success('å¯¼åºæå'); |
| | |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | <!-- åé
è§è²ç©¿æ¢æ¡ --> |
| | | <!-- åé
æåç©¿æ¢æ¡ --> |
| | | <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" |
| | | :transferTitle="transferTitle" title="è§è²æ·»å æå" |
| | | @transferSend="roleSendHandler"> |
| | |
| | | this.rightRoleData = byRoleRes.data.data.map(item => item.oid); |
| | | this.$refs.transfer.visible = true; |
| | | } |
| | | }).catch(err => { |
| | | console.error(err); |
| | | }); |
| | | |
| | | }, |
| | |
| | | saveRight(params).then(res => { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | }).catch(err => { |
| | | this.$message.error(err) |
| | | }) |
| | | }, |
| | | |
| | |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="pwdVisible = false">å æ¶</el-button> |
| | | <el-button size="small" type="primary" @click="savePwdHandler">ç¡® å®</el-button> |
| | | <el-button size="small" @click="pwdVisible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | > |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="departVisible = false">å æ¶</el-button> |
| | | <el-button size="small" type="primary" @click="saveDepartHandler">ç¡® å®</el-button> |
| | | <el-button size="small" @click="departVisible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </basic-container> |
| | |
| | | } |
| | | }).catch(err => { |
| | | loading() |
| | | console.log(err); |
| | | }) |
| | | }, |
| | | |
| | |
| | | } |
| | | }).catch(err => { |
| | | loading() |
| | | console.log(err); |
| | | }); |
| | | }, |
| | | |