无人机管理后台前端(已迁走)
shuishen
2025-05-19 2dfc8dc4bcd3d3cd4aed1b6054e073e140eba9c8
src/views/system/user.vue
@@ -11,122 +11,47 @@
    </el-col>
    <el-col :span="19">
      <basic-container>
        <avue-crud
          :option="option"
          v-model:search="search"
          :table-loading="loading"
          :data="data"
          ref="crud"
          v-model="form"
          :permission="permissionList"
          @row-del="rowDel"
          @row-update="rowUpdate"
          @row-save="rowSave"
          :before-open="beforeOpen"
          v-model:page="page"
          @search-change="searchChange"
          @search-reset="searchReset"
          @selection-change="selectionChange"
          @current-change="currentChange"
          @size-change="sizeChange"
          @refresh-change="refreshChange"
          @on-load="onLoad"
        >
        <avue-crud :option="option" v-model:search="search" :table-loading="loading" :data="data" ref="crud"
          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
          :before-open="beforeOpen" v-model:page="page" @search-change="searchChange" @search-reset="searchReset"
          @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
          @refresh-change="refreshChange" @on-load="onLoad">
          <template #menu-left>
            <el-button
              v-if="permission.user_add && !auditMode"
              type="primary"
              icon="el-icon-plus"
              @click="$refs.crud.rowAdd()"
              >新 增
            <el-button v-if="permission.user_add && !auditMode" type="primary" icon="el-icon-plus"
              @click="$refs.crud.rowAdd()">新 增
            </el-button>
            <el-button
              type="danger"
              plain
              icon="el-icon-delete"
              v-if="permission.user_delete && !auditMode"
              @click="handleDelete"
              >删 除
            <el-button type="danger" plain icon="el-icon-delete" v-if="permission.user_delete && !auditMode"
              @click="handleDelete">删 除
            </el-button>
            <el-button
              type="primary"
              plain
              icon="el-icon-operation"
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              @click="handleAudit"
              >审 核
            <el-button type="primary" plain icon="el-icon-operation"
              v-if="userInfo.role_name.includes('admin') && !auditMode" @click="handleAudit">审 核
            </el-button>
            <el-button
              type="success"
              plain
              icon="el-icon-check"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditPass"
              >通 过
            <el-button type="success" plain icon="el-icon-check" v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditPass">通 过
            </el-button>
            <el-button
              type="danger"
              plain
              icon="el-icon-close"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditRefuse"
              >拒 绝
            <el-button type="danger" plain icon="el-icon-close" v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditRefuse">拒 绝
            </el-button>
            <el-button
              type="primary"
              plain
              icon="el-icon-refresh-left"
              v-if="userInfo.role_name.includes('admin') && auditMode"
              @click="handleAuditBack"
              >返 回
            <el-button type="primary" plain icon="el-icon-refresh-left"
              v-if="userInfo.role_name.includes('admin') && auditMode" @click="handleAuditBack">返 回
            </el-button>
            <el-button
              type="info"
              plain
              v-if="permission.user_role && !auditMode"
              icon="el-icon-user"
              @click="handleGrant"
              >角色配置
            <el-button type="info" plain v-if="permission.user_role && !auditMode" icon="el-icon-user"
              @click="handleGrant">角色配置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="permission.user_reset && !auditMode"
              icon="el-icon-refresh"
              @click="handleReset"
              >密码重置
            <el-button type="info" plain v-if="permission.user_reset && !auditMode" icon="el-icon-refresh"
              @click="handleReset">密码重置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-setting"
              @click="handlePlatform"
              >平台配置
            <el-button type="info" plain v-if="userInfo.role_name.includes('admin') && !auditMode" icon="el-icon-setting"
              @click="handlePlatform">平台配置
            </el-button>
            <el-button
              type="info"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-coordinate"
              @click="handleLock"
              >账号解封
            <el-button type="info" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-coordinate" @click="handleLock">账号解封
            </el-button>
            <el-button
              type="success"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-upload"
              @click="handleImport"
              >导入
            <el-button type="success" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-upload" @click="handleImport">导入
            </el-button>
            <el-button
              type="warning"
              plain
              v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-download"
              @click="handleExport"
              >导出
            <el-button type="warning" plain v-if="userInfo.role_name.includes('admin') && !auditMode"
              icon="el-icon-download" @click="handleExport">导出
            </el-button>
          </template>
          <template #tenantName="{ row }">
@@ -143,16 +68,8 @@
          </template>
        </avue-crud>
        <el-dialog title="用户角色配置" append-to-body v-model="roleBox" width="345px">
          <el-tree
            :data="roleGrantList"
            show-checkbox
            check-strictly
            default-expand-all
            node-key="id"
            ref="treeRole"
            :default-checked-keys="roleTreeObj"
            :props="props"
          >
          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
            :default-checked-keys="roleTreeObj" :props="props">
          </el-tree>
          <template #footer>
            <span class="dialog-footer">
@@ -171,24 +88,12 @@
          </avue-form>
        </el-dialog>
        <el-dialog title="用户平台配置" append-to-body v-model="platformBox">
          <avue-crud
            :option="platformOption"
            :table-loading="platformLoading"
            :data="platformData"
            ref="platformCrud"
            v-model="platformForm"
            :before-open="platformBeforeOpen"
            v-model:page="platformPage"
            :permission="platformPermissionList"
            @row-update="platformRowUpdate"
            @search-change="platformSearchChange"
            @search-reset="platformSearchReset"
            @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange"
            @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange"
            @on-load="platformOnLoad"
          >
          <avue-crud :option="platformOption" :table-loading="platformLoading" :data="platformData" ref="platformCrud"
            v-model="platformForm" :before-open="platformBeforeOpen" v-model:page="platformPage"
            :permission="platformPermissionList" @row-update="platformRowUpdate" @search-change="platformSearchChange"
            @search-reset="platformSearchReset" @selection-change="platformSelectionChange"
            @current-change="platformCurrentChange" @size-change="platformSizeChange"
            @refresh-change="platformRefreshChange" @on-load="platformOnLoad">
            <template #tenantName="{ row }">
              <el-tag>{{ row.tenantName }}</el-tag>
            </template>
@@ -286,7 +191,12 @@
        lazy: true,
        treeLoad: function (node, resolve) {
          const parentId = node.level === 0 ? 0 : node.data.id;
          getDeptLazyTree(parentId).then(res => {
          console.log(node,666)
          const param = {
            parentId:parentId,
            level:node.level
          }
          getDeptLazyTree(param).then(res => {
            resolve(
              res.data.data.map(item => {
                return {
@@ -453,6 +363,13 @@
                viewDisplay: false,
                rules: [{ required: true, validator: validatePass2, trigger: 'blur' }],
              },
              {
                label: '到期时间',
                prop: 'expireTime',
                type: 'datetime',
                format: 'YYYY-MM-DD HH:mm:ss',
                valueFormat: 'YYYY-MM-DD HH:mm:ss',
              },
            ],
          },
          {
@@ -569,8 +486,12 @@
                type: 'tree',
                multiple: true,
                dicData: [],
                // props: {
                //   label: 'title',
                // },
                props: {
                  label: 'title',
                  label: 'name',
                  value: 'id',
                },
                checkStrictly: true,
                slot: true,
@@ -776,6 +697,7 @@
    if (!website.tenantMode) {
      this.initData(website.tenantId);
    }
    this.initData(this.form.tenantId);
  },
  methods: {
    nodeClick(data) {
@@ -784,6 +706,7 @@
      this.onLoad(this.page);
    },
    initData(tenantId) {
      tenantId = '000000';
      getRoleTree(tenantId).then(res => {
        const column = this.findObject(this.option.group, 'roleId');
        column.dicData = res.data.data;
@@ -792,10 +715,10 @@
        const column = this.findObject(this.option.group, 'deptId');
        column.dicData = res.data.data;
      });
      getPostList(tenantId).then(res => {
        const column = this.findObject(this.option.group, 'postId');
        column.dicData = res.data.data;
      });
      // getPostList(tenantId).then(res => {
      //   const column = this.findObject(this.option.group, 'postId');
      //   column.dicData = res.data.data;
      // });
    },
    submitRole() {
      const roleList = this.$refs.treeRole.getCheckedKeys().join(',');
@@ -1034,8 +957,7 @@
      }).then(() => {
        NProgress.start();
        exportBlob(
          `/blade-system/user/export-user?${
            this.website.tokenHeader
          `/blade-system/user/export-user?${this.website.tokenHeader
          }=${getToken()}&account=${account}&realName=${realName}`
        ).then(res => {
          downloadXls(res.data, `用户数据表${this.$dayjs().format('YYYY-MM-DD')}.xlsx`);