政策课题模块
This commit is contained in:
@@ -201,6 +201,11 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
type: Array
|
||||
},
|
||||
// 单位 M
|
||||
size: {
|
||||
type: Number,
|
||||
default: 200
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -322,8 +327,8 @@ export default {
|
||||
return false
|
||||
}
|
||||
// 判断文件上传大小
|
||||
if (file.size / 1024 / 1024 > 200) {// eslint-disable-line
|
||||
this.$message.error('文件' + file.name + '大小不超过200M')
|
||||
if (file.size / 1024 / 1024 > this.size) {// eslint-disable-line
|
||||
this.$message.error('文件' + file.name + `大小不超过${ this.size }M`)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -253,6 +253,11 @@
|
||||
title: '内外部会议',
|
||||
path: '/meeting',
|
||||
menuId: 'e5681c5ccbef386fcf50e217afdd3ff4'
|
||||
},
|
||||
{
|
||||
title: '政策课题',
|
||||
path: '/policyTopics',
|
||||
menuId: '627f66cd6746234edd4722e20d8c01bb'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -4,13 +4,22 @@
|
||||
<div class="search-area">
|
||||
<el-form :modal="searchForm" :inline="true" class="label-input-form">
|
||||
<el-formItem label="会议名称" prop="meetingName" class="search-item">
|
||||
<el-input v-model="searchForm.meetingName" clearable placeholder="根据会议名称查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
<el-input v-model="searchForm.meetingName" clearable placeholder="请输入会议名称" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="会议主办单位" prop="meetingOrganizer" class="search-item">
|
||||
<el-input v-model="searchForm.meetingOrganizer" clearable placeholder="根据会议主办单位查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
<el-input v-model="searchForm.meetingOrganizer" clearable placeholder="请输入会议主办单位" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="会议时间" prop="meetingTime" class="search-item">
|
||||
<el-input v-model="searchForm.meetingTime" clearable placeholder="根据会议时间查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
<el-date-picker
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
type="date"
|
||||
clearable
|
||||
:editable="true"
|
||||
placeholder="请选择会议时间"
|
||||
v-model="searchForm.meetingTime"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-formItem>
|
||||
<el-form-item class="search-item btn-box">
|
||||
<el-button
|
||||
@@ -170,6 +179,7 @@ export default {
|
||||
advancedSearchVisible: false,
|
||||
editForm: void 0,
|
||||
api: {
|
||||
page: 'lawss/insideOutsideMeeting/page',
|
||||
delete :'lawss/insideOutsideMeeting/deleteMeetingInfo'
|
||||
}
|
||||
}
|
||||
@@ -183,7 +193,7 @@ export default {
|
||||
this.searchForm.pageSize = this.searchForm.pageSize || this.$store.getters.userInfo.configContent
|
||||
this.searchForm.page = this.searchForm.page || 1
|
||||
let params = { ...this.searchForm, ...this.advancedSearchForm }
|
||||
const res = await this.$http._getData('lawss/insideOutsideMeeting/page', params, {_this:this,loading: 'loading'})
|
||||
const res = await this.$http._getData(this.api.page, params, {_this:this,loading: 'loading'})
|
||||
if (res.ok && res.data) {
|
||||
if (res.data.list && res.data.list.length > 0) {
|
||||
this.data = res.data.list
|
||||
|
||||
@@ -0,0 +1,276 @@
|
||||
<template>
|
||||
<el-drawer
|
||||
title="高级搜索"
|
||||
size="800px"
|
||||
:visible="visible"
|
||||
:wrapperClosable="false"
|
||||
:before-close="beforeClose">
|
||||
<div class="drawer-content">
|
||||
<el-form
|
||||
:model="form"
|
||||
class="label-input-form table-lattice"
|
||||
label-width="80px">
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="课题指导单位"
|
||||
title="课题指导单位"
|
||||
v-model="form.guidanceUnit">
|
||||
</InputFormItem>
|
||||
<InputFormItem
|
||||
label="课题参与单位"
|
||||
title="课题参与单位"
|
||||
v-model="form.participatingUnit">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="结题时间"
|
||||
title="结题时间"
|
||||
v-model="form.closeTime">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="课题费用(万元)"
|
||||
title="课题费用(万元)"
|
||||
v-model="form.topicCost">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">课题组会议</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="会议名称"
|
||||
title="会议名称"
|
||||
v-model="form.meetingName">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="会议时间"
|
||||
title="会议时间"
|
||||
v-model="form.meetingTime">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="会议地点"
|
||||
title="会议地点"
|
||||
v-model="form.meetingAddress">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="参会人员(内部)"
|
||||
title="参会人员(内部)"
|
||||
v-model="form.participants">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="会议主要内容"
|
||||
title="会议主要内容"
|
||||
v-model="form.meetingContent">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">课题组联系方式</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="姓名"
|
||||
title="姓名"
|
||||
v-model="form.topicGroupName">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="单位"
|
||||
title="单位"
|
||||
v-model="form.topicGroupDepartment">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="电话"
|
||||
title="电话"
|
||||
v-model="form.topicGroupPhone">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="邮箱"
|
||||
title="邮箱"
|
||||
v-model="form.topicGroupEmail">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="身份"
|
||||
title="身份"
|
||||
v-model="form.topicGroupIdentity">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">内部联系方式</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="姓名"
|
||||
title="姓名"
|
||||
v-model="form.insideName">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="单位"
|
||||
title="单位"
|
||||
v-model="form.insideDepartment">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="电话"
|
||||
title="电话"
|
||||
v-model="form.insidePhone">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="邮箱"
|
||||
title="邮箱"
|
||||
v-model="form.insideEmail">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="身份"
|
||||
title="身份"
|
||||
v-model="form.insideIdentity">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<el-button
|
||||
class="common-button-primary"
|
||||
icon="el-icon-check"
|
||||
type="primary"
|
||||
@click="onSearch('search')">搜索
|
||||
</el-button>
|
||||
<el-button
|
||||
class="common-button-default"
|
||||
icon="el-icon-close"
|
||||
@click="onCancel('cancel')">取消
|
||||
</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import SelectFormItem from "@/components/hzwlComponents/SelectFormItem";
|
||||
import InputFormItem from "@/components/hzwlComponents/InputFormItem";
|
||||
import DatePickerFormItem from "@/components/hzwlComponents/DatePickerFormItem";
|
||||
import DataRangePickerFormItem from "@/components/hzwlComponents/DataRangePickerFormItem";
|
||||
import SelectMultipleFormItem from "@/components/hzwlComponents/SelectMultipleFormItem";
|
||||
import DatePickerGroupFormItem from "@/components/hzwlComponents/DatePickerGroupFormItem";
|
||||
import DepartmentFormItem from "@/components/hzwlComponents/DepartmentFormItem";
|
||||
import personFormItem from "@/components/hzwlComponents/personFormItem";
|
||||
import InputForStandardsForLaws from "@/components/hzwlComponents/InputForStandardsForLaws";
|
||||
|
||||
export default {
|
||||
name: "advancedSearch",
|
||||
components: {
|
||||
ProcessTitle,
|
||||
SelectFormItem,
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
DataRangePickerFormItem,
|
||||
SelectMultipleFormItem,
|
||||
DatePickerGroupFormItem,
|
||||
DepartmentFormItem,
|
||||
personFormItem,
|
||||
InputForStandardsForLaws
|
||||
},
|
||||
props: {
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
type: 'cancel'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
beforeClose (done) {
|
||||
switch (this.type) {
|
||||
case "search":
|
||||
this.onSearch()
|
||||
break
|
||||
case 'cancel':
|
||||
this.onCancel()
|
||||
break
|
||||
}
|
||||
},
|
||||
onSearch (type) {
|
||||
this.type = type
|
||||
this.$emit('search')
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
onCancel(type) {
|
||||
this.type = type
|
||||
this.$emit('resetAdvancedSearchForm')
|
||||
this.$emit('update:visible', false)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.drawer-content {
|
||||
padding: 0 19px;
|
||||
overflow-y: auto;
|
||||
flex: auto;
|
||||
}
|
||||
.drawer-footer {
|
||||
width: 100%;
|
||||
padding: 0 20px;
|
||||
height: 70px;
|
||||
line-height: 69px;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
text-align: right;
|
||||
background: #fff;
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,632 @@
|
||||
<template>
|
||||
<el-drawer :title="title"
|
||||
:visible="showDrawer"
|
||||
:wrapperClosable="false"
|
||||
@close="onClose"
|
||||
size="1050px">
|
||||
<div class="drawer-content">
|
||||
<el-form
|
||||
v-if="showDrawer && reloadForm"
|
||||
ref="formRef"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
class="label-input-form"
|
||||
>
|
||||
<el-col :span="24"><div class="divider-line">基础信息</div></el-col>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题名称" prop="topicName" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.topicName"
|
||||
placeholder="请输入课题名称"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题承办单位" prop="organizer" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.organizer"
|
||||
placeholder="请输入课题承办单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题指导单位" prop="guidanceUnit" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.guidanceUnit"
|
||||
placeholder="请输入课题指导单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题参与单位" prop="participatingUnit" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.participatingUnit"
|
||||
placeholder="请输入课题参与单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<CustomDatePick
|
||||
:config="{
|
||||
attrName: '启动时间',
|
||||
attrField: 'startTime'
|
||||
}"
|
||||
v-model="form.startTime"
|
||||
></CustomDatePick>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<CustomDatePick
|
||||
:config="{
|
||||
attrName: '结题时间',
|
||||
attrField: 'closeTime'
|
||||
}"
|
||||
v-model="form.closeTime"
|
||||
></CustomDatePick>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题状态" prop="topicStatus" label-width="150px" class="add-form-item">
|
||||
<el-select v-model="form.topicStatus"
|
||||
placeholder="请选择课题状态"
|
||||
disabled
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="opt in topicStatusOptions"
|
||||
:key="opt.value"
|
||||
:value="!opt.value ? '' : opt.value" :label="opt.label"
|
||||
>
|
||||
{{ opt.label }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="课题费用(万元)" prop="topicCost" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.topicCost"
|
||||
placeholder="请输入课题费用(万元)"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '协议',
|
||||
attrField: 'agreement'
|
||||
}"
|
||||
v-model="form.agreement"
|
||||
></customFile>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<template v-for="(item, index) in form.meetingList">
|
||||
<el-col :span="24">
|
||||
<div class="divider-line">
|
||||
课题组会议
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeeting"
|
||||
:style="{visibility: (index === form.meetingList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeeting(index)"
|
||||
:style="{visibility: (form.meetingList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议名称" :prop="'meetingList.' + index + '.meetingName'" :rules="rules.meetingName" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.meetingName"
|
||||
placeholder="请输入会议名称"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议时间" :prop="'meetingList.' + index + '.meetingTime'" :rules="rules.meetingTime" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.meetingTime"
|
||||
placeholder="请输入会议时间"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议地点" :prop="'meetingList.' + index + '.meetingAddress'" :rules="rules.meetingAddress" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.meetingAddress"
|
||||
placeholder="请输入会议地点"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="参会人员(内部)" :prop="'meetingList.' + index + '.participants'" :rules="rules.participants" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.participants"
|
||||
placeholder="请输入参会人员(内部)"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议主要内容" :prop="'meetingList.' + index + '.meetingContent'" :rules="rules.meetingContent" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.meetingContent"
|
||||
placeholder="请输入会议主要内容"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-row>
|
||||
<el-col :span="24"><div class="divider-line">课题组资料</div></el-col>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '研究方案',
|
||||
attrField: 'researchPlan'
|
||||
}"
|
||||
v-model="form.researchPlan"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '研究成果',
|
||||
attrField: 'researchFindings'
|
||||
}"
|
||||
v-model="form.researchFindings"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '其他',
|
||||
attrField: 'other'
|
||||
}"
|
||||
v-model="form.other"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '会议资料',
|
||||
attrField: 'conferenceMaterials'
|
||||
}"
|
||||
v-model="form.conferenceMaterials"
|
||||
:allowType="['.pdf', '.PDF', '.doc','.DOC', '.docx','.DOCX', '.pptx', '.PPTX', '.ppt', '.PPT', '.xls','.XLS', '.xlsx','.XLSX', '.pdg', '.PDG', 'mp3', 'MP3', 'mp4', 'MP4']"
|
||||
:size="2048"
|
||||
></customFile>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<template v-for="(item, index) in form.topicContactInformationList">
|
||||
<el-col :span="24">
|
||||
<div class="divider-line">
|
||||
课题组联系方式
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addTopicContactInformation"
|
||||
:style="{visibility: (index === form.topicContactInformationList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeTopicContactInformation(index)"
|
||||
:style="{visibility: (form.topicContactInformationList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名" :prop="'topicContactInformationList.' + index + '.name'" :rules="rules.name" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.name"
|
||||
placeholder="请输入姓名"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位" :prop="'topicContactInformationList.' + index + '.department'" :rules="rules.department" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.department"
|
||||
placeholder="请输入单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="电话" :prop="'topicContactInformationList.' + index + '.phone'" :rules="rules.phone" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.phone"
|
||||
placeholder="请输入电话"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" :prop="'topicContactInformationList.' + index + '.email'" :rules="rules.email" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.email"
|
||||
placeholder="请输入邮箱"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="身份" :prop="'topicContactInformationList.' + index + '.identity'" :rules="rules.identity" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.identity"
|
||||
placeholder="请输入身份"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-row>
|
||||
<el-col :span="24"><div class="divider-line">内部资料</div></el-col>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '立项报告',
|
||||
attrField: 'insideProjectProposalReport'
|
||||
}"
|
||||
v-model="form.insideProjectProposalReport"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '研究方案',
|
||||
attrField: 'insideResearchPlan'
|
||||
}"
|
||||
v-model="form.insideResearchPlan"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '会议资料',
|
||||
attrField: 'insideConferenceMaterials'
|
||||
}"
|
||||
v-model="form.insideConferenceMaterials"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '研究成果',
|
||||
attrField: 'insideResearchFindings'
|
||||
}"
|
||||
v-model="form.insideResearchFindings"
|
||||
></customFile>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<customFile
|
||||
:config="{
|
||||
attrName: '其他',
|
||||
attrField: 'insideOther'
|
||||
}"
|
||||
v-model="form.insideOther"
|
||||
></customFile>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<template v-for="(item, index) in form.insideContactInformationList">
|
||||
<el-col :span="24">
|
||||
<div class="divider-line">
|
||||
课题组联系方式
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addInsideContactInformation"
|
||||
:style="{visibility: (index === form.insideContactInformationList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeInsideContactInformation(index)"
|
||||
:style="{visibility: (form.insideContactInformationList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名" :prop="'insideContactInformationList.' + index + '.name'" :rules="rules.name" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.name"
|
||||
placeholder="请输入姓名"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位" :prop="'insideContactInformationList.' + index + '.department'" :rules="rules.department" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.department"
|
||||
placeholder="请输入单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="电话" :prop="'insideContactInformationList.' + index + '.phone'" :rules="rules.phone" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.phone"
|
||||
placeholder="请输入电话"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" :prop="'insideContactInformationList.' + index + '.email'" :rules="rules.email" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.email"
|
||||
placeholder="请输入邮箱"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="身份" :prop="'insideContactInformationList.' + index + '.identity'" :rules="rules.identity" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.identity"
|
||||
placeholder="请输入身份"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<el-button icon="el-icon-check" type="primary" @click="onSubmit" :loading="isSubmit">提交</el-button>
|
||||
<el-button icon="el-icon-close" @click="onClose">取消</el-button>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
|
||||
import CustomFile from '@/components/CustomFormComponents/File'
|
||||
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
|
||||
export default {
|
||||
name: "editDrawer",
|
||||
components: {
|
||||
CustomDatePick,
|
||||
CustomFile,
|
||||
CustomTextarea
|
||||
},
|
||||
props: {
|
||||
dict: {
|
||||
type: Object
|
||||
},
|
||||
showDrawer: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '新增'
|
||||
},
|
||||
editForm: {
|
||||
type: Object
|
||||
}
|
||||
},
|
||||
data (){
|
||||
const rules = {
|
||||
topicName: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
organizer: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
guidanceUnit: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
participatingUnit: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
startTime: [
|
||||
{required: true, message: '会议时间不能为空', trigger: 'change'}
|
||||
],
|
||||
topicStatus: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
],
|
||||
topicCost: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingName: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingTime: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingAddress: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
participants: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingContent: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
name: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
department: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
phone: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
email: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
identity: [
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
}
|
||||
const form = {
|
||||
// 基础信息
|
||||
topicName: '',
|
||||
organizer: '',
|
||||
guidanceUnit: '',
|
||||
participatingUnit: '',
|
||||
startTime: '',
|
||||
closeTime: '',
|
||||
topicStatus: '',
|
||||
topicCost: '',
|
||||
agreement: '',
|
||||
// 课题组会议
|
||||
meetingList: [
|
||||
{
|
||||
meetingName: '',
|
||||
meetingTime: '',
|
||||
meetingAddress: '',
|
||||
participants: '',
|
||||
meetingContent: '',
|
||||
}
|
||||
],
|
||||
// 课题组资料
|
||||
researchPlan: '',
|
||||
researchFindings: '',
|
||||
other: '',
|
||||
conferenceMaterials: '',
|
||||
// 课题组联系方式
|
||||
topicContactInformationList: [
|
||||
{
|
||||
name: '',
|
||||
department: '',
|
||||
phone: '',
|
||||
email: '',
|
||||
identity: ''
|
||||
}
|
||||
],
|
||||
// 内部资料
|
||||
insideProjectProposalReport: '',
|
||||
insideResearchPlan: '',
|
||||
insideConferenceMaterials: '',
|
||||
insideResearchFindings: '',
|
||||
insideOther: '',
|
||||
// 内部联系方式
|
||||
insideContactInformationList: [
|
||||
{
|
||||
name: '',
|
||||
department: '',
|
||||
phone: '',
|
||||
email: '',
|
||||
identity: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
const topicStatusOptions = [
|
||||
{
|
||||
label: '进行中',
|
||||
value: '进行中'
|
||||
},
|
||||
{
|
||||
label: '已结题',
|
||||
value: '已结题'
|
||||
},
|
||||
]
|
||||
return {
|
||||
rules,
|
||||
form,
|
||||
initForm: { ...form },
|
||||
topicStatusOptions,
|
||||
isSubmit: false,
|
||||
reloadForm: true,
|
||||
api: {
|
||||
add: 'lawss/sarLawsTopic/addLawsTopic',
|
||||
update: 'lawss/sarLawsTopic/updateLawsTopicInfo'
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
editForm (val) {
|
||||
if (this.title === '编辑') {
|
||||
this.form = { ...this.editForm }
|
||||
} else {
|
||||
this.resetForm()
|
||||
}
|
||||
},
|
||||
'form.startTime' () {
|
||||
this.setTopicStatus()
|
||||
},
|
||||
'form.closeTime' () {
|
||||
this.setTopicStatus()
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
setTopicStatus () {
|
||||
if (!this.form.startTime) {
|
||||
this.form.topicStatus = ''
|
||||
}
|
||||
if (this.form.startTime && !this.form.closeTime) {
|
||||
this.form.topicStatus = '进行中'
|
||||
}
|
||||
if (this.form.startTime && this.form.closeTime) {
|
||||
this.form.topicStatus = '已结题'
|
||||
}
|
||||
},
|
||||
onClose () {
|
||||
this.$emit('update:showDrawer', false)
|
||||
this.$refs['formRef'].resetFields()
|
||||
this.resetForm()
|
||||
},
|
||||
onSubmit () {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (valid) {
|
||||
if (this.title === '新增') {
|
||||
this.$http._postData(this.api.add, this.form).then(res => {
|
||||
if (res.ok) {
|
||||
this.$message.success('新增成功')
|
||||
this.onClose()
|
||||
this.$emit('load')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$http._putData(this.api.update, this.form).then(res => {
|
||||
if (res.ok) {
|
||||
this.$message.success('修改成功')
|
||||
this.onClose()
|
||||
this.$emit('load')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
addMeeting () {
|
||||
const meetingListItem = {
|
||||
meetingName: '',
|
||||
meetingTime: '',
|
||||
meetingAddress: '',
|
||||
participants: '',
|
||||
meetingContent: '',
|
||||
}
|
||||
this.form.meetingList = [...this.form.meetingList, meetingListItem]
|
||||
},
|
||||
removeMeeting (index) {
|
||||
let res = []
|
||||
this.form.meetingList.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.meetingList = [ ...res ]
|
||||
},
|
||||
addTopicContactInformation () {
|
||||
const topicContactInformationListItem = {
|
||||
name: '',
|
||||
department: '',
|
||||
phone: '',
|
||||
email: '',
|
||||
identity: ''
|
||||
}
|
||||
this.form.topicContactInformationList = [...this.form.topicContactInformationList, topicContactInformationListItem]
|
||||
},
|
||||
removeTopicContactInformation (index) {
|
||||
let res = []
|
||||
this.form.topicContactInformationList.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.topicContactInformationList = [ ...res ]
|
||||
},
|
||||
addInsideContactInformation () {
|
||||
const insideContactInformationListItem = {
|
||||
name: '',
|
||||
department: '',
|
||||
phone: '',
|
||||
email: '',
|
||||
identity: ''
|
||||
}
|
||||
this.form.insideContactInformationListItem = [...this.form.insideContactInformationListItem, insideContactInformationListItem]
|
||||
},
|
||||
removeInsideContactInformation (index) {
|
||||
let res = []
|
||||
this.form.insideContactInformationListItem.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.insideContactInformationListItem = [ ...res ]
|
||||
},
|
||||
resetForm () {
|
||||
this.form = this.initForm
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.drawer-content {
|
||||
padding: 0 19px;
|
||||
overflow-y: auto;
|
||||
flex: auto;
|
||||
}
|
||||
.drawer-footer {
|
||||
width: 100%;
|
||||
padding: 0 20px;
|
||||
height: 70px;
|
||||
line-height: 69px;
|
||||
border-top: 1px solid #e8e8e8;
|
||||
text-align: right;
|
||||
background: #fff;
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,340 @@
|
||||
<template>
|
||||
<div class="root">
|
||||
<!--搜索区-->
|
||||
<div class="search-area">
|
||||
<el-form :modal="searchForm" :inline="true" class="label-input-form">
|
||||
<el-formItem label="课题名称" prop="topicName" class="search-item">
|
||||
<el-input v-model="searchForm.topicName" clearable placeholder="请输入课题名称" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="课题承办单位" prop="organizer" class="search-item">
|
||||
<el-input v-model="searchForm.organizer" clearable placeholder="请输入课题承办单位" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="启动时间" prop="startTime" class="search-item">
|
||||
<el-date-picker
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
type="date"
|
||||
clearable
|
||||
:editable="true"
|
||||
placeholder="请选择启动时间"
|
||||
v-model="searchForm.startTime"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-formItem>
|
||||
<el-formItem label="课题状态" prop="topicStatus" class="search-item">
|
||||
<el-select v-model="searchForm.topicStatus"
|
||||
placeholder="请选择课题状态"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="opt in topicStatusOptions"
|
||||
:key="opt.value"
|
||||
:value="!opt.value ? '' : opt.value" :label="opt.label"
|
||||
>
|
||||
{{ opt.label }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-formItem>
|
||||
<el-form-item class="search-item btn-box">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
class="common-button-primary"
|
||||
v-btn-permission="'91821ac75391d6e77388f13b68803396'"
|
||||
@click="onSearch">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
class="common-button-default"
|
||||
v-btn-permission="'22a0ea67e20998458c519281980a3af2'"
|
||||
@click="onClear">清空
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
v-btn-permission="'e66b04cb8113ff11b4b1a8240846996e'"
|
||||
@click="advancedSearch">高级检索
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!--按钮区-->
|
||||
<div class="action-bar">
|
||||
<el-button class="common-button-default export-button"
|
||||
size="mini"
|
||||
title="不勾选时默认导出所有筛选项;勾选时仅导出勾选项"
|
||||
v-btn-permission="'31f23e4d699588b08aa8f81f3e3ea42c'"
|
||||
@click="exportData"><i class="iconfont"></i>导出
|
||||
</el-button>
|
||||
<el-button class="common-button-default in-button"
|
||||
size="mini"
|
||||
v-btn-permission="'0f2b3075261e335f91f9b8e470899aa9'"
|
||||
@click="addImportModal"><i class="iconfont"></i>导入
|
||||
</el-button>
|
||||
<el-button class="common-button-default in-button"
|
||||
size="mini"
|
||||
v-btn-permission="'a136ee2c452b4340c563e3b8d76ba5e6'"
|
||||
@click="handleMoudel"><i class="iconfont"></i>模板下载
|
||||
</el-button>
|
||||
<el-button type="primary"
|
||||
class="common-button-primary add-button"
|
||||
size="mini"
|
||||
v-btn-permission="'46d989bf6115a26d5875843197d3d573'"
|
||||
@click="openDrawer('add')"
|
||||
><i class="el-icon-plus"></i>新增
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="content">
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width:100%;"
|
||||
border
|
||||
class="drag-table"
|
||||
@sort-change="sortChange"
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px'}"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="topicName"
|
||||
label="课题名称"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="organizer"
|
||||
label="课题承办单位"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="startTime"
|
||||
label="启动时间"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="topicStatus"
|
||||
label="课题状态"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="action"
|
||||
label="操作"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a class="table-jump" style="color: #2d8cf0" @click="openDrawer('edit', scope.row)">编辑</a>
|
||||
<a class="table-jump" style="color: #f56c6c;margin-left: 10px" @click="onDelete(scope.row.id)">删除</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
|
||||
<loading :loading="loading">数据获取中...</loading>
|
||||
</div>
|
||||
<!-- 高级搜索 -->
|
||||
<AdvancedSearch :visible.sync="advancedSearchVisible" :form="advancedSearchForm" @search="onSearch" @resetAdvancedSearchForm="resetAdvancedSearchForm"></AdvancedSearch>
|
||||
<!-- 新增编辑 -->
|
||||
<editDrawer ref="editDrawerRef" :showDrawer.sync="showDrawer" :title="titleDrawer" :editForm="editForm" @load="getData"></editDrawer>
|
||||
<!-- 导入 -->
|
||||
<ImportZip :visible.sync="importModalShowFlag" :action="importExcelUrl"></ImportZip>
|
||||
<!-- 导出 -->
|
||||
<ExportDialog ref="exportDialogRef" @exportName="handleExport"></ExportDialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AdvancedSearch from './components/advancedSearch'
|
||||
import editDrawer from "./components/editDrawer";
|
||||
import ImportZip from '@/components/hzwlComponents/importZip'
|
||||
import ExportDialog from '@/components/hzwlComponents/exportDialog'
|
||||
|
||||
export default {
|
||||
name: "policyTopics",
|
||||
components: {
|
||||
AdvancedSearch,
|
||||
editDrawer,
|
||||
ImportZip,
|
||||
ExportDialog
|
||||
},
|
||||
data () {
|
||||
const topicStatusOptions = [
|
||||
{
|
||||
label: '进行中',
|
||||
value: '进行中'
|
||||
},
|
||||
{
|
||||
label: '已结题',
|
||||
value: '已结题'
|
||||
},
|
||||
]
|
||||
return {
|
||||
// 搜索
|
||||
searchForm: {},
|
||||
advancedSearchVisible: false,
|
||||
advancedSearchForm: {},
|
||||
topicStatusOptions,
|
||||
// 列表
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
selectedList: [],
|
||||
// 新增编辑
|
||||
showDrawer: false,
|
||||
titleDrawer: '',
|
||||
editForm: void 0,
|
||||
// 导入
|
||||
importModalShowFlag: false,
|
||||
importExcelUrl: '',
|
||||
api: {
|
||||
page: 'lawss/sarLawsTopic/page',
|
||||
delete: 'lawss/sarLawsTopic/deleteLawsTopicById'
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
async getData () {
|
||||
this.searchForm.pageSize = this.searchForm.pageSize || this.$store.getters.userInfo.configContent
|
||||
this.searchForm.page = this.searchForm.page || 1
|
||||
let params = { ...this.searchForm, ...this.advancedSearchForm }
|
||||
const res = await this.$http._getData(this.api.page, params, {_this:this,loading: 'loading'})
|
||||
if (res.ok && res.data) {
|
||||
if (res.data.list && res.data.list.length > 0) {
|
||||
this.data = res.data.list
|
||||
}
|
||||
this.total = res.data.count
|
||||
}
|
||||
},
|
||||
onSearch(){
|
||||
this.getData()
|
||||
},
|
||||
onClear () {
|
||||
this.$set(this, 'searchForm', {})
|
||||
this.$set(this, 'advancedSearchForm', {})
|
||||
this.getData()
|
||||
},
|
||||
resetAdvancedSearchForm () {
|
||||
this.$set(this, 'advancedSearchForm', {})
|
||||
this.getData()
|
||||
},
|
||||
// 高级搜索
|
||||
advancedSearch () {
|
||||
this.$set(this, 'advancedSearchForm', {})
|
||||
this.advancedSearchVisible = true
|
||||
},
|
||||
|
||||
// 选择项勾选改变
|
||||
selectionChange (data) {
|
||||
this.selectedList = []
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
this.selectedList.push(data[i].id)
|
||||
}
|
||||
},
|
||||
// 表格排序
|
||||
sortChange(sortObj) {
|
||||
|
||||
},
|
||||
// 分页点击后方法
|
||||
pageChange (page) {
|
||||
this.searchForm.page = page
|
||||
this.getData()
|
||||
},
|
||||
// 分页每页显示数改变后方法
|
||||
pageSizeChange (pageSize) {
|
||||
this.searchForm.pageSize = pageSize
|
||||
this.getData()
|
||||
},
|
||||
|
||||
// 导出
|
||||
exportData () {
|
||||
this.$refs.exportDialogRef.openModel()
|
||||
},
|
||||
handleExport (exportName) {
|
||||
alert('导出' + exportName)
|
||||
const params = {
|
||||
...this.form,
|
||||
exportName: exportName,
|
||||
userId: this.$store.getters.userInfo.userId,
|
||||
exportIds: this.ids.join(',')
|
||||
}
|
||||
let query = '?'
|
||||
for(let i in params){
|
||||
if (params[i] && params[i]!=='') {
|
||||
query = query + i + '=' + params[i] + '&'
|
||||
}
|
||||
}
|
||||
query = query.slice(0,-1)
|
||||
window.open('/api/esRevisePlan/es-revise-plan/exportEsRevisePlanInfoExcel' + query)
|
||||
this.$refs.exportDialogRef.cancel()
|
||||
this.$message.success('导出信息成功')
|
||||
},
|
||||
// 导入
|
||||
addImportModal() {
|
||||
alert('导入')
|
||||
this.importModalShowFlag = true
|
||||
this.importExcelUrl = '/api/lawss/sarBussionessStand/importSarBussionessStandFile?'+ 'userId=' + this.$store.getters.userInfo.userId
|
||||
},
|
||||
// 模板下载
|
||||
handleMoudel(){
|
||||
alert('模板下载')
|
||||
window.open('/api/lawss/sarBussionessStand/exportTemplateFile?fileName=企业标准导入模板')
|
||||
},
|
||||
// 新增编辑
|
||||
openDrawer (type, row) {
|
||||
this.showDrawer = false
|
||||
switch (type) {
|
||||
case 'add':
|
||||
this.titleDrawer = '新增'
|
||||
break
|
||||
case 'edit':
|
||||
this.titleDrawer = '编辑'
|
||||
this.$set(this, 'editForm', row)
|
||||
break
|
||||
}
|
||||
this.$nextTick(()=>{
|
||||
this.showDrawer = true
|
||||
})
|
||||
},
|
||||
onDelete (id) {
|
||||
this.$confirm('确认删除这些数据?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
confirmButtonClass: 'common-button-primary',
|
||||
roundButton: true
|
||||
}).then(() => {
|
||||
alert('delete')
|
||||
this.$http._deleteData(this.api.delete, { meetingId: id }).then(res => {
|
||||
if (res.ok) {
|
||||
this.$message.success('删除成功')
|
||||
this.getData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.root{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.content{
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -3983,6 +3983,16 @@ const routes = [
|
||||
title: '内外部会议',
|
||||
menuId: 'e5681c5ccbef386fcf50e217afdd3ff4'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/policyTopics',
|
||||
name: 'policyTopics',
|
||||
component: () => import('@/pages/policyRegulation/policyTopics'),
|
||||
meta: {
|
||||
requireAuth: true,
|
||||
title: '政策课题',
|
||||
menuId: '627f66cd6746234edd4722e20d8c01bb'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user