需求管理
This commit is contained in:
@ -383,6 +383,19 @@ export const expertRoutes=[
|
|||||||
name: 'Results',
|
name: 'Results',
|
||||||
meta: { title: '匹配结果', icon: 'dashboard' }
|
meta: { title: '匹配结果', icon: 'dashboard' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'patent',
|
||||||
|
component: () => import('@/views/admin/expert/technology/patent'),
|
||||||
|
name: 'patent',
|
||||||
|
meta: { title: '专利列表', icon: 'list' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'claimPatent',
|
||||||
|
component: () => import('@/views/admin/expert/technology/claimPatent'),
|
||||||
|
hidden: true,
|
||||||
|
name: 'claimPatent',
|
||||||
|
meta: { title: '认领专利', icon: 'list' }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'paper',
|
path: 'paper',
|
||||||
component: () => import('@/views/admin/expert/technology/paper'),
|
component: () => import('@/views/admin/expert/technology/paper'),
|
||||||
@ -397,6 +410,40 @@ export const expertRoutes=[
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/demand',
|
||||||
|
component: Layout,
|
||||||
|
meta: { title: '需求管理', icon: 'dashboard' },
|
||||||
|
alwaysShow:true,
|
||||||
|
redirect: '/demand/serviceDemand',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'serviceDemand',
|
||||||
|
component: () => import('@/views/admin/expert/demand/serviceDemand'),
|
||||||
|
name: 'serviceDemand',
|
||||||
|
meta: { title: '服务需求', icon: 'list' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'release',
|
||||||
|
component: () => import('@/views/admin/expert/demand/release'),
|
||||||
|
hidden: true,
|
||||||
|
name: 'release',
|
||||||
|
meta: { title: '发布需求', icon: 'list' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'already',
|
||||||
|
component: () => import('@/views/admin/expert/demand/already'),
|
||||||
|
name: 'already',
|
||||||
|
meta: { title: '已合作企业', icon: 'list' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'think',
|
||||||
|
component: () => import('@/views/admin/expert/demand/think'),
|
||||||
|
name: 'think',
|
||||||
|
meta: { title: '想合作企业', icon: 'list' }
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export const researchRoutes=[
|
export const researchRoutes=[
|
||||||
|
@ -41,20 +41,21 @@ const permission = {
|
|||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
let data = []
|
let data = []
|
||||||
// localStorage.setItem('select_identity',role) // 测试
|
// localStorage.setItem('select_identity',role) // 测试
|
||||||
if (role == 1) {
|
// if (role == 1) {
|
||||||
// 企业
|
// // 企业
|
||||||
data = enterpriseRoutes
|
// data = enterpriseRoutes
|
||||||
} else if (role == 2) {
|
// } else if (role == 2) {
|
||||||
// 专家
|
// // 专家
|
||||||
data = expertRoutes
|
// data = expertRoutes
|
||||||
} else if (role == 4) {
|
// } else if (role == 4) {
|
||||||
// 研究机构
|
// // 研究机构
|
||||||
data = researchRoutes
|
// data = researchRoutes
|
||||||
} else if (role == 8) {
|
// } else if (role == 8) {
|
||||||
// 实验室
|
// // 实验室
|
||||||
} else if (role == 16) {
|
// } else if (role == 16) {
|
||||||
// 科技经纪人
|
// // 科技经纪人
|
||||||
}
|
// }
|
||||||
|
data = expertRoutes
|
||||||
data.map(item=>{
|
data.map(item=>{
|
||||||
router.addRoute(item)
|
router.addRoute(item)
|
||||||
})
|
})
|
||||||
|
296
src/views/admin/expert/demand/already.vue
Normal file
296
src/views/admin/expert/demand/already.vue
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- <el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryRef"
|
||||||
|
v-show="showSearch"
|
||||||
|
:inline="true"
|
||||||
|
@submit.prevent
|
||||||
|
>
|
||||||
|
<el-form-item label="企业名称" prop="researchName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.researchName"
|
||||||
|
placeholder="请输入企业名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form> -->
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<!-- <right-toolbar
|
||||||
|
v-model:showSearch="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar> -->
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 表格数据 -->
|
||||||
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
<el-table-column label="数据编号" prop="researchId" />
|
||||||
|
<el-table-column
|
||||||
|
label="合作企业名称"
|
||||||
|
prop="researchName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
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">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改数据配置对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
|
||||||
|
<el-form-item label="企业名称:" prop="researchName">
|
||||||
|
<el-input v-model="form.researchName" placeholder="请输入企业名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="关联论文:" prop="projectType">
|
||||||
|
<el-select
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="form.projectType"
|
||||||
|
multiple
|
||||||
|
placeholder="请选择关联论文"
|
||||||
|
>
|
||||||
|
<!-- <el-option
|
||||||
|
v-for="item in options"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="关联专利:" prop="projectLeader">
|
||||||
|
<el-select
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="form.projectLeader"
|
||||||
|
multiple
|
||||||
|
placeholder="请选择关联专利"
|
||||||
|
>
|
||||||
|
<!-- <el-option
|
||||||
|
v-for="item in options"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
addRole,
|
||||||
|
changeRoleStatus,
|
||||||
|
dataScope,
|
||||||
|
delRole,
|
||||||
|
getRole,
|
||||||
|
listRole,
|
||||||
|
updateRole,
|
||||||
|
} from "@/api/system/role";
|
||||||
|
import {
|
||||||
|
roleMenuTreeselect,
|
||||||
|
treeselect as menuTreeselect,
|
||||||
|
} from "@/api/system/menu";
|
||||||
|
import {
|
||||||
|
treeselect as deptTreeselect,
|
||||||
|
roleDeptTreeselect,
|
||||||
|
} from "@/api/system/dept";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dataList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
researchName: undefined,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
researchName: [
|
||||||
|
{ required: true, message: "企业名称不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
projectType: [
|
||||||
|
{
|
||||||
|
type: "array",
|
||||||
|
required: true,
|
||||||
|
message: "关联论文不能为空",
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
projectLeader: [
|
||||||
|
{
|
||||||
|
type: "array",
|
||||||
|
required: true,
|
||||||
|
message: "关联专利不能为空",
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询数据列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
dataList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// listRole(queryParams.value).then(
|
||||||
|
// (response) => {
|
||||||
|
// dataList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delRole(researchIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置新增的表单以及其他数据 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
researchId: undefined,
|
||||||
|
researchName: undefined,
|
||||||
|
projectType: [],
|
||||||
|
projectLeader: [],
|
||||||
|
};
|
||||||
|
proxy.resetForm("roleRef");
|
||||||
|
}
|
||||||
|
/** 添加数据 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加数据";
|
||||||
|
}
|
||||||
|
/** 修改数据 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
form.value = Object.assign({}, row);
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改数据";
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
proxy.$refs["roleRef"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log(form.value);
|
||||||
|
// if (form.value.researchId != undefined) {
|
||||||
|
// updateRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// addRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
</script>
|
191
src/views/admin/expert/demand/release.vue
Normal file
191
src/views/admin/expert/demand/release.vue
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-card shadow="always" style="width: 55%; margin: 0 auto">
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="rules"
|
||||||
|
:label-width="labelWidth + 'px'"
|
||||||
|
>
|
||||||
|
<p><b>基本信息</b></p>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="需求名称:" prop="name">
|
||||||
|
<el-input v-model="formData.name"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="需求类别:">
|
||||||
|
<el-checkbox-group v-model="formData.check">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item in checkList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.id"
|
||||||
|
>{{ item.name }}</el-checkbox
|
||||||
|
>
|
||||||
|
<!-- <el-checkbox label="0" @change="handleCheck">其他</el-checkbox> -->
|
||||||
|
</el-checkbox-group>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-input
|
||||||
|
v-model="checkInput"
|
||||||
|
placeholder="请输入需求类别"
|
||||||
|
></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary" @click="addCheck">添加</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="需求描述:" prop="add">
|
||||||
|
<Editor v-model="formData.add" :minHeight="150" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<CityOptions
|
||||||
|
v-model="formData"
|
||||||
|
:labelWidth="labelWidth"
|
||||||
|
ref="cityForm"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="需求联系人:" prop="bankAccount">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.bankAccount"
|
||||||
|
placeholder="请输入需求联系人"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="联系人手机号:" prop="bankPhone">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.bankPhone"
|
||||||
|
placeholder="请输入联系人手机号"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="需求提交人:" prop="username">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.username"
|
||||||
|
placeholder="自动获取"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="手机号:" prop="userPhone">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.userPhone"
|
||||||
|
placeholder="自动获取"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||||
|
<el-button @click="$router.go(-1)">取消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { expert } from "@/api/identity/index";
|
||||||
|
import CityOptions from "@/views/identity/components/CityOptions";
|
||||||
|
const data = reactive({
|
||||||
|
formData: {
|
||||||
|
check: [],
|
||||||
|
},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
postCode: undefined,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [{ required: true, message: "需求名称不能为空", trigger: "blur" }],
|
||||||
|
add: [{ required: true, message: "需求描述不能为空", trigger: "blur" }],
|
||||||
|
bankAccount: [
|
||||||
|
{ required: true, message: "开户行账号不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
bankPhone: [
|
||||||
|
{ required: true, message: "开户行电话不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
username: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
|
||||||
|
userPhone: [
|
||||||
|
{ required: true, message: "联系人电话不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, formData, rules } = toRefs(data);
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const labelWidth = 140;
|
||||||
|
// const isContainOther = ref(false);
|
||||||
|
const checkList = reactive([
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: "成果推广",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: "关键成果解决",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "对接专家院士",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
name: "上市辅导",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const checkInput = ref("");
|
||||||
|
function submitForm() {
|
||||||
|
proxy.$refs["formRef"].validate((valid) => {
|
||||||
|
const cityForm = proxy.$refs.cityForm.submitForm(); // 城市
|
||||||
|
if (valid && cityForm) {
|
||||||
|
console.log(formData.value);
|
||||||
|
if (form.value.id != undefined) {
|
||||||
|
// updatePost(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
|
// proxy.$router.go(-1);
|
||||||
|
// });
|
||||||
|
} else {
|
||||||
|
// addPost(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
|
// proxy.$router.go(-1);
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function addCheck() {
|
||||||
|
if (!checkInput.value.trim().length) return proxy.$modal.msgError("请输入");
|
||||||
|
const flag = checkList.some((item) => {
|
||||||
|
return item.name.trim() == checkInput.value.trim();
|
||||||
|
});
|
||||||
|
if (!flag) {
|
||||||
|
checkList.push({
|
||||||
|
id: checkList.length + 1,
|
||||||
|
name: checkInput.value,
|
||||||
|
});
|
||||||
|
checkInput.value = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
181
src/views/admin/expert/demand/serviceDemand.vue
Normal file
181
src/views/admin/expert/demand/serviceDemand.vue
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<router-link to="./release">
|
||||||
|
<el-button type="primary" size="mini">发布需求</el-button>
|
||||||
|
</router-link>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
v-model:showSearch="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-radio-group
|
||||||
|
v-model="queryParams.type"
|
||||||
|
size="mini"
|
||||||
|
@change="handleQuery"
|
||||||
|
>
|
||||||
|
<el-radio-button label="1">待受理</el-radio-button>
|
||||||
|
<el-radio-button label="2">已受理</el-radio-button>
|
||||||
|
<el-radio-button label="3">已结束</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="postList" style="margin-top: 20px">
|
||||||
|
<el-table-column label="需求名称" align="center" prop="postCode" />
|
||||||
|
<el-table-column label="需求类别" align="center" prop="postSort" />
|
||||||
|
<el-table-column label="状态" align="center" prop="status" />
|
||||||
|
<el-table-column label="联系人" align="center" prop="status" />
|
||||||
|
<el-table-column label="手机号" align="center" prop="status" />
|
||||||
|
<el-table-column
|
||||||
|
label="发布时间"
|
||||||
|
align="center"
|
||||||
|
prop="createTime"
|
||||||
|
width="180"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="queryParams.type == 3"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row.id)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-if="queryParams.type == 1"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Close"
|
||||||
|
@click="handleDelete(scope.row.id)"
|
||||||
|
>取消发布</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-if="queryParams.type != 3"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="View"
|
||||||
|
@click="handleEdit(scope.row.id)"
|
||||||
|
>查看</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="Post">
|
||||||
|
import {
|
||||||
|
listPost,
|
||||||
|
addPost,
|
||||||
|
delPost,
|
||||||
|
getPost,
|
||||||
|
updatePost,
|
||||||
|
} from "@/api/system/post";
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
const postList = ref([]);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const dateRange = ref([]);
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
postCode: undefined,
|
||||||
|
type: "1",
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [{ required: true, message: "公司名称不能为空", trigger: "blur" }],
|
||||||
|
dutyParagraph: [
|
||||||
|
{ required: true, message: "公司税号不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
bank: [{ required: true, message: "开户行不能为空", trigger: "blur" }],
|
||||||
|
bankAccount: [
|
||||||
|
{ required: true, message: "开户行账号不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
bankPhone: [
|
||||||
|
{ required: true, message: "开户行电话不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
email: [{ required: true, message: "电子邮箱不能为空", trigger: "blur" }],
|
||||||
|
phone: [{ required: true, message: "联系电话不能为空", trigger: "blur" }],
|
||||||
|
address: [{ required: true, message: "地址不能为空", trigger: "blur" }],
|
||||||
|
username: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
|
||||||
|
userPhone: [
|
||||||
|
{ required: true, message: "联系人电话不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
userAddress: [
|
||||||
|
{ required: true, message: "邮寄地址不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询列表 */
|
||||||
|
function getList() {
|
||||||
|
// console.log(proxy.addDateRange(queryParams.value, dateRange.value));
|
||||||
|
postList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// loading.value = true;
|
||||||
|
// listPost(proxy.addDateRange(queryParams.value, dateRange.value)).then(
|
||||||
|
// (response) => {
|
||||||
|
// postList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
dateRange.value = [];
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(id) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除订单号为"' + id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delPost(postIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
function handleEdit(id) {
|
||||||
|
router.push({ path: "./release", query: { id } });
|
||||||
|
}
|
||||||
|
getList();
|
||||||
|
</script>
|
297
src/views/admin/expert/demand/think.vue
Normal file
297
src/views/admin/expert/demand/think.vue
Normal file
@ -0,0 +1,297 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- <el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryRef"
|
||||||
|
v-show="showSearch"
|
||||||
|
:inline="true"
|
||||||
|
@submit.prevent
|
||||||
|
>
|
||||||
|
<el-form-item label="企业名称" prop="researchName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.researchName"
|
||||||
|
placeholder="请输入企业名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form> -->
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<!-- <right-toolbar
|
||||||
|
v-model:showSearch="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar> -->
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 表格数据 -->
|
||||||
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
<el-table-column label="数据编号" prop="researchId" />
|
||||||
|
<el-table-column
|
||||||
|
label="企业名称"
|
||||||
|
prop="researchName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="所在地"
|
||||||
|
prop="roleKey"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column label="所属领域" prop="roleSort" />
|
||||||
|
<el-table-column label="联系人" prop="username" />
|
||||||
|
<el-table-column label="联系电话" prop="phone" />
|
||||||
|
<el-table-column label="创建日期" align="center" prop="createTime">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改数据配置对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="750px" append-to-body>
|
||||||
|
<el-form ref="roleRef" :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 label="联系人:">
|
||||||
|
<el-input v-model="form.username" placeholder="请输入专家姓名" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="联系电话:">
|
||||||
|
<el-input v-model="form.phone" placeholder="默认专家电话" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<div class="hide_required">
|
||||||
|
<CityOptions v-model="form" :labelWidth="100" :is_required="false" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hide_required">
|
||||||
|
<FieldSingle v-model="form" :labelWidth="100" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-form-item label="合作模式:" prop="mode">
|
||||||
|
<el-input v-model="form.mode" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="合作内容:" prop="describe">
|
||||||
|
<el-input
|
||||||
|
v-model="form.describe"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 4, maxRows: 6 }"
|
||||||
|
placeholder="请输入想要合作的需求"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import CityOptions from "@/views/identity/components/CityOptions";
|
||||||
|
import FieldSingle from "@/views/identity/components/FieldSingle";
|
||||||
|
import {
|
||||||
|
addRole,
|
||||||
|
changeRoleStatus,
|
||||||
|
dataScope,
|
||||||
|
delRole,
|
||||||
|
getRole,
|
||||||
|
listRole,
|
||||||
|
updateRole,
|
||||||
|
} from "@/api/system/role";
|
||||||
|
import {
|
||||||
|
roleMenuTreeselect,
|
||||||
|
treeselect as menuTreeselect,
|
||||||
|
} from "@/api/system/menu";
|
||||||
|
import {
|
||||||
|
treeselect as deptTreeselect,
|
||||||
|
roleDeptTreeselect,
|
||||||
|
} from "@/api/system/dept";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dataList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
const formData = reactive({
|
||||||
|
industrys: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
researchName: undefined,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [{ required: true, message: "企业名称不能为空", trigger: "blur" }],
|
||||||
|
mode: [{ required: true, message: "合作模式不能为空", trigger: "blur" }],
|
||||||
|
describe: [
|
||||||
|
{ required: true, message: "合作内容不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询数据列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
dataList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// listRole(queryParams.value).then(
|
||||||
|
// (response) => {
|
||||||
|
// dataList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delRole(researchIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置新增的表单以及其他数据 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
id: undefined,
|
||||||
|
name: undefined,
|
||||||
|
username: undefined,
|
||||||
|
phone: undefined,
|
||||||
|
industrys: [],
|
||||||
|
|
||||||
|
mode: undefined,
|
||||||
|
describe: undefined,
|
||||||
|
};
|
||||||
|
proxy.resetForm("roleRef");
|
||||||
|
}
|
||||||
|
/** 添加数据 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加数据";
|
||||||
|
}
|
||||||
|
/** 修改数据 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
form.value = Object.assign({}, row);
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改数据";
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
proxy.$refs["roleRef"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log(form.value);
|
||||||
|
// if (form.value.researchId != undefined) {
|
||||||
|
// updateRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// addRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.hide_required {
|
||||||
|
::v-deep .el-form-item__label {
|
||||||
|
&::before {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
205
src/views/admin/expert/technology/claimPatent.vue
Normal file
205
src/views/admin/expert/technology/claimPatent.vue
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryRef"
|
||||||
|
v-show="showSearch"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
|
<el-form-item label="专利名称" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入专利名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="申请人" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入申请人"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发明人" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入发明人"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<!-- 表格数据 -->
|
||||||
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
<el-table-column label="数据编号" prop="id" />
|
||||||
|
<el-table-column
|
||||||
|
label="专利名称"
|
||||||
|
prop="title"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="申请号"
|
||||||
|
prop="apply_code"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column label="发明人" prop="inventor" />
|
||||||
|
<el-table-column label="申请(专利权)人" prop="apply_name" />
|
||||||
|
<el-table-column label="申请日期" align="center" prop="apply_at">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.apply_at) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="状态" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag v-if="scope.row.is_bind">已认领</el-tag>
|
||||||
|
<el-tag type="danger" v-else>未认领</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="!scope.row.is_bind"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
@click="handleBind(scope.row.id)"
|
||||||
|
>认领机构</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-else
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleUnbind(scope.row.id)"
|
||||||
|
>取消认领</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
addRole,
|
||||||
|
changeRoleStatus,
|
||||||
|
dataScope,
|
||||||
|
delRole,
|
||||||
|
getRole,
|
||||||
|
listRole,
|
||||||
|
updateRole,
|
||||||
|
} from "@/api/system/role";
|
||||||
|
import {
|
||||||
|
roleMenuTreeselect,
|
||||||
|
treeselect as menuTreeselect,
|
||||||
|
} from "@/api/system/menu";
|
||||||
|
import {
|
||||||
|
treeselect as deptTreeselect,
|
||||||
|
roleDeptTreeselect,
|
||||||
|
} from "@/api/system/dept";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dataList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
roleName: undefined,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询数据列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
dataList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// listRole(queryParams.value).then(
|
||||||
|
// (response) => {
|
||||||
|
// dataList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delRole(roleIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
function handleBind(id) {
|
||||||
|
// expertPatentBind({ id: this.queryParams.id, patent_ids: [id] }).then(
|
||||||
|
// (res) => {
|
||||||
|
// this.$modal.msgSuccess("修改成功");
|
||||||
|
// this.getList();
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
function handleUnbind(id) {
|
||||||
|
// expertPatentUnbind({ id: this.queryParams.id, patent_ids: [id] }).then(
|
||||||
|
// (res) => {
|
||||||
|
// this.$modal.msgSuccess("修改成功");
|
||||||
|
// this.getList();
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
</script>
|
@ -71,7 +71,6 @@
|
|||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="scope.row.roleId !== 1"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="Edit"
|
icon="Edit"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
@ -79,7 +78,6 @@
|
|||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="scope.row.roleId !== 1"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="Delete"
|
icon="Delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
@ -98,22 +96,24 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改数据配置对话框 -->
|
<!-- 添加或修改数据配置对话框 -->
|
||||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
|
||||||
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-form-item label="论文题目" prop="roleName">
|
<el-form-item label="论文题目:" prop="roleName">
|
||||||
<el-input v-model="form.roleName" placeholder="请输入论文题目" />
|
<el-input v-model="form.roleName" placeholder="请输入论文题目" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="刊物" prop="roleName">
|
<el-form-item label="刊物:" prop="roleKey">
|
||||||
<el-input v-model="form.roleName" placeholder="请输入刊物" />
|
<el-input v-model="form.roleKey" placeholder="请输入刊物" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="作者" prop="roleName">
|
<el-form-item label="作者:" prop="author">
|
||||||
<el-input v-model="form.roleName" placeholder="多人员请用 , 隔开" />
|
<el-input v-model="form.author" placeholder="多人员请用 , 隔开" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="出版社" prop="roleName">
|
<el-form-item label="出版日期:" prop="time">
|
||||||
<el-input v-model="form.roleName" placeholder="出版社" />
|
<el-date-picker
|
||||||
</el-form-item>
|
v-model="form.time"
|
||||||
<el-form-item label="关键词" prop="roleName">
|
type="date"
|
||||||
<el-input v-model="form.roleName" placeholder="多人员请用 , 隔开" />
|
value-format="YYYY-MM-DD"
|
||||||
|
placeholder="请选择出版日期"
|
||||||
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<InputBoxAdd
|
<InputBoxAdd
|
||||||
:labelWidth="100"
|
:labelWidth="100"
|
||||||
@ -123,7 +123,7 @@
|
|||||||
fieldKey="keywords"
|
fieldKey="keywords"
|
||||||
ref="keywordsForm"
|
ref="keywordsForm"
|
||||||
/>
|
/>
|
||||||
<el-form-item label="备注">
|
<el-form-item label="摘要:">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.remark"
|
v-model="form.remark"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
@ -170,16 +170,6 @@ const loading = ref(true);
|
|||||||
const showSearch = ref(true);
|
const showSearch = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const dateRange = ref([]);
|
|
||||||
const menuOptions = ref([]);
|
|
||||||
const menuExpand = ref(false);
|
|
||||||
const menuNodeAll = ref(false);
|
|
||||||
const deptExpand = ref(true);
|
|
||||||
const deptNodeAll = ref(false);
|
|
||||||
const deptOptions = ref([]);
|
|
||||||
const openDataScope = ref(false);
|
|
||||||
const menuRef = ref(null);
|
|
||||||
const deptRef = ref(null);
|
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
@ -187,16 +177,19 @@ const data = reactive({
|
|||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
roleName: undefined,
|
roleName: undefined,
|
||||||
roleKey: undefined,
|
|
||||||
status: undefined,
|
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
roleName: [
|
roleName: [
|
||||||
{ required: true, message: "论文题目不能为空", trigger: "blur" },
|
{ required: true, message: "论文题目不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
roleKey: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
|
roleKey: [{ required: true, message: "刊物不能为空", trigger: "blur" }],
|
||||||
roleSort: [
|
author: [{ required: true, message: "作者不能为空", trigger: "blur" }],
|
||||||
{ required: true, message: "数据顺序不能为空", trigger: "blur" },
|
time: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择出版日期",
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -209,7 +202,7 @@ function getList() {
|
|||||||
dataList.value = [1];
|
dataList.value = [1];
|
||||||
total.value = 15;
|
total.value = 15;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
// listRole(proxy.addDateRange(queryParams.value, dateRange.value)).then(
|
// listRole(queryParams.value).then(
|
||||||
// (response) => {
|
// (response) => {
|
||||||
// dataList.value = response.rows;
|
// dataList.value = response.rows;
|
||||||
// total.value = response.total;
|
// total.value = response.total;
|
||||||
@ -224,7 +217,6 @@ function handleQuery() {
|
|||||||
}
|
}
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
function resetQuery() {
|
function resetQuery() {
|
||||||
dateRange.value = [];
|
|
||||||
proxy.resetForm("queryRef");
|
proxy.resetForm("queryRef");
|
||||||
handleQuery();
|
handleQuery();
|
||||||
}
|
}
|
||||||
@ -241,59 +233,16 @@ function handleDelete(row) {
|
|||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
}
|
||||||
/** 导出按钮操作 */
|
|
||||||
function handleExport() {
|
|
||||||
proxy.download(
|
|
||||||
"system/role/export",
|
|
||||||
{
|
|
||||||
...queryParams.value,
|
|
||||||
},
|
|
||||||
`role_${new Date().getTime()}.xlsx`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
/** 数据状态修改 */
|
|
||||||
function handleStatusChange(row) {
|
|
||||||
let text = row.status === "0" ? "启用" : "停用";
|
|
||||||
proxy.$modal
|
|
||||||
.confirm('确认要"' + text + '""' + row.roleName + '"数据吗?')
|
|
||||||
.then(function () {
|
|
||||||
return changeRoleStatus(row.roleId, row.status);
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
proxy.$modal.msgSuccess(text + "成功");
|
|
||||||
})
|
|
||||||
.catch(function () {
|
|
||||||
row.status = row.status === "0" ? "1" : "0";
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 查询菜单树结构 */
|
|
||||||
function getMenuTreeselect() {
|
|
||||||
menuTreeselect().then((response) => {
|
|
||||||
menuOptions.value = response.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 所有部门节点数据 */
|
|
||||||
function getDeptAllCheckedKeys() {
|
|
||||||
// 目前被选中的部门节点
|
|
||||||
let checkedKeys = deptRef.value.getCheckedKeys();
|
|
||||||
// 半选中的部门节点
|
|
||||||
let halfCheckedKeys = deptRef.value.getHalfCheckedKeys();
|
|
||||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
|
||||||
return checkedKeys;
|
|
||||||
}
|
|
||||||
/** 重置新增的表单以及其他数据 */
|
/** 重置新增的表单以及其他数据 */
|
||||||
function reset() {
|
function reset() {
|
||||||
form.value = {
|
form.value = {
|
||||||
roleId: undefined,
|
roleId: undefined,
|
||||||
roleName: undefined,
|
roleName: undefined,
|
||||||
roleKey: undefined,
|
roleKey: undefined,
|
||||||
roleSort: 0,
|
author: undefined,
|
||||||
status: "0",
|
time: undefined,
|
||||||
keywords: [],
|
keywords: [],
|
||||||
menuIds: [],
|
|
||||||
deptIds: [],
|
|
||||||
menuCheckStrictly: true,
|
|
||||||
deptCheckStrictly: true,
|
|
||||||
remark: undefined,
|
remark: undefined,
|
||||||
};
|
};
|
||||||
proxy.resetForm("roleRef");
|
proxy.resetForm("roleRef");
|
||||||
@ -307,97 +256,28 @@ function handleAdd() {
|
|||||||
/** 修改数据 */
|
/** 修改数据 */
|
||||||
function handleUpdate(row) {
|
function handleUpdate(row) {
|
||||||
reset();
|
reset();
|
||||||
const roleId = row.roleId || ids.value;
|
form.value = Object.assign({}, row);
|
||||||
const roleMenu = getRoleMenuTreeselect(roleId);
|
open.value = true;
|
||||||
getRole(roleId).then((response) => {
|
title.value = "修改数据";
|
||||||
form.value = response.data;
|
|
||||||
form.value.roleSort = Number(form.value.roleSort);
|
|
||||||
open.value = true;
|
|
||||||
nextTick(() => {
|
|
||||||
roleMenu.then((res) => {
|
|
||||||
let checkedKeys = res.checkedKeys;
|
|
||||||
checkedKeys.forEach((v) => {
|
|
||||||
nextTick(() => {
|
|
||||||
menuRef.value.setChecked(v, true, false);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
title.value = "修改数据";
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 根据数据ID查询菜单树结构 */
|
|
||||||
function getRoleMenuTreeselect(roleId) {
|
|
||||||
return roleMenuTreeselect(roleId).then((response) => {
|
|
||||||
menuOptions.value = response.menus;
|
|
||||||
return response;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 根据数据ID查询部门树结构 */
|
|
||||||
function getRoleDeptTreeselect(roleId) {
|
|
||||||
return roleDeptTreeselect(roleId).then((response) => {
|
|
||||||
deptOptions.value = response.depts;
|
|
||||||
return response;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 树权限(展开/折叠)*/
|
|
||||||
function handleCheckedTreeExpand(value, type) {
|
|
||||||
if (type == "menu") {
|
|
||||||
let treeList = menuOptions.value;
|
|
||||||
for (let i = 0; i < treeList.length; i++) {
|
|
||||||
menuRef.value.store.nodesMap[treeList[i].id].expanded = value;
|
|
||||||
}
|
|
||||||
} else if (type == "dept") {
|
|
||||||
let treeList = deptOptions.value;
|
|
||||||
for (let i = 0; i < treeList.length; i++) {
|
|
||||||
deptRef.value.store.nodesMap[treeList[i].id].expanded = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/** 树权限(全选/全不选) */
|
|
||||||
function handleCheckedTreeNodeAll(value, type) {
|
|
||||||
if (type == "menu") {
|
|
||||||
menuRef.value.setCheckedNodes(value ? menuOptions.value : []);
|
|
||||||
} else if (type == "dept") {
|
|
||||||
deptRef.value.setCheckedNodes(value ? deptOptions.value : []);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/** 树权限(父子联动) */
|
|
||||||
function handleCheckedTreeConnect(value, type) {
|
|
||||||
if (type == "menu") {
|
|
||||||
form.value.menuCheckStrictly = value ? true : false;
|
|
||||||
} else if (type == "dept") {
|
|
||||||
form.value.deptCheckStrictly = value ? true : false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/** 所有菜单节点数据 */
|
|
||||||
function getMenuAllCheckedKeys() {
|
|
||||||
// 目前被选中的菜单节点
|
|
||||||
let checkedKeys = menuRef.value.getCheckedKeys();
|
|
||||||
// 半选中的菜单节点
|
|
||||||
let halfCheckedKeys = menuRef.value.getHalfCheckedKeys();
|
|
||||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
|
||||||
return checkedKeys;
|
|
||||||
}
|
}
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
proxy.$refs["roleRef"].validate((valid) => {
|
proxy.$refs["roleRef"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.roleId != undefined) {
|
console.log(form.value);
|
||||||
form.value.menuIds = getMenuAllCheckedKeys();
|
// if (form.value.roleId != undefined) {
|
||||||
updateRole(form.value).then((response) => {
|
// updateRole(form.value).then((response) => {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
open.value = false;
|
// open.value = false;
|
||||||
getList();
|
// getList();
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
form.value.menuIds = getMenuAllCheckedKeys();
|
// addRole(form.value).then((response) => {
|
||||||
addRole(form.value).then((response) => {
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
// open.value = false;
|
||||||
open.value = false;
|
// getList();
|
||||||
getList();
|
// });
|
||||||
});
|
// }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -406,28 +286,6 @@ function cancel() {
|
|||||||
open.value = false;
|
open.value = false;
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
/** 选择数据权限范围触发 */
|
|
||||||
function dataScopeSelectChange(value) {
|
|
||||||
if (value !== "2") {
|
|
||||||
deptRef.value.setCheckedKeys([]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/** 提交按钮(数据权限) */
|
|
||||||
function submitDataScope() {
|
|
||||||
if (form.value.roleId != undefined) {
|
|
||||||
form.value.deptIds = getDeptAllCheckedKeys();
|
|
||||||
dataScope(form.value).then((response) => {
|
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
|
||||||
openDataScope.value = false;
|
|
||||||
getList();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/** 取消按钮(数据权限)*/
|
|
||||||
function cancelDataScope() {
|
|
||||||
openDataScope.value = false;
|
|
||||||
reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
getList();
|
getList();
|
||||||
</script>
|
</script>
|
||||||
|
400
src/views/admin/expert/technology/patent.vue
Normal file
400
src/views/admin/expert/technology/patent.vue
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryRef"
|
||||||
|
v-show="showSearch"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
|
<el-form-item label="专利名称" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入专利名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="申请人" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入申请人"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发明人" prop="roleName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.roleName"
|
||||||
|
placeholder="请输入发明人"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<router-link to="./claimPatent">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>认领</el-button
|
||||||
|
>
|
||||||
|
</router-link>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
v-model:showSearch="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 表格数据 -->
|
||||||
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
<el-table-column label="数据编号" prop="id" />
|
||||||
|
<el-table-column
|
||||||
|
label="专利名称"
|
||||||
|
prop="title"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="申请号"
|
||||||
|
prop="apply_code"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column label="发明人" prop="inventor" />
|
||||||
|
<el-table-column label="申请(专利权)人" prop="apply_name" />
|
||||||
|
<el-table-column label="申请日期" align="center" prop="apply_at">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.apply_at) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改数据配置对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
|
||||||
|
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
|
||||||
|
<el-form-item label="申请人:" prop="apply_name">
|
||||||
|
<el-input
|
||||||
|
v-model="form.apply_name"
|
||||||
|
placeholder="请输入申请(专利权)人(多个请以 , 分割)"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="申请人地址:" prop="apply_address">
|
||||||
|
<el-input
|
||||||
|
v-model="form.apply_address"
|
||||||
|
placeholder="请输入申请人地址"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发明人:" prop="inventor">
|
||||||
|
<el-input
|
||||||
|
v-model="form.inventor"
|
||||||
|
placeholder="请输入发明人(多个请以 , 分割)"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="专利名称:" prop="title">
|
||||||
|
<el-input v-model="form.title" placeholder="请输入专利名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="申请号:" prop="apply_code">
|
||||||
|
<el-input v-model="form.apply_code" placeholder="请输入申请号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="公开号:" prop="open_code">
|
||||||
|
<el-input v-model="form.open_code" placeholder="请输入公开号" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="申请日期:" prop="apply_at">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="form.apply_at"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
placeholder="请选择申请日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="公开日:" prop="open_at">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="form.open_at"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
placeholder="请选择公开日"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="专利类型:" prop="kind">
|
||||||
|
<el-select
|
||||||
|
v-model="form.kind"
|
||||||
|
clearable
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<!-- <el-option
|
||||||
|
v-for="item in patentOptions"
|
||||||
|
:key="item.key"
|
||||||
|
:label="item.value"
|
||||||
|
:value="item.key"
|
||||||
|
>
|
||||||
|
</el-option> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="IPC分类号:" prop="ipc_code">
|
||||||
|
<el-input v-model="form.ipc_code" placeholder="请输入IPC分类号" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-form-item label="摘要:" prop="description">
|
||||||
|
<el-input
|
||||||
|
v-model.number="form.description"
|
||||||
|
placeholder="请输入摘要"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 4, maxRows: 8 }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="主权项:" prop="principal_claim">
|
||||||
|
<el-input
|
||||||
|
v-model.number="form.principal_claim"
|
||||||
|
placeholder="请输入主权项"
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 4, maxRows: 8 }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
addRole,
|
||||||
|
changeRoleStatus,
|
||||||
|
dataScope,
|
||||||
|
delRole,
|
||||||
|
getRole,
|
||||||
|
listRole,
|
||||||
|
updateRole,
|
||||||
|
} from "@/api/system/role";
|
||||||
|
import {
|
||||||
|
roleMenuTreeselect,
|
||||||
|
treeselect as menuTreeselect,
|
||||||
|
} from "@/api/system/menu";
|
||||||
|
import {
|
||||||
|
treeselect as deptTreeselect,
|
||||||
|
roleDeptTreeselect,
|
||||||
|
} from "@/api/system/dept";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dataList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
roleName: undefined,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
apply_name: [
|
||||||
|
{ required: true, message: "申请人不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
apply_address: [
|
||||||
|
{ required: true, message: "申请人地址不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
open_code: [{ required: true, message: "公开号不能为空", trigger: "blur" }],
|
||||||
|
open_at: [{ required: true, message: "公开日不能为空", trigger: "blur" }],
|
||||||
|
inventor: [{ required: true, message: "发明人不能为空", trigger: "blur" }],
|
||||||
|
title: [{ required: true, message: "专利名称不能为空", trigger: "blur" }],
|
||||||
|
apply_code: [
|
||||||
|
{ required: true, message: "申请号不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
apply_at: [
|
||||||
|
{ required: true, message: "申请日期不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
kind: [{ required: true, message: "请选择专利类型", trigger: "change" }],
|
||||||
|
ipc_code: [
|
||||||
|
{ required: true, message: "IPC分类号不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
description: [{ required: true, message: "摘要不能为空", trigger: "blur" }],
|
||||||
|
principal_claim: [
|
||||||
|
{ required: true, message: "主权项不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询数据列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
dataList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// listRole(queryParams.value).then(
|
||||||
|
// (response) => {
|
||||||
|
// dataList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delRole(roleIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置新增的表单以及其他数据 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
id: undefined,
|
||||||
|
apply_name: undefined,
|
||||||
|
apply_address: undefined,
|
||||||
|
inventor: undefined,
|
||||||
|
title: undefined,
|
||||||
|
apply_code: undefined,
|
||||||
|
open_code: undefined,
|
||||||
|
open_at: undefined,
|
||||||
|
apply_at: undefined,
|
||||||
|
kind: undefined,
|
||||||
|
ipc_code: undefined,
|
||||||
|
description: undefined,
|
||||||
|
principal_claim: undefined,
|
||||||
|
};
|
||||||
|
proxy.resetForm("roleRef");
|
||||||
|
}
|
||||||
|
/** 添加数据 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加数据";
|
||||||
|
}
|
||||||
|
/** 修改数据 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
form.value = Object.assign({}, row);
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改数据";
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
proxy.$refs["roleRef"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log(form.value);
|
||||||
|
// if (form.value.roleId != undefined) {
|
||||||
|
// updateRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// addRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
</script>
|
@ -1,3 +1,342 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>research</div>
|
<div class="app-container">
|
||||||
</template>
|
<el-form
|
||||||
|
:model="queryParams"
|
||||||
|
ref="queryRef"
|
||||||
|
v-show="showSearch"
|
||||||
|
:inline="true"
|
||||||
|
@submit.prevent
|
||||||
|
>
|
||||||
|
<el-form-item label="科研项目名称" prop="researchName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.researchName"
|
||||||
|
placeholder="请输入科研项目名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
v-model:showSearch="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<!-- 表格数据 -->
|
||||||
|
<el-table v-loading="loading" :data="dataList">
|
||||||
|
<el-table-column label="数据编号" prop="researchId" />
|
||||||
|
<el-table-column
|
||||||
|
label="科研项目名称"
|
||||||
|
prop="researchName"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="类型"
|
||||||
|
prop="roleKey"
|
||||||
|
:show-overflow-tooltip="true"
|
||||||
|
/>
|
||||||
|
<el-table-column label="课题角色" prop="roleSort" />
|
||||||
|
<el-table-column label="课题负责人" prop="roleSort" />
|
||||||
|
<el-table-column label="发布日期" align="center" prop="createTime">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleEdit(scope.row)"
|
||||||
|
>下架</el-button
|
||||||
|
>
|
||||||
|
<!-- <el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
>修改</el-button
|
||||||
|
> -->
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改数据配置对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="720px" append-to-body>
|
||||||
|
<el-form ref="roleRef" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="科研项目名称:" prop="researchName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.researchName"
|
||||||
|
placeholder="请输入科研项目名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="课题角色:" prop="company">
|
||||||
|
<el-radio v-model="form.company" label="1">承担单位</el-radio>
|
||||||
|
<el-radio v-model="form.company" label="2">参与单位</el-radio>
|
||||||
|
</el-form-item>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="资助经费:" prop="funding">
|
||||||
|
<el-input v-model="form.funding" placeholder="请输入资助经费" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="资助来源:" prop="sources">
|
||||||
|
<el-input v-model="form.sources" 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"
|
||||||
|
placeholder="请选择开始日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="结束日期:" prop="endTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="form.endTime"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
placeholder="请选择结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="项目类型:" prop="projectType">
|
||||||
|
<el-input
|
||||||
|
v-model="form.projectType"
|
||||||
|
placeholder="请输入项目类型"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="课题负责人:" prop="projectLeader">
|
||||||
|
<el-input
|
||||||
|
v-model="form.projectLeader"
|
||||||
|
placeholder="请输入课题负责人"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
addRole,
|
||||||
|
changeRoleStatus,
|
||||||
|
dataScope,
|
||||||
|
delRole,
|
||||||
|
getRole,
|
||||||
|
listRole,
|
||||||
|
updateRole,
|
||||||
|
} from "@/api/system/role";
|
||||||
|
import {
|
||||||
|
roleMenuTreeselect,
|
||||||
|
treeselect as menuTreeselect,
|
||||||
|
} from "@/api/system/menu";
|
||||||
|
import {
|
||||||
|
treeselect as deptTreeselect,
|
||||||
|
roleDeptTreeselect,
|
||||||
|
} from "@/api/system/dept";
|
||||||
|
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dataList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
researchName: undefined,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
researchName: [
|
||||||
|
{ required: true, message: "科研项目名称不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
funding: [{ required: true, message: "资助经费不能为空", trigger: "blur" }],
|
||||||
|
sources: [{ required: true, message: "资助来源不能为空", trigger: "blur" }],
|
||||||
|
beginTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择开始日期",
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
endTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择结束日期",
|
||||||
|
trigger: ["blur", "change"],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
projectType: [
|
||||||
|
{ required: true, message: "项目类型不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
projectLeader: [
|
||||||
|
{ required: true, message: "课题负责人不能为空", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询数据列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
dataList.value = [1];
|
||||||
|
total.value = 15;
|
||||||
|
loading.value = false;
|
||||||
|
// listRole(queryParams.value).then(
|
||||||
|
// (response) => {
|
||||||
|
// dataList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
proxy.$modal
|
||||||
|
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delRole(researchIds);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置新增的表单以及其他数据 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
researchId: undefined,
|
||||||
|
researchName: undefined,
|
||||||
|
company: "1",
|
||||||
|
funding: undefined,
|
||||||
|
sources: undefined,
|
||||||
|
beginTime: undefined,
|
||||||
|
endTime: undefined,
|
||||||
|
projectType: undefined,
|
||||||
|
projectLeader: undefined,
|
||||||
|
};
|
||||||
|
proxy.resetForm("roleRef");
|
||||||
|
}
|
||||||
|
/** 添加数据 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加数据";
|
||||||
|
}
|
||||||
|
/** 修改数据 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
form.value = Object.assign({}, row);
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改数据";
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
proxy.$refs["roleRef"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
console.log(form.value);
|
||||||
|
// if (form.value.researchId != undefined) {
|
||||||
|
// updateRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("修改成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// addRole(form.value).then((response) => {
|
||||||
|
// proxy.$modal.msgSuccess("新增成功");
|
||||||
|
// open.value = false;
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
</script>
|
||||||
|
@ -7,10 +7,10 @@
|
|||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="所在地:" required>
|
<el-form-item label="所在地:" :required="is_required">
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item prop="province">
|
<el-form-item :prop="is_required ? 'province' : ''">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.province"
|
v-model="modelValue.province"
|
||||||
clearable
|
clearable
|
||||||
@ -28,7 +28,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item prop="city">
|
<el-form-item :prop="is_required ? 'city' : ''">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.city"
|
v-model="modelValue.city"
|
||||||
clearable
|
clearable
|
||||||
@ -46,7 +46,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-form-item prop="district">
|
<el-form-item :prop="is_required ? 'district' : ''">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.district"
|
v-model="modelValue.district"
|
||||||
clearable
|
clearable
|
||||||
@ -77,6 +77,10 @@ export default {
|
|||||||
type: Number,
|
type: Number,
|
||||||
default: 120,
|
default: 120,
|
||||||
},
|
},
|
||||||
|
is_required: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="所属领域:" required>
|
<el-form-item label="所属领域:" required>
|
||||||
<el-row type="flex" justify="space-between">
|
<el-row type="flex" justify="space-between">
|
||||||
<el-col :span="6">
|
<el-col :span="7">
|
||||||
<el-form-item prop="industrys">
|
<el-form-item prop="industrys">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.industrys[0]"
|
v-model="modelValue.industrys[0]"
|
||||||
@ -27,7 +27,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="7">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.industrys[1]"
|
v-model="modelValue.industrys[1]"
|
||||||
value-key="id"
|
value-key="id"
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="7">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="modelValue.industrys[2]"
|
v-model="modelValue.industrys[2]"
|
||||||
value-key="id"
|
value-key="id"
|
||||||
|
Reference in New Issue
Block a user