This commit is contained in:
2023-07-21 16:43:51 +08:00
parent c4d147a87d
commit 9fe9a45d2b
4 changed files with 216 additions and 178 deletions

View File

@ -1,84 +1,107 @@
// 审核状态0审核中1审核通过2审核拒绝 // 审核状态0审核中1审核通过2审核拒绝
export const auditStatusDict = [ export const auditStatusDict = [
{ {
value: "0", value: "0",
label: "待审核", label: "待审核",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "1", value: "1",
label: "已通过", label: "已通过",
elTagType: "success", elTagType: "success",
}, },
{ {
value: "2", value: "2",
label: "已驳回", label: "已驳回",
elTagType: "danger", elTagType: "danger",
}, },
]; ];
// 用户性别0男 1女 2未知 // 用户性别0男 1女 2未知
export const userSexDict = [ export const userSexDict = [
{ {
value: "0", value: "0",
label: "男", label: "男",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "1", value: "1",
label: "女", label: "女",
elTagType: "success", elTagType: "success",
}, },
{ {
value: "2", value: "2",
label: "未知", label: "未知",
elTagType: "danger", elTagType: "danger",
}, },
]; ];
//帐号状态0正常 1停用 //帐号状态0正常 1停用
export const userStatusDict = [ export const userStatusDict = [
{ {
value: "0", value: "0",
label: "正常", label: "正常",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "1", value: "1",
label: "停用", label: "停用",
elTagType: "danger", elTagType: "danger",
}, },
]; ];
// 订单类型(1创新币充值, 2活动报名) // 订单类型(1创新币充值, 2活动报名)
export const orderTypeDict = [ export const orderTypeDict = [
{ {
value: "1", value: "1",
label: "创新币充值", label: "创新币充值",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "2", value: "2",
label: "活动报名", label: "活动报名",
elTagType: "success", elTagType: "success",
}, },
]; ];
// 订单状态, 状态(0->未申请1->已申请2->已处理) // 订单状态, 状态(0->未申请1->已申请2->已处理)
export const orderStatusDict = [ export const orderStatusDict = [
{ {
value: "0", value: "0",
label: "未申请", label: "未申请",
elTagType: "warning", elTagType: "warning",
}, },
{ {
value: "1", value: "1",
label: "已申请", label: "已申请",
elTagType: "primary", elTagType: "primary",
}, },
{ {
value: "2", value: "2",
label: "已处理", label: "已处理",
elTagType: "success", elTagType: "success",
}, },
];
// 来源: 1: 专家 2: 实验室 3: 科研机构
export const comeFromDict = [
{
value: "1",
label: "专家",
elTagType: "primary",
field: "expert",
},
{
value: "2",
label: "实验室",
elTagType: "success",
field: "laboratory",
},
{
value: "3",
label: "科研机构",
elTagType: "success",
field: "research",
}
]; ];

View File

@ -1,9 +1,9 @@
<template> <template>
<el-form <el-form
ref="formRef" ref="formRef"
:label-width="labelWidth + 'px'" :label-width="labelWidth + 'px'"
:model="modelValue" :model="modelValue"
:rules="rules" :rules="rules"
> >
<div v-if="showTitle" class="form_title">基本信息</div> <div v-if="showTitle" class="form_title">基本信息</div>
@ -15,7 +15,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row v-if="!isAdd">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="手机号:" prop="mobile"> <el-form-item label="手机号:" prop="mobile">
<el-input v-model="modelValue.mobile" :disabled="!isAdd"></el-input> <el-input v-model="modelValue.mobile" :disabled="!isAdd"></el-input>
@ -34,7 +34,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="工作所在地:" prop="wordAddress"> <el-form-item label="工作所在地:" prop="wordAddress">
<el-input v-model="modelValue.wordAddress" /> <el-input v-model="modelValue.wordAddress"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -43,9 +43,9 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="工作经历:" prop="experience"> <el-form-item label="工作经历:" prop="experience">
<el-input <el-input
v-model="modelValue.experience" v-model="modelValue.experience"
:autosize="{ minRows: 2, maxRows: 6 }" :autosize="{ minRows: 2, maxRows: 6 }"
type="textarea" type="textarea"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -67,19 +67,19 @@
<!-- <FieldOptions v-model="value" :labelWidth="labelWidth" ref="fieldForm" /> --> <!-- <FieldOptions v-model="value" :labelWidth="labelWidth" ref="fieldForm" /> -->
<field-options <field-options
ref="researchsFormRef" ref="researchsFormRef"
v-model="modelValue" v-model="modelValue"
:labelWidth="labelWidth" :labelWidth="labelWidth"
placeholder="请选择擅长领域" placeholder="请选择擅长领域"
/> />
<InputBoxAdd <InputBoxAdd
ref="keywordsFormRef" ref="keywordsFormRef"
v-model="modelValue" v-model="modelValue"
:labelWidth="labelWidth" :labelWidth="labelWidth"
fieldKey="keywords" fieldKey="keywords"
placeholder="应用场景关键词+技术产品关键词" placeholder="应用场景关键词+技术产品关键词"
title="关键词" title="关键词"
/> />
<el-row> <el-row>
@ -89,9 +89,9 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="idImage.0"> <el-form-item prop="idImage.0">
<ImageUpload <ImageUpload
v-model="modelValue.idImage[0]" v-model="modelValue.idImage[0]"
:isShowTip="false" :isShowTip="false"
:limit="1" :limit="1"
/> />
</el-form-item> </el-form-item>
<div style="text-align: center">身份证人像面</div> <div style="text-align: center">身份证人像面</div>
@ -99,9 +99,9 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="idImage.1"> <el-form-item prop="idImage.1">
<ImageUpload <ImageUpload
v-model="modelValue.idImage[1]" v-model="modelValue.idImage[1]"
:isShowTip="false" :isShowTip="false"
:limit="1" :limit="1"
/> />
</el-form-item> </el-form-item>
<div style="text-align: center">身份证国徽面</div> <div style="text-align: center">身份证国徽面</div>
@ -109,9 +109,9 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item prop="idImage.2"> <el-form-item prop="idImage.2">
<ImageUpload <ImageUpload
v-model="modelValue.idImage[2]" v-model="modelValue.idImage[2]"
:isShowTip="false" :isShowTip="false"
:limit="1" :limit="1"
/> />
</el-form-item> </el-form-item>
<div style="text-align: center">手持身份证人像面</div> <div style="text-align: center">手持身份证人像面</div>
@ -127,8 +127,8 @@
<el-row :gutter="20" justify="space-between" type="flex"> <el-row :gutter="20" justify="space-between" type="flex">
<el-col :span="8"> <el-col :span="8">
<image-upload <image-upload
v-model="modelValue.certificatePics" v-model="modelValue.certificatePics"
:isShowTip="false" :isShowTip="false"
/> />
</el-col> </el-col>
</el-row> </el-row>
@ -140,9 +140,8 @@
<script setup> <script setup>
import InputBoxAdd from "@/views/components/InputBoxAdd"; import InputBoxAdd from "@/views/components/InputBoxAdd";
import FieldOptions from "@/views/components/FieldOptions"; import FieldOptions from "@/views/components/FieldOptions";
import SiteOptions from "@/views/components/SiteOptions"; import {reactive, ref, toRefs} from "vue";
import { reactive, ref, toRefs } from "vue"; import {tenantSelect} from "@/api/subPlatform/tenant";
import { tenantSelect } from "@/api/subPlatform/tenant";
import ImageUpload from "@/components/ImageUpload/index.vue"; import ImageUpload from "@/components/ImageUpload/index.vue";
// import { researchSelect } from "@/api/dataList/research"; // import { researchSelect } from "@/api/dataList/research";
@ -168,18 +167,18 @@ const props = defineProps({
}); });
const data = reactive({ const data = reactive({
rules: { rules: {
name: [{ required: true, message: "请输入", trigger: "blur" }], name: [{required: true, message: "请输入", trigger: "blur"}],
mobile: [ mobile: [
{ required: true, message: "请输入", trigger: "blur" }, {required: true, message: "请输入", trigger: "blur"},
{ {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: "请输入正确的手机号码",
trigger: "blur", trigger: "blur",
}, },
], ],
idCard: [{ required: true, message: "请输入", trigger: "blur" }], idCard: [{required: true, message: "请输入", trigger: "blur"}],
workAddress: [{ required: true, message: "请输入", trigger: "blur" }], workAddress: [{required: true, message: "请输入", trigger: "blur"}],
experience: [{ required: true, message: "请输入", trigger: "blur" }], experience: [{required: true, message: "请输入", trigger: "blur"}],
// tenantId: [ // tenantId: [
// { // {
// required: true, // required: true,
@ -210,7 +209,7 @@ const data = reactive({
], ],
}, },
}); });
const { rules } = toRefs(data); const {rules} = toRefs(data);
const researchOptions = ref([]); const researchOptions = ref([]);
const formRef = ref(); const formRef = ref();

View File

@ -2,14 +2,14 @@
<div class="app-container"> <div class="app-container">
<!-- 顶部区域 --> <!-- 顶部区域 -->
<el-form inline ref="queryFormRef" :model="queryParams"> <el-form ref="queryFormRef" :model="queryParams" inline>
<el-row> <el-row>
<el-col> <el-col>
<el-form-item prop="status"> <el-form-item prop="status">
<el-radio-group <el-radio-group
v-model="queryParams.status" v-model="queryParams.status"
size="small" size="small"
@change="handleQuery" @change="handleQuery"
> >
<!-- <el-radio-button :label="1">已发布</el-radio-button> --> <!-- <el-radio-button :label="1">已发布</el-radio-button> -->
<el-radio-button :label="0">待审核</el-radio-button> <el-radio-button :label="0">待审核</el-radio-button>
@ -37,49 +37,64 @@
</el-col> --> </el-col> -->
</el-row> </el-row>
</el-form> </el-form>
<el-row> <el-row class="mb8">
<el-button <el-button
v-if="queryParams.status == 0" v-if="queryParams.status == 0"
size="small" :disabled="!selectedIds.length"
type="primary" size="small"
:disabled="!selectedIds.length" type="primary"
@click="handleBatchApproval" @click="handleBatchApproval"
>批量审核</el-button >批量审核
</el-button
> >
<el-button <el-button
size="small" :disabled="!selectedIds.length"
type="danger" size="small"
:disabled="!selectedIds.length" type="danger"
@click="handleDelete(...selectedIds)" @click="handleDelete(...selectedIds)"
>批量删除</el-button >批量删除
</el-button
> >
<el-button <el-button
size="small" size="small"
type="primary" type="primary"
@click=" @click="
userStore.resetUnApproval('achievement', 'unApprovedAchivement') userStore.resetUnApproval('achievement', 'unApprovedAchivement')
" "
>未读归零</el-button >未读归零
</el-button
> >
</el-row> </el-row>
<!-- 表格区域 --> <!-- 表格区域 -->
<el-table :data="dataList" @selection-change="handleSelectionChange"> <el-table :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="80"></el-table-column> <el-table-column type="selection" width="80"></el-table-column>
<el-table-column <el-table-column
label="成果名称" align="center"
align="center" label="成果名称"
prop="title" prop="title"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="成果领域" align="center"
align="center" label="成果领域"
prop="industryStr" prop="industryStr"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="所属专家" align="center"
align="center" label="来源类型"
prop="expertName" >
></el-table-column> <template #default="{row}">
{{ comeFromDict.find((el) => el.value === row.comeFrom)?.label }}
</template>
</el-table-column>
<!-- 来源名称-->
<el-table-column
align="center"
label="来源名称"
>
<template #default="{row}">
{{ row[`${comeFromDict.find((el) => el.value === row.comeFrom)?.field}Name`] }}
</template>
</el-table-column>
<!-- <el-table-column <!-- <el-table-column
label="所属研究机构" label="所属研究机构"
align="center" align="center"
@ -93,48 +108,47 @@
> >
</el-table-column> --> </el-table-column> -->
<el-table-column <el-table-column
label="申请时间" align="center"
align="center" label="申请时间"
prop="createTime" prop="createTime"
></el-table-column> ></el-table-column>
<el-table-column label="操作" align="center"> <el-table-column align="center" label="操作">
<template #default="{ row }"> <template #default="{ row }">
<el-button size="small" round type="primary" @click="approval(row.id)" <el-button round size="small" type="primary" @click="approval(row.id)"
>审批</el-button >审批
</el-button
> >
<el-button <el-button
size="small" round
round size="small"
type="danger" type="danger"
@click="handleDelete(row.id)" @click="handleDelete(row.id)"
>删除</el-button >删除
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total > 0"
:total="total" v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNum" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" :total="total"
@pagination="getList" @pagination="getList"
/> />
</div> </div>
</template> </template>
<script setup> <script setup>
// import SiteOptions from "@/views/components/SiteOptions"; // import SiteOptions from "@/views/components/SiteOptions";
// import {} from "../../../api/dataApproval/achivement"; // import {} from "../../../api/dataApproval/achivement";
import { reactive, ref, toRefs } from "vue"; import {reactive, ref, toRefs} from "vue";
import { tenantSelect } from "@/api/subPlatform/tenant"; import {batchAchievement, deleteAchievementByIds, expertAchievementList,} from "@/api/dataApproval/achivement";
import {
expertAchievementList,
batchAchievement,
deleteAchievementByIds,
} from "@/api/dataApproval/achivement";
import useUserStore from "@/store/modules/user"; import useUserStore from "@/store/modules/user";
import { useRouter } from "vue-router"; import {useRouter} from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
import {comeFromDict} from "../../../constant/dict";
const userStore = useUserStore(); const userStore = useUserStore();
const router = useRouter(); const router = useRouter();
const data = reactive({ const data = reactive({
@ -145,7 +159,7 @@ const data = reactive({
}, },
}); });
const { queryParams } = toRefs(data); const {queryParams} = toRefs(data);
const dataList = ref([]); const dataList = ref([]);
const siteList = ref([]); const siteList = ref([]);
@ -194,27 +208,29 @@ const handleSelectionChange = (val) => {
}; };
const handleDelete = async (...ids) => { const handleDelete = async (...ids) => {
ElMessageBox.confirm(`是否确认删除编号为${ids.join(",")}的数据项?`) ElMessageBox.confirm(`是否确认删除编号为${ids.join(",")}的数据项?`)
.then(async () => { .then(async () => {
await deleteAchievementByIds(ids); await deleteAchievementByIds(ids);
// userStore.getApprovalCount(); // userStore.getApprovalCount();
userStore.getUnApprovedAchivement(); userStore.getUnApprovedAchivement();
getList(); getList();
ElMessage.success("删除成功"); ElMessage.success("删除成功");
}) })
.catch(() => {}); .catch(() => {
});
}; };
const handleBatchApproval = async () => { const handleBatchApproval = async () => {
ElMessageBox.confirm( ElMessageBox.confirm(
`是否确认批量审核通过编号为${selectedIds.value.join(",")}的数据项?` `是否确认批量审核通过编号为${selectedIds.value.join(",")}的数据项?`
) )
.then(async () => { .then(async () => {
await batchAchievement(selectedIds.value); await batchAchievement(selectedIds.value);
userStore.getUnApprovedAchivement(); userStore.getUnApprovedAchivement();
getList(); getList();
ElMessage.success("批量审核成功"); ElMessage.success("批量审核成功");
}) })
.catch(() => {}); .catch(() => {
});
}; };
userStore.getUnApprovedAchivement(); userStore.getUnApprovedAchivement();
userStore.getAchievementTotal(); userStore.getAchievementTotal();

View File

@ -32,8 +32,8 @@ export default defineConfig(({ mode, command }) => {
// https://cn.vitejs.dev/config/#server-proxy // https://cn.vitejs.dev/config/#server-proxy
"/dev-api": { "/dev-api": {
// target: "http://192.168.110.10:1618", // target: "http://192.168.110.10:1618",
target: 'http://101.34.131.16:1618', // target: 'http://101.34.131.16:1618',
// target: "http://192.168.0.201:1618", target: "http://192.168.0.201:1618",
changeOrigin: true, changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""), rewrite: (p) => p.replace(/^\/dev-api/, ""),
}, },