公司企业审核

This commit is contained in:
熊丽君
2022-01-27 09:41:09 +08:00
parent 30e01df9ae
commit eedefcc42d
10 changed files with 483 additions and 30 deletions

View File

@ -0,0 +1,42 @@
import request from '@/utils/request'
// 公司企业列表
export function companyList(data) {
return request({
url: '/admin/v1/manage/company',
method: 'post',
data,
})
}
// 公司企业信息添加
export function companyAdd(data) {
return request({
url: '/admin/v1/manage/company/add',
method: 'post',
data,
})
}
// 公司企业详细信息
export function companyDetail(data) {
return request({
url: '/admin/v1/manage/company/detail',
method: 'post',
data,
})
}
// 公司企业信息修改
export function companyEdit(data) {
return request({
url: '/admin/v1/manage/company/edit',
method: 'post',
data,
})
}
// 公司企业审核操作
export function companyExamine(data) {
return request({
url: '/admin/v1/manage/company/examine',
method: 'post',
data,
})
}

View File

@ -20,7 +20,7 @@ import './permission' // permission control
import { getDicts } from '@/api/system/dict/data' import { getDicts } from '@/api/system/dict/data'
import { getConfigKey } from '@/api/system/config' import { getConfigKey } from '@/api/system/config'
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from '@/utils/ruoyi' import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from '@/utils/ruoyi'
import { modeOptions, educationOptions } from '@/utils/parameter' import { modeOptions, educationOptions, enterpriseOptions } from '@/utils/parameter'
// 分页组件 // 分页组件
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
// 自定义表格工具组件 // 自定义表格工具组件
@ -55,6 +55,7 @@ Vue.prototype.handleTree = handleTree
Vue.prototype.md5 = md5 Vue.prototype.md5 = md5
Vue.prototype.modeOptions = modeOptions Vue.prototype.modeOptions = modeOptions
Vue.prototype.educationOptions = educationOptions Vue.prototype.educationOptions = educationOptions
Vue.prototype.enterpriseOptions = enterpriseOptions
// 全局组件挂载 // 全局组件挂载
Vue.component('DictTag', DictTag) Vue.component('DictTag', DictTag)

View File

@ -27,3 +27,9 @@ export const educationOptions = [
{ key: 6, text: '研究生' }, { key: 6, text: '研究生' },
{ key: 7, text: '博士' }, { key: 7, text: '博士' },
] ]
// 企业类型
export const enterpriseOptions = [
{ key: 101, value: '上市企业' },
{ key: 102, value: '优质企业' },
{ key: 103, value: '普通企业' },
]

View File

@ -1,5 +1,10 @@
<template> <template>
<el-form ref="form" :model="value" :rules="rules" label-width="100px"> <el-form
ref="form"
:model="value"
:rules="rules"
:label-width="labelWidth + 'px'"
>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所在地:" required> <el-form-item label="所在地:" required>
@ -68,6 +73,10 @@ import { areaList } from "@/api/config";
export default { export default {
props: { props: {
value: Object, value: Object,
labelWidth: {
type: Number,
default: 120,
},
}, },
data() { data() {
return { return {

View File

@ -1,5 +1,10 @@
<template> <template>
<el-form ref="form" :model="value" :rules="rules" label-width="100px"> <el-form
ref="form"
:model="value"
:rules="rules"
:label-width="labelWidth + 'px'"
>
<div class="form_title" v-if="showTitle">基本信息</div> <div class="form_title" v-if="showTitle">基本信息</div>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
@ -9,9 +14,9 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="formType == 3"> <el-row v-if="formType == 3 || formType == 2">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="机构名称:" prop="name"> <el-form-item :label="nameName" prop="name">
<el-input <el-input
v-model="value.name" v-model="value.name"
:disabled="isAdd ? false : true" :disabled="isAdd ? false : true"
@ -20,21 +25,44 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="formType == 3"> <el-row v-if="formType == 3 || formType == 2">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="机构代码:" prop="code"> <el-form-item label="组织机构代码:" prop="code">
<el-row type="flex" justify="space-between"> <el-row type="flex" justify="space-between">
<el-col :span="20"> <el-col :span="20">
<el-input v-model="value.code"></el-input> <el-input v-model="value.code" :disabled="!isAdd"></el-input>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<el-button type="primary" @click="" disabled>查找</el-button> <el-button type="primary" @click="" disabled v-if="isAdd"
>查找</el-button
>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="formType == 2">
<el-col :span="24">
<el-form-item label="企业类型:" prop="kind">
<el-select v-model="value.kind" placeholder="请选择">
<el-option
v-for="item in enterpriseOptions"
:key="item.key"
:label="item.value"
:value="item.key"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="核心成果核心产品:" prop="product">
<el-input v-model="value.product"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="formType == 1"> <el-row v-if="formType == 1">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="姓名:" prop="name"> <el-form-item label="姓名:" prop="name">
@ -100,7 +128,7 @@
</el-col> </el-col>
</el-row> </el-row>
<CityOptions v-model="value" ref="cityForm" /> <CityOptions v-model="value" :labelWidth="labelWidth" ref="cityForm" />
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
@ -172,24 +200,52 @@
</el-col> </el-col>
</el-row> </el-row>
<FieldOptions v-model="value" ref="fieldForm" /> <FieldOptions v-model="value" :labelWidth="labelWidth" ref="fieldForm" />
<InputBoxAdd <InputBoxAdd
v-if="formType == 1" v-if="formType == 1 || formType == 2"
:labelWidth="labelWidth"
v-model="value" v-model="value"
title="关键词" title="关键词"
placeholder="应用场景关键词+技术产品关键词" placeholder="应用场景关键词+技术产品关键词"
fieldKey="keywords" fieldKey="keywords"
ref="keywordsForm" ref="keywordsForm"
/> />
<InputBoxAdd <InputBoxAdd
v-if="formType != 2"
:labelWidth="labelWidth"
v-model="value" v-model="value"
title="研究方向" title="研究方向"
placeholder="请输入研究方向" placeholder="请输入研究方向"
fieldKey="researchs" fieldKey="researchs"
ref="researchsForm" ref="researchsForm"
/> />
<el-row v-if="formType == 3">
<InputBoxAdd
v-if="formType == 2"
:labelWidth="labelWidth"
v-model="value"
title="生产方向"
placeholder="请输入生产方向"
fieldKey="directions"
ref="directionsForm"
/>
<el-row v-if="formType == 2">
<el-col :span="24">
<el-form-item label="邀请码:">
<el-input v-model="value.inviter_code" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="企业网站:">
<el-input v-model="value.url"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="formType == 3 || formType == 2">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="营业执照:" prop="license"> <el-form-item label="营业执照:" prop="license">
<ImageUpload v-model="value.license" :isShowTip="false" :limit="1" /> <ImageUpload v-model="value.license" :isShowTip="false" :limit="1" />
@ -206,11 +262,11 @@
:autosize="{ minRows: 2, maxRows: 6 }" :autosize="{ minRows: 2, maxRows: 6 }"
/> />
<Editor <Editor
v-else
v-model="value.introduce" v-model="value.introduce"
:minHeight="150" :minHeight="150"
ref="introduceRef" ref="introduceRef"
@click.native="handleEditAble" @click.native="handleEditAble"
v-if="formType == 3"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -243,6 +299,10 @@ export default {
type: Number, type: Number,
default: 1, default: 1,
}, },
labelWidth: {
type: Number,
default: 120,
},
}, },
computed: { computed: {
introduceName() { introduceName() {
@ -252,7 +312,7 @@ export default {
str = "个人简介:"; str = "个人简介:";
break; break;
case 2: case 2:
str = ":"; str = "单位简介:";
break; break;
case 3: case 3:
str = "机构简介:"; str = "机构简介:";
@ -291,6 +351,21 @@ export default {
} }
return str; return str;
}, },
nameName() {
let str = "";
switch (this.formType) {
case 2:
str = "单位名称:";
break;
case 3:
str = "机构名称:";
break;
break;
default:
break;
}
return str;
},
}, },
data() { data() {
return { return {
@ -299,7 +374,9 @@ export default {
// { value: "", label: "" } // { value: "", label: "" }
], ],
rules: { rules: {
product: [{ required: true, message: "请输入", trigger: "blur" }],
name: [{ required: true, message: "请输入", trigger: "blur" }], name: [{ required: true, message: "请输入", trigger: "blur" }],
kind: [{ required: true, message: "请选择", trigger: "change" }],
code: [{ required: true, message: "请输入", trigger: "blur" }], code: [{ required: true, message: "请输入", trigger: "blur" }],
mobile: [ mobile: [
{ required: true, message: "请输入", trigger: "blur" }, { required: true, message: "请输入", trigger: "blur" },
@ -385,16 +462,32 @@ export default {
const fieldForm = this.$refs.fieldForm.submitForm(); // 所属领域 const fieldForm = this.$refs.fieldForm.submitForm(); // 所属领域
const keywordsForm = this.$refs.keywordsForm.submitForm(); // 关键词 const keywordsForm = this.$refs.keywordsForm.submitForm(); // 关键词
const researchsForm = this.$refs.researchsForm.submitForm(); // 研究方向 const researchsForm = this.$refs.researchsForm.submitForm(); // 研究方向
if (cityForm && fieldForm && keywordsForm && researchsForm) { if (valid && cityForm && fieldForm && keywordsForm && researchsForm) {
flag = !flag; flag = !flag;
} }
}); });
} else { } else if (this.formType == 2) {
this.$refs["form"].validate((valid) => {
const cityForm = this.$refs.cityForm.submitForm();
const fieldForm = this.$refs.fieldForm.submitForm();
const keywordsForm = this.$refs.keywordsForm.submitForm();
const directionsForm = this.$refs.directionsForm.submitForm();
if (
valid &&
cityForm &&
fieldForm &&
keywordsForm &&
directionsForm
) {
flag = !flag;
}
});
} else if (this.formType == 3) {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
const cityForm = this.$refs.cityForm.submitForm(); const cityForm = this.$refs.cityForm.submitForm();
const fieldForm = this.$refs.fieldForm.submitForm(); const fieldForm = this.$refs.fieldForm.submitForm();
const researchsForm = this.$refs.researchsForm.submitForm(); const researchsForm = this.$refs.researchsForm.submitForm();
if (cityForm && fieldForm && researchsForm) { if (valid && cityForm && fieldForm && researchsForm) {
flag = !flag; flag = !flag;
} }
}); });

View File

@ -1,5 +1,10 @@
<template> <template>
<el-form ref="form" :model="value" :rules="rules" label-width="100px"> <el-form
ref="form"
:model="value"
:rules="rules"
:label-width="labelWidth + 'px'"
>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属领域:" required> <el-form-item label="所属领域:" required>
@ -85,6 +90,10 @@ import { industry } from "@/api/config";
export default { export default {
props: { props: {
value: Object, value: Object,
labelWidth: {
type: Number,
default: 120,
},
}, },
data() { data() {
return { return {

View File

@ -1,5 +1,5 @@
<template> <template>
<el-form ref="form" :model="value" label-width="100px"> <el-form ref="form" :model="value" :label-width="labelWidth + 'px'">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item <el-form-item
@ -42,6 +42,10 @@ import { industry } from "@/api/config";
export default { export default {
props: { props: {
value: Object, value: Object,
labelWidth: {
type: Number,
default: 120,
},
title: { title: {
type: String, type: String,
default: "", default: "",

View File

@ -1,3 +1,121 @@
<template> <template>
<div>企业详情</div> <div class="app-container">
</template> <div style="width: 50%">
<ExpertForm
v-model="form"
:isAdd="false"
:formType="formType"
:labelWidth="labelWidth"
ref="expertForm"
/>
</div>
<div :style="{ marginLeft: labelWidth + 'px' }">
<el-button @click="submitForm(3)">审核拒绝</el-button>
<el-button type="primary" @click="submitForm(2)">审核通过</el-button>
</div>
</div>
</template>
<script>
import ExpertForm from "@/views/components/ExpertForm";
import {
companyDetail,
companyEdit,
companyExamine,
} from "@/api/dataList/enterprise";
export default {
components: {
ExpertForm,
},
data() {
return {
formType: 2,
labelWidth: 140,
form: {
image: undefined,
name: undefined,
code: undefined,
tenant_id: undefined,
province: undefined, // 省code
city: undefined, // 市code
district: undefined, // 区code
address: undefined, // 详细地址
industrys: [],
keywords: [],
kind: undefined,
introduce: undefined, // 介绍
product: undefined, // 产品信息
url: undefined, // 企业地址
license: undefined, // 营业执照地址
directions: [], // 产品方向
inviter_code: undefined,
},
};
},
methods: {
submitForm(status) {
if (this.$refs.expertForm.submitForm()) {
const str =
status == 2
? "<span style='color:green'>通过</span>"
: "<span style='color:red'>拒绝</span>";
this.$prompt(`您将 ${str} 该数据审核,请输入处理备注`, "审核", {
dangerouslyUseHTMLString: true,
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputType: "textarea",
})
.then(({ value }) => {
companyEdit(this.form).then((res) => {
if (res.code == 200) {
const query = {
id: this.form.id,
status,
remark: value,
};
companyExamine(query).then((res) => {
this.$store.dispatch("tagsView/delView", this.$route);
this.$router.go(-1);
this.$modal.msgSuccess("处理成功");
});
}
});
})
.catch(() => {});
} else {
console.log("校验未通过");
}
// this.$refs["form"].validate((valid) => {
// if (valid) {
// if (this.form.id != undefined) {
// serviceEdit(this.form).then((response) => {
// this.$modal.msgSuccess("修改成功");
// this.open = false;
// this.getList();
// });
// } else {
// serviceAdd(this.form).then((response) => {
// this.$modal.msgSuccess("新增成功");
// this.open = false;
// this.getList();
// });
// }
// }
// });
},
},
created() {
let { id } = this.$route.query;
if (!id) {
this.$message.error("无ID");
this.$router.go(-1);
return;
}
companyDetail({ id }).then((res) => {
this.form = res.data;
});
},
};
</script>

View File

@ -1,3 +1,170 @@
<template> <template>
<div>企业列表</div> <div class="app-container">
</template> <el-form
:model="queryParams"
ref="queryForm"
:inline="true"
label-width="68px"
>
<el-form-item label="企业名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入企业名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="审核状态" prop="examine_status">
<el-select
v-model="queryParams.examine_status"
placeholder="请选择审核状态"
clearable
size="small"
style="width: 240px"
@clear="delete queryParams.examine_status"
>
<el-option label="审核中" :value="1" />
<el-option label="审核通过" :value="2" />
<el-option label="审核拒绝" :value="3" />
</el-select>
</el-form-item>
<el-form-item label="所属站点" prop="tenant_id" v-if="is_super">
<SiteOptions v-model="queryParams" />
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList">
<el-table-column label="数据编号" align="center" width="150" prop="id" />
<el-table-column label="企业名称" align="center" prop="name" />
<el-table-column label="统一社会信用代码" align="center" prop="code" />
<el-table-column
label="所属领域"
align="center"
prop="industrys"
show-overflow-tooltip
>
<template slot-scope="scope">
<div>{{ scope.row.industrys[scope.row.industrys.length - 1] }}</div>
</template>
</el-table-column>
<el-table-column label="站点" align="center" prop="area" />
<el-table-column label="所在地" align="center" prop="address" />
<el-table-column label="审核状态" align="center" prop="examine_status">
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.examine_status == 1"
>审核中</el-tag
>
<el-tag type="success" v-else-if="scope.row.examine_status == 2"
>审核通过</el-tag
>
<el-tag type="danger" v-else>审核拒绝</el-tag>
</template>
</el-table-column>
<el-table-column label="企业类型" align="center" prop="kind">
<template slot-scope="scope">
<div>
{{ enterpriseOptions.find((e) => scope.row.kind == e.key).value }}
</div>
</template>
</el-table-column>
<el-table-column label="申请时间" align="center" prop="created_at">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.created_at) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
:disabled="scope.row.examine_status != 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDetail(scope.row.id)"
>审核</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page_num"
:limit.sync="queryParams.page_size"
@pagination="getList"
/>
</div>
</template>
<script>
import { companyList } from "@/api/dataList/enterprise";
export default {
data() {
return {
is_super: this.$store.getters.is_super,
// 遮罩层
loading: true,
// 总条数
total: 0,
// 企业表格数据
dataList: null,
// 查询参数
queryParams: {
page_num: 1,
page_size: 10,
name: undefined,
examine_status: undefined,
tenant_id: undefined,
},
};
},
methods: {
/** 查询企业列表 */
getList() {
this.loading = true;
companyList(this.queryParams).then((response) => {
this.dataList = response.data.data;
this.total = response.data.count;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.page_num = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
handleDetail(id) {
console.log(id);
this.$router.push({
path: "/examine/enterpriseDetail",
query: { id },
});
},
},
created() {
this.getList();
},
};
</script>

View File

@ -48,7 +48,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="userList"> <el-table v-loading="loading" :data="dataList">
<el-table-column label="数据编号" align="center" width="150" prop="id" /> <el-table-column label="数据编号" align="center" width="150" prop="id" />
<el-table-column label="专家姓名" align="center" prop="name" /> <el-table-column label="专家姓名" align="center" prop="name" />
<el-table-column <el-table-column
@ -76,9 +76,13 @@
<el-table-column label="所在地" align="center" prop="address" /> <el-table-column label="所在地" align="center" prop="address" />
<el-table-column label="审核状态" align="center" prop="examine_status"> <el-table-column label="审核状态" align="center" prop="examine_status">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.examine_status == 1">审核中</span> <el-tag type="info" v-if="scope.row.examine_status == 1"
<span v-else-if="scope.row.examine_status == 2">审核通过</span> >审核中</el-tag
<span v-else>审核拒绝</span> >
<el-tag type="success" v-else-if="scope.row.examine_status == 2"
>审核通过</el-tag
>
<el-tag type="danger" v-else>审核拒绝</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="申请时间" align="center" prop="created_at"> <el-table-column label="申请时间" align="center" prop="created_at">
@ -122,7 +126,7 @@ export default {
// 总条数 // 总条数
total: 0, total: 0,
// 专家表格数据 // 专家表格数据
userList: null, dataList: null,
// 查询参数 // 查询参数
queryParams: { queryParams: {
page_num: 1, page_num: 1,
@ -138,7 +142,7 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
expertList(this.queryParams).then((response) => { expertList(this.queryParams).then((response) => {
this.userList = response.data.data; this.dataList = response.data.data;
this.total = response.data.count; this.total = response.data.count;
this.loading = false; this.loading = false;
}); });