signup list
This commit is contained in:
@ -77,3 +77,29 @@ export function applyDelete(ids) {
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
// 活动报名列表
|
||||
export function activityEnrollList(params) {
|
||||
return request({
|
||||
url: `/business/activityEnroll/list`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
}
|
||||
// 删除活动报名
|
||||
export function activityEnrollDelete(ids) {
|
||||
return request({
|
||||
url: `/business/activityEnroll`,
|
||||
method: "delete",
|
||||
data: {
|
||||
ids,
|
||||
},
|
||||
});
|
||||
}
|
||||
// 修改活动报名
|
||||
export function activityEnrollUpdate(data) {
|
||||
return request({
|
||||
url: `/business/activityEnroll`,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
@ -150,11 +150,16 @@
|
||||
</el-row>
|
||||
|
||||
<el-row v-if="formType == 1">
|
||||
<el-col :span="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="毕业院校:" prop="school">
|
||||
<el-input v-model="modelValue.school"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属研究机构:" prop="organization">
|
||||
<el-input v-model="modelValue.organization"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row v-if="formType == 1">
|
||||
@ -366,6 +371,7 @@ const data = reactive({
|
||||
},
|
||||
],
|
||||
school: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
organization: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
education: [{ message: "请选择", trigger: "change" }],
|
||||
// major: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
// job: [{ required: true, message: "请输入", trigger: "blur" }],
|
||||
|
@ -37,9 +37,12 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<el-row>
|
||||
<el-button size="small" type="primary">批量审核</el-button>
|
||||
</el-row>
|
||||
<!-- 表格区域 -->
|
||||
<el-table :data="dataList">
|
||||
<el-table-column type="selection"></el-table-column>
|
||||
<el-table-column
|
||||
label="成果名称"
|
||||
align="center"
|
||||
|
@ -1,143 +0,0 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<panel-group />
|
||||
<el-card style="margin-bottom: 32px">
|
||||
<div slot="header">
|
||||
<span>快捷功能</span>
|
||||
</div>
|
||||
<el-row :gutter="10">
|
||||
<el-col
|
||||
:xs="8"
|
||||
:sm="6"
|
||||
:xl="4"
|
||||
v-for="item in quickList"
|
||||
:key="item.id"
|
||||
class="pointer"
|
||||
style="margin-bottom: 20px; padding-top: 20px; text-align: center"
|
||||
>
|
||||
<router-link :to="item.path">
|
||||
<el-avatar
|
||||
:size="80"
|
||||
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
|
||||
></el-avatar>
|
||||
<div style="margin: 10px 0">{{ item.title }}</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-row style="background: #fff">
|
||||
<el-card>
|
||||
<div slot="header">
|
||||
<span>数据统计</span>
|
||||
</div>
|
||||
<columnar-chart :chart-data="lineChartData" />
|
||||
</el-card>
|
||||
</el-row>
|
||||
<!-- <el-row style="background: #fff; padding: 16px 16px 0; margin-bottom: 32px">
|
||||
<line-chart :chart-data="lineChartData" />
|
||||
</el-row>
|
||||
<el-row :gutter="32">
|
||||
<el-col :xs="24" :sm="24" :lg="8">
|
||||
<div class="chart-wrapper">
|
||||
<raddar-chart />
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :lg="8">
|
||||
<div class="chart-wrapper">
|
||||
<pie-chart />
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :lg="8">
|
||||
<div class="chart-wrapper">
|
||||
<bar-chart />
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PanelGroup from "./dashboard/PanelGroup";
|
||||
import LineChart from "./dashboard/LineChart";
|
||||
import RaddarChart from "./dashboard/RaddarChart";
|
||||
import PieChart from "./dashboard/PieChart";
|
||||
import BarChart from "./dashboard/BarChart";
|
||||
import ColumnarChart from "./dashboard/ColumnarChart";
|
||||
|
||||
export default {
|
||||
name: "Index",
|
||||
components: {
|
||||
PanelGroup,
|
||||
LineChart,
|
||||
RaddarChart,
|
||||
PieChart,
|
||||
BarChart,
|
||||
ColumnarChart,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
lineChartData: {
|
||||
expertData: [15, 45],
|
||||
patentData: [40, 30],
|
||||
achievementsData: [20, 45],
|
||||
demandData: [45, 40],
|
||||
dockingData: [15, 50],
|
||||
},
|
||||
quickList: [
|
||||
{
|
||||
title: "专家审核",
|
||||
path: "/examine/expertList",
|
||||
},
|
||||
{
|
||||
title: "企业审核",
|
||||
path: "/examine/enterpriseList",
|
||||
},
|
||||
{
|
||||
title: "机构审核",
|
||||
path: "/examine/researchList",
|
||||
},
|
||||
{
|
||||
title: "实验室审核",
|
||||
path: "/examine/laboratoryList",
|
||||
},
|
||||
{
|
||||
title: "经纪人审核",
|
||||
path: "/examine/agentList",
|
||||
},
|
||||
{
|
||||
title: "成果审核",
|
||||
path: "",
|
||||
},
|
||||
{
|
||||
title: "需求审核",
|
||||
path: "",
|
||||
},
|
||||
{
|
||||
title: "企业产品审核",
|
||||
path: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dashboard-editor-container {
|
||||
background-color: rgb(255, 255, 255);
|
||||
position: relative;
|
||||
|
||||
.chart-wrapper {
|
||||
background: #fff;
|
||||
padding: 16px 16px 0;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.chart-wrapper {
|
||||
padding: 8px;
|
||||
}
|
||||
}
|
||||
</style>
|
122
src/views/userAuditList/enterprise/add.vue
Normal file
122
src/views/userAuditList/enterprise/add.vue
Normal file
@ -0,0 +1,122 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div style="width: 50%">
|
||||
<ExpertForm
|
||||
:isAdd="false"
|
||||
v-model="form"
|
||||
:showTitle="true"
|
||||
:formType="formType"
|
||||
:labelWidth="140"
|
||||
ref="expertFormRef"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div :style="{ marginLeft: 140 + 'px' }">
|
||||
<el-button @click="submitForm('2')">审核拒绝</el-button>
|
||||
<el-button type="primary" @click="submitForm('1')">通过审核</el-button>
|
||||
<el-button type="primary" @click="testCount">通过审核</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="EnterpriseAdd">
|
||||
import ExpertForm from "@/views/components/ExpertForm/index.vue";
|
||||
import tab from "@/plugins/tab";
|
||||
import {
|
||||
companyAdd,
|
||||
companyDetail,
|
||||
companyEdit,
|
||||
} from "@/api/dataList/enterprise";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
||||
const testCount = () => {
|
||||
useUserStore().unApprovedBusinessPlus();
|
||||
};
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const formType = ref(2);
|
||||
const expertFormRef = ref(null);
|
||||
const data = reactive({
|
||||
form: {
|
||||
image: undefined,
|
||||
name: undefined,
|
||||
tenantId: undefined,
|
||||
province: undefined, // 省code
|
||||
city: undefined, // 市code
|
||||
district: undefined, // 区code
|
||||
address: undefined, // 详细地址
|
||||
product: undefined,
|
||||
kind: undefined,
|
||||
code: undefined,
|
||||
inviterCode: undefined,
|
||||
url: undefined,
|
||||
industrys: [],
|
||||
keywords: [],
|
||||
directions: [],
|
||||
introduce: undefined,
|
||||
license: undefined,
|
||||
examineStatus: "",
|
||||
},
|
||||
});
|
||||
|
||||
const { form } = toRefs(data);
|
||||
const cancel = () => {
|
||||
router.back();
|
||||
tab.closeOpenPage();
|
||||
};
|
||||
|
||||
const submitForm = async (state) => {
|
||||
const valid = await expertFormRef.value.validateForm();
|
||||
if (valid) {
|
||||
if (form.value.id != undefined) {
|
||||
form.value.examineStatus = state;
|
||||
await companyEdit(form.value);
|
||||
useUserStore().getApprovalCount();
|
||||
cancel();
|
||||
ElMessage.success("修改成功");
|
||||
} else {
|
||||
await companyAdd(form.value);
|
||||
useUserStore().getApprovalCount();
|
||||
cancel();
|
||||
ElMessage.success("新增成功");
|
||||
}
|
||||
} else {
|
||||
console.log("校验未通过");
|
||||
}
|
||||
};
|
||||
|
||||
const getDetailById = async () => {
|
||||
if (route.query.id) {
|
||||
const { data } = await companyDetail(route.query.id);
|
||||
form.value = data;
|
||||
}
|
||||
};
|
||||
getDetailById();
|
||||
</script>
|
||||
|
||||
<!-- <script>
|
||||
export default {
|
||||
components: {
|
||||
ExpertForm,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// formType: 2,
|
||||
// labelWidth: 140,
|
||||
};
|
||||
},
|
||||
methods: {},
|
||||
created() {
|
||||
const { id } = this.$route.query;
|
||||
if (id) {
|
||||
companyDetail({ id }).then((res) => {
|
||||
form.value = res.data;
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
</script> -->
|
221
src/views/userAuditList/enterprise/index.vue
Normal file
221
src/views/userAuditList/enterprise/index.vue
Normal file
@ -0,0 +1,221 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 顶部搜索区域 -->
|
||||
<el-form :model="queryData" :inline="true">
|
||||
<el-form-item label="企业名称">
|
||||
<el-input
|
||||
style="width: 150px"
|
||||
v-model="queryData.name"
|
||||
placeholder="请输入关键字"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核状态">
|
||||
<el-select
|
||||
style="width: 100px"
|
||||
v-model="queryData.examineStatus"
|
||||
class="m-2"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option label="已审核" :value="1" />
|
||||
<el-option label="已拒绝" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="企业类型">
|
||||
<el-select
|
||||
style="width: 100px"
|
||||
v-model="queryData.kind"
|
||||
class="m-2"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option :value="101" label="上市企业" />
|
||||
<el-option :value="102" label="优质企业" />
|
||||
<el-option :value="103" label="普通企业" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="站点">
|
||||
<SiteOptions
|
||||
v-model="queryData.tenantId"
|
||||
:site-list="siteList"
|
||||
style="width: 160px"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="float: right">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="search"
|
||||
size="default"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="refresh" size="default" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!--表格区域-->
|
||||
<el-table :data="dataList" style="width: 100%" border>
|
||||
<el-table-column prop="name" label="企业名称" align="center" />
|
||||
<!-- <el-table-column prop="code" label="统一社会信用代码" align="center" /> -->
|
||||
<el-table-column label="所属领域" align="center">
|
||||
<template #default="{ row }">
|
||||
<div>{{ row.industrys[row.industrys.length - 1] }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="" label="站点" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ siteList.find((el) => el.id === row.tenantId)?.name ?? "无" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="address" label="所在地" align="center" />
|
||||
<el-table-column prop="examineStatus" label="审核状态" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ examineStatusDict[row.examineStatus] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="kind" label="企业类型" align="center">
|
||||
<template #default="{ row }">
|
||||
<div>
|
||||
{{ enterpriseOptions.find((e) => row.kind == e.key).value }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createdAt" label="申请时间" align="center" />
|
||||
<el-table-column prop="" label="操作" width="200px" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-button size="small" type="text" @click="handleDetail(row.id)"
|
||||
>审核</el-button
|
||||
>
|
||||
<el-button size="small" type="text" @click="delList(row.id)"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button size="small" type="text" @click="setType(row)"
|
||||
>设置企业类型</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页器 -->
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryData.pageNum"
|
||||
v-model:limit="queryData.page_size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 设置企业类型弹框 -->
|
||||
<el-dialog title="设置企业类型" v-model="isShow">
|
||||
<el-row type="flex" justify="center" style="height: 100px">
|
||||
<el-radio-group v-model="radioList">
|
||||
<el-radio
|
||||
v-for="{ key, value } in enterpriseOptions"
|
||||
:key="key"
|
||||
:label="key"
|
||||
>{{ value }}</el-radio
|
||||
>
|
||||
<!-- <el-radio label="101">上市企业</el-radio> -->
|
||||
<!-- <el-radio label="102">优质企业</el-radio> -->
|
||||
<!-- <el-radio label="103">普通企业</el-radio> -->
|
||||
</el-radio-group>
|
||||
</el-row>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button type="" @click="isShow = false">取消</el-button>
|
||||
<el-button type="primary" @click="btnType">确认</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import SiteOptions from "@/views/components/SiteOptions";
|
||||
import { enterpriseList, editType, delItem } from "@/api/dataList/list";
|
||||
import { tenantSelect } from "@/api/subPlatform/tenant";
|
||||
import { enterpriseOptions } from "@/utils/parameter";
|
||||
import { reactive, ref } from "vue";
|
||||
import { ElMessageBox } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
const data = reactive({
|
||||
queryData: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
examineStatus: "",
|
||||
},
|
||||
});
|
||||
const router = useRouter();
|
||||
const total = ref(0);
|
||||
const dataList = ref([]);
|
||||
const { queryData } = toRefs(data);
|
||||
const siteList = ref([]);
|
||||
const isShow = ref(false);
|
||||
const radioList = ref("");
|
||||
const examineStatusDict = {
|
||||
0: "审核中",
|
||||
1: "已通过",
|
||||
2: "已拒绝",
|
||||
};
|
||||
// 临时id
|
||||
const id = ref("");
|
||||
// 获取企业列表
|
||||
const getList = async () => {
|
||||
const res = await enterpriseList(queryData.value);
|
||||
dataList.value = res.rows;
|
||||
total.value = res.total;
|
||||
};
|
||||
// 获取站点列表
|
||||
const getSiteList = async () => {
|
||||
const resp = await tenantSelect();
|
||||
siteList.value = resp.rows;
|
||||
};
|
||||
// 搜索查询
|
||||
const handleQuery = () => {
|
||||
getList(queryData.value);
|
||||
};
|
||||
// 重置按钮
|
||||
const resetQuery = () => {
|
||||
queryData.value = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
examineStatus: "",
|
||||
};
|
||||
getList();
|
||||
};
|
||||
// 企业类型弹框
|
||||
const setType = (row) => {
|
||||
radioList.value = row.kind;
|
||||
isShow.value = true;
|
||||
id.value = row.id;
|
||||
};
|
||||
// 发送修改类型请求
|
||||
const btnType = async () => {
|
||||
await editType({
|
||||
kind: radioList.value,
|
||||
id: id.value,
|
||||
});
|
||||
getList();
|
||||
isShow.value = false;
|
||||
};
|
||||
// 删除按钮
|
||||
const delList = async (id) => {
|
||||
ElMessageBox.confirm(`是否确认删除编号为${id}的数据项?`)
|
||||
.then(async () => {
|
||||
await delItem(id);
|
||||
getList();
|
||||
ElMessage.success("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
getList();
|
||||
};
|
||||
// 跳转详情页
|
||||
const handleDetail = (id) => {
|
||||
router.push({
|
||||
path: "/approval/dataList/add",
|
||||
query: { id },
|
||||
});
|
||||
};
|
||||
getList();
|
||||
getSiteList();
|
||||
</script>
|
||||
<style></style>
|
109
src/views/userAuditList/expert/approval.vue
Normal file
109
src/views/userAuditList/expert/approval.vue
Normal file
@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div style="width: 50%">
|
||||
<ExpertForm
|
||||
:isAdd="false"
|
||||
v-model="form"
|
||||
:showTitle="true"
|
||||
:formType="formType"
|
||||
:labelWidth="140"
|
||||
ref="expertFormRef"
|
||||
/>
|
||||
</div>
|
||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||
<el-button @click="submitForm('2')">审核拒绝</el-button>
|
||||
<el-button type="primary" @click="submitForm('1')">通过审核</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="EnterpriseAdd">
|
||||
import ExpertForm from "@/views/components/ExpertForm";
|
||||
import tab from "@/plugins/tab";
|
||||
import { companyAdd, companyDetail, companyEdit } from "@/api/expert/expert";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const formType = ref(1);
|
||||
const expertFormRef = ref(null);
|
||||
const labelWidth = ref(140);
|
||||
const data = reactive({
|
||||
form: {
|
||||
image: undefined,
|
||||
name: undefined,
|
||||
tenantId: undefined,
|
||||
province: undefined, // 省code
|
||||
city: undefined, // 市code
|
||||
district: undefined, // 区code
|
||||
address: undefined, // 详细地址
|
||||
product: undefined,
|
||||
kind: undefined,
|
||||
code: undefined,
|
||||
inviterCode: undefined,
|
||||
url: undefined,
|
||||
industrys: [],
|
||||
keywords: [],
|
||||
directions: [],
|
||||
introduce: undefined,
|
||||
license: undefined,
|
||||
},
|
||||
});
|
||||
const { form } = toRefs(data);
|
||||
const cancel = () => {
|
||||
router.back();
|
||||
tab.closeOpenPage();
|
||||
};
|
||||
const submitForm = async (state) => {
|
||||
const valid = await expertFormRef.value.validateForm();
|
||||
if (valid) {
|
||||
if (form.value.id != undefined) {
|
||||
form.value.examineStatus = state;
|
||||
await companyEdit(form.value);
|
||||
cancel();
|
||||
ElMessage.success("修改成功");
|
||||
} else {
|
||||
await companyAdd(form.value);
|
||||
useUserStore().getApprovalCount();
|
||||
cancel();
|
||||
ElMessage.success("新增成功");
|
||||
}
|
||||
} else {
|
||||
console.log("校验未通过");
|
||||
}
|
||||
};
|
||||
|
||||
const getDetailById = async () => {
|
||||
if (route.query.id) {
|
||||
const { data } = await companyDetail(route.query.id);
|
||||
form.value = data;
|
||||
form.value.district = data.area;
|
||||
}
|
||||
};
|
||||
getDetailById();
|
||||
</script>
|
||||
|
||||
<!-- <script>
|
||||
export default {
|
||||
components: {
|
||||
ExpertForm,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// formType: 2,
|
||||
// labelWidth: 140,
|
||||
};
|
||||
},
|
||||
methods: {},
|
||||
created() {
|
||||
const { id } = this.$route.query;
|
||||
if (id) {
|
||||
companyDetail({ id }).then((res) => {
|
||||
form.value = res.data;
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
</script> -->
|
150
src/views/userAuditList/expert/index.vue
Normal file
150
src/views/userAuditList/expert/index.vue
Normal file
@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 顶部搜索区域 -->
|
||||
<el-form :model="queryData" :inline="true">
|
||||
<el-form-item label="专家姓名">
|
||||
<el-input
|
||||
style="width: 150px"
|
||||
v-model="queryData.name"
|
||||
placeholder="请输入关键字"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核状态">
|
||||
<el-select
|
||||
style="width: 100px"
|
||||
v-model="queryData.examineStatus"
|
||||
class="m-2"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option label="已审核" :value="1" />
|
||||
<el-option label="已拒绝" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="站点">
|
||||
<SiteOptions
|
||||
v-model="queryData.tenantId"
|
||||
:site-list="siteList"
|
||||
style="width: 160px"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="float: right">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="search"
|
||||
size="default"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="refresh" size="default" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!--表格区域-->
|
||||
<el-table :data="dataList" style="width: 100%">
|
||||
<el-table-column prop="name" label="专家姓名" align="center" />
|
||||
<el-table-column label="研究领域" align="center">
|
||||
<template #default="{ row }">
|
||||
<div>{{ row.industryStr }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="education" label="学历" align="center" />
|
||||
<el-table-column
|
||||
prop="introduce"
|
||||
show-overflow-tooltip
|
||||
label="个人备注"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column prop="school" label="毕业院校" align="center" />
|
||||
<el-table-column prop="post" label="职务" align="center" />
|
||||
<el-table-column label="站点" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ siteList.find((el) => el.id === row.tenantId)?.name ?? "无" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="address" label="所在地" align="center" />
|
||||
<el-table-column prop="examineStatus" label="审核状态" align="center">
|
||||
<template #default="{ row }">
|
||||
{{ examineStatusDict[row.examineStatus] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="申请时间" align="center" />
|
||||
<el-table-column prop="" label="操作" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-button size="small" type="text" @click="btnAudit(row.id)"
|
||||
>审核</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页器 -->
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryData.pageNum"
|
||||
v-model:limit="queryData.page_size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import SiteOptions from "@/views/components/SiteOptions";
|
||||
import { tenantSelect } from "@/api/subPlatform/tenant";
|
||||
import { expertList } from "@/api/expert/expert";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const data = reactive({
|
||||
queryData: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
examineStatus: "",
|
||||
},
|
||||
});
|
||||
const total = ref(0);
|
||||
const dataList = ref([]);
|
||||
const siteList = ref([]);
|
||||
const { queryData } = toRefs(data);
|
||||
const examineStatusDict = {
|
||||
0: "审核中",
|
||||
1: "已通过",
|
||||
2: "已拒绝",
|
||||
};
|
||||
// 获取专家列表
|
||||
const getList = async () => {
|
||||
const res = await expertList(queryData.value);
|
||||
dataList.value = res.rows;
|
||||
total.value = res.total;
|
||||
};
|
||||
// 获取站点列表
|
||||
const getSiteList = async () => {
|
||||
const resp = await tenantSelect();
|
||||
siteList.value = resp.rows;
|
||||
};
|
||||
// 搜索查询
|
||||
const handleQuery = () => {
|
||||
getList(queryData.value);
|
||||
};
|
||||
// 重置按钮
|
||||
const resetQuery = () => {
|
||||
queryData.value = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
examineStatus: "",
|
||||
};
|
||||
getList();
|
||||
};
|
||||
// 审核按钮
|
||||
const btnAudit = (id) => {
|
||||
router.push({
|
||||
path: "/approval/dataList/expert",
|
||||
query: { id },
|
||||
});
|
||||
};
|
||||
getList();
|
||||
getSiteList();
|
||||
</script>
|
||||
<style></style>
|
@ -121,7 +121,7 @@
|
||||
query: { id: row.id },
|
||||
}"
|
||||
>
|
||||
<el-link type="primary">{{ row.joinCount }}</el-link>
|
||||
<el-link type="primary">{{ 12 }}</el-link>
|
||||
</router-link>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
@ -144,6 +144,13 @@
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
size="small"
|
||||
type="text"
|
||||
icon="notebook"
|
||||
@click="router.push(`./signUp?id=${row.id}`)"
|
||||
>报名名单</el-button
|
||||
>
|
||||
<el-button
|
||||
size="small"
|
||||
type="text"
|
||||
@ -404,7 +411,7 @@ import { reactive, toRefs } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import WangEditor from "@/components/WangEditor/index.vue";
|
||||
import SiteOptions from "@/views/components/SiteOptions";
|
||||
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const total = ref(0);
|
||||
|
@ -3,7 +3,7 @@
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
v-show="showSearch"
|
||||
v-show=""
|
||||
:inline="true"
|
||||
@submit.native.prevent
|
||||
>
|
||||
@ -21,11 +21,11 @@
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
size="small"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
@ -37,7 +37,7 @@
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
size="small"
|
||||
@click="handleAdd()"
|
||||
>新增</el-button
|
||||
>
|
||||
@ -49,31 +49,42 @@
|
||||
</el-row> -->
|
||||
|
||||
<el-table v-loading="loading" :data="dataList">
|
||||
<el-table-column label="数据编号" prop="id" align="center" />
|
||||
<el-table-column label="姓名单位名称" prop="name" align="center" />
|
||||
<el-table-column
|
||||
label="活动id"
|
||||
prop="activityId"
|
||||
align="center"
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
label="活动报名id"
|
||||
prop="id"
|
||||
align="center"
|
||||
width="100"
|
||||
/>
|
||||
<el-table-column label="姓名" prop="name" align="center" />
|
||||
<!-- <el-table-column label="分类" prop="name" align="center" /> -->
|
||||
<!-- <el-table-column label="所属领域" prop="name" align="center" /> -->
|
||||
<el-table-column label="联系电话" prop="mobile" align="center" />
|
||||
<el-table-column label="报名时间" align="center" prop="created_at">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatTime(scope.row.created_at) }}</span>
|
||||
</template>
|
||||
<el-table-column label="手机号" prop="phone" align="center" />
|
||||
<el-table-column label="报名时间" align="center" prop="createTime">
|
||||
<!-- <template #default="{ row }">
|
||||
<span>{{ dayjs(row.createTime).format("YYYY-MM-DD HH:mm:ss") }}</span>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<!-- <el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-table-column label="操作" align="center">
|
||||
<!-- class-name="small-padding fixed-width" -->
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
round
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="handleUpdate(row)"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button round size="small" type="danger" @click="handleDelete(row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
@ -83,9 +94,162 @@
|
||||
:limit.sync="queryParams.page_size"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<el-dialog title="活动报名" v-model="showSignUp">
|
||||
<el-form
|
||||
:model="activityEnrollForm"
|
||||
:rules="signUpRules"
|
||||
ref="activityEnrollFormRef"
|
||||
labelWidth="100px"
|
||||
>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input
|
||||
placeholder="请输入姓名"
|
||||
v-model="activityEnrollForm.name"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手机号" prop="phone">
|
||||
<el-input
|
||||
placeholder="请输入手机号"
|
||||
maxlength="11"
|
||||
v-model="activityEnrollForm.phone"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="年龄" prop="age">
|
||||
<el-input-number
|
||||
placeholder="请输入年龄"
|
||||
v-model="activityEnrollForm.age"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="gender">
|
||||
<el-radio-group v-model="activityEnrollForm.gender">
|
||||
<el-radio label="1">男</el-radio>
|
||||
<el-radio label="2">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-row justify="end">
|
||||
<el-button @click="showSignUp = false">取消</el-button>
|
||||
<el-button @click="submitSignUp" type="primary">报名</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
<script setup name="SignUpList">
|
||||
import {
|
||||
activityEnrollList,
|
||||
activityEnrollDelete,
|
||||
activityEnrollUpdate,
|
||||
} from "@/api/website/activity";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { cloneDeep } from "lodash";
|
||||
|
||||
// import dayjs from "dayjs";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
activityId: route.query.id,
|
||||
},
|
||||
activityEnrollForm: {},
|
||||
signUpRules: {
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入姓名!",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
age: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入年龄!",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
gender: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择性别!",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
phone: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入手机号!",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
const { queryParams, activityEnrollForm, signUpRules } = toRefs(data);
|
||||
const dataList = ref([]);
|
||||
const total = ref(0);
|
||||
const loading = ref(true);
|
||||
const queryForm = ref();
|
||||
const showSignUp = ref(false);
|
||||
|
||||
const getList = async () => {
|
||||
const resp = await activityEnrollList(queryParams.value);
|
||||
dataList.value = resp.rows;
|
||||
total.value = resp.total;
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
};
|
||||
const resetQuery = () => {
|
||||
queryForm.value.resetFields();
|
||||
handleQuery();
|
||||
};
|
||||
getList();
|
||||
|
||||
const handleDelete = async (row) => {
|
||||
await ElMessageBox.confirm(
|
||||
`是否确认删除${row.name}的活动报名`,
|
||||
"删除活动报名"
|
||||
);
|
||||
await activityEnrollDelete([row.id]);
|
||||
ElMessage.success("删除成功");
|
||||
getList();
|
||||
};
|
||||
const activityEnrollFormRef = ref();
|
||||
const handleUpdate = (row) => {
|
||||
activityEnrollForm.value = cloneDeep(row);
|
||||
activityEnrollForm.value.age = parseInt(activityEnrollForm.value.age);
|
||||
if (activityEnrollFormRef.value) {
|
||||
activityEnrollFormRef.value.resetFields();
|
||||
}
|
||||
showSignUp.value = true;
|
||||
};
|
||||
|
||||
const submitSignUp = async () => {
|
||||
await activityEnrollUpdate(activityEnrollForm.value);
|
||||
ElMessage.success("修改成功");
|
||||
showSignUp.value = false;
|
||||
getList();
|
||||
};
|
||||
</script>
|
||||
|
||||
<!-- <script>
|
||||
import { signUpList } from "@/api/website/activity";
|
||||
export default {
|
||||
data() {
|
||||
@ -133,7 +297,7 @@ export default {
|
||||
return;
|
||||
}
|
||||
this.queryParams.activity_id = id;
|
||||
this.getList();
|
||||
// this.getList();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
</script> -->
|
||||
|
Reference in New Issue
Block a user