From a35f4b4d0c555493cc464bfd36d037230547f1aa Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期四, 20 三月 2025 09:44:44 +0800
Subject: [PATCH] 1.高级安全防护
---
src/views/system/SecurityList.vue | 219 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 159 insertions(+), 60 deletions(-)
diff --git a/src/views/system/SecurityList.vue b/src/views/system/SecurityList.vue
index 24a044c..912acb2 100644
--- a/src/views/system/SecurityList.vue
+++ b/src/views/system/SecurityList.vue
@@ -9,13 +9,22 @@
<a-row :gutter="24">
<a-col :md="6" :sm="24">
<a-form-item label="关键词" :labelCol="labelCol" :wrapperCol="wrapperCol">
- <a-input placeholder="请输入关键词查询" v-model="queryParam.name"></a-input>
+ <a-input placeholder="请输入关键词查询" v-model="queryParam.keyword"></a-input>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24">
- <a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol">
- <a-input placeholder="请输入备注查询" v-model="queryParam.description"></a-input>
- </a-form-item>
+ <a-form-item label="防护类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <a-select
+ optionFilterProp="children"
+ :dropdownMatchSelectWidth="false"
+ showSearch allow-clear style="width: 100%"
+ placeholder="请选择防护类型"
+ v-model="queryParam.type">
+ <a-select-option v-for="(type,index) in typeList" :value="type.itemValue" :key="index">
+ {{ type.itemText }}
+ </a-select-option>
+ </a-select>
+ </a-form-item>
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
@@ -28,10 +37,10 @@
</div>
<!-- 操作按钮区域 -->
<div class="table-operator" style="margin-top: 5px">
- <a-button v-if="btnEnableList.indexOf(1)>-1" @click="handleAdd" type="primary" icon="plus">新增</a-button>
- <a-button v-if="btnEnableList.indexOf(1)>-1" @click="batchDel" icon="delete">删除</a-button>
- <a-button v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(true)" icon="check-square">启用</a-button>
- <a-button v-if="btnEnableList.indexOf(1)>-1" @click="batchSetStatus(false)" icon="close-square">禁用</a-button>
+ <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+ <a-button @click="batchDel" icon="delete">删除</a-button>
+ <a-button @click="batchSetStatus(true)" icon="check-square">启用</a-button>
+ <a-button @click="batchSetStatus(false)" icon="close-square">禁用</a-button>
</div>
<!-- table区域-begin -->
<div>
@@ -48,27 +57,26 @@
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<span slot="action" slot-scope="text, record">
- <a @click="handleSetFunction(record)">分配功能</a>
- <a-divider type="vertical" />
- <a @click="handleSetPushBtn(record.id, record.name)">分配按钮</a>
- <a-divider type="vertical" />
<a @click="handleEdit(record)">编辑</a>
- <a-divider v-if="btnEnableList.indexOf(1)>-1" type="vertical" />
- <a-popconfirm v-if="btnEnableList.indexOf(1)>-1" title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+ <a-divider type="vertical" />
+ <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
- <a-modal v-model="roleModalVisible" title="操作提示" @ok="handleRoleTip(record)">
- <p>保存角色已经操作成功!现在继续<b>分配功能</b>吗?</p>
- </a-modal>
+
</span>
- <span slot="typeTitle">
+ <!-- <span slot="typeTitle">
防护类型
- <a-tooltip title="1、全部数据-该角色对应的用户可以看到全部单据;2、本机构数据-该角色对应的用户可以看到自己所在机构的全部单据;
- 3、个人数据-该角色对应的用户只可以看到自己的单据。单据是指采购入库、销售出库等">
+ <a-tooltip title="">
<a-icon type="question-circle" />
</a-tooltip>
- </span>
+ </span> -->
<!-- 状态渲染模板 -->
+
+
+ <template slot="type" slot-scope="type">
+ <a-tag color="green">{{ getDictItemLabel(typeList,type) }}</a-tag>
+ </template>
+
<template slot="customRenderFlag" slot-scope="enabled">
<a-tag v-if="enabled" color="green">启用</a-tag>
<a-tag v-if="!enabled" color="orange">禁用</a-tag>
@@ -77,36 +85,34 @@
</div>
<!-- table区域-end -->
<!-- 表单区域 -->
- <role-modal ref="modalForm" @ok="roleModalFormOk"></role-modal>
+ <security-modal ref="modalForm" @ok="roleModalFormOk"></security-modal>
<role-function-modal ref="roleFunctionModal" @ok="roleFunctionModalFormOk"></role-function-modal>
<role-push-btn-modal ref="rolePushBtnModal" @ok="modalFormOk"></role-push-btn-modal>
- <a-modal v-model="roleFunctionModalVisible" title="操作提示" @ok="handleRoleFunctionTip">
- <p>分配功能已经操作成功!现在继续<b>分配按钮</b>吗?</p>
- </a-modal>
+
</a-card>
</a-col>
</a-row>
</template>
<!-- f r o m 7 5 2 7 1 8 9 2 0 -->
<script>
- import RoleModal from './modules/RoleModal'
+ import SecurityModal from './modules/SecurityModal'
import RoleFunctionModal from './modules/RoleFunctionModal'
import RolePushBtnModal from './modules/RolePushBtnModal'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JDate from '@/components/jeecg/JDate'
+ import {getAction,deleteAction,postAction } from '@/api/manage'
export default {
- name: "RoleList",
+ name: "SecurityList",
mixins:[JeecgListMixin],
components: {
- RoleModal,
+ SecurityModal,
RoleFunctionModal,
RolePushBtnModal,
JDate
},
data () {
return {
- description: '角色管理页面',
- roleModalVisible: false,
+ description: '高级安全防护管理页面',
roleFunctionModalVisible: false,
currentRoleId: '',
labelCol: {
@@ -118,8 +124,8 @@
},
// 查询条件
queryParam: {
- name: '',
- description: '',
+ keyword: '',
+ type: '',
},
// 表头
columns: [
@@ -144,8 +150,9 @@
title: '关键词', align:"left", dataIndex: 'keyword', width: 120
},
{
- align:"left", dataIndex: 'type', width: 100,
- slots: { title: 'typeTitle' }
+ title:' 防护类型',align:"left", dataIndex: 'type', width: 100,
+ slots: { title: 'typeTitle' },
+ scopedSlots: { customRender: 'type' }
},
{ title: '状态',dataIndex: 'status',width:60,align:"center",
scopedSlots: { customRender: 'customRenderFlag' }
@@ -157,6 +164,7 @@
deleteBatch: "/config-security/deleteBatch",
batchSetStatusUrl: "/config-security/batchSetStatus"
},
+ typeList:[],
}
},
computed: {
@@ -164,11 +172,56 @@
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
}
},
+
+ mounted(){
+ this.loadDictData();
+ },
methods: {
- handleSetFunction(record) {
- this.$refs.roleFunctionModal.edit(record);
- this.$refs.roleFunctionModal.title = "分配功能给:" + record.name + "【分配之后请继续分配按钮】"
- this.$refs.roleFunctionModal.disableSubmit = false;
+
+ searchQuery() {
+ this.ipagination.current = 1;
+ this.loadData();
+ },
+
+ loadData(arg) {
+ //加载数据 若传入参数1则加载第一页的内容
+ // this.ipagination.current = 1;
+
+ let params = this.queryParam
+ params.currentPage = this.ipagination.current;
+ params.pageSize = this.ipagination.pageSize;
+
+ this.loading = true;
+ getAction(this.url.list, params).then((res) => {
+ if (res.code===200) {
+ this.dataSource = res.data.rows;
+ this.ipagination.total = res.data.total;
+ this.tableAddTotalRow(this.columns, this.dataSource)
+ this.realityPriceTotal = res.data.realityPriceTotal
+ } else if(res.code===510){
+ this.$message.warning(res.data)
+ } else {
+ this.$message.warning(res.data.message)
+ }
+ this.loading = false;
+ })
+ },
+
+ loadDictData() {
+ // 安全防护类型
+ var dictCode='securityType'
+ getAction(`/sysDict/items/dict-code/${dictCode}`).then((res)=>{
+ if(res.code === 200){
+ this.typeList = res.data;
+ }else{
+ this.$message.info(res.data);
+ }
+ })
+ },
+
+ getDictItemLabel(list, value) {
+ const item = list.find(item => item.itemValue === value);
+ return item ? item.itemText : null;
},
handleSetPushBtn(roleId, roleName) {
this.$refs.rolePushBtnModal.edit(roleId);
@@ -178,7 +231,6 @@
roleModalFormOk() {
//重载列表
this.loadData()
- this.roleModalVisible = true
},
roleFunctionModalFormOk(id) {
//重载列表
@@ -186,37 +238,84 @@
this.roleFunctionModalVisible = true
this.currentRoleId = id
},
- handleRoleTip(record) {
- if(record) {
- this.roleModalVisible = false
- this.handleSetFunction(record)
- }
- },
- handleRoleFunctionTip() {
- if(this.currentRoleId) {
- this.roleFunctionModalVisible = false
- let roleName = ''
- for (let i = 0; i < this.dataSource.length; i++) {
- if(this.dataSource[i].id == this.currentRoleId) {
- roleName = this.dataSource[i].name
- }
- }
- this.handleSetPushBtn(this.currentRoleId, roleName)
- }
- },
+
handleAdd: function () {
this.$refs.modalForm.add();
- this.$refs.modalForm.title = "新增【保存之后请继续分配功能】";
+ this.$refs.modalForm.title = "新增";
this.$refs.modalForm.disableSubmit = false;
},
handleEdit: function (record) {
+ console.log("edit", record);
this.$refs.modalForm.edit(record);
- this.$refs.modalForm.title = "编辑【保存之后请继续分配功能】";
+ this.$refs.modalForm.title = "编辑";
this.$refs.modalForm.disableSubmit = false;
if(this.btnEnableList.indexOf(1)===-1) {
this.$refs.modalForm.isReadOnly = true
}
- }
+ },
+ handleDelete(id) {
+ deleteAction(this.url.delete+`/${id}`, {id: id}).then((res) => {
+ if (res.code === 200) {
+ this.loadData();
+ this.$message.success(res.message);
+ } else {
+ this.$message.warning(res.message);
+ }
+ });
+ },
+ batchDel() {
+ if (this.selectedRowKeys.length <= 0) {
+ this.$message.warning('请选择一条记录!');
+ return;
+ }
+ let ids = "";
+ this.selectedRowKeys.forEach(function(val) {
+ ids+=val+",";
+ });
+ ids = ids.substring(0,ids.length-1);
+ deleteAction(this.url.deleteBatch, {ids: ids}).then((res) => {
+ if(res.code === 200){
+ this.$message.success(res.msg);
+ this.loadData();
+ this.selectedRowKeys = [];
+ } else {
+ this.$message.warning(res.msg);
+ }
+ });
+ },
+ batchSetStatus: function (status) {
+ if(!this.url.batchSetStatusUrl){
+ this.$message.error("请设置url.batchSetStatusUrl属性!")
+ return
+ }
+ if (this.selectedRowKeys.length <= 0) {
+ this.$message.warning('请选择一条记录!');
+ return;
+ } else {
+ var ids = "";
+ for (var a = 0; a < this.selectedRowKeys.length; a++) {
+ ids += this.selectedRowKeys[a] + ",";
+ }
+ var that = this;
+ this.$confirm({
+ title: "确认操作",
+ content: "是否操作选中数据?",
+ onOk: function () {
+ that.loading = true;
+ postAction(that.url.batchSetStatusUrl, {status: status, ids: ids}).then((res) => {
+ if(res.code === 200){
+ that.loadData()
+ } else {
+ that.$message.warning(res.data.message);
+ }
+ }).finally(() => {
+ that.loading = false;
+ });
+ }
+ });
+ }
+ },
+
}
}
</script>
--
Gitblit v1.9.3