专家跳转详情页,经纪人查看服务的需求
This commit is contained in:
7
src/api/dataList/technology-demand.js
Normal file
7
src/api/dataList/technology-demand.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import request from "@/utils/request";
|
||||||
|
|
||||||
|
export const technologyDemandList = (params) => request({
|
||||||
|
url: "/business/technologyDemand/list",
|
||||||
|
method: "GET",
|
||||||
|
params
|
||||||
|
})
|
@ -39,8 +39,11 @@ export function technologyProjectDetail(id) {
|
|||||||
|
|
||||||
export function technologyProjectDelete(ids) {
|
export function technologyProjectDelete(ids) {
|
||||||
return request({
|
return request({
|
||||||
url: `/business/technologyProject/${ids}`,
|
url: `/business/technologyProject`,
|
||||||
method: "DELETE",
|
method: "DELETE",
|
||||||
|
data: {
|
||||||
|
ids
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,23 +22,25 @@
|
|||||||
<!-- <SiteOptions v-model="queryParams.tenantId" :site-list="siteList"/>-->
|
<!-- <SiteOptions v-model="queryParams.tenantId" :site-list="siteList"/>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<el-col :span="6">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
icon="search"
|
|
||||||
size="default"
|
|
||||||
@click="handleQuery"
|
|
||||||
>搜索
|
|
||||||
</el-button
|
|
||||||
>
|
|
||||||
<el-button icon="refresh" size="default" @click="resetQuery"
|
|
||||||
>重置
|
|
||||||
</el-button
|
|
||||||
>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-row>
|
<!-- <el-row>-->
|
||||||
|
<!-- <el-col :span="6">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- icon="search"-->
|
||||||
|
<!-- size="default"-->
|
||||||
|
<!-- @click="handleQuery"-->
|
||||||
|
<!-- >搜索-->
|
||||||
|
<!-- </el-button-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <el-button icon="refresh" size="default" @click="resetQuery"-->
|
||||||
|
<!-- >重置-->
|
||||||
|
<!-- </el-button-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- </el-row>-->
|
||||||
|
<el-row class="mb8">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="queryParams.status == 0"
|
v-if="queryParams.status == 0"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -108,7 +108,7 @@
|
|||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
label="截至日期"
|
label="截止日期"
|
||||||
prop="deadline"
|
prop="deadline"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column align="center" label="操作" width="320" v-if="queryParams.status!==4">
|
<el-table-column align="center" label="操作" width="320" v-if="queryParams.status!==4">
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form
|
<el-form
|
||||||
ref="queryFormRef"
|
ref="queryFormRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
label-width="85px"
|
label-width="85px"
|
||||||
>
|
>
|
||||||
<el-form-item label="实验室名称" prop="name">
|
<el-form-item label="实验室名称" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.name"
|
v-model="queryParams.name"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入实验室名称"
|
placeholder="请输入实验室名称"
|
||||||
size="small"
|
size="small"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@ -23,14 +23,14 @@
|
|||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
icon="search"
|
icon="search"
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleQuery"
|
@click="handleQuery"
|
||||||
>搜索
|
>搜索
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button icon="refresh" size="small" @click="resetQuery"
|
<el-button icon="refresh" size="small" @click="resetQuery"
|
||||||
>重置
|
>重置
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -38,28 +38,28 @@
|
|||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
icon="plus"
|
icon="plus"
|
||||||
plain
|
plain
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
>新增
|
>新增
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar
|
<right-toolbar
|
||||||
:showSearch.sync="showSearch"
|
:showSearch.sync="showSearch"
|
||||||
@queryTable="getList"
|
@queryTable="getList"
|
||||||
></right-toolbar>
|
></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="dataList">
|
<el-table v-loading="loading" :data="dataList">
|
||||||
<el-table-column align="center" label="姓名" prop="name" />
|
<el-table-column align="center" label="姓名" prop="name"/>
|
||||||
<!-- <el-table-column align="center" label="手机号" prop="mobile" />-->
|
<!-- <el-table-column align="center" label="手机号" prop="mobile" />-->
|
||||||
<el-table-column align="center" label="资格证书缩略图">
|
<el-table-column align="center" label="资格证书缩略图">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-image
|
<el-image
|
||||||
:src="row.certificatePics?.split(',')?.[0] ?? ''"
|
:src="row.certificatePics?.split(',')?.[0] ?? ''"
|
||||||
style="width: 120px; height: 120px"
|
style="width: 120px; height: 120px"
|
||||||
></el-image>
|
></el-image>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -75,7 +75,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
<!-- <el-table-column align="center" label="站点" prop="area" />-->
|
<!-- <el-table-column align="center" label="站点" prop="area" />-->
|
||||||
<el-table-column align="center" label="所在地" prop="wordAddress" />
|
<el-table-column align="center" label="所在地" prop="wordAddress"/>
|
||||||
<el-table-column align="center" label="申请时间" prop="createTime">
|
<el-table-column align="center" label="申请时间" prop="createTime">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span>{{ parseTime(row.createTime) }}</span>
|
<span>{{ parseTime(row.createTime) }}</span>
|
||||||
@ -84,77 +84,84 @@
|
|||||||
<el-table-column align="center" label="操作">
|
<el-table-column align="center" label="操作">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
icon="edit"
|
icon="edit"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleDetail(row.brokerId)"
|
@click="handleDetail(row.brokerId)"
|
||||||
>修改
|
>修改
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
icon="edit"
|
icon="edit"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="openAssignAccount(row.brokerId)"
|
@click="openAssignAccount(row.brokerId)"
|
||||||
>分配账号
|
>分配账号
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
icon="refresh"
|
icon="refresh"
|
||||||
link
|
link
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="openResetPassword(row.brokerId)"
|
@click="openResetPassword(row.brokerId)"
|
||||||
>重置密码
|
>重置密码
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
icon="delete"
|
icon="delete"
|
||||||
size="small"
|
size="small"
|
||||||
type="text"
|
type="text"
|
||||||
@click="handleDelete(row.brokerId)"
|
@click="handleDelete(row.brokerId)"
|
||||||
>删除
|
>删除
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
icon="view"
|
||||||
|
size="small"
|
||||||
|
type="text"
|
||||||
|
@click="handleViewTechDemand(row.brokerId)"
|
||||||
|
>服务的需求
|
||||||
</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"
|
||||||
v-model:limit="queryParams.pageSize"
|
v-model:limit="queryParams.pageSize"
|
||||||
v-model:page="queryParams.pageNum"
|
v-model:page="queryParams.pageNum"
|
||||||
:total="total"
|
:total="total"
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="showAssignAccount"
|
v-model="showAssignAccount"
|
||||||
append-to-body
|
append-to-body
|
||||||
title="分配账号"
|
title="分配账号"
|
||||||
width="400px"
|
width="400px"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form
|
||||||
ref="assignAccountFormRef"
|
ref="assignAccountFormRef"
|
||||||
:model="assignAccountForm"
|
:model="assignAccountForm"
|
||||||
:rules="assignAccoutRules"
|
:rules="assignAccoutRules"
|
||||||
label-width="80px"
|
label-width="80px"
|
||||||
>
|
>
|
||||||
<el-form-item label="手机号" prop="username">
|
<el-form-item label="手机号" prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="assignAccountForm.username"
|
v-model="assignAccountForm.username"
|
||||||
:maxlength="11"
|
:maxlength="11"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="密码" prop="password">
|
<el-form-item label="密码" prop="password">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="assignAccountForm.password"
|
v-model="assignAccountForm.password"
|
||||||
show-password
|
show-password
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitAssignAccount"
|
<el-button type="primary" @click="submitAssignAccount"
|
||||||
>确 定
|
>确 定
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="closeAssignAccount">取 消</el-button>
|
<el-button @click="closeAssignAccount">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -162,28 +169,28 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="showResetPassword"
|
v-model="showResetPassword"
|
||||||
append-to-body
|
append-to-body
|
||||||
title="重置密码"
|
title="重置密码"
|
||||||
width="400px"
|
width="400px"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form
|
||||||
ref="resetPasswordFormRef"
|
ref="resetPasswordFormRef"
|
||||||
:model="resetPasswordForm"
|
:model="resetPasswordForm"
|
||||||
:rules="assignAccoutRules"
|
:rules="assignAccoutRules"
|
||||||
label-width="80px"
|
label-width="80px"
|
||||||
>
|
>
|
||||||
<el-form-item label="密码" prop="password">
|
<el-form-item label="密码" prop="password">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="resetPasswordForm.password"
|
v-model="resetPasswordForm.password"
|
||||||
show-password
|
show-password
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitResetPassword"
|
<el-button type="primary" @click="submitResetPassword"
|
||||||
>确 定
|
>确 定
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="closeResetPassword">取 消</el-button>
|
<el-button @click="closeResetPassword">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -193,8 +200,8 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
import { reactive, ref, toRefs } from "vue";
|
import {reactive, ref, toRefs} from "vue";
|
||||||
import { useRouter } from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
import {
|
import {
|
||||||
agentList,
|
agentList,
|
||||||
allocateAccount,
|
allocateAccount,
|
||||||
@ -202,8 +209,8 @@ import {
|
|||||||
getAccount,
|
getAccount,
|
||||||
resetPassword,
|
resetPassword,
|
||||||
} from "@/api/dataList/agent";
|
} from "@/api/dataList/agent";
|
||||||
import { parseTime } from "@/utils/ruoyi";
|
import {parseTime} from "@/utils/ruoyi";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import {ElMessage, ElMessageBox} from "element-plus";
|
||||||
import md5 from "js-md5";
|
import md5 from "js-md5";
|
||||||
/* TODO: is_super: this.$store.getters.is_super, */
|
/* TODO: is_super: this.$store.getters.is_super, */
|
||||||
|
|
||||||
@ -222,7 +229,7 @@ const data = reactive({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams } = toRefs(data);
|
const {queryParams} = toRefs(data);
|
||||||
|
|
||||||
/*查询实验室列表*/
|
/*查询实验室列表*/
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
@ -255,7 +262,7 @@ const handleAdd = () => {
|
|||||||
const handleDetail = (id) => {
|
const handleDetail = (id) => {
|
||||||
router.push({
|
router.push({
|
||||||
path: "/dataList/agentAdd",
|
path: "/dataList/agentAdd",
|
||||||
query: { id },
|
query: {id},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -272,10 +279,10 @@ const assignAccoutRules = {
|
|||||||
trigger: "blur",
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
|
password: [{required: true, message: "请输入密码", trigger: "blur"}],
|
||||||
vipType: [{ required: true, message: "请选择会员类型", trigger: "change" }],
|
vipType: [{required: true, message: "请选择会员类型", trigger: "change"}],
|
||||||
expireTime: [
|
expireTime: [
|
||||||
{ required: true, message: "请选择到期时间", trigger: "change" },
|
{required: true, message: "请选择到期时间", trigger: "change"},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
const showAssignAccount = ref(false);
|
const showAssignAccount = ref(false);
|
||||||
@ -292,7 +299,7 @@ const showResetPassword = ref(false);
|
|||||||
|
|
||||||
const openAssignAccount = async (id) => {
|
const openAssignAccount = async (id) => {
|
||||||
resetForm();
|
resetForm();
|
||||||
const { have, data } = await getAccount(id);
|
const {have, data} = await getAccount(id);
|
||||||
if (have) {
|
if (have) {
|
||||||
ElMessageBox.alert(`已经存在账号:${data}`, "账号已经存在");
|
ElMessageBox.alert(`已经存在账号:${data}`, "账号已经存在");
|
||||||
} else {
|
} else {
|
||||||
@ -303,7 +310,7 @@ const openAssignAccount = async (id) => {
|
|||||||
|
|
||||||
const openResetPassword = async (id) => {
|
const openResetPassword = async (id) => {
|
||||||
resetForm();
|
resetForm();
|
||||||
const { have, userId } = await getAccount(id);
|
const {have, userId} = await getAccount(id);
|
||||||
if (have) {
|
if (have) {
|
||||||
resetPasswordForm.id = userId;
|
resetPasswordForm.id = userId;
|
||||||
showResetPassword.value = true;
|
showResetPassword.value = true;
|
||||||
@ -356,13 +363,23 @@ const handleDelete = async (id) => {
|
|||||||
delIds = ids.value;
|
delIds = ids.value;
|
||||||
}
|
}
|
||||||
ElMessageBox.confirm(`是否确认删除编号为${delIds.join(",")}的数据项?`)
|
ElMessageBox.confirm(`是否确认删除编号为${delIds.join(",")}的数据项?`)
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
await deleteAgent(delIds);
|
await deleteAgent(delIds);
|
||||||
getList();
|
getList();
|
||||||
ElMessage.success("删除成功");
|
ElMessage.success("删除成功");
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleViewTechDemand = (id) => {
|
||||||
|
router.push({
|
||||||
|
path: "/agent/serving-tech-demand",
|
||||||
|
query: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
getList();
|
getList();
|
||||||
</script>
|
</script>
|
||||||
|
85
src/views/dataList/agent/serving-tech-demand.vue
Normal file
85
src/views/dataList/agent/serving-tech-demand.vue
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<script setup>
|
||||||
|
import {reactive, ref, toRefs} from "vue";
|
||||||
|
import {technologyDemandList} from "@/api/dataList/technology-demand";
|
||||||
|
import {useRoute} from "vue-router";
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
const total = ref(0)
|
||||||
|
const data = reactive({
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
brokerId: undefined
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const {queryParams} = toRefs(data)
|
||||||
|
|
||||||
|
if (route.query.id) {
|
||||||
|
queryParams.value.brokerId = route.query.id
|
||||||
|
}
|
||||||
|
|
||||||
|
const dataList = ref([])
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
technologyDemandList(queryParams.value).then(resp => {
|
||||||
|
dataList.value = resp.rows
|
||||||
|
total.value = resp.total
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-table :data="dataList">
|
||||||
|
<el-table-column align="center" label="编号" prop="id" width="80"></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="需求名称"
|
||||||
|
prop="title"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="所属领域"
|
||||||
|
prop="industryStr"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="联系人"
|
||||||
|
prop="name"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="经纪人"
|
||||||
|
prop="brokerName"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="手机"
|
||||||
|
prop="mobile"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="发布时间"
|
||||||
|
prop="createTime"
|
||||||
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="截止日期"
|
||||||
|
prop="deadline"
|
||||||
|
></el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
:total="total"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
@ -136,6 +136,13 @@
|
|||||||
@click="openResetPassword(row.id)"
|
@click="openResetPassword(row.id)"
|
||||||
>重置密码
|
>重置密码
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
icon="edit"
|
||||||
|
size="small"
|
||||||
|
type="text"
|
||||||
|
@click="goToDetail(row.id)"
|
||||||
|
>专家详情
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -296,6 +303,7 @@ import {ElLoading, ElMessage, ElMessageBox} from "element-plus";
|
|||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import request from "@/utils/request";
|
import request from "@/utils/request";
|
||||||
import {educationOptions} from "@/utils/parameter";
|
import {educationOptions} from "@/utils/parameter";
|
||||||
|
import {getConfigKey} from "@/api/system/config";
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
// const siteList = ref([]);
|
// const siteList = ref([]);
|
||||||
@ -376,9 +384,15 @@ const openResetPassword = async (id) => {
|
|||||||
resetPasswordForm.id = userId;
|
resetPasswordForm.id = userId;
|
||||||
showResetPassword.value = true;
|
showResetPassword.value = true;
|
||||||
} else {
|
} else {
|
||||||
ElMessageBox.alert(`尚未分配账号,请先分配账号`, "尚未分配账号");
|
void ElMessageBox.alert(`尚未分配账号,请先分配账号`, "尚未分配账号");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const goToDetail = (id) => {
|
||||||
|
getConfigKey("website.link").then(resp => {
|
||||||
|
const websiteLink = resp.msg
|
||||||
|
open(`${websiteLink}/searchList/expert/detail/${id}`, "_blank")
|
||||||
|
})
|
||||||
|
}
|
||||||
const resetForm = () => {
|
const resetForm = () => {
|
||||||
if (resetPasswordFormRef.value) {
|
if (resetPasswordFormRef.value) {
|
||||||
resetPasswordFormRef.value.resetFields();
|
resetPasswordFormRef.value.resetFields();
|
||||||
|
@ -1,17 +1,25 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {reactive, ref, toRefs} from "vue";
|
import {reactive, ref, toRefs} from "vue";
|
||||||
import {technologyProjectList} from "@/api/dataList/technology-project";
|
import modal from '@/plugins/modal'
|
||||||
|
import {
|
||||||
|
technologyProjectDelete,
|
||||||
|
technologyProjectDetail,
|
||||||
|
technologyProjectList
|
||||||
|
} from "@/api/dataList/technology-project";
|
||||||
import Pagination from "@/components/Pagination/index.vue";
|
import Pagination from "@/components/Pagination/index.vue";
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10
|
pageSize: 10
|
||||||
}
|
},
|
||||||
|
form: {}
|
||||||
})
|
})
|
||||||
const {queryParams} = toRefs(data)
|
const {queryParams, form} = toRefs(data)
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
const total = ref(0)
|
const total = ref(0)
|
||||||
|
const title = ref("科研项目详情")
|
||||||
|
const showEditDialog = ref(false)
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
technologyProjectList(queryParams.value).then(resp => {
|
technologyProjectList(queryParams.value).then(resp => {
|
||||||
dataList.value = resp.rows
|
dataList.value = resp.rows
|
||||||
@ -29,6 +37,22 @@ const resetQuery = () => {
|
|||||||
}
|
}
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleDetail = (id) => {
|
||||||
|
technologyProjectDetail(id).then(resp => {
|
||||||
|
form.value = resp.data
|
||||||
|
showEditDialog.value = true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleDelete = (id) => {
|
||||||
|
modal.confirm("是否确认删除").then(() => {
|
||||||
|
technologyProjectDelete([id]).then(() => {
|
||||||
|
modal.msgSuccess("删除成功")
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
getList()
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -68,6 +92,12 @@ getList()
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="课题负责人" prop="director"/>
|
<el-table-column label="课题负责人" prop="director"/>
|
||||||
<el-table-column label="发布时间" prop="createTime"/>
|
<el-table-column label="发布时间" prop="createTime"/>
|
||||||
|
<el-table-column label="操作" width="120">
|
||||||
|
<template #default="{row}">
|
||||||
|
<el-button size="small" icon="view" type="text" @click="handleDetail(row.id)">详情</el-button>
|
||||||
|
<el-button size="small" icon="delete" type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total > 0"
|
v-show="total > 0"
|
||||||
@ -76,6 +106,133 @@ getList()
|
|||||||
v-model:limit="queryParams.pageSize"
|
v-model:limit="queryParams.pageSize"
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
v-model="showEditDialog"
|
||||||
|
width="820px"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
disabled
|
||||||
|
ref="researchRef"
|
||||||
|
:model="form"
|
||||||
|
label-width="120px"
|
||||||
|
>
|
||||||
|
<el-form-item
|
||||||
|
label="科研项目名称"
|
||||||
|
prop="title"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="form.title"
|
||||||
|
placeholder="请输入科研项目名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="课题角色" prop="role">
|
||||||
|
<el-radio v-model="form.role" label="1"
|
||||||
|
><!--承担单位-->
|
||||||
|
承担单位
|
||||||
|
</el-radio>
|
||||||
|
<el-radio v-model="form.role" label="2"
|
||||||
|
><!--参与单位-->
|
||||||
|
参与单位
|
||||||
|
</el-radio>
|
||||||
|
</el-form-item>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="资助经费" prop="amount">
|
||||||
|
<el-input
|
||||||
|
v-model="form.amount"
|
||||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
|
||||||
|
placeholder="请输入资助经费"
|
||||||
|
>
|
||||||
|
<template #append
|
||||||
|
>万元
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="资助来源" prop="source">
|
||||||
|
<el-input
|
||||||
|
v-model="form.source"
|
||||||
|
placeholder="请输入资助来源"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="开始日期" prop="beginTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.beginTime"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请输入开始日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="结束日期" prop="finishTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.finishTime"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请输入结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="项目类型" prop="kind">
|
||||||
|
<el-input
|
||||||
|
v-model="form.kind"
|
||||||
|
placeholder="请输入项目类型"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="课题负责人" prop="director">
|
||||||
|
<el-input
|
||||||
|
v-model="form.director"
|
||||||
|
placeholder="请输入课题负责人"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<!-- //TODO:添加项目简介字段 -->
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item
|
||||||
|
label="项目简介"
|
||||||
|
prop="introduce"
|
||||||
|
>
|
||||||
|
<!-- <WangEditor-->
|
||||||
|
<!-- v-model="form.introduce"-->
|
||||||
|
<!-- width="100%"-->
|
||||||
|
<!-- min-height="150px"-->
|
||||||
|
<!-- @blur="researchRef.validateField(`introduce`)"-->
|
||||||
|
<!-- ></WangEditor>-->
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
v-model="form.introduce"
|
||||||
|
placeholder="请输入项目简介"
|
||||||
|
:autosize="{ minRows: 8, maxRows: 16 }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="showEditDialog=false">关闭</el-button>
|
||||||
|
<!-- <el-button type="primary" @click="submitForm"-->
|
||||||
|
<!-- >{{ t("admin.common.confirm") }}-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- <el-button @click="cancel">{{ t("admin.common.cancel") }}</el-button>-->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ const data = reactive({
|
|||||||
form: {},
|
form: {},
|
||||||
rules: {
|
rules: {
|
||||||
title: [{required: true, message: "案例标题不能为空", trigger: "blur"}],
|
title: [{required: true, message: "案例标题不能为空", trigger: "blur"}],
|
||||||
description: [{required: true, message: "描述不能为空", trigger: "blur"}],
|
// description: [{required: true, message: "描述不能为空", trigger: "blur"}],
|
||||||
image: [
|
image: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
|
Reference in New Issue
Block a user