保安服务企业管理项目备份
guoshilong
2023-12-19 83afaa6677d935255c46e374b2469c6caf55182b
审批功能
4 files modified
299 ■■■■ changed files
src/api/system/user.js 12 ●●●●● patch | view | raw | blame | history
src/views/securityGuard/data.js 178 ●●●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuard.vue 95 ●●●●● patch | view | raw | blame | history
src/views/system/user.vue 14 ●●●●● patch | view | raw | blame | history
src/api/system/user.js
@@ -80,6 +80,16 @@
    })
}
export const batchAudit = (ids,auditStatus) => {
  return request({
    url: '/api/blade-user/batchAudit',
    method: 'post',
    params: {
      ids,auditStatus
    }
  })
}
export const add = (row) => {
    return request({
        url: '/api/blade-user/submit',
@@ -230,4 +240,4 @@
            roleIds,
        }
    })
}
}
src/views/securityGuard/data.js
@@ -1,14 +1,14 @@
//保安员基本信息
export var securityBaseInfoColumn = [{
    label: "",
    labelWidth: "20",
    type: "title",
    prop: "title",
    span: 24,
    styles: {
      fontSize: "24px"
    }
  },
  label: "",
  labelWidth: "20",
  type: "title",
  prop: "title",
  span: 24,
  styles: {
    fontSize: "24px"
  }
},
  {
    label: "企业名称",
    prop: "deptId",
@@ -136,9 +136,9 @@
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
      },
      label: "男",
      value: 1
    },
      {
        label: "女",
        value: 2
@@ -159,17 +159,17 @@
];
export var securityBaseInfoColumns = [{
    label: "所属保安单位",
    prop: "tenantId",
    type: "tree",
    dicUrl: "/api/blade-system/tenant/select",
    props: {
      label: "tenantName",
      value: "tenantId"
    },
    disabled: true,
    span: 24
  label: "所属保安单位",
  prop: "tenantId",
  type: "tree",
  dicUrl: "/api/blade-system/tenant/select",
  props: {
    label: "tenantName",
    value: "tenantId"
  },
  disabled: true,
  span: 24
},
  {
    label: "登录账号",
    prop: "account",
@@ -179,10 +179,10 @@
    label: "用户姓名",
    prop: "realName",
    rules: [{
        required: true,
        message: "请输入用户姓名",
        trigger: "blur"
      },
      required: true,
      message: "请输入用户姓名",
      trigger: "blur"
    },
      {
        min: 2,
        max: 5,
@@ -288,9 +288,9 @@
    prop: "sex",
    type: "select",
    dicData: [{
        label: "男",
        value: 1
      },
      label: "男",
      value: 1
    },
      {
        label: "女",
        value: 2
@@ -312,12 +312,12 @@
//从业记录
export var practitionersColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
  },
  label: "id",
  prop: "id",
  hide: true,
  editDisplay: false,
  addDisplay: false
},
  {
    label: "企业名称",
    prop: "companyname",
@@ -377,11 +377,11 @@
];
export var practitionersColumns = [{
    width: 200,
    label: "企业名称",
    prop: "companyname",
    formslot: true
  },
  width: 200,
  label: "企业名称",
  prop: "companyname",
  formslot: true
},
  {
    width: 200,
    label: "部门",
@@ -428,12 +428,12 @@
//表现
export var trackRecordColumn = [{
    label: "id",
    prop: "id",
    hide: true,
    editDisplay: false,
    addDisplay: false
  },
  label: "id",
  prop: "id",
  hide: true,
  editDisplay: false,
  addDisplay: false
},
  {
    label: "时间",
    type: "date",
@@ -462,9 +462,9 @@
    //     value: "dictKey"
    // },
    dicData: [{
        label: "优秀",
        value: 0
      },
      label: "优秀",
      value: 0
    },
      {
        label: "良好",
        value: 1
@@ -494,14 +494,14 @@
];
export var securityFormPageColumn = [{
    label: "姓名",
    prop: "realName",
    search: true,
    searchSpan: 3,
    width: 65,
    searchLabelWidth: 50,
    display: false
  },
  label: "姓名",
  prop: "realName",
  search: true,
  searchSpan: 3,
  width: 65,
  searchLabelWidth: 50,
  display: false
},
  // {
  //   label: "企业名称",
  //   searchLabelWidth: 75,
@@ -545,9 +545,9 @@
    width: 75,
    type: "select",
    dicData: [{
        label: "男",
        value: 1
      },
      label: "男",
      value: 1
    },
      {
        label: "女",
        value: 2
@@ -665,9 +665,9 @@
    searchSpan: 3,
    addDisplay: false,
    dicData: [{
        label: "全部",
        value: "2"
      },
      label: "全部",
      value: "2"
    },
      {
        label: "已派遣",
        value: "0"
@@ -689,9 +689,9 @@
    width: 110,
    type: "select",
    dicData: [{
        label: "是",
        value: "1"
      },
      label: "是",
      value: "1"
    },
      {
        label: "否",
        value: "2"
@@ -763,9 +763,9 @@
    hide: true,
    display: false,
    dicData: [{
        label: "全部",
        value: 3
      },
      label: "全部",
      value: 3
    },
      {
        label: "有",
        value: 1
@@ -789,9 +789,9 @@
    hide: true,
    display: false,
    dicData: [{
        label: "全部",
        value: 3
      },
      label: "全部",
      value: 3
    },
      {
        label: "是",
        value: 1
@@ -835,9 +835,9 @@
    hide: true,
    width: 110,
    dicData: [{
        label: "全部",
        value: 6
      },
      label: "全部",
      value: 6
    },
      {
        label: "正常",
        value: "0"
@@ -847,5 +847,33 @@
        value: "1"
      }
    ]
  },
  {
    label: "审核状态",
    prop: "auditStatus",
    type: "select",
    sortable: true,
    display: false,
    searchSpan: 3,
    search: true,
    width: 110,
    dicData: [
      {
        label: "全部",
        value: ""
      },
      {
        label: "待审批",
        value: 10,
      },
      {
        label: "审批通过",
        value: 1
      },
      {
        label: "审批不通过",
        value: 2
      }
    ]
  }
];
src/views/securityGuard/securityGuard.vue
@@ -28,6 +28,9 @@
          :before-close="beforeClose">
          <!-- @row-update="rowUpdate" -->
          <template slot="menuLeft">
            <el-button type="primary" size="small" plain icon="el-icon-s-check"
                       @click="handleBatchAudit">批量审批
            </el-button>
            <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.securityGuard_import"
              @click="handleImport1">保安员批量导入
            </el-button>
@@ -51,6 +54,7 @@
            <el-button type="warning" size="small" plain icon="el-icon-download" v-if="permission.export_security_info"
              @click="handleExportSecurityInfo">保安信息导出
            </el-button>
            <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.securityGuard_delete"
              @click="handleDelete">注 销
@@ -80,26 +84,37 @@
                  @click.stop="rowClick(row)">查看
                </el-button>
                <br v-if="permission.securityGuard_view" />
                <el-button icon="el-icon-scissors" :size="size" :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2" @click="$refs.crud.rowEdit(row, index)">编辑
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button icon="el-icon-s-check" :size="size" :type="type"
                           v-if="permission.securityGuard_delete && row.status != 2" @click="handleAudit(row)">审批
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button icon="el-icon-close" :size="size" :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2" @click="$refs.crud.rowDel(row, index)">注销
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button icon="el-icon-circle-close" :size="size" :type="type"
                  v-if="permission.securityGuard_delete && row.status != 2" @click.stop="rowStatus(row)">离职
                </el-button>
                <br v-if="permission.securityGuard_delete && row.status != 2" />
                <el-button icon="el-icon-search" :size="size" :type="type" v-if="row.status == 2"
                  @click.stop="rowDellook(row)">离职查询
                </el-button>
                <br v-if="row.status == 2" />
                <el-button icon="el-icon-user" :size="size" :type="type" v-if="permission.securityGuard_check"
                  @click.stop="rowCheck(row)">异常
                </el-button>
                <br v-if="permission.securityGuard_check" />
                <el-button icon="el-icon-money" :size="size" :type="type" v-if="permission.securityGuard_check_apply"
                  @click.stop="rowCheckApply(row)">证件核实申请
                </el-button>
@@ -344,7 +359,7 @@
  getUserPractitionersInfo,
  updatePaperTime,
  getzhiwen, //指纹
  checkAccountByUser
  checkAccountByUser, batchAudit
} from "@/api/system/user";
import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
import { add } from "@/api/securityapplyRecord/securityapplyRecord";
@@ -1577,7 +1592,6 @@
      this.search["userType"] = 7;
    }
    this.deptIds = this.userInfo.dept_id;
    // this.beginzhiwen();
    // this.olondSFZ(); //检查身份证设备是否存在
  },
@@ -2415,6 +2429,83 @@
      this.sortName = "";
      // this.$refs.crud.toggleSelection();
    },
    handleBatchAudit(){
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("请选择审批结果", {
        distinguishCancelAndClose: true,
        confirmButtonText: "审批通过",
        cancelButtonText: "不通过",
        type: "warning"
      })
        .then(() => {
          //审核通过
          batchAudit(this.ids,1)
          .then(() => {
            this.onLoad(this.page);
            this.$message({
              type: "success",
              message: "操作成功!"
            });
            this.$refs.crud.toggleSelection();
          });
        }).catch(action => {
          console.log(action)
          if (action == 'cancel'){
            //审核不通过
            batchAudit(this.ids,2)
              .then(() => {
                this.onLoad(this.page);
                this.$message({
                  type: "success",
                  message: "操作成功!"
                });
                this.$refs.crud.toggleSelection();
              });
          }
      })
    },
    handleAudit(row){
      this.$confirm("请选择审批结果", {
        distinguishCancelAndClose: true,
        confirmButtonText: "审批通过",
        cancelButtonText: "不通过",
        type: "warning"
      })
        .then(() => {
          //审核通过
          batchAudit(row.id,1)
            .then(() => {
              this.onLoad(this.page);
              this.$message({
                type: "success",
                message: "操作成功!"
              });
              this.$refs.crud.toggleSelection();
            });
        }).catch(action => {
        console.log(action)
        if (action == 'cancel'){
          //审核不通过
          batchAudit(row.id,2)
            .then(() => {
              this.onLoad(this.page);
              this.$message({
                type: "success",
                message: "操作成功!"
              });
              this.$refs.crud.toggleSelection();
            });
        }
      })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
src/views/system/user.vue
@@ -208,6 +208,7 @@
import { mapGetters } from "vuex";
import website from "@/config/website";
import { getToken } from "@/util/auth";
import dept from "@/views/system/dept.vue";
export default {
  data() {
@@ -1024,6 +1025,17 @@
      done();
    },
    handleExport() {
      var deptId = ""
      if (this.treeDeptId == ""){
        if (this.userInfo.role_name.indexOf("administrator") ==-1){
          deptId = this.userInfo.dept_id
        }
      }else{
        deptId = this.treeDeptId.id
      }
      this.$confirm("是否导出用户数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -1034,7 +1046,7 @@
            this.website.tokenHeader
          }=${getToken()}&account=${this.search.account}&realName=${
            this.search.realName
          }`
          }&deptId=${deptId}`
        );
      });
    },