公司企业审核

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 { getConfigKey } from '@/api/system/config'
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'
// 自定义表格工具组件
@ -55,6 +55,7 @@ Vue.prototype.handleTree = handleTree
Vue.prototype.md5 = md5
Vue.prototype.modeOptions = modeOptions
Vue.prototype.educationOptions = educationOptions
Vue.prototype.enterpriseOptions = enterpriseOptions
// 全局组件挂载
Vue.component('DictTag', DictTag)

View File

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

View File

@ -1,5 +1,10 @@
<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-col :span="24">
<el-form-item label="所在地:" required>
@ -68,6 +73,10 @@ import { areaList } from "@/api/config";
export default {
props: {
value: Object,
labelWidth: {
type: Number,
default: 120,
},
},
data() {
return {

View File

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

View File

@ -1,5 +1,10 @@
<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-col :span="24">
<el-form-item label="所属领域:" required>
@ -85,6 +90,10 @@ import { industry } from "@/api/config";
export default {
props: {
value: Object,
labelWidth: {
type: Number,
default: 120,
},
},
data() {
return {

View File

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

View File

@ -1,3 +1,121 @@
<template>
<div>企业详情</div>
</template>
<div class="app-container">
<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>
<div>企业列表</div>
</template>
<div class="app-container">
<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>
<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" prop="name" />
<el-table-column
@ -76,9 +76,13 @@
<el-table-column label="所在地" align="center" prop="address" />
<el-table-column label="审核状态" align="center" prop="examine_status">
<template slot-scope="scope">
<span v-if="scope.row.examine_status == 1">审核中</span>
<span v-else-if="scope.row.examine_status == 2">审核通过</span>
<span v-else>审核拒绝</span>
<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="created_at">
@ -122,7 +126,7 @@ export default {
// 总条数
total: 0,
// 专家表格数据
userList: null,
dataList: null,
// 查询参数
queryParams: {
page_num: 1,
@ -138,7 +142,7 @@ export default {
getList() {
this.loading = true;
expertList(this.queryParams).then((response) => {
this.userList = response.data.data;
this.dataList = response.data.data;
this.total = response.data.count;
this.loading = false;
});