已合作企业

This commit is contained in:
熊丽君
2022-03-09 11:55:10 +08:00
parent 2c38b5e8df
commit 95552752e9
7 changed files with 264 additions and 122 deletions

View File

@ -5,7 +5,7 @@ VITE_APP_TITLE = pro管理系统
VITE_APP_ENV = 'production' VITE_APP_ENV = 'production'
# xxx管理系统/生产环境 # xxx管理系统/生产环境
VITE_APP_BASE_API = '/api' VITE_APP_BASE_API = '/web/api'
# 是否在打包时开启压缩,支持 gzip 和 brotli # 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip,brotli VITE_BUILD_COMPRESS = gzip,brotli

View File

@ -1,54 +1,82 @@
import request from '@/utils/request'; import request from '@/utils/request';
// 专家 - 需求 // 专家 - 服务需求
export function demand(data) { export function demand(data) {
return request({ return request({
url: '/enterprise/v1/technology/demand', url: '/enterprise/v1/service/demand',
method:'post', method:'post',
data data
}); });
} }
// 专家 - 需求 -- 添加 // 专家 - 服务需求 -- 添加
export function demandAdd(data) { export function demandAdd(data) {
return request({ return request({
url: '/enterprise/v1/technology/demand/add', url: '/enterprise/v1/service/demand/add',
method:'post', method:'post',
data data
}); });
} }
// 专家 - 需求 -- 修改 // 专家 - 服务需求 -- 修改
export function demandEdit(data) { export function demandEdit(data) {
return request({ return request({
url: '/enterprise/v1/technology/demand/edit', url: '/enterprise/v1/service/demand/edit',
method:'post', method:'post',
data data
}); });
} }
// 专家 - 需求 -- 详情 // 专家 - 服务需求 -- 详情
export function demandDetail(data) { export function demandDetail(data) {
return request({ return request({
url: '/enterprise/v1/technology/demand/detail', url: '/enterprise/v1/service/demand/detail',
method:'post', method:'post',
data data
}); });
} }
// 专家 - 需求 -- 删除 // 专家 - 服务需求 -- 删除
export function demandDelete(data) { export function demandDelete(data) {
return request({ return request({
url: '/enterprise/v1/technology/demand/delete', url: '/enterprise/v1/service/demand/delete',
method:'post', method:'post',
data data
}); });
} }
// ------------------------------------------------------ // ------------------------------------------------------
// 专家 - 合作 // 专家 - 合作/想合作 1/2
export function expertCooperate(data) { export function enterprise(data) {
return request({ return request({
url: '', url: '/enterprise/v1/manage/enterprise',
method:'post', method:'post',
data data
}); });
} }
// 专家 - 已合作/想合作 -- 新增
export function enterpriseAdd(data) {
return request({
url: '/enterprise/v1/manage/enterprise/add',
method:'post',
data
});
}
// 专家 - 已合作/想合作 -- 修改
export function enterpriseEdit(data) {
return request({
url: '/enterprise/v1/manage/enterprise/edit',
method:'post',
data
});
}
// 专家 - 已合作/想合作 -- 删除
export function enterpriseDelete(data) {
return request({
url: '/enterprise/v1/manage/enterprise/delete',
method:'post',
data
});
}
// 专家 - 合作详情 // 专家 - 合作详情
export function cooperateDetail(data) { export function cooperateDetail(data) {
return request({ return request({

View File

@ -41,6 +41,14 @@ export function achievementDelete(data) {
}); });
} }
// ----------------------------------------------------------- // -----------------------------------------------------------
// 专家 - 专利 -- 下拉
export function patentSelect(data) {
return request({
url: '/enterprise/v1/technology/patent/select',
method:'post',
data
});
}
// 专家 - 专利 // 专家 - 专利
export function expertPatent(data) { export function expertPatent(data) {
return request({ return request({
@ -83,6 +91,14 @@ export function patentDelete(data) {
}); });
} }
// ----------------------------------------------------------- // -----------------------------------------------------------
// 专家 - 论文 -- 下拉
export function paperSelect(data) {
return request({
url: '/enterprise/v1/technology/paper/select',
method:'post',
data
});
}
// 专家 - 论文 // 专家 - 论文
export function expertPaper(data) { export function expertPaper(data) {
return request({ return request({

View File

@ -15,21 +15,31 @@
<!-- 表格数据 --> <!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList"> <el-table v-loading="loading" :data="dataList">
<el-table-column label="数据编号" prop="researchId" /> <el-table-column label="数据编号" prop="id" width="150" />
<el-table-column <el-table-column
label="合作企业名称" label="合作企业名称"
prop="researchName" align="center"
:show-overflow-tooltip="true" prop="name"
show-overflow-tooltip
width="200"
/> />
<el-table-column <el-table-column label="关联论文" align="center" prop="paper_title">
label="关联论文2"
prop="roleKey"
:show-overflow-tooltip="true"
/>
<el-table-column label="关联论文1" prop="roleSort" />
<el-table-column label="创建日期" align="center" prop="createTime">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <div v-for="(item, index) in scope.row.paper_title" :key="index">
<div class="ellipsis" v-if="index <= 2">{{ item }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="关联专利" align="center" prop="patent_title">
<template #default="scope">
<div v-for="(item, index) in scope.row.patent_title" :key="index">
<div class="ellipsis text-left" v-if="index <= 2">{{ item }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center" prop="created_at">
<template #default="scope">
<span>{{ parseTime(scope.row.created_at) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -65,41 +75,67 @@
/> />
<!-- 添加或修改数据配置对话框 --> <!-- 添加或修改数据配置对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-dialog
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px"> :title="title"
<el-form-item label="企业名称:" prop="researchName"> v-model="open"
<el-input v-model="form.researchName" placeholder="请输入企业名称" /> width="500px"
:close-on-click-modal="false"
append-to-body
>
<el-form
ref="alreadyRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form-item label="企业名称:" prop="name">
<el-input v-model="form.name" placeholder="请输入企业名称" />
</el-form-item> </el-form-item>
<el-form-item label="关联论文:" prop="projectType"> <el-form-item label="关联论文:" prop="papers">
<el-select <el-select
ref="selectDom"
style="width: 100%" style="width: 100%"
v-model="form.projectType" v-model="form.papers"
value-key="id"
multiple multiple
filterable
remote
reserve-keyword
:remote-method="paperMethod"
:loading="paperSelectLoading"
placeholder="请选择关联论文" placeholder="请选择关联论文"
> >
<!-- <el-option <el-option
v-for="item in options" style="max-width: 360px"
:key="item.value" v-for="item in paperOptions"
:label="item.label" :key="item.id"
:value="item.value" :label="item.title"
> :value="item"
</el-option> --> >
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="关联专利:" prop="projectLeader"> <el-form-item label="关联专利:" prop="patents">
<el-select <el-select
style="width: 100%" style="width: 100%"
v-model="form.projectLeader" v-model="form.patents"
value-key="id"
multiple multiple
filterable
remote
reserve-keyword
:remote-method="patentMethod"
:loading="patentSelectLoading"
placeholder="请选择关联专利" placeholder="请选择关联专利"
> >
<!-- <el-option <el-option
v-for="item in options" style="max-width: 360px"
:key="item.value" v-for="item in patentOptions"
:label="item.label" :key="item.id"
:value="item.value" :label="item.title"
> :value="item"
</el-option> --> >
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -114,9 +150,14 @@
</template> </template>
<script setup> <script setup>
import { expertCooperate } from "@/api/admin/expert/demand"; import {
enterprise,
import { addRole, delRole, updateRole } from "@/api/system/role"; enterpriseAdd,
enterpriseDelete,
enterpriseEdit,
} from "@/api/admin/expert/demand";
// 专利,论文
import { patentSelect, paperSelect } from "@/api/admin/expert/technology";
const router = useRouter(); const router = useRouter();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
@ -133,13 +174,11 @@ const data = reactive({
queryParams: { queryParams: {
page_num: 1, page_num: 1,
page_size: 10, page_size: 10,
researchName: undefined, mode: 1,
}, },
rules: { rules: {
researchName: [ name: [{ required: true, message: "企业名称不能为空", trigger: "blur" }],
{ required: true, message: "企业名称不能为空", trigger: "blur" }, papers: [
],
projectType: [
{ {
type: "array", type: "array",
required: true, required: true,
@ -147,7 +186,7 @@ const data = reactive({
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
], ],
projectLeader: [ patents: [
{ {
type: "array", type: "array",
required: true, required: true,
@ -157,20 +196,48 @@ const data = reactive({
], ],
}, },
}); });
const { queryParams, form, rules } = toRefs(data); const { queryParams, form, rules } = toRefs(data);
// 论文
const paperOptions = ref([]);
const paperSelectLoading = ref(false);
const paperMethod = (title) => {
if (title) {
paperSelectLoading.value = true;
paperSelect({ title }).then((res) => {
paperSelectLoading.value = false;
paperOptions.value = res.data;
});
} else {
paperOptions.value = [];
}
};
// 专利
const patentOptions = ref([]);
const patentSelectLoading = ref(false);
const patentMethod = (title) => {
if (title) {
patentSelectLoading.value = true;
patentSelect({ title }).then((res) => {
patentSelectLoading.value = false;
patentOptions.value = res.data;
});
} else {
patentOptions.value = [];
}
};
/** 查询数据列表 */ /** 查询数据列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
dataList.value = [1]; enterprise(queryParams.value).then((response) => {
total.value = 15; response.data.data.map((item) => {
loading.value = false; item.paper_title = item.paper_title.split("&&");
// expertCooperate(queryParams.value).then((response) => { item.patent_title = item.patent_title.split("&&");
// dataList.value = response.data.data; });
// total.value = response.data.count; dataList.value = response.data.data;
// loading.value = false; total.value = response.data.count;
// }); loading.value = false;
});
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
function handleQuery() { function handleQuery() {
@ -187,7 +254,7 @@ function handleDelete(row) {
proxy.$modal proxy.$modal
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?') .confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
.then(function () { .then(function () {
return delRole(researchIds); return enterpriseDelete({ id: row.id });
}) })
.then(() => { .then(() => {
getList(); getList();
@ -199,12 +266,13 @@ function handleDelete(row) {
/** 重置新增的表单以及其他数据 */ /** 重置新增的表单以及其他数据 */
function reset() { function reset() {
form.value = { form.value = {
researchId: undefined, id: undefined,
researchName: undefined, name: undefined,
projectType: [], mode: 1,
projectLeader: [], papers: [],
patents: [],
}; };
proxy.resetForm("roleRef"); proxy.resetForm("alreadyRef");
} }
/** 添加数据 */ /** 添加数据 */
function handleAdd() { function handleAdd() {
@ -214,29 +282,60 @@ function handleAdd() {
} }
/** 修改数据 */ /** 修改数据 */
function handleUpdate(row) { function handleUpdate(row) {
reset(); // reset();
form.value = Object.assign({}, row); let formData = Object.assign({}, row);
let papers = [];
let patents = [];
formData.papers.map((item, index) => {
papers.push({
id: item,
title: formData.paper_title[index],
});
});
formData.patents.map((item, index) => {
patents.push({
id: item,
title: formData.patent_title[index],
});
});
paperOptions.value = formData.papers = papers;
patentOptions.value = formData.patents = patents;
form.value = formData;
open.value = true; open.value = true;
title.value = "修改数据"; title.value = "修改数据";
nextTick(() => {
console.log(proxy.$refs["selectDom"]); // .cachedOptions
});
} }
/** 提交按钮 */ /** 提交按钮 */
function submitForm() { function submitForm() {
proxy.$refs["roleRef"].validate((valid) => { proxy.$refs["alreadyRef"].validate((valid) => {
if (valid) { if (valid) {
console.log(form.value); let formData = Object.assign({}, form.value);
// if (form.value.researchId != undefined) { let papers = [];
// updateRole(form.value).then((response) => { let patents = [];
// proxy.$modal.msgSuccess("修改成功"); formData.papers.map((item) => {
// open.value = false; papers.push(item.id);
// getList(); });
// }); formData.patents.map((item) => {
// } else { patents.push(item.id);
// addRole(form.value).then((response) => { });
// proxy.$modal.msgSuccess("新增成功"); formData.papers = papers;
// open.value = false; formData.patents = patents;
// getList(); if (form.value.id != undefined) {
// }); enterpriseEdit(formData).then((response) => {
// } proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
enterpriseAdd(formData).then((response) => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
} }
}); });
} }
@ -247,4 +346,4 @@ function cancel() {
} }
getList(); getList();
</script> </script>

View File

@ -17,9 +17,9 @@
size="mini" size="mini"
@change="handleQuery" @change="handleQuery"
> >
<el-radio-button label="1">待受理</el-radio-button> <el-radio-button :label="1">待受理</el-radio-button>
<el-radio-button label="2">已受理</el-radio-button> <el-radio-button :label="2">已受理</el-radio-button>
<el-radio-button label="3">已结束</el-radio-button> <el-radio-button :label="3">已结束</el-radio-button>
</el-radio-group> </el-radio-group>
<el-table v-loading="loading" :data="postList" style="margin-top: 20px"> <el-table v-loading="loading" :data="postList" style="margin-top: 20px">
@ -103,10 +103,9 @@ const dateRange = ref([]);
const data = reactive({ const data = reactive({
form: {}, form: {},
queryParams: { queryParams: {
pageNum: 1, page_num: 1,
pageSize: 10, page_size: 10,
postCode: undefined, type: 1,
type: "1",
}, },
rules: { rules: {
name: [{ required: true, message: "公司名称不能为空", trigger: "blur" }], name: [{ required: true, message: "公司名称不能为空", trigger: "blur" }],
@ -137,18 +136,13 @@ const { queryParams, form, rules } = toRefs(data);
/** 查询列表 */ /** 查询列表 */
function getList() { function getList() {
// console.log(proxy.addDateRange(queryParams.value, dateRange.value)); loading.value = true;
postList.value = [1]; demand(queryParams.value).then((response) => {
total.value = 15; console.log(response);
loading.value = false; // postList.value = response.data.data;
// loading.value = true; // total.value = response.data.count;
// demand(proxy.addDateRange(queryParams.value, dateRange.value)).then( loading.value = false;
// (response) => { });
// postList.value = response.rows;
// total.value = response.total;
// loading.value = false;
// }
// );
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
function handleQuery() { function handleQuery() {

View File

@ -58,20 +58,24 @@
<div>快捷功能</div> <div>快捷功能</div>
</template> </template>
<div class="card_body"> <div class="card_body">
<div class="card_item"> <router-link to="/technology/release">
<img <div class="card_item">
style="width: 70px; height: 70px; border-radius: 50%" <img
src="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg" style="width: 70px; height: 70px; border-radius: 50%"
/> src="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg"
<div>发布成果</div> />
</div> <div>发布成果</div>
<div class="card_item"> </div>
<img </router-link>
style="width: 70px; height: 70px; border-radius: 50%" <router-link to="/demand/release">
src="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg" <div class="card_item">
/> <img
<div>发布需求</div> style="width: 70px; height: 70px; border-radius: 50%"
</div> src="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg"
/>
<div>发布需求</div>
</div>
</router-link>
</div> </div>
</el-card> </el-card>

View File

@ -27,6 +27,7 @@ export default defineConfig(({ mode, command }) => {
'/api': { '/api': {
// target: 'http://localhost:8080', // target: 'http://localhost:8080',
target: 'http://192.168.0.149:8000', target: 'http://192.168.0.149:8000',
// target: 'http://101.34.131.16:8000',
// target: 'http://zky.server.ipeace.org.cn', // target: 'http://zky.server.ipeace.org.cn',
changeOrigin: true, changeOrigin: true,
rewrite: (p) => p.replace(/^\/api/, '/api') rewrite: (p) => p.replace(/^\/api/, '/api')