From 21c7375b7b38ebf2c8a2ca8fbf6fe9fb4f28250f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 12 Jan 2022 10:59:40 +0800
Subject: [PATCH] 新增公司注册机公司注册审核
---
src/page/login/index.vue | 10
src/api/registerUnit/registerUnit.js | 76 +++
src/views/securityUnit/localCompany.vue | 2
src/api/jurisdiction/jurisdiction.js | 21 +
src/views/securityGuard/securityGuard.vue | 12
src/api/resource/oss.js | 84 ++--
src/page/login/codelogin.vue | 522 ++++++++++++++++++++----
src/views/registerUnit/registerUnit.vue | 494 +++++++++++++++++++++++
8 files changed, 1,074 insertions(+), 147 deletions(-)
diff --git a/src/api/jurisdiction/jurisdiction.js b/src/api/jurisdiction/jurisdiction.js
new file mode 100644
index 0000000..48504c9
--- /dev/null
+++ b/src/api/jurisdiction/jurisdiction.js
@@ -0,0 +1,21 @@
+import request from '@/router/axios';
+
+// export const getList = (current, size, params) => {
+// return request({
+// url: '/api/accreditationRecords/page',
+// method: 'get',
+// params: {
+// current,
+// size,
+// ...params
+// }
+// })
+// }
+
+export const getJurisdictionTree = () => {
+ return request({
+ url: '/api/jurisdiction/lazy-trees',
+ method: 'get',
+ params: {}
+ })
+}
\ No newline at end of file
diff --git a/src/api/registerUnit/registerUnit.js b/src/api/registerUnit/registerUnit.js
new file mode 100644
index 0000000..c2863dd
--- /dev/null
+++ b/src/api/registerUnit/registerUnit.js
@@ -0,0 +1,76 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+ return request({
+ url: '/api/registerUnit/page',
+ method: 'get',
+ params: {
+ current,
+ size,
+ ...params
+ }
+ })
+}
+
+export const getDetail = (id) => {
+ return request({
+ url: '/api/registerUnit/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
+
+
+export const remove = (ids) => {
+ return request({
+ url: '/api/registerUnit/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
+}
+
+export const submit = (row) => {
+ return request({
+ url: '/api/registerUnit/submit',
+ method: 'post',
+ data: row
+ })
+}
+
+export const add = (row) => {
+ return request({
+ url: '/api/registerUnit/save',
+ method: 'post',
+ data: row
+ })
+}
+
+export const update = (row) => {
+ return request({
+ url: '/api/registerUnit/update',
+ method: 'post',
+ data: row
+ })
+}
+
+
+export const audit = (row) => {
+ return request({
+ url: '/api/registerUnit/audit',
+ method: 'post',
+ data: row
+ })
+}
+
+
+export const batchAudit = (row) => {
+ return request({
+ url: '/api/registerUnit/batchAudit',
+ method: 'post',
+ data: row
+ })
+}
\ No newline at end of file
diff --git a/src/api/resource/oss.js b/src/api/resource/oss.js
index 0b8acfa..664bc9a 100644
--- a/src/api/resource/oss.js
+++ b/src/api/resource/oss.js
@@ -1,59 +1,59 @@
import request from '@/router/axios';
export const getList = (current, size, params) => {
- return request({
- url: '/api/blade-resource/oss/list',
- method: 'get',
- params: {
- ...params,
- current,
- size,
- }
- })
+ return request({
+ url: '/api/blade-resource/oss/list',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size,
+ }
+ })
}
export const getDetail = (id) => {
- return request({
- url: '/api/blade-resource/oss/detail',
- method: 'get',
- params: {
- id
- }
- })
+ return request({
+ url: '/api/blade-resource/oss/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
}
export const remove = (ids) => {
- return request({
- url: '/api/blade-resource/oss/remove',
- method: 'post',
- params: {
- ids,
- }
- })
+ return request({
+ url: '/api/blade-resource/oss/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
}
export const add = (row) => {
- return request({
- url: '/api/blade-resource/oss/submit',
- method: 'post',
- data: row
- })
+ return request({
+ url: '/api/blade-resource/oss/submit',
+ method: 'post',
+ data: row
+ })
}
export const update = (row) => {
- return request({
- url: '/api/blade-resource/oss/submit',
- method: 'post',
- data: row
- })
+ return request({
+ url: '/api/blade-resource/oss/submit',
+ method: 'post',
+ data: row
+ })
}
-export const enable = (id) => {
- return request({
- url: '/api/blade-resource/oss/enable',
- method: 'post',
- params: {
- id
- }
- })
-}
+
+export const putFile = (data) => {
+ return request({
+ url: '/api/blade-resource/oss/endpoint/put-files',
+ method: 'post',
+ data: data,
+ headers: { 'Content-Type': 'multipart/form-data' }
+ })
+}
\ No newline at end of file
diff --git a/src/page/login/codelogin.vue b/src/page/login/codelogin.vue
index 4db4c1d..0aaef8f 100644
--- a/src/page/login/codelogin.vue
+++ b/src/page/login/codelogin.vue
@@ -1,95 +1,265 @@
<template>
- <el-form
- class="login-form"
- status-icon
- :rules="loginRules"
- ref="loginForm"
- :model="loginForm"
- label-width="0"
- >
- <el-form-item prop="username">
- <el-input
- size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.username"
- auto-complete="off"
- :placeholder="$t('login.username')"
+ <div>
+ <avue-tabs :option="option" @change="handleChange"></avue-tabs>
+ <span v-if="type.prop === 'tab1'">
+ <el-form
+ class="login-form"
+ status-icon
+ :rules="loginRules"
+ ref="loginForm"
+ :model="loginForm"
+ label-width="0"
>
- <i slot="prefix" class="icon-yonghu" />
- </el-input>
- </el-form-item>
- <el-form-item prop="password">
- <el-input
- size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.password"
- auto-complete="off"
- show-password
- :placeholder="$t('login.password')"
+ <el-form-item prop="username">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleLogin"
+ v-model="loginForm.username"
+ auto-complete="off"
+ :placeholder="$t('login.username')"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-yonghu" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="password">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleLogin"
+ v-model="loginForm.password"
+ auto-complete="off"
+ show-password
+ :placeholder="$t('login.password')"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-mima" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="password2">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleLogin"
+ v-model="loginForm.password2"
+ auto-complete="off"
+ show-password
+ :placeholder="$t('login.password2')"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-mima" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="sname">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleLogin"
+ v-model="loginForm.sname"
+ auto-complete="off"
+ :placeholder="$t('login.name')"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-yonghu" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="cardid">
+ <el-input
+ size="small"
+ v-model="loginForm.cardid"
+ auto-complete="off"
+ :placeholder="$t('login.cardid')"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-shouji" />
+ </el-input>
+ </el-form-item>
+ <avue-input-tree
+ style="width: 580px !important"
+ :defaultExpandAll="loginForm.defaultFlag"
+ v-model="loginForm.deptid"
+ placeholder="请选择部门"
+ type="tree"
+ :dic="dic"
+ ></avue-input-tree>
+ <el-form-item class="z-login-submit-prv">
+ <el-button
+ size="small"
+ type="primary"
+ @click.native.prevent="handleLogin"
+ class="z-login-submit"
+ >{{ $t("login.zc") }}
+ </el-button>
+ <el-button
+ size="small"
+ @click.native.prevent="gbs"
+ class="z-login-submit"
+ >{{ $t("login.gb") }}
+ </el-button>
+ </el-form-item>
+ </el-form>
+ </span>
+ <!-- 企业注册 -->
+ <span v-else-if="type.prop === 'tab2'">
+ <el-form
+ class="login-form"
+ status-icon
+ :rules="unitRules"
+ ref="unitForm"
+ :model="unitForm"
+ label-width="0"
>
- <i slot="prefix" class="icon-mima" />
- </el-input>
- </el-form-item>
- <el-form-item prop="password2">
- <el-input
- size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.password2"
- auto-complete="off"
- show-password
- :placeholder="$t('login.password2')"
- >
- <i slot="prefix" class="icon-mima" />
- </el-input>
- </el-form-item>
- <el-form-item prop="sname">
- <el-input
- size="small"
- @keyup.enter.native="handleLogin"
- v-model="loginForm.sname"
- auto-complete="off"
- :placeholder="$t('login.name')"
- >
- <i slot="prefix" class="icon-yonghu" />
- </el-input>
- </el-form-item>
- <el-form-item prop="cardid">
- <el-input
- size="small"
- v-model="loginForm.cardid"
- auto-complete="off"
- :placeholder="$t('login.cardid')"
- >
- <i slot="prefix" class="icon-shouji" />
- </el-input>
- </el-form-item>
- <avue-input-tree
- style="width: 580px !important"
- :defaultExpandAll="loginForm.defaultFlag"
- v-model="loginForm.deptid"
- placeholder="请选择部门"
- type="tree"
- :dic="dic"
- ></avue-input-tree>
- <el-form-item class="z-login-submit-prv">
- <el-button
- size="small"
- type="primary"
- @click.native.prevent="handleLogin"
- class="z-login-submit"
- >{{ $t("login.zc") }}
- </el-button>
- <el-button size="small" @click.native.prevent="gbs" class="z-login-submit"
- >{{ $t("login.gb") }}
- </el-button>
- </el-form-item>
- </el-form>
+ <el-form-item prop="deptName">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleUnitRegister"
+ v-model="unitForm.deptName"
+ auto-complete="off"
+ placeholder="企业名称"
+ clearable="true"
+ >
+ <i slot="prefix" class="el-icon-house" />
+ </el-input>
+ </el-form-item>
+ <div style="margin-top: -1.5rem">
+ <i
+ slot="prefix"
+ style="position: relative; top: 1.9rem; left: 0.5rem"
+ class="el-icon-position"
+ />
+ <div style="position: relative">
+ <el-form-item prop="jurisdiction">
+ <avue-input-tree
+ :props="props"
+ :parent="false"
+ :defaultExpandedKeys="defaultExpandedKeys"
+ v-model="unitForm.jurisdiction"
+ style="width: 35rem !important; padding-left: 0.9rem !important"
+ placeholder="请选择辖区"
+ type="tree"
+ :dic="jurisdictionDic"
+ >
+ </avue-input-tree>
+ </el-form-item>
+ </div>
+ </div>
+ <div style="margin-top: -1.5rem">
+ <i
+ slot="prefix"
+ style="position: relative; top: 1.9rem; left: 0.5rem"
+ class="el-icon-wallet"
+ />
+ <div style="position: relative">
+ <el-form-item prop="stats">
+ <avue-select
+ default-expand-all
+ :props="statsProps"
+ v-model="unitForm.stats"
+ style="width: 35rem !important; padding-left: 0.9rem !important"
+ placeholder="请选择企业属性"
+ type="tree"
+ :dic="statsDic"
+ >
+ </avue-select>
+ </el-form-item>
+ </div>
+ </div>
+ <el-form-item prop="linkman">
+ <el-input
+ size="small"
+ @keyup.enter.native="handleUnitRegister"
+ v-model="unitForm.linkman"
+ auto-complete="off"
+ placeholder="联系人"
+ clearable="true"
+ >
+ <i slot="prefix" class="el-icon-user" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="phone">
+ <el-input
+ size="small"
+ v-model="unitForm.phone"
+ auto-complete="off"
+ placeholder="联系人电话"
+ clearable="true"
+ >
+ <i slot="prefix" class="icon-shouji" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="address">
+ <el-input
+ size="small"
+ v-model="unitForm.address"
+ auto-complete="off"
+ placeholder="企业注册地址"
+ clearable="true"
+ >
+ <i slot="prefix" class="el-icon-map-location" />
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="unit">
+ <el-input
+ size="small"
+ v-model="unitForm.unit"
+ auto-complete="off"
+ placeholder="登记机关"
+ clearable="true"
+ >
+ <i slot="prefix" class="el-icon-office-building" />
+ </el-input>
+ </el-form-item>
+ <div style="margin-top: -1.5rem">
+ <i
+ slot="prefix"
+ style="position: relative; top: 1.9rem; left: 0.5rem"
+ class="el-icon-picture-outline"
+ />
+ <div style="position: relative; left: 3rem; top: 1rem">
+ <el-form-item prop="businessLicense">
+ <i slot="prefix" class="el-icon-picture-outline" />
+ <el-upload
+ class="avatar-uploader"
+ action=""
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess"
+ :before-upload="beforeAvatarUpload"
+ :http-request="httpRequest"
+ placeholder="营业执照"
+ >
+ <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+ <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+ <div class="el-upload__tip" slot="tip">
+ 请上传营业执照,只能上传jpg/png文件,且不超过2MB
+ </div>
+ </el-upload>
+ </el-form-item>
+ </div>
+ </div>
+ <el-form-item class="z-login-submit-prv">
+ <el-button
+ size="small"
+ type="primary"
+ @click.native.prevent="handleUnitRegister"
+ class="z-login-submit"
+ >{{ $t("login.zc") }}
+ </el-button>
+ <el-button
+ size="small"
+ @click.native.prevent="gbs"
+ class="z-login-submit"
+ >{{ $t("login.gb") }}
+ </el-button>
+ </el-form-item>
+ </el-form>
+ </span>
+ </div>
</template>
<script>
-import { isvalidatemobile } from "@/util/validate";
import { inster } from "@/api/zc/zc";
-import { ss, rs } from "@/api/system/dept";
+import { add } from "@/api/registerUnit/registerUnit";
+import { ss } from "@/api/system/dept";
+import { getDictionary } from "@/api/system/dictbiz";
+import { getJurisdictionTree } from "@/api/jurisdiction/jurisdiction";
+import { putFile } from "@/api/resource/oss";
import { mapGetters } from "vuex";
export default {
@@ -126,11 +296,52 @@
}
};
return {
+ defaultExpandedKeys: [],
+ imageUrl: "",
+ props: {
+ label: "title",
+ },
+ // statsProps: {
+ // label: "dictValue",
+ // value: "dictKey",
+ // },
msgText: "",
msgTime: "",
dic: [],
+ jurisdictionDic: [],
+ statsDic: [
+ {
+ label:"本市保安公司",
+ value:"2"
+ },
+ {
+ label:"自招保安单位",
+ value:"0"
+ },
+ {
+ label:"跨区域保安公司",
+ value:"4"
+ },
+ {
+ label:"保安培训学校",
+ value:"1"
+ }
+ ],
dicr: [],
msgKey: false,
+ type: {},
+ option: {
+ column: [
+ {
+ label: "个人注册",
+ prop: "tab1",
+ },
+ {
+ label: "企业注册",
+ prop: "tab2",
+ },
+ ],
+ },
loginForm: {
cardid: "",
username: "",
@@ -139,6 +350,16 @@
deptid: "",
roleid: "",
password2: "",
+ },
+ unitForm: {
+ deptName: "",
+ stats: "",
+ jurisdiction: "",
+ linkman: "",
+ phone: "",
+ address: "",
+ unit: "",
+ businessLicense: "",
},
value: "",
options: [],
@@ -154,14 +375,33 @@
{ required: true, message: "请输入用户名", trigger: "blur" },
],
},
+ unitRules: {
+ deptName: [
+ { required: true, message: "请输入企业名称", trigger: "blur" },
+ ],
+ linkman: [{ required: true, message: "请输入联系人", trigger: "blur" }],
+ phone: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
+ address: [
+ { required: true, message: "请输入企业注册地址", trigger: "blur" },
+ ],
+ unit: [{ required: true, message: "请输入登记机关", trigger: "blur" }],
+ jurisdiction: [
+ { required: true, message: "请选择辖区", trigger: "blur" },
+ ],
+ stats: [
+ { required: true, message: "请选择企业属性", trigger: "blur" },
+ ],
+ },
passwordType: "password",
passwordTypes: "password2",
};
},
created() {
+ this.type = this.option.column[0];
this.msgText = this.config.MSGINIT;
this.msgTime = this.config.MSGTIME;
- // defaultFlag
+ this.getJurisdictionTree();
+ // this.getDictionary();
},
mounted() {
var that = this;
@@ -179,11 +419,71 @@
};
},
},
- props: [],
methods: {
+ //图片上传
+ beforeAvatarUpload(file) {
+ var isJPG = true;
+ const picType = file.type;
+ const isLt2M = file.size / 1024 / 1024 < 2;
+
+ if (
+ picType != "image/jpeg" &&
+ picType != "image/jpg" &&
+ picType != "image/png"
+ ) {
+ isJPG = true;
+ this.$message.error("必须时图片格式!");
+ }
+ if (!isLt2M) {
+ this.$message.error("头像图片不能大于 2MB!");
+ }
+ return picType && isLt2M;
+ },
+ //自定义上传
+ httpRequest(opt) {
+ var that = this;
+ const file = opt.file;
+ // 根据后台需求数据格式
+ const form = new FormData();
+ // 文件对象
+ form.append("file", file);
+ putFile(form).then((res) => {
+ that.imageUrl = res.data.data.url;
+ });
+ },
+ //注册 tag 切换
+ handleChange(column) {
+ this.type = column;
+ var height = "500px";
+ if (column.prop == "tab2") {
+ height = "800px";
+ }
+ this.$emit("height", height);
+ },
+ //获取辖区数据
+ getJurisdictionTree() {
+ var that = this;
+ getJurisdictionTree().then((res) => {
+ that.jurisdictionDic = res.data.data;
+ that.defaultExpandedKeys = [];
+ res.data.data.forEach((item) => {
+ that.defaultExpandedKeys.push(item.id);
+ });
+ });
+ },
+ //获取企业属性数据
+ getDictionary() {
+ var that = this;
+ var data = {
+ code: "stats",
+ };
+ getDictionary(data).then((res) => {
+ // console.log(res.data.data, 111111);
+ that.statsDic = res.data.data;
+ });
+ },
ergodicData(val) {
var arr = [];
-
val.forEach((item, index) => {
arr.push({
label: item.title,
@@ -260,7 +560,6 @@
var z = document.querySelector(".z");
z.style.display = "none";
this.clearValidate("loginForm");
- this.clearValidate("loginForm");
},
gb() {
this.loginForm.cardid = "";
@@ -299,12 +598,31 @@
? (this.passwordType = "password2")
: (this.passwordType = "");
},
+ //个人注册提交
handleLogin() {
this.$refs.loginForm.validate((valid) => {
if (valid) {
this.refreshCode(this.loginForm);
- // this.message("dahsiofhiusa");
return Promise.reject(new Error("注册成功,待审核"));
+ }
+ });
+ },
+ //公司注册提交
+ handleUnitRegister() {
+ var that = this;
+ this.$refs.unitForm.validate((valid) => {
+ if (valid) {
+ this.unitForm.businessLicense = this.imageUrl;
+ //提交
+ add(this.unitForm).then((res) => {
+ //恢复表单默认值
+ that.$refs["unitForm"].resetFields();
+ that.imageUrl = "";
+ this.$message({
+ type: "success",
+ message: "注冊成功,待审核!",
+ });
+ });
}
});
},
@@ -353,4 +671,28 @@
-webkit-transition: 0.25s;
transition: 0.25s;
}
+
+.avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+}
+.avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 178px;
+ height: 178px;
+ line-height: 178px;
+ text-align: center;
+}
+.avatar {
+ width: 178px;
+ height: 178px;
+ display: block;
+}
</style>
diff --git a/src/page/login/index.vue b/src/page/login/index.vue
index c4c7838..6a93457 100644
--- a/src/page/login/index.vue
+++ b/src/page/login/index.vue
@@ -33,8 +33,8 @@
</div>
</div>
</div>
- <div class="z" v-show="activeName == 'code'">
- <codeLogin></codeLogin>
+ <div class="z" v-show="activeName == 'code'" :style="{height:height}">
+ <codeLogin v-on:height='setHeight'></codeLogin>
</div>
</div>
</template>
@@ -70,6 +70,7 @@
state: "",
link: "",
},
+ height:"500px"
};
},
watch: {
@@ -90,6 +91,11 @@
},
props: [],
methods: {
+ //获取高度
+ setHeight(height){
+ // console.log(height,8888);
+ this.height = height;
+ },
getTime() {
setInterval(() => {
this.time = dateFormat(new Date());
diff --git a/src/views/registerUnit/registerUnit.vue b/src/views/registerUnit/registerUnit.vue
new file mode 100644
index 0000000..1262e52
--- /dev/null
+++ b/src/views/registerUnit/registerUnit.vue
@@ -0,0 +1,494 @@
+<template>
+ <basic-container
+ :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']"
+ >
+ <avue-crud
+ :option="option"
+ :table-loading="loading"
+ :data="data"
+ :page.sync="page"
+ :search.sync="search"
+ :permission="permissionList"
+ :before-open="beforeOpen"
+ v-model="form"
+ ref="crud"
+ @row-update="rowUpdate"
+ @row-save="rowSave"
+ @row-del="rowDel"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @selection-change="selectionChange"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @refresh-change="refreshChange"
+ @on-load="onLoad"
+ >
+ <template slot="menuLeft">
+ <el-button
+ type="danger"
+ size="small"
+ icon="el-icon-delete"
+ plain
+ v-if="permission.zc_delete"
+ @click="handleDelete"
+ >删 除
+ </el-button>
+ </template>
+ <template slot-scope="{ row }" slot="auditStatus">
+ <el-tag>{{
+ row.auditStatus === "1"
+ ? "待审核"
+ : row.auditStatus === "2"
+ ? "审核通过"
+ : "审核不通过"
+ }}</el-tag>
+ </template>
+
+ <template slot-scope="{ row }" slot="roleName">
+ <el-tag>{{ row.roleName }}</el-tag>
+ </template>
+ <template slot-scope="{ row,size,type }" slot="menu">
+ <el-button
+ icon="el-icon-check"
+ :type="type"
+ :size="size"
+ @click.stop="handleAudit(row)"
+ >审核</el-button
+ >
+ </template>
+ </avue-crud>
+ <el-dialog
+ title="审核"
+ :visible.sync="dialogFormVisible"
+ modal-append-to-body="false"
+ append-to-body="true"
+ :close-on-click-model="true"
+ >
+ <avue-form
+ ref="formAudit"
+ v-model="Audit"
+ :option="optionAudit"
+ @reset-change="emptytChange"
+ @submit="submit"
+ ></avue-form>
+ </el-dialog>
+ </basic-container>
+</template>
+
+<script>
+import { getList, getDetail, add, update, remove,audit } from "@/api/registerUnit/registerUnit";
+import { getRoleTree } from "@/api/system/role";
+import { mapGetters } from "vuex";
+
+export default {
+ data() {
+ return {
+ form: {},
+ query: {},
+ search: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0,
+ ...this.$store.state.control.changePageSize,
+ },
+ selectionList: [],
+ Audit: {},
+ dialogFormVisible: false,
+ optionAudit: {
+ height: "auto",
+ calcHeight: 30,
+ dialogWidth: 1000,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ stripe: true,
+ viewBtn: false,
+ addBtn: false,
+ editBtn: false,
+ selection: true,
+ excelBtn: false,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "审核状态",
+ search: true,
+ searchSpan: 5,
+ span: 24,
+ prop: "auditStatus",
+ slot: true,
+ editDisplay: false,
+ addDisplay: false,
+ type: "select",
+ rules: [
+ {
+ required: true,
+ message: "请选择审核类型",
+ trigger: "blur",
+ },
+ ],
+ dicData: [
+ {
+ label: "待审核",
+ value: "1",
+ },
+ {
+ label: "审核通过",
+ value: "2",
+ },
+ {
+ label: "审核不通过",
+ value: "3",
+ },
+ ],
+ },
+ {
+ label: "审核明细",
+ span: 24,
+ type: "textarea",
+ prop: "auditDetail",
+ },
+ ],
+ },
+ option: {
+ height: "auto",
+ calcHeight: 54,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 4,
+ border: true,
+ index: true,
+ viewBtn: false,
+ // selection: true,
+ headerAlign: "center",
+ menuWidth:150,
+ align: "center",
+ dialogClickModal: false,
+ ...this.$store.state.control.clearOtherBut,
+ column: [
+ {
+ label: "注册企业名称",
+ searchSpan: 5,
+ display: false,
+ searchLabelWidth: 110,
+ search: true,
+ disabled: true,
+ prop: "deptName",
+ minWidth:100,
+ overHidden:true,
+ },
+ {
+ label: "联系人",
+ display: false,
+ width:80,
+ search: true,
+ searchSpan: 4,
+ disabled: true,
+ prop: "linkman",
+ },
+ {
+ label: "联系电话",
+ width:100,
+ disabled: true,
+ display: false,
+ prop: "phone",
+ },
+ {
+ label: "企业属性",
+ prop: "stats",
+ type:"select",
+ width:100,
+ dicData:[
+ {
+ label:"本市保安公司",
+ value:"2"
+ },
+ {
+ label:"自招保安单位",
+ value:"0"
+ },
+ {
+ label:"跨区域保安公司",
+ value:"4"
+ },
+ {
+ label:"保安培训学校",
+ value:"1"
+ }
+ ]
+ },
+ {
+ label: "所属辖区",
+ prop: "jurisdictionName",
+ width:100,
+ },
+ {
+ label: "企业注册地址",
+ prop: "address",
+ },
+ {
+ label: "登记机关",
+ prop: "unit",
+ },
+ {
+ label: "申请时间",
+ prop: "createTime",
+ searchLabelWidth: 90,
+ width: 140,
+ addDisplay: false,
+ editDisplay: false,
+ },
+ {
+ label: "营业执照",
+ prop: "businessLicense",
+ type: "upload",
+ width:100,
+ listType: "picture-img",
+ addDisplay: false,
+ editDisplay: false,
+ },
+ {
+ label: "审核状态",
+ prop: "auditStatus",
+ search: true,
+ slot: true,
+ searchSpan: 4,
+ width:100,
+ type: "select",
+ dicData: [
+ {
+ label: "全部",
+ value: "4",
+ },
+ {
+ label: "待审核",
+ value: "1",
+ },
+ {
+ label: "审核通过",
+ value: "2",
+ },
+ {
+ label: "审核不通过",
+ value: "3",
+ },
+ ],
+ },
+ {
+ label: "审核明细",
+ span: 24,
+ type: "textarea",
+ prop: "auditDetail",
+ width:100,
+ overHidden:true,
+ },
+ ],
+ },
+ data: [],
+ };
+ },
+ computed: {
+ ...mapGetters(["userInfo", "permission"]),
+ permissionList() {
+ return {
+ addBtn: this.vaildData(this.permission.zc_add, false),
+ viewBtn: this.vaildData(this.permission.zc_view, true),
+ delBtn: this.vaildData(this.permission.zc_delete, false),
+ editBtn: this.vaildData(this.permission.zc_edit, false),
+ };
+ },
+ ids() {
+ let ids = [];
+ this.selectionList.forEach((ele) => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ },
+ },
+ created(){
+ if(this.userInfo.role_name=="公安管理员"){
+ this.search['auditStatus'] = "1";
+ }
+ },
+ methods: {
+ //审核
+ submit(row, done, loading) {
+ const data = {
+ id: row.id,
+ auditStatus: row.auditStatus,
+ auditDetail: row.auditDetail,
+ auditUser: this.userInfo.Id,
+ };
+
+ audit(data).then(
+ () => {
+ this.dialogFormVisible = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ // loading();
+ done();
+ }
+ );
+ },
+ initData(d) {
+ getRoleTree().then((res) => {
+ const column = this.findObject(this.option.column, "parentId");
+ var k = res.data.data;
+ var b = [];
+ if (d == "保安公司管理员") {
+ console.log(k);
+ for (var n in k) {
+ if (k[n].title == "保安" || k[n].title == "保安公司管理员") {
+ b.push(k[n]);
+ }
+ }
+ column.dicData = b;
+ } else {
+ column.dicData = k;
+ }
+ });
+ },
+ //审核
+ handleAudit(row) {
+ this.dialogFormVisible = true;
+ this.Audit = row;
+ },
+ rowSave(row, done, loading) {
+ add(row).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ loading();
+ window.console.log(error);
+ }
+ );
+ },
+ rowUpdate(row, index, done, loading) {
+ update(row).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ loading();
+ console.log(error);
+ }
+ );
+ },
+ rowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ });
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ this.$refs.crud.toggleSelection();
+ });
+ },
+ beforeOpen(done, type) {
+ if (["edit", "view"].includes(type)) {
+ getDetail(this.form.id).then((res) => {
+ this.form = res.data.data;
+ });
+ }
+ done();
+ },
+ searchReset() {
+ this.query = {};
+ this.onLoad(this.page);
+ },
+ searchChange(params, done) {
+ this.query = params;
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.crud.toggleSelection();
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ params = this.search;
+ this.loading = true;
+ if(this.userInfo.role_name=="公安管理员"){
+ params['jurisdiction'] = this.userInfo.jurisdiction;
+ }
+ getList(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.query)
+ ).then((res) => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ });
+ },
+ },
+};
+</script>
+
+<style>
+</style>
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 79415c3..5254e69 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -1059,14 +1059,6 @@
},
],
},
- // {
- // label: "发证日期",
- // prop: "paperTime",
- // hide: true,
- // type: "date",
- // format: "yyyy-MM-dd",
- // valueFormat: "yyyy-MM-dd",
- // },
{
label: "保安证书照片",
prop: "email",
@@ -1085,10 +1077,6 @@
tip: "上传jpg,png格式图片,大小不超过2M",
span: 12,
},
- // {
- // label: "籍贯",
- // prop: "nativeplace",
- // },
{
label: "民族",
prop: "nation",
diff --git a/src/views/securityUnit/localCompany.vue b/src/views/securityUnit/localCompany.vue
index 25a8d97..86bfc63 100644
--- a/src/views/securityUnit/localCompany.vue
+++ b/src/views/securityUnit/localCompany.vue
@@ -204,7 +204,7 @@
parent: false,
labelWidth: 145,
type: "tree",
- dicUrl: "/api//jurisdiction/lazy-trees",
+ dicUrl: "/api/jurisdiction/lazy-trees",
props: {
label: "title",
value: "id",
--
Gitblit v1.9.3