flat: 企业审核

This commit is contained in:
Apcallover
2024-04-18 17:52:13 +08:00
parent c9636640f6
commit 50bb55c89a
2 changed files with 238 additions and 121 deletions

View File

@@ -1,42 +1,42 @@
import request from '@/router/axios'; import request from '@/router/axios';
export const getList = export const getList =
(current, size, params) => { (current, size, params) => {
return request({ return request({
url: '/api/jobslink-api/tenant/station/list', url: '/api/jobslink-api/tenant/station/list',
method: 'get', method: 'get',
params: { params: {
...params, ...params,
current, current,
size, size,
} }
}) })
} }
export const getDetail = export const getDetail =
(id) => { (id) => {
return request({ return request({
url: '/api/jobslink-api/tenant/station/detail', url: '/api/jobslink-api/tenant/station/detail',
method: 'get', method: 'get',
params: {id} params: {id}
}) })
} }
export const add = export const add =
(row) => { (row) => {
return request( return request(
{url: '/api/jobslink-api/tenant/station/save', method: 'post', data: row}) {url: '/api/jobslink-api/tenant/station/save', method: 'post', data: row})
} }
export const update = export const update =
(row) => { (row) => {
return request({ return request({
url: '/api/jobslink-api/tenant/station/update', url: '/api/jobslink-api/tenant/station/update',
method: 'post', method: 'post',
data: row data: row
}) })
} }
export const getStation = () =>{ export const getStation = () => {
return request({ return request({
url: '/api/jobslink-api/tenant/station/find', url: '/api/jobslink-api/tenant/station/find',
method: 'get', method: 'get',
@@ -54,7 +54,7 @@ export const StationDic =
method: 'get' method: 'get'
}) })
} }
// 工作站下拉 // 工作站下拉
export const StationFind = export const StationFind =
() => { () => {
return request({ return request({
@@ -63,7 +63,7 @@ export const StationFind =
}) })
} }
// 新增工作站 // 新增工作站
export const StationSave = export const StationSave =
(params) => { (params) => {
return request({ return request({
@@ -72,7 +72,7 @@ export const StationSave =
data: params data: params
}) })
} }
// 新增工作站账号 // 新增工作站账号
export const stationSubmit = export const stationSubmit =
(params) => { (params) => {
return request({ return request({
@@ -82,7 +82,7 @@ export const stationSubmit =
}) })
} }
// 查看工作站账号 // 查看工作站账号
export const tuserDetail = export const tuserDetail =
(params) => { (params) => {
return request({ return request({
@@ -92,7 +92,7 @@ export const tuserDetail =
}) })
} }
// 修改站点信息 // 修改站点信息
export const stationModify = export const stationModify =
(params) => { (params) => {
return request({ return request({
@@ -102,25 +102,30 @@ export const stationModify =
}) })
} }
export const getEnterpriseList = (params) => request({ export const getEnterpriseList = (params) => request({
url: '/api/jobslink-api/tenant/company/allInviteCompany', url: '/api/jobslink-api/tenant/company/allInviteCompany',
method: 'get', method: 'get',
params params
}) })
export const saveEnterpriseItem = (params) => request({ export const saveEnterpriseItem = (params) => request({
url: '/api/jobslink-api/tenant/invite/save', url: '/api/jobslink-api/tenant/invite/save',
method: 'post', method: 'post',
data: params data: params
}) })
export const getInvitationCodeList = (params) => request({ export const getInvitationCodeList = (params) => request({
url: '/api/jobslink-api/tenant/invite/list', url: '/api/jobslink-api/tenant/invite/list',
method: 'get', method: 'get',
params params
}) })
export const getInvitationStatusUpdate = (params) => request({ export const getInvitationStatusUpdate = (params) => request({
url: '/api/jobslink-api/tenant/invite/update', url: '/api/jobslink-api/tenant/invite/update',
method: 'post', method: 'post',
data: params data: params
}) })
export const getInviteApproval = (params) => request({
url: '/api/jobslink-api/tenant/invite/approval',
method: 'post',
data: params
})

View File

@@ -2,6 +2,7 @@
<basic-container> <basic-container>
<avue-crud <avue-crud
ref="crud" ref="crud"
:table-loading="loading"
@date-change="dateChange" @date-change="dateChange"
@current-change="currentChange" @current-change="currentChange"
@size-change="sizeChange" @size-change="sizeChange"
@@ -13,6 +14,7 @@
@search-change="searchChange" @search-change="searchChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@search-reset="searchReset" @search-reset="searchReset"
@selection-change="selectionChange"
> >
<template slot="menuLeft"> <template slot="menuLeft">
<el-button <el-button
@@ -20,7 +22,14 @@
@click.stop="distributionCodeDialog = true; isEdit = false; inviteCodeForm = {}" @click.stop="distributionCodeDialog = true; isEdit = false; inviteCodeForm = {}"
type="primary" type="primary"
v-show="vaildData(permission.manage_station_inviteCode_edituser, false)" v-show="vaildData(permission.manage_station_inviteCode_edituser, false)"
>新增用户</el-button> >新增用户
</el-button>
<el-button
size="small"
@click.stop="handleCheck"
type="primary"
>审核
</el-button>
</template> </template>
<template slot="menu" slot-scope="{row}"> <template slot="menu" slot-scope="{row}">
<el-button type="text" @click="rowUpdate(row)">编辑</el-button> <el-button type="text" @click="rowUpdate(row)">编辑</el-button>
@@ -43,9 +52,11 @@
:visible.sync="distributionCodeDialog" :visible.sync="distributionCodeDialog"
append-to-body append-to-body
width="30%"> width="30%">
<el-form :model="inviteCodeForm" :rules="inviteCodeRules" filterable ref="inviteCode" label-width="100px" class="demo-ruleForm"> <el-form :model="inviteCodeForm" :rules="inviteCodeRules" filterable ref="inviteCode" label-width="100px"
class="demo-ruleForm">
<el-form-item label="企业名称:" prop="companyId"> <el-form-item label="企业名称:" prop="companyId">
<el-select v-model="inviteCodeForm.inviteCompanyId" :disabled="isEdit" filterable placeholder="请选择企业" style="width: 260px" > <el-select v-model="inviteCodeForm.inviteCompanyId" :disabled="isEdit" filterable placeholder="请选择企业"
style="width: 260px">
<el-option <el-option
v-for="item in enterpriseList" v-for="item in enterpriseList"
:key="item.id" :key="item.id"
@@ -54,17 +65,18 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="绑定用户:" prop="realName" > <el-form-item label="绑定用户:" prop="realName">
<el-input style="width: 260px" v-model="inviteCodeForm.realName" placeholder="请输入姓名" ></el-input> <el-input style="width: 260px" v-model="inviteCodeForm.realName" placeholder="请输入姓名"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证:" prop="idNumber" > <el-form-item label="身份证:" prop="idNumber">
<el-input style="width: 260px" v-model="inviteCodeForm.idNumber" placeholder="请输入身份证" ></el-input> <el-input style="width: 260px" v-model="inviteCodeForm.idNumber" placeholder="请输入身份证"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号:" prop="phone" > <el-form-item label="手机号:" prop="phone">
<el-input style="width: 260px" v-model="inviteCodeForm.phone" placeholder="请输入手机号" ></el-input> <el-input style="width: 260px" v-model="inviteCodeForm.phone" placeholder="请输入手机号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="remarks" > <el-form-item label="备注:" prop="remarks">
<el-input type="textarea" style="width: 260px" v-model="inviteCodeForm.remarks" placeholder="请输入备注" ></el-input> <el-input type="textarea" style="width: 260px" v-model="inviteCodeForm.remarks"
placeholder="请输入备注"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -75,98 +87,126 @@
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import { check18IdCardNo, isExcel, isMobile } from "@/util/validate"; import {check18IdCardNo, isExcel, isMobile} from "@/util/validate";
import { deepClone } from "@/util/util"; import {deepClone} from "@/util/util";
import { import {
getEnterpriseList, getEnterpriseList,
saveEnterpriseItem, saveEnterpriseItem,
getInvitationCodeList, getInvitationCodeList,
getInvitationStatusUpdate getInvitationStatusUpdate,
getInviteApproval
} from "@/api/manage/station"; } from "@/api/manage/station";
import { Message } from "element-ui"; import {Message} from "element-ui";
import lodash from "lodash";
import {recruitStatus} from "@/common/dic";
import {Auditing} from "@/api/manage/mission";
const inviteCodeRules = { const inviteCodeRules = {
stationId: [ stationId: [
{ required: true, message: '请选择企业', trigger: 'blur' } {required: true, message: '请选择企业', trigger: 'blur'}
], ],
realName: [ realName: [
{ required: true, message: '请输入名称', trigger: 'blur'} {required: true, message: '请输入名称', trigger: 'blur'}
], ],
phone: [ phone: [
{ required: true, message: '请输入手机号', trigger: 'blur', pattern: /^1[3-9]{1}\d{9}/} {required: true, message: '请输入手机号', trigger: 'blur', pattern: /^1[3-9]{1}\d{9}/}
], ],
idNumber: [ idNumber: [
{ required: true, message: '请输入身份证', trigger: 'blur', pattern: /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$/} {
required: true,
message: '请输入身份证',
trigger: 'blur',
pattern: /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$/
}
], ],
} }
const curdOptions = { const curdOptions = {
dateBtn: false, dateBtn: false,
addBtn: false, addBtn: false,
tip: false,
editBtn: false, editBtn: false,
delBtn: false, delBtn: false,
height: "auto", height: "auto",
border: true, border: true,
searchMenuSpan: 48, searchMenuSpan: 48,
selection: true,
index: true, index: true,
indexLabel: "序号", indexLabel: "序号",
column: [{ column: [{
label: '机构名称', label: '机构名称',
prop: 'companyName', prop: 'companyName',
search: true, search: true,
},{ }, {
label: '企业名称', label: '企业名称',
prop: 'comname', prop: 'comname',
search: true, search: true,
},{ }, {
label: '绑定用户', label: '绑定用户',
prop: 'realName', prop: 'realName',
// search: true, // search: true,
}, },
// { // {
// label: '邀请码', // label: '邀请码',
// prop: 'inviteCode', // prop: 'inviteCode',
// search: true, // search: true,
// }, // },
{ {
label: '手机号', label: '手机号',
prop: 'phone', prop: 'phone',
search: true, search: true,
},{ }, {
label: '身份证', label: '身份证',
prop: 'idNumber', prop: 'idNumber',
search: true, search: true,
formatter:(_,value,label) => value formatter: (_, value, label) => value
}, },
// { // {
// label: '备注', // label: '备注',
// prop: 'remarks', // prop: 'remarks',
// }, // },
{ {
label: '启用状态', label: '启用状态',
prop: 'isEnabled', prop: 'isEnabled',
slot: true, slot: true,
width: 100 width: 100
}] }, {
label: '审核状态',
prop: 'reviewStatus',
width: 100,
type: 'select',
dicData: recruitStatus,
display: false,
}]
} }
const page = { const page = {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
total: 0, total: 0,
} }
const message = lodash.throttle(
function (options) {
Message(options);
},
3000,
{trailing: false}
);
export default { export default {
name: "manage_station_inviteCode", name: "manage_station_inviteCode",
data(){ data() {
return { return {
distributionCodeDialog: false, distributionCodeDialog: false,
inviteCodeRules: Object.assign({}, inviteCodeRules), inviteCodeRules: Object.assign({}, inviteCodeRules),
enterpriseList: [], // 企业列表 enterpriseList: [], // 企业列表
inviteCodeForm: {}, inviteCodeForm: {},
inviteCodeList:[], inviteCodeList: [],
selectionList: [],
option: Object.assign({}, curdOptions), option: Object.assign({}, curdOptions),
page: Object.assign({}, page), page: Object.assign({}, page),
searchData: {}, searchData: {},
isEdit: false, isEdit: false,
loading: false,
} }
}, },
activated() { activated() {
@@ -175,7 +215,73 @@ export default {
computed: { computed: {
...mapGetters(["permission"]), ...mapGetters(["permission"]),
}, },
methods:{ methods: {
handleCheck() {
let self = this
if (this.selectionList.length < 1) {
message({
type: "warning",
message: "请至少选择一条数据",
});
return;
}
let idList = this.selectionList.filter((item) => item.reviewStatus === 0).map((v) => v.id)
if (idList.length == 0) {
this.$message.error("只能提交【审核中】的任务");
} else {
let h = this.$createElement;
this.$prompt(
h("p", {style: "color: #F56C6C"}, "一旦驳回无法进行后续操作"),
"请核对招聘信息后再进行审核通过",
{
distinguishCancelAndClose: true,
confirmButtonText: "通 过",
cancelButtonText: "驳 回",
type: "warning",
center: true,
inputType: "textarea",
inputPlaceholder: "备注驳回原因",
beforeClose: function (action, instance, done) {
if (action === 'cancel') {
if (!instance.inputValue) {
return this.$message({
type: "info",
message: "请输入驳回原因!",
});
}
self.handelFetchAuditing(idList, 9, instance.inputValue, "成功驳回, 操作成功!").then(() => done())
} else if (action === 'confirm') {
self.handelFetchAuditing(idList, 1, instance.inputValue).then(() => done())
} else {
done()
}
}
}
)
}
},
handelFetchAuditing(idList, reviewState, msg, message) {
return new Promise((resolve, reject) => {
let arr = idList.map((item) => ({
id: item,
reviewStatus: reviewState,
reviewMsg: msg || '',
}))
this.loading = true;
getInviteApproval(arr).then(() => {
this.loading = false;
this.onLoad();
this.$message({
type: message ? "info" : "success",
message: message || "审核通过,操作成功!",
});
resolve()
}).catch(() => {
this.loading = false;
reject()
});
})
},
rowUpdate(row) { rowUpdate(row) {
this.isEdit = true this.isEdit = true
this.distributionCodeDialog = true this.distributionCodeDialog = true
@@ -190,8 +296,8 @@ export default {
const h = this.$createElement; const h = this.$createElement;
this.$confirm( this.$confirm(
h("div", null, [ h("div", null, [
h("p", { style: "font-size: 16px" }, "您确定要删除此消息吗? "), h("p", {style: "font-size: 16px"}, "您确定要删除此消息吗? "),
h("p", { style: "color: red" }, "一旦删除则无法找回"), h("p", {style: "color: red"}, "一旦删除则无法找回"),
]), ]),
{ {
type: "warning", type: "warning",
@@ -202,7 +308,7 @@ export default {
} }
) )
.then(() => { .then(() => {
return getInvitationStatusUpdate({ id: row.id, isDeleted: 1}); return getInvitationStatusUpdate({id: row.id, isDeleted: 1});
}) })
.then(() => { .then(() => {
this.$message({ this.$message({
@@ -211,7 +317,11 @@ export default {
}); });
this.refreshChange(); this.refreshChange();
}) })
.catch(() => { }); .catch(() => {
});
},
selectionChange(list) {
this.selectionList = list;
}, },
async onLoad() { async onLoad() {
this.getInvitationCode() this.getInvitationCode()
@@ -224,15 +334,15 @@ export default {
}, },
async changeEnabled(row) { async changeEnabled(row) {
const isEnabled = row.isEnabled ? 0 : 1 const isEnabled = row.isEnabled ? 0 : 1
let params = { id: row.id, isEnabled } let params = {id: row.id, isEnabled}
console.log(params) console.log(params)
let resData = await getInvitationStatusUpdate(params) let resData = await getInvitationStatusUpdate(params)
if(resData.data.code === 200){ if (resData.data.code === 200) {
this.$message.success('状态修改成功'); this.$message.success('状态修改成功');
this.getInvitationCode() this.getInvitationCode()
} }
}, },
refreshChange(){ refreshChange() {
this.getInvitationCode('refresh') this.getInvitationCode('refresh')
}, },
searchReset() { searchReset() {
@@ -245,7 +355,7 @@ export default {
}, },
getInvitationCode(type = 'add') { getInvitationCode(type = 'add') {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
if(type === 'refresh') { if (type === 'refresh') {
this.page.currentPage = 1 this.page.currentPage = 1
} }
let params = { let params = {
@@ -253,11 +363,13 @@ export default {
current: this.page.currentPage, current: this.page.currentPage,
size: this.page.pageSize, size: this.page.pageSize,
} }
this.loading = true
let resData = await getInvitationCodeList(params) let resData = await getInvitationCodeList(params)
if(resData.data.code === 200){ this.loading = false
const { size, records, current, total } = resData.data.data if (resData.data.code === 200) {
const {size, records, current, total} = resData.data.data
this.inviteCodeList = records this.inviteCodeList = records
this.page = { pageSize: size, currentPage: current, total } this.page = {pageSize: size, currentPage: current, total}
resolve() resolve()
} else { } else {
reject() reject()
@@ -272,13 +384,13 @@ export default {
companyName companyName
} }
let resData = null let resData = null
if( this.isEdit ) { if (this.isEdit) {
resData = await getInvitationStatusUpdate(params) resData = await getInvitationStatusUpdate(params)
} else { } else {
resData = await saveEnterpriseItem(params) resData = await saveEnterpriseItem(params)
} }
if(resData.data.code === 200){ if (resData.data.code === 200) {
const { code, data } = resData.data const {code, data} = resData.data
this.distributionCodeDialog = false this.distributionCodeDialog = false
this.getInvitationCode('refresh') this.getInvitationCode('refresh')
this.$message.success('提交成功'); this.$message.success('提交成功');
@@ -289,8 +401,8 @@ export default {
async getList() { async getList() {
let params = {} let params = {}
let resData = await getEnterpriseList(params) let resData = await getEnterpriseList(params)
if(resData.data.code === 200){ if (resData.data.code === 200) {
const { code, data } = resData.data const {code, data} = resData.data
this.enterpriseList = data this.enterpriseList = data
} }
} }