| | |
| | | <template> |
| | | <el-row> |
| | | <el-row :class="{ securityGuard: isSecurity }"> |
| | | <el-col :span="0" style="display: none"> |
| | | <div class="box"> |
| | | <el-scrollbar> |
| | |
| | | v-model="form" |
| | | :permission="permissionList" |
| | | @row-del="rowDel" |
| | | @row-update="rowUpdate" |
| | | :row-style="rowStyle" |
| | | @row-save="rowSave" |
| | | @row-click="rowClick" |
| | | @row-update="rowUpdate" |
| | | :before-open="beforeOpen" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <!-- @row-update="rowUpdate" --> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | v-if="permission.securityGuard_import" |
| | | @click="handleImport1" |
| | | >批量导入 |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | v-if="permission.securityGuard_import" |
| | | @click="handleImport2" |
| | | >个人照片批量上传 |
| | | </el-button> |
| | | <el-button |
| | | type="danger" |
| | | style="display: none" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-delete" |
| | | v-if="permission.user_delete" |
| | | @click="handleDelete" |
| | | >注 销 |
| | | </el-button> |
| | |
| | | </template> |
| | | |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <!-- <el-button |
| | | style="display:none" |
| | | icon="el-icon-edit" |
| | | :size="size" |
| | | :type="type" |
| | | @click.stop="addOrUpdateHandle(row.id)" |
| | | >修改 |
| | | </el-button> --> |
| | | <el-button |
| | | icon="el-icon-s-custom" |
| | | :size="size" |
| | | :type="type" |
| | | @click.stop="rowClick(row)" |
| | | >查看 |
| | | </el-button> |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | :size="size" |
| | | :type="type" |
| | | @click.stop="rowDel(row)" |
| | | v-if="permission.securityGuard_delete && row.status != 2" |
| | | @click.stop="rowStatus(row)" |
| | | >离职登记 |
| | | </el-button> |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | :size="size" |
| | | :type="type" |
| | | v-if="row.status == 2" |
| | | @click.stop="rowDellook(row)" |
| | | >离职查询 |
| | | </el-button> |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | :size="size" |
| | | :type="type" |
| | | v-if="permission.securityGuard_check" |
| | | @click.stop="rowCheck(row)" |
| | | >异常 |
| | | </el-button> |
| | | </template> |
| | | |
| | |
| | | <el-tag v-if="row.sex == 1">男</el-tag> |
| | | <el-tag v-if="row.sex == 2">女</el-tag> |
| | | </template> |
| | | |
| | | <template slot-scope="{ row }" slot="deptId"> |
| | | <el-tag |
| | | class="rowClickSelf" |
| | | title="点击查看所属公司情况" |
| | | @click="rowClickSelf(row.deptId)" |
| | | >{{ row.deptName }}</el-tag |
| | | > |
| | | </template> |
| | | <template slot-scope="{ row }" slot="tenantName"> |
| | | <el-tag>{{ row.tenantName }}</el-tag> |
| | | </template> |
| | |
| | | </template> |
| | | </avue-crud> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="保安员导入" |
| | | append-to-body |
| | | :visible.sync="excelBox1" |
| | | width="555px" |
| | | > |
| | | <avue-form |
| | | :option="excelOption1" |
| | | v-model="excelForm1" |
| | | :upload-after="uploadAfter1" |
| | | > |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" @click="handleTemplate1"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> |
| | | </avue-form> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="个人照片批量上传" |
| | | append-to-body |
| | | :visible.sync="excelBox2" |
| | | width="555px" |
| | | > |
| | | <avue-form |
| | | :option="excelOption2" |
| | | v-model="excelForm2" |
| | | :upload-after="uploadAfter2" |
| | | > |
| | | </avue-form> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { |
| | | getUser, |
| | |
| | | update, |
| | | updatePlatform, |
| | | add, |
| | | securitySave, |
| | | grant, |
| | | resetPassword, |
| | | getUserPractitionersInfo, |
| | |
| | | } from "@/api/system/user"; |
| | | import { getList } from "@/api/securityGuard/securityGuard"; |
| | | import { getDeptLazyTree } from "@/api/system/dept"; |
| | | import { getRoleTree } from "@/api/system/role"; |
| | | import { getRoleTree, getRoleDetail } from "@/api/system/role"; |
| | | import { getPostList } from "@/api/system/post"; |
| | | import { mapGetters } from "vuex"; |
| | | import website from "@/config/website"; |
| | | import { getToken } from "@/util/auth"; |
| | | import { securityFormPageColumn } from "./data"; |
| | | import { mapState } from "vuex"; |
| | | |
| | | export default { |
| | | |
| | | data() { |
| | | const validatePass = (rule, value, callback) => { |
| | | if (value === "") { |
| | |
| | | callback(); |
| | | } |
| | | }; |
| | | const validatePassNumber = (rule, value, callback) => { |
| | | var test = /^[0-9]*$/gm; |
| | | if (!test.test(value)) { |
| | | callback(new Error("请输入数字")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const validatePassCardid = (rule, value, callback) => { |
| | | var test = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/g; |
| | | if (!test.test(value) && value.length < 17) { |
| | | callback(new Error("请输入正确身份证号码")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const validatePassPhone = (rule, value, callback) => { |
| | | var test = /^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/g; |
| | | if (!test.test(value)) { |
| | | callback(new Error("请输入正确手机号码")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | console.log(this.userInfo,123); |
| | | |
| | | return { |
| | | securityid: "", |
| | | excelBox1: false, |
| | | excelBox2: false, |
| | | isSecurity: true, |
| | | excelForm1: {}, |
| | | excelOption1: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: "文件上传", |
| | | prop: "excelFile", |
| | | type: "upload", |
| | | drag: true, |
| | | loadText: "文件上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/blade-user/import-user?deptId="+this.deptIds, |
| | | }, |
| | | { |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | | formslot: true, |
| | | span: 24, |
| | | }, |
| | | ], |
| | | }, |
| | | excelForm2: {}, |
| | | excelOption2: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: "文件上传", |
| | | prop: "file", |
| | | type: "upload", |
| | | drag: true, |
| | | loadText: "文件上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 zip 压缩文件,照片文件名以身份证号码命名", |
| | | action: "/api/blade-resource/oss/endpoint/put-file-zip", |
| | | }, |
| | | ], |
| | | }, |
| | | form: {}, |
| | | search: {}, |
| | | roleBox: false, |
| | |
| | | }, |
| | | roleId: "1412226235153731586", |
| | | deptId: "1413470343230877697", |
| | | deptIds:"", |
| | | platformPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | |
| | | calcHeight: 80, |
| | | tip: false, |
| | | searchShow: true, |
| | | |
| | | indexWidth: 55, |
| | | searchMenuSpan: 6, |
| | | border: false, |
| | | stripe: true, |
| | | border: true, |
| | | delBtn: true, |
| | | align: "center", |
| | | index: true, |
| | | delBtnText: "注销", |
| | | menuWidth: 327, |
| | | selection: true, |
| | | viewBtn: true, |
| | | defaultExpandAll: true, |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | column: securityFormPageColumn, |
| | |
| | | label: "所属保安公司", |
| | | prop: "deptId", |
| | | type: "tree", |
| | | dicUrl: |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // dicUrl: |
| | | // "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697", |
| | | // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | // disabled: true, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | { |
| | | label: "登录账号", |
| | | prop: "account", |
| | | editDisabled: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | { |
| | | label: "密码", |
| | | prop: "password", |
| | | type: "password", |
| | | hide: true, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | |
| | | { |
| | | label: "确认密码", |
| | | prop: "password2", |
| | | type: "password", |
| | | hide: true, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | |
| | | { required: true, validator: validatePass2, trigger: "blur" }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "详细信息", |
| | | prop: "detailInfo", |
| | | labelWidth: "110", |
| | | icon: "el-icon-s-order", |
| | | column: [ |
| | | { |
| | | label: "姓名", |
| | | prop: "realName", |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "编号", |
| | | prop: "code", |
| | | }, |
| | | { |
| | | label: "昵称", |
| | | prop: "name", |
| | | }, |
| | | { |
| | | label: "所属行政区", |
| | | prop: "jurisdiction", |
| | | // multiple: true, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree?parentId=0", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | label: "个人照片", |
| | | type: "upload", |
| | | listType: "picture-img", |
| | | propsHttp: { |
| | | res: "data", |
| | | url: "url", |
| | | }, |
| | | checkStrictly: true, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属行政区", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | canvasOption: { |
| | | text: " ", |
| | | ratio: 0.1, |
| | | }, |
| | | action: "/api/blade-resource/oss/endpoint/put-files", |
| | | tip: "只能上传jpg/png个人头像,且不超过500kb", |
| | | span: 12, |
| | | // row: true, |
| | | prop: "avatar", |
| | | }, |
| | | { |
| | | label: "所属角色", |
| | | prop: "roleId", |
| | | multiple: true, |
| | | type: "tree", |
| | | dicData: [], |
| | | props: { |
| | | label: "title", |
| | | label: "指纹信息", |
| | | type: "upload", |
| | | listType: "picture-img", |
| | | propsHttp: { |
| | | res: "data", |
| | | url: "url", |
| | | }, |
| | | checkStrictly: true, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属角色", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属岗位", |
| | | prop: "postId", |
| | | type: "tree", |
| | | multiple: true, |
| | | dicData: [], |
| | | props: { |
| | | label: "postName", |
| | | value: "id", |
| | | canvasOption: { |
| | | text: " ", |
| | | ratio: 0.1, |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择所属岗位", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | action: "/api/blade-resource/oss/endpoint/put-files", |
| | | tip: "只能上传jpg/png指纹信息,且不超过500kb", |
| | | span: 12, |
| | | // row: true, |
| | | prop: "fingerprint", |
| | | }, |
| | | { |
| | | label: "是否持证", |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入手机号", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | label: "保安员证编号", |
| | | prop: "securitynumber", |
| | | hide: true, |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | |
| | | message: "请输入身份证号", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | required: true, |
| | | validator: validatePassCardid, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "手机号码", |
| | | prop: "phone", |
| | | overHidden: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入手机号", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | required: true, |
| | | validator: validatePassPhone, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "电子邮箱", |
| | | prop: "email", |
| | | }, |
| | | { |
| | | label: "籍贯", |
| | |
| | | prop: "politicaloutlook", |
| | | }, |
| | | { |
| | | label: "健康状态", |
| | | prop: "healstats", |
| | | }, |
| | | { |
| | | label: "身高", |
| | | prop: "height", |
| | | }, |
| | |
| | | prop: "registered", |
| | | }, |
| | | { |
| | | label: "所属辖区", |
| | | prop: "jurisdiction", |
| | | // multiple: true, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree", |
| | | props: { |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | checkStrictly: true, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请选择所属辖区", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "入职时间", |
| | | prop: "rtime", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入入职时间", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "性别", |
| | |
| | | // value: 3, |
| | | // }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "生日", |
| | | type: "date", |
| | | prop: "birthday", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "从业信息", |
| | | prop: "detailInfo", |
| | | icon: "el-icon-s-order", |
| | | column: [ |
| | | { |
| | | prop: "UserPractitionersInfo", |
| | | type: "dynamic", |
| | | border: false, |
| | | span: 24, |
| | | children: { |
| | | align: "left", |
| | | headerAlign: "center", |
| | | type: "form", |
| | | rowAdd: (done) => { |
| | | console.log(done, 111); |
| | | done({ |
| | | input: "默认值", |
| | | }); |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择性别", |
| | | trigger: "blur", |
| | | }, |
| | | rowDel: (row, done) => { |
| | | console.log(row, 222); |
| | | done(); |
| | | }, |
| | | column: [ |
| | | { |
| | | width: 200, |
| | | label: "单位名称", |
| | | prop: "companyname", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "部门", |
| | | prop: "department", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "岗位", |
| | | prop: "post", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "岗位职责", |
| | | prop: "responsibilities", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "入职时间", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | prop: "entryTime", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "离职时间", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | prop: "departureTime", |
| | | formslot: true, |
| | | }, |
| | | { |
| | | width: 200, |
| | | label: "离职原因", |
| | | prop: "leaving", |
| | | formslot: true, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "生日", |
| | | // type: "date", |
| | | // prop: "birthday", |
| | | // format: "yyyy-MM-dd", |
| | | // valueFormat: "yyyy-MM-dd", |
| | | // }, |
| | | ], |
| | | }, |
| | | ], |
| | |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/blade-user/import-user", |
| | | }, |
| | | { |
| | | label: "数据覆盖", |
| | | prop: "isCovered", |
| | | type: "switch", |
| | | align: "center", |
| | | width: 80, |
| | | dicData: [ |
| | | { |
| | | label: "否", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "是", |
| | | value: 1, |
| | | }, |
| | | ], |
| | | value: 0, |
| | | slot: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择是否覆盖", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "数据覆盖", |
| | | // prop: "isCovered", |
| | | // type: "switch", |
| | | // align: "center", |
| | | // width: 80, |
| | | // dicData: [ |
| | | // { |
| | | // label: "否", |
| | | // value: 0, |
| | | // }, |
| | | // { |
| | | // label: "是", |
| | | // value: 1, |
| | | // }, |
| | | // ], |
| | | // value: 0, |
| | | // slot: true, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请选择是否覆盖", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | { |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.user_add, false), |
| | | addBtn: this.vaildData(this.permission.securityGuard_add, false), |
| | | viewBtn: this.vaildData(null, false), |
| | | delBtn: this.vaildData(null, false), |
| | | editBtn: this.vaildData(this.permission.user_edit, false), |
| | | delBtn: this.vaildData(this.permission.securityGuard_delete, false), |
| | | editBtn: this.vaildData(this.permission.securityGuard_edit, false), |
| | | }; |
| | | }, |
| | | platformPermissionList() { |
| | |
| | | }); |
| | | return ids.join(","); |
| | | }, |
| | | ...mapState({ |
| | | userInfo: (state) => state.user.userInfo, |
| | | }), |
| | | }, |
| | | beforeCreate() {}, |
| | | created() {}, |
| | | mounted() { |
| | | // this.option.column[0].hide = true |
| | | // 非保安单位模式默认加载管理组数据 |
| | | if (!website.tenantMode) { |
| | | this.initData(website.tenantId); |
| | | } |
| | | console.log(this.search, 111); |
| | | this.search["status"] = 1; |
| | | this.deptIds = this.userInfo.dept_id; |
| | | }, |
| | | methods: { |
| | | handleImport1() { |
| | | this.excelBox1 = true; |
| | | }, |
| | | uploadAfter1(res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox1 = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | handleTemplate1() { |
| | | window.open(`/api/blade-user/export-template-security`); |
| | | }, |
| | | handleImport2() { |
| | | this.excelBox2 = true; |
| | | }, |
| | | uploadAfter2(res, done, loading, column) { |
| | | window.console.log(column); |
| | | this.excelBox2 = false; |
| | | this.refreshChange(); |
| | | done(); |
| | | }, |
| | | |
| | | //行点击事件 |
| | | rowClick(row) { |
| | | // console.log(row, 111); |
| | | this.$router.push({ |
| | | path: "/securityGuardDetail", |
| | | query: { row: JSON.stringify(row) }, |
| | | }); |
| | | }, |
| | | rowClickSelf(row) { |
| | | console.log(row, "baoan"); |
| | | this.$router.push({ |
| | | path: "/securityUnitChild", |
| | | query: { fromSecunityGuardId: row }, |
| | | }); |
| | | }, |
| | | nodeClick(data) { |
| | |
| | | this.onLoad(this.page); |
| | | }, |
| | | initData(tenantId) { |
| | | getRoleTree(tenantId).then((res) => { |
| | | const column = this.findObject(this.option.group, "roleId"); |
| | | column.dicData = res.data.data; |
| | | }); |
| | | // getRoleTree(tenantId).then((res) => { |
| | | // const column = this.findObject(this.option.group, "roleId"); |
| | | // column.dicData = res.data.data; |
| | | // }); |
| | | // getDeptTree(tenantId).then((res) => { |
| | | // 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(","); |
| | |
| | | if (row.postId) { |
| | | row.postId = row.postId.join(","); |
| | | } |
| | | const userPractitionersList = []; |
| | | var userPractitionersInfo = row.UserPractitionersInfo; |
| | | if (userPractitionersInfo.length > 0) { |
| | | userPractitionersInfo.forEach((item) => { |
| | | const info = { |
| | | companyname: item.companyname, |
| | | department: item.department, |
| | | departureTime: item.departureTime, |
| | | entryTime: item.entryTime, |
| | | name: row.realName, |
| | | leaving: item.leaving, |
| | | cardid: row.cardid, |
| | | post: item.post, |
| | | responsibilities: item.responsibilities, |
| | | }; |
| | | userPractitionersList.push(info); |
| | | }); |
| | | } |
| | | var IdCardNo = row.cardid; |
| | | add(row).then( |
| | | |
| | | const userMap = { |
| | | user: { |
| | | account: row.account, |
| | | avatar: row.avatar, |
| | | fingerprint: row.fingerprint, |
| | | healstats: row.healstats, |
| | | address: row.address, |
| | | birthday: row.birthday, |
| | | cardid: row.cardid, |
| | | deptId: row.deptId, |
| | | education: row.education1, |
| | | email: row.email, |
| | | height: row.height, |
| | | hold: row.hold, |
| | | jurisdiction: row.jurisdiction, |
| | | myPicture: row.myPicture, |
| | | name: row.name, |
| | | nation: row.nation, |
| | | nativeplace: row.nativeplace, |
| | | password: row.password, |
| | | password2: row.password2, |
| | | phone: row.phone, |
| | | politicaloutlook: row.politicaloutlook, |
| | | realName: row.realName, |
| | | registered: row.registered, |
| | | rtime: row.rtime, |
| | | securitynumber: row.securitynumber, |
| | | sex: row.sex, |
| | | }, |
| | | }; |
| | | securitySave(userMap).then( |
| | | () => { |
| | | const experience = { |
| | | cardid: IdCardNo, |
| | | userPractitionersInfo: userPractitionersList, |
| | | }; |
| | | //新增从业信息 |
| | | saveOrUpdateUserPractitionersInfo(experience).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | this.initFlag = false; |
| | | this.onLoad(this.page); |
| | | // this.$message({ |
| | | // type: "success", |
| | | // message: "操作成功!", |
| | | // }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | |
| | | row.deptId = row.deptId; |
| | | row.roleId = row.roleId.join(","); |
| | | row.postId = row.postId.join(","); |
| | | const userPractitionersList = []; |
| | | var userPractitionersInfo = row.UserPractitionersInfo; |
| | | if (userPractitionersInfo.length > 0) { |
| | | userPractitionersInfo.forEach((item) => { |
| | | const info = { |
| | | companyname: item.companyname, |
| | | department: item.department, |
| | | departureTime: item.departureTime, |
| | | entryTime: item.entryTime, |
| | | name: row.realName, |
| | | leaving: item.leaving, |
| | | cardid: row.cardid, |
| | | post: item.post, |
| | | responsibilities: item.responsibilities, |
| | | }; |
| | | userPractitionersList.push(info); |
| | | }); |
| | | } |
| | | var IdCardNo = row.cardid; |
| | | //值替换,education 放在页面会卡死 |
| | | row.education = row.education1; |
| | | update(row).then( |
| | | () => { |
| | | const experience = { |
| | | cardid: IdCardNo, |
| | | userPractitionersInfo: userPractitionersList, |
| | | }; |
| | | //更新从业信息 |
| | | saveOrUpdateUserPractitionersInfo(experience).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | this.initFlag = false; |
| | | this.onLoad(this.page); |
| | | // this.$message({ |
| | | // type: "success", |
| | | // message: "操作成功!", |
| | | // }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | |
| | | } |
| | | ); |
| | | }, |
| | | rowDellook(row) { |
| | | // console.log(row.reasonForLeav); |
| | | this.$alert( |
| | | row.reasonForLeav == "" ? "未填写" : row.reasonForLeav, |
| | | "离职原因", |
| | | { |
| | | confirmButtonText: "确定", |
| | | callback: (action) => {}, |
| | | } |
| | | ); |
| | | }, |
| | | rowStatus(row) { |
| | | this.$prompt("离职原因", "提示", { |
| | | confirmButtonText: "确定离职", |
| | | cancelButtonText: "取消", |
| | | inputErrorMessage: "", |
| | | }) |
| | | .then(({ value }) => { |
| | | console.log(value); |
| | | row.reasonForLeav = value; |
| | | row.status = "2"; |
| | | // console.log(update); |
| | | // return; |
| | | update(row).then((res) => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功", |
| | | }); |
| | | }); |
| | | this.refreshChange(); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | rowDel(row) { |
| | | this.$confirm("确定将选择保安登记离职?", { |
| | | this.$confirm("确定注销当前用户?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | row.status = "0"; |
| | | return remove(row.id); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | rowCheck(row) { |
| | | this.$confirm("确定审查异常标记?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | row.examinationType = "1"; |
| | | return update(row); |
| | | }) |
| | | .then(() => { |
| | |
| | | } |
| | | var userInfo = res.data.data; |
| | | //获取用户从业信息 |
| | | getUserPractitionersInfo(userInfo.cardid).then((res1) => { |
| | | getUserPractitionersInfo(userInfo.id).then((res1) => { |
| | | that.form.UserPractitionersInfo = res1.data.data; |
| | | }); |
| | | }); |
| | |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | //行样式调整 |
| | | rowStyle({ row, column, rowIndex }) { |
| | | if (row.examinationType == "1") { |
| | | return { |
| | | color: "#ff2727", |
| | | }; |
| | | } |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | values = { |
| | | ...params, |
| | | deptId: this.deptId, |
| | | roleId: this.roleId, |
| | | ...this.query, |
| | | }; |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, values, this.treeDeptId).then( |
| | | (res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | } |
| | | ); |
| | | params = this.search; |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安") { |
| | | //去除保安公司查询 |
| | | const column = that.findObject(that.option.column, "deptId"); |
| | | column.search = false; |
| | | const deptColumn = that.findObject(that.option.group, "deptId"); |
| | | deptColumn.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697"; |
| | | //禁止编辑 |
| | | deptColumn.disabled = true; |
| | | deptColumn.value = that.userInfo.dept_id; |
| | | that.isSecurity = false; |
| | | //如果是保安公司管理员 |
| | | params["deptId"] = that.userInfo.dept_id; |
| | | |
| | | //导入action 修改 |
| | | const importColumn = that.findObject(that.excelOption1.column, "excelFile"); |
| | | importColumn.action = |
| | | "/api/blade-user/import-user?deptId="+this.deptIds; |
| | | |
| | | |
| | | } else if (roleAlias == "公安管理员") { |
| | | params["jurisdiction"] = that.userInfo.jurisdiction; |
| | | var columnDept = that.findObject(that.option.column, "deptId"); |
| | | columnDept.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" + |
| | | that.userInfo.jurisdiction; |
| | | var ColumnDeptUpdate = that.findObject(that.option.group, "deptId"); |
| | | ColumnDeptUpdate.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" + |
| | | that.userInfo.jurisdiction; |
| | | } else { |
| | | var columnDept1 = that.findObject(that.option.column, "deptId"); |
| | | columnDept1.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697"; |
| | | var ColumnDeptUpdate1 = that.findObject( |
| | | that.option.group, |
| | | "deptId" |
| | | ); |
| | | ColumnDeptUpdate1.dicUrl = |
| | | "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697"; |
| | | } |
| | | |
| | | let values = { |
| | | ...params, |
| | | }; |
| | | values = { |
| | | ...params, |
| | | roleAlias: "111", |
| | | ...that.query, |
| | | }; |
| | | |
| | | that.loading = true; |
| | | getList(page.currentPage, page.pageSize, values).then((res) => { |
| | | const data = res.data.data; |
| | | that.page.total = data.total; |
| | | var d = data.records; |
| | | var date = new Date(); |
| | | var datayear = date.getFullYear(); |
| | | for (const key in d) { |
| | | var year = d[key].cardid.slice(6, 10); |
| | | d[key]["age"] = +datayear - +year; |
| | | // d[key].securitynumber = "赣洪202100009"; |
| | | } |
| | | that.data = data.records; |
| | | that.loading = false; |
| | | that.selectionClear(); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | platformRowUpdate(row, index, done, loading) { |
| | | updatePlatform(row.id, row.userType, row.userExt).then( |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | height: 800px; |
| | | } |
| | |
| | | .box .el-scrollbar__wrap { |
| | | overflow: scroll; |
| | | } |
| | | </style> |
| | | .rowClickSelf { |
| | | &:hover { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | </style> |