wangting
2025-01-02 e358d69fc18870584dd2d9f531910b7838ea27d9
Source/plt-web/plt-web-ui/src/views/system/user/index.vue
@@ -28,21 +28,37 @@
      </template>
      <template #menu="{row,index,size}">
        <el-button icon="el-icon-edit" size="small" type="text" @click.stop="rowEditHandler(row,index)">编辑</el-button>
        <el-button icon="el-icon-delete" size="small" type="text" @click.stop="rowDeleteHandler(row)">删除</el-button>
        <el-button size="small" type="text" @click.stop="stopUserHandler(row)">
        <el-button v-if="permissionList.editBtn" icon="el-icon-edit" size="small" type="text"
                   @click.stop="rowEditHandler(row,index)">编辑
        </el-button>
        <el-button v-if="permissionList.delBtn" icon="el-icon-delete" size="small" type="text"
                   @click.stop="rowDeleteHandler(row)">删除
        </el-button>
        <el-button v-if="permissionList.stopActionBtn" size="small" type="text" @click.stop="stopUserHandler(row)">
          <span v-if="row.status === 0" style="color: #fa3434"><i class="el-icon-video-pause"></i> 停用</span>
          <span v-if="row.status === 1" style="color: #55b61d"><i class="el-icon-video-play"></i> 启用</span>
        </el-button>
      </template>
      <template slot="menuLeft" slot-scope="scope">
        <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">删除</el-button>
        <el-button icon="el-icon-user" plain size="small" type="primary" @click="roleHandler">分配角色</el-button>
        <el-button icon="el-icon-school" plain size="small" type="primary" @click="departmentHandler">分配部门</el-button>
        <el-button icon="el-icon-key" plain size="small" type="success" @click="setPwsHandler">设置密码策略</el-button>
        <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadUser">导入人员</el-button>
        <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadHandler">下载导入模板</el-button>
        <el-button v-if="permissionList.editBtn" icon="el-icon-delete" plain size="small" type="danger"
                   @click="allDelHandler">删除
        </el-button>
        <el-button v-if="permissionList.assigningRolesBtn" icon="el-icon-user" plain size="small" type="primary"
                   @click="roleHandler">分配角色
        </el-button>
        <el-button v-if="permissionList.distributionDepartmentBtn" icon="el-icon-school" plain size="small"
                   type="primary" @click="departmentHandler">分配部门
        </el-button>
        <el-button v-if="permissionList.setPasswordPolicyBtn" icon="el-icon-key" plain size="small" type="success"
                   @click="setPwsHandler">设置密码策略
        </el-button>
        <el-button v-if="permissionList.importPersonnelBtn" icon="el-icon-upload2" plain size="small" type="primary"
                   @click="uploadUser">导入人员
        </el-button>
        <el-button v-if="permissionList.downloadImportTemplateBtn" icon="el-icon-download" plain size="small"
                   type="primary" @click="downloadHandler">下载导入模板
        </el-button>
      </template>
    </avue-crud>
@@ -61,12 +77,11 @@
      class="avue-dialog"
      style="margin-top: -15vh !important;"
      title="设置密码策略"
      width="30%"
      width="500px"
    >
      <div class="password-strategy-container">
        <div><i class="el-icon-setting"/>设置密码策略:</div>
        <el-select v-model="pwdValue" placeholder="请选择密码策略">
        <div style="width:115px;"><i class="el-icon-setting"/>设置密码策略:</div>
        <el-select v-model="pwdValue" placeholder="请选择密码策略" style="width: 330px;">
          <el-option v-for="(item,index) in pwdList" :key="index" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </div>
@@ -125,6 +140,7 @@
} from '@/api/system/user/api'
import {column} from "./option"
import func from '@/util/func'
import {mapGetters} from "vuex";
export default {
  name: "userManage",
@@ -174,14 +190,6 @@
      pwdList: [],
      tableLoading: false,
      tableData: [],
      option: {
        ...basicOption,
        editBtn: false,
        delBtn: false,
        dialogWidth: '50%',
        calcHeight: -60,
        column: column
      },
      page: {
        currentPage: 1,
        pageSize: 10,
@@ -197,7 +205,32 @@
      lastIndex: null,
    }
  },
  created() {
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false),
        delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false),
        editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false),
        assigningRolesBtn: this.vaildData(this.permission[this.$route.query.id].assigningRoles, false),
        distributionDepartmentBtn: this.vaildData(this.permission[this.$route.query.id].distributionDepartment, false),
        downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].downloadImportTemplate, false),
        importPersonnelBtn: this.vaildData(this.permission[this.$route.query.id].importPersonnel, false),
        setPasswordPolicyBtn: this.vaildData(this.permission[this.$route.query.id].setPasswordPolicy, false),
        stopActionBtn: this.vaildData(this.permission[this.$route.query.id].stopAction, false),
      };
    },
    option() {
      return {
        ...basicOption,
        addBtn: this.permissionList.addBtn,
        editBtn: false,
        delBtn: false,
        dialogWidth: '50%',
        calcHeight: -60,
        column: column
      }
    }
  },
  methods: {
    // 表格请求
@@ -205,9 +238,10 @@
      this.tableLoading = true;
      getDataUsers(this.page.currentPage, this.page.pageSize, this.searchParams).then(res => {
        const data = res.data.data;
        data.map(item => {item.secretGrade = item.secretGrade.toString()})
        this.tableData = data;
        this.page.total = res.data.total;
        this.tableLoading = false;
        this.tableLoading = false;s
      })
      this.departmentQueryOnLoad()
    },
@@ -264,9 +298,7 @@
      stopUser(params).then(res => {
        this.$message.success(res.data.obj);
        this.getTableList();
      }).catch(err => {
        this.$message.error(err)
      })
      });
    },
    // 选择框
@@ -284,7 +316,7 @@
          this.lastIndex = newIndex;
        },
        () => {
          this.selectList = [];
          this.selectList = [row];
        }
      );
    },
@@ -308,9 +340,7 @@
        listRoleByUserOid(userOid).then(res => {
          this.rightRoleData = res.data.data.map(item => item.oid);
        })
      }).catch(err => {
        this.$message.error(err)
      })
      });
      this.$refs.transfer.visible = true;
    },
@@ -323,9 +353,7 @@
      saveRights(params).then(res => {
        this.$message.success(res.data.obj);
        this.getTableList();
      }).catch(err => {
        this.$message.error(err)
      })
      });
    },
    // 设置密码策略
@@ -357,9 +385,7 @@
      saveUserPasswordStrateg(params).then(res => {
        this.pwdVisible = false;
        this.$message.success(res.data.obj)
      }).catch(err => {
        this.$message.error(err)
      })
      });
    },
    // 新增
@@ -490,9 +516,7 @@
          children: this.departData
        }]
        this.option.column[7].defaultExpandedKeys = ['ALLDept'];
      }).catch(err => {
        this.$message.error(err);
      })
      });
    },
    // 分配部门数据转换
@@ -549,7 +573,7 @@
<style lang="scss" scoped>
.password-strategy-container {
  padding-left: 20px;
  margin-bottom: 20px;
  display: flex;
  //justify-content: center;
  align-items: center;