From 963a2313f4f8959715293d38f69894078150d508 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期五, 14 六月 2024 11:29:47 +0800 Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/smart-web --- src/views/console/authority/datascope.vue | 223 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 196 insertions(+), 27 deletions(-) diff --git a/src/views/console/authority/datascope.vue b/src/views/console/authority/datascope.vue index 1f5b2ae..09b2e06 100644 --- a/src/views/console/authority/datascope.vue +++ b/src/views/console/authority/datascope.vue @@ -8,7 +8,7 @@ --> <template> <div class="dict-main"> - <el-form :inline="true" :model="searchData" abel-width="120px"> + <el-form :inline="true" :model="searchData" label-width="120px"> <el-form-item label="鑿滃崟鍚嶇О"> <el-input v-model="searchData.name" placeholder="鑿滃崟鍚嶇О" clearable /> </el-form-item> @@ -47,37 +47,95 @@ </template> </el-table-column> <el-table-column prop="belongApplication" label="鎵�灞炲簲鐢�"></el-table-column> - <!-- <el-table-column prop="attachSize" label="闄勪欢澶у皬"> - <template #default="scope"> - <span class="attachSize">{{scope.row.attachSize}} B</span> - </template> - </el-table-column> --> <el-table-column fixed="right" label="鎿嶄綔"> <template #default="scope"> - <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">鏉冮檺閰嶇疆</el-button> + <el-button text type="primary" size="small" @click="showDrawer(scope.row, scope.$index)">鏉冮檺閰嶇疆</el-button> </template> </el-table-column> </el-table> </div> </div> + <el-drawer title="[鎺у埗涓績]鏁版嵁鏉冮檺閰嶇疆" v-model="drawer" :direction="direction" :before-close="handleClose" size="920" class="drawerStyle"> + <el-form :inline="true" :model="drawerSearchData" label-width="120px"> + <el-form-item label="鑿滃崟鍚嶇О"> + <el-input v-model="drawerSearchData.scopeName" placeholder="鑿滃崟鍚嶇О" clearable /> + </el-form-item> + <el-form-item label="鑿滃崟缂栧彿"> + <el-input v-model="drawerSearchData.resourceCode" placeholder="鑿滃崟缂栧彿" clearable></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="drawerSearchclick">鎼滅储</el-button> + <el-button @click="drawerSearchClearBtn">娓呯┖</el-button> + </el-form-item> + </el-form> + <div> + <div class="datascope-drawer-btn"> + <el-button type="primary" @click="addData">+ 鏂板</el-button> + <el-button type="danger" plain @click="delData">鍒犻櫎</el-button> + </div> + <div class="dict-table"> + <el-table ref="multipleTableRef" :data="drawerTableData" border style="width: 100%" class="multipleTableRef" @selection-change="drawerHandleSelectionChange"> + <el-table-column type="selection" width="55" /> + <el-table-column prop="scopeName" label="鏉冮檺鍚嶇О"></el-table-column> + <el-table-column prop="resourceCode" label="鏉冮檺缂栧彿"></el-table-column> + <el-table-column prop="scopeColumn" label="鏉冮檺瀛楁"></el-table-column> + <el-table-column prop="scopeTypeName" label="瑙勫垯鍒嗙被"></el-table-column> + <el-table-column fixed="right" label="鎿嶄綔"> + <template #default="scope"> + <el-button text type="primary" size="small" @click="table_show(scope.row, scope.$index)">鏌ョ湅</el-button> + <el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button> + <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <el-pagination + style="margin-top: 12px;" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage4" + :page-sizes="[15, 50, 100]" + :page-size="15" + layout="total, sizes, prev, pager, next, jumper" + :total="drawerTotal"> + </el-pagination> + </div> + </div> + </el-drawer> + <save-dialog v-if="dialog.save" ref="saveDialog" :scopeTypeNameList="scopeTypeNameList" :tableRow="tableRow" @success="addDatascopeSuccess" @closed="dialog.save=false"></save-dialog> </div> </template> <script> + import saveDialog from './addDatascope' import * as ElementPlusIconsVue from '@element-plus/icons-vue' let icons = [] for (const [key, component] of Object.entries(ElementPlusIconsVue)) { icons.push(key) } export default { - name: "attach", + name: "datascope", data(){ return { + scopeTypeNameList: [], + dialog: { + save: false + }, + drawerTotal: 0, + direction: "rtl", + drawer: false, icons, belongApplicationList: [], fileDialogVisible: false, getModalData: [], selection: [], + drawerSelection: [], total: 0, + drawerSearchData: { + scopeName: "", + resourceCode: "", + menuId: "", + current: 1, + size: 10 + }, searchData: { name: "", code: "", @@ -88,19 +146,99 @@ save: false, allocation: false }, - tableData: [] + tableData: [], + drawerTableData: [], + rowId: "", + tableRow: {} } }, created(){ }, mounted(){ + this.getscopeTypeNameList();//瑙勫垯鍒嗙被鏋氫妇 this.searchBtn(); }, components: { - ...ElementPlusIconsVue + ...ElementPlusIconsVue,saveDialog }, methods: { + getscopeTypeNameList() { //瑙勫垯鍒嗙被鏋氫妇 + this.$HTTP.get("/api/blade-system/dict/dictionary?code=data_scope_type").then(res=> { + if(res.code == 200) { + this.scopeTypeNameList = res.data; + } + }) + }, + addDatascopeSuccess() { + this.drawerSearchclick(); + }, + //娣诲姞鏉冮檺 + addData(){ + this.dialog.save = true + this.$nextTick(() => { + this.$refs.saveDialog.open() + }) + }, + // 鍒犻櫎 + delData() { + if(this.drawerSelection.length == 0) { + this.$message({ + message: '璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�', + type: 'warning' + }); + return; + } + var selStr = ""; + this.drawerSelection.map(item=> { + selStr += item.id + "," + }) + selStr = selStr.replace(/,$/, ''); + var that = this; + this.$HTTP.post("/api/blade-system/data-scope/remove?ids="+selStr).then(res=> { + if(res.code == 200) { + that.$message.success("鎿嶄綔鎴愬姛"); + that.drawerSearchclick(); + } + }) + }, + table_edit(row){ //缂栬緫 + this.dialog.save = true + this.$HTTP.get("/api/blade-system/data-scope/detail?id="+row.id).then(res=> { + if(res.code == 200) { + this.dialog.save = true; + this.$nextTick(() => { + this.$refs.saveDialog.open('edit').setData(res.data); + }) + } + }) + }, + //鏌ョ湅 + table_show(row){ //鏌ョ湅 + this.dialog.save = true + this.$nextTick(() => { + this.$refs.saveDialog.open('show').setData(row) + }) + }, + table_del(row) { + var that = this; + this.$confirm(`纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?`, '', { + type: 'warning' + }).then(() => { + this.$HTTP.post("/api/blade-system/data-scope/remove?ids="+row.id).then(res=> { + if(res.code == 200) { + that.$message.success("鎿嶄綔鎴愬姛"); + that.drawerSearchclick(); + } + }) + }).catch(() => { + + }) + }, + handleClose(done) { + this.drawerTableData = []; + done(); + }, exportFile(row,index){ window.open(row.link); }, @@ -115,6 +253,37 @@ parentId: "" } this.searchBtn(); + }, + showDrawer(row){ + this.rowId = row.id; + this.tableRow = row; //鍚庨潰缁勪欢浼氱敤鍒� + this.drawerSearchclick(); + this.drawer = true; + }, + drawerSearchclick() { + var obj = {}; + for(var key in this.drawerSearchData) { + if(this.drawerSearchData[key]) { + obj[key] = this.drawerSearchData[key]; + } + } + obj.menuId = this.rowId; + this.$HTTP.get("/api/blade-system/data-scope/list?"+this.$TOOL.qsStringify(obj)).then(res=> { + if(res.code == 200) { + this.drawerTableData = res.data.records; + this.drawerTotal = res.data.total; + } + }) + }, + drawerSearchClearBtn() { + this.drawerSearchData = { + scopeName: "", + resourceCode: "", + menuId: this.rowId, + current: 1, + size: 10 + } + this.drawerSearchclick(); }, searchclick() { this.searchBtn(); @@ -132,33 +301,25 @@ } }) }, - //鍒犻櫎 - table_del(row) { - - }, - //鏌ョ湅 - table_show(row){ - this.dialog.save = true - this.$nextTick(() => { - this.$refs.saveDialog.open('show').setData(row) - }) - }, handleSelectionChange(selection) { this.selection = selection; + }, + drawerHandleSelectionChange(selection) { + this.drawerSelection = selection; }, changeDepartment() { this.departmentVisible = true; }, handleSizeChange(val) { console.log(`姣忛〉 ${val} 鏉); - this.searchData.current = "1"; - this.searchData.size = val; - this.searchBtn(); + this.drawerSearchData.current = "1"; + this.drawerSearchData.size = val; + this.drawerSearchclick(); }, handleCurrentChange(val) { console.log(`褰撳墠椤�: ${val}`); - this.searchData.current = val; - this.searchBtn(); + this.drawerSearchData.current = val; + this.drawerSearchclick(); } } } @@ -193,10 +354,18 @@ margin-bottom: 8px; } .attachSize { - color:#3b8e8e; + color:#409eff; padding: 0 10px; font-size: 12px; background-color: #ebf4f4; border: 1px solid #d8e8e8; } + /deep/ .drawerStyle { + padding: 20px; + } + .datascope-drawer-btn { + margin-bottom: 8px; + padding-left: 8px; + padding-right: 8px; + } </style> -- Gitblit v1.9.3