内外部会议
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<!--导出文件改名字模态框-->
|
||||
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="300px">
|
||||
<el-form :inline="true" class="label-input-form search-area">
|
||||
<el-form-item label="导出名称" class="search-item">
|
||||
<el-input v-model="exportName" placeholder="请输入导出文件名称" :maxlength="30" clearable label="导出名称"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="demo-drawer-footer">
|
||||
<el-button class="common-button-default" icon="el-icon-close" @click="cancel">取消</el-button>
|
||||
<el-button type="primary" round class="common-button-primary" icon="el-icon-check" @click="submit">提交</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "exportDialog",
|
||||
data () {
|
||||
return {
|
||||
exportModelFlag: false,
|
||||
exportName: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openModel () {
|
||||
this.exportName = ''
|
||||
this.exportModelFlag = true
|
||||
},
|
||||
cancel () {
|
||||
this.exportModelFlag = false
|
||||
},
|
||||
submit () {
|
||||
// 导出文件名
|
||||
this.$emit('exportName', this.exportName)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/deep/ .label-input-form .add-form-item .el-form-item__content .el-input .el-input__inner {
|
||||
width: 280px;
|
||||
}
|
||||
/deep/ .el-dialog .el-dialog__header {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
color: #17233d;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
/deep/ .el-dialog .el-dialog__body {
|
||||
padding: 15px 20px;
|
||||
}
|
||||
/deep/ .el-dialog .el-dialog__footer .el-button {
|
||||
height: 32px;
|
||||
padding: 8px 23px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 导入模态窗 -->
|
||||
<el-dialog width='400px' v-if="visible" :visible="visible" @close="onClose" title="导入文件">
|
||||
<el-upload
|
||||
multiple
|
||||
drag
|
||||
:action="action"
|
||||
ref="importfile"
|
||||
name="file"
|
||||
accept=".ZIP, .zip"
|
||||
:before-upload="beginImportFile"
|
||||
:on-success="importFileSuccess"
|
||||
:show-file-list="true"
|
||||
>
|
||||
<div style="padding: 20px 0">
|
||||
<i class="el-icon-upload" style="color: #3399ff"></i>
|
||||
<p>点击或拖拽上传文件</p>
|
||||
</div>
|
||||
</el-upload>
|
||||
</el-dialog>
|
||||
<!-- 导入失败-->
|
||||
<el-dialog :visible.sync="importFailed" :close-on-click-modal="false" width="400px">
|
||||
<p slot="title" style="color:#f60">
|
||||
<span>导入失败</span>
|
||||
</p>
|
||||
<div style="max-height: 300px;overflow: auto;padding: 10px 0;">
|
||||
<p v-html="importForm.content"></p>
|
||||
</div>
|
||||
<div slot="footer" class="demo-drawer-footer">
|
||||
<el-button type="primary" round class="common-button-default" icon="el-icon-check" @click="importFailed = false">
|
||||
确认
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "importZip",
|
||||
data () {
|
||||
return {
|
||||
importFailed: false,
|
||||
importForm: {}
|
||||
}
|
||||
},
|
||||
props: {
|
||||
action: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onClose () {
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
// 导入按钮 上传之前的钩子
|
||||
beginImportFile(file) {
|
||||
var filename = file.name
|
||||
var index1 = filename.lastIndexOf('.')
|
||||
var index2 = filename.length
|
||||
var fileSuffix = filename.substring(index1, index2)
|
||||
// 判断上传文件格式
|
||||
if (fileSuffix === '.ZIP' || fileSuffix === '.zip') {
|
||||
return true
|
||||
} else {
|
||||
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP压缩文件')
|
||||
return false
|
||||
}
|
||||
// 判断文件上传大小
|
||||
// eslint-disable-next-line no-unreachable
|
||||
if (file.size / 1024 / 1024 <= 200) {
|
||||
return true
|
||||
} else {
|
||||
this.$message.error('文件' + file.name + '大小不超过200M')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
// 导入标准数据成功后执行
|
||||
importFileSuccess(response, file) {
|
||||
if (response.ok) {
|
||||
this.$emit('update:visible', false)
|
||||
// this.visible = false
|
||||
this.$message({
|
||||
message: response.message,
|
||||
type: 'success'
|
||||
})
|
||||
this.getData()
|
||||
} else {
|
||||
this.importFailed = true
|
||||
this.importForm.content = response.message
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,184 @@
|
||||
<template>
|
||||
<el-drawer
|
||||
title="高级搜索"
|
||||
size="800px"
|
||||
:visible="visible"
|
||||
:wrapperClosable="false"
|
||||
@close="onClose">
|
||||
<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.participants">
|
||||
</InputFormItem>
|
||||
<InputFormItem
|
||||
label="会议主要内容"
|
||||
title="会议主要内容"
|
||||
v-model="form.meetingContent">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="会议地点"
|
||||
title="会议地点"
|
||||
v-model="form.meetingAddress">
|
||||
</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">
|
||||
<SelectFormItem
|
||||
label="1级会议分类"
|
||||
title="1级会议分类"
|
||||
v-model="form.firstMeetingType"
|
||||
:options="dict.firstMeetingType">
|
||||
</SelectFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<SelectFormItem
|
||||
label="2级会议分类"
|
||||
title="2级会议分类"
|
||||
v-model="form.secondMeetingType"
|
||||
:options="dict.secondMeetingType">
|
||||
</SelectFormItem>
|
||||
</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.agendaName">
|
||||
</InputFormItem>
|
||||
<InputFormItem
|
||||
label="汇报人单位"
|
||||
title="汇报人单位"
|
||||
v-model="form.reportingUnit">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem
|
||||
label="汇报人"
|
||||
title="汇报人"
|
||||
v-model="form.reporter">
|
||||
</InputFormItem>
|
||||
<InputFormItem
|
||||
label="议题主要内容"
|
||||
title="议题主要内容"
|
||||
v-model="form.agendaContent">
|
||||
</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">搜索
|
||||
</el-button>
|
||||
<el-button
|
||||
class="common-button-default"
|
||||
icon="el-icon-close"
|
||||
@click="onClose">取消
|
||||
</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: () => ({})
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
beforeClose (done) {
|
||||
this.$emit('update:visible', false)
|
||||
done()
|
||||
},
|
||||
onSearch () {
|
||||
this.$emit('search')
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
onClose () {
|
||||
this.$emit('clearSearch', {})
|
||||
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,316 @@
|
||||
<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="meetingName" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.meetingName"
|
||||
placeholder="请输入会议名称"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议主办单位" prop="meetingOrganizer" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.meetingOrganizer"
|
||||
placeholder="请输入会议主办单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<CustomDatePick
|
||||
:config="{
|
||||
attrName: '会议时间',
|
||||
attrField: 'meetingTime'
|
||||
}"
|
||||
v-model="form.meetingTime"
|
||||
></CustomDatePick>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议地点" prop="meetingAddress" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.meetingAddress"
|
||||
placeholder="请输入会议地点"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="参会人员" prop="participants" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="form.participants"
|
||||
placeholder="请输入参会人员"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<custom-file
|
||||
:config="{
|
||||
attrName: '会议纪要',
|
||||
attrField: 'meetingMinutes'
|
||||
}"
|
||||
v-model="form.meetingMinutes"
|
||||
></custom-file>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<CustomTextarea
|
||||
:config="{
|
||||
attrName: '会议主要内容',
|
||||
attrField: 'meetingContent'
|
||||
}"
|
||||
v-model="form.meetingContent"
|
||||
></CustomTextarea>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col :span="24"><div class="divider-line">会议分类</div></el-col>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="1级会议分类" prop="firstMeetingType" label-width="150px" class="add-form-item">
|
||||
<template slot="label">1级会议分类</template>
|
||||
<el-select v-model="form.firstMeetingType"
|
||||
placeholder="请选择1级会议分类"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="opt in dict.firstMeetingType"
|
||||
:key="opt.value"
|
||||
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
|
||||
>
|
||||
{{ opt.label }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="2级会议分类" prop="secondMeetingType" label-width="150px" class="add-form-item">
|
||||
<template slot="label">2级会议分类</template>
|
||||
<el-select v-model="form.secondMeetingType"
|
||||
placeholder="请选择2级会议分类"
|
||||
clearable>
|
||||
<el-option
|
||||
v-for="opt in dict.secondMeetingType"
|
||||
:key="opt.value"
|
||||
:value="opt.value === undefined ? '' :opt.value" :label="opt.label"
|
||||
>
|
||||
{{ opt.label }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<template v-for="(item, index) in form.meetingTopicList">
|
||||
<el-col :span="24">
|
||||
<div class="divider-line">
|
||||
会议议题
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="addMeetingTopic"
|
||||
:style="{visibility: (index === form.meetingTopicList.length - 1) ? 'visible' : 'collapse'}"></el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-minus" @click="removeMeetingTopic(index)"
|
||||
:style="{visibility: (form.meetingTopicList.length < 2 && index === 0) ? 'collapse' : 'visible'}"></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="议题名称" prop="agendaName" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.agendaName"
|
||||
placeholder="请输入议题名称"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<custom-file
|
||||
:config="{
|
||||
attrName: '议题材料',
|
||||
attrField: 'agendaMaterials'
|
||||
}"
|
||||
v-model="item.agendaMaterials"
|
||||
></custom-file>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="汇报人" prop="reporter" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.reporter"
|
||||
placeholder="请输入汇报人"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="汇报人单位" prop="reportingUnit" label-width="150px" class="add-form-item">
|
||||
<el-input v-model="item.reportingUnit"
|
||||
placeholder="请输入汇报人单位"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<CustomTextarea
|
||||
:config="{
|
||||
attrName: '议题主要内容',
|
||||
attrField: 'agendaContent'
|
||||
}"
|
||||
v-model="item.agendaContent"
|
||||
></CustomTextarea>
|
||||
</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 = {
|
||||
meetingName: [
|
||||
{required: true, type: 'string', message: '会议名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingOrganizer: [
|
||||
{required: true, type: 'string', message: '会议主办单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主办单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingTime: [
|
||||
{required: true, message: '会议时间不能为空', trigger: 'change'}
|
||||
],
|
||||
meetingAddress: [
|
||||
{required: true, type: 'string', message: '会议地点不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议地点不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
participants: [
|
||||
{required: true, type: 'string', message: '参会人员不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '参会人员不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
meetingContent: [
|
||||
{required: true, type: 'string', message: '会议主要内容不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '会议主要内容不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
firstMeetingType: [
|
||||
{required: true, message: '1级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
secondMeetingType: [
|
||||
{required: true, message: '2级会议类别不能为空', trigger: 'change'}
|
||||
],
|
||||
agendaName: [
|
||||
{required: true, type: 'string', message: '议题名称不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '议题名称不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reporter: [
|
||||
{required: true, type: 'string', message: '汇报人不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
reportingUnit: [
|
||||
{required: true, type: 'string', message: '汇报人单位不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '汇报人单位不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
agendaContent: [
|
||||
{required: true, type: 'string', message: '议题主要内容不能为空', trigger: 'change'},
|
||||
{type: 'string', max: 500, message: '议题主要内容不能超过500个字符', trigger: 'change'}
|
||||
],
|
||||
}
|
||||
return {
|
||||
rules,
|
||||
isSubmit: false,
|
||||
reloadForm: true
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
form () {
|
||||
if (JSON.stringify(this.editForm) !== '{}') {
|
||||
return { ...this.editForm }
|
||||
} else {
|
||||
const meetingTopicItem = {
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
const form = {
|
||||
meetingTopicList: [ meetingTopicItem ]
|
||||
}
|
||||
return { ...form }
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
addMeetingTopic () {
|
||||
const meetingTopicItem = {
|
||||
agendaName: '',
|
||||
agendaMaterials: '',
|
||||
reporter: '',
|
||||
reportingUnit: '',
|
||||
agendaContent: ''
|
||||
}
|
||||
this.form.meetingTopicList = [...this.form.meetingTopicList, meetingTopicItem]
|
||||
},
|
||||
removeMeetingTopic (index) {
|
||||
let res = []
|
||||
this.form.meetingTopicList.forEach((item, i) => {
|
||||
if (i !== index) {
|
||||
res.push(item)
|
||||
}
|
||||
})
|
||||
this.form.meetingTopicList = [ ...res ]
|
||||
},
|
||||
onClose () {
|
||||
this.$emit('update:showDrawer', false)
|
||||
this.$refs['formRef'].resetFields()
|
||||
},
|
||||
onSubmit () {
|
||||
console.log(this.form)
|
||||
}
|
||||
}
|
||||
}
|
||||
</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,292 @@
|
||||
<template>
|
||||
<div class="meeting-root">
|
||||
<!--搜索区-->
|
||||
<div class="search-area">
|
||||
<el-form :modal="searchForm" :inline="true" class="label-input-form">
|
||||
<el-formItem label="会议名称" prop="name" class="search-item">
|
||||
<el-input v-model="searchForm.name" clearable placeholder="根据会议名称查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="会议主办单位" prop="unit" class="search-item">
|
||||
<el-input v-model="searchForm.unit" clearable placeholder="根据会议主办单位查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-formItem label="会议时间" prop="time" class="search-item">
|
||||
<el-input v-model="searchForm.time" clearable placeholder="根据会议时间查找" :maxlength="100" @keyup.enter.native="onSearch"/>
|
||||
</el-formItem>
|
||||
<el-form-item class="search-item btn-box">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
class="common-button-primary"
|
||||
v-btn-permission="'520f8524252e76e751a883a0a8a8615c'"
|
||||
@click="onSearch">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
class="common-button-default"
|
||||
v-btn-permission="'6a9483964b7b49dd473ef9e6fd4a649e'"
|
||||
@click="onClear">清空
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
v-btn-permission="'7f98cd8b424d6ad83b1770a6576993fc'"
|
||||
@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="'6d749caee927a480fa99e5ddc48d8e05'"
|
||||
@click="exportData"><i class="iconfont"></i>导出
|
||||
</el-button>
|
||||
<el-button class="common-button-default in-button"
|
||||
size="mini"
|
||||
v-btn-permission="'b168e0381ec7ba5d762c36ad2935542f'"
|
||||
@click="addImportModal"><i class="iconfont"></i>导入
|
||||
</el-button>
|
||||
<el-button class="common-button-default in-button"
|
||||
size="mini"
|
||||
v-btn-permission="'7990fb64c468c2d37cc2246fc3cb694e'"
|
||||
@click="handleMoudel"><i class="iconfont"></i>模板下载
|
||||
</el-button>
|
||||
<el-button type="primary"
|
||||
class="common-button-primary add-button"
|
||||
size="mini"
|
||||
v-btn-permission="'f0e663244c1f823caa07e99bfc6535dc'"
|
||||
@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="meetingName"
|
||||
label="会议名称"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="meetingOrganizer"
|
||||
label="会议主办单位"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="meetingTime"
|
||||
label="会议时间"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="meetingAddress"
|
||||
label="会议地点"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="agendaName"
|
||||
label="议题名称"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.meetingTopicList.map(item => item.agendaName).join(',') }}</span>
|
||||
</template>
|
||||
</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="searchForm" :dict="dict" @search="onSearch"></AdvancedSearch>
|
||||
<!-- 新增编辑 -->
|
||||
<editDrawer :dict="dict" :showDrawer.sync="showDrawer" :title="titleDrawer" :editForm="editForm"></editDrawer>
|
||||
<!-- 导入 -->
|
||||
<ImportZip :visible.sync="importModalShowFlag" :action="importExcelUrl"></ImportZip>
|
||||
<!-- 导出 -->
|
||||
<ExportDialog ref="exportDialogRef" @exportName="handleExport"></ExportDialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import editDrawer from "./components/editDrawer";
|
||||
import AdvancedSearch from './components/advancedSearch'
|
||||
import ImportZip from '@/components/hzwlComponents/importZip'
|
||||
import ExportDialog from '@/components/hzwlComponents/exportDialog'
|
||||
export default {
|
||||
name: "meeting",
|
||||
components: {
|
||||
editDrawer,
|
||||
AdvancedSearch,
|
||||
ImportZip,
|
||||
ExportDialog
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
searchForm: {},
|
||||
data: [],
|
||||
total: 0,
|
||||
selectedList: [],
|
||||
loading: false,
|
||||
dict: {},
|
||||
showDrawer: false,
|
||||
titleDrawer: '',
|
||||
// 导入
|
||||
importModalShowFlag: false,
|
||||
importExcelUrl: '',
|
||||
// 高级搜索
|
||||
advancedSearchVisible: false,
|
||||
editForm: void 0
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
async getData () {
|
||||
this.searchForm.pageSize = this.searchForm.pageSize || this.$store.getters.userInfo.configContent
|
||||
this.searchForm.page = this.searchForm.page || 0
|
||||
let params = { ...this.searchForm }
|
||||
const res = await this.$http._getData('lawss/insideOutsideMeeting/page', params)
|
||||
if (res.ok) {
|
||||
this.data = res.data
|
||||
}
|
||||
},
|
||||
onSearch(){
|
||||
console.log(this.searchForm)
|
||||
},
|
||||
onClear () {
|
||||
this.$set(this, 'searchForm', {})
|
||||
},
|
||||
// 高级搜索
|
||||
advancedSearch () {
|
||||
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) {
|
||||
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({
|
||||
message: '导出信息成功',
|
||||
type: 'success'
|
||||
})
|
||||
},
|
||||
// 导入
|
||||
addImportModal() {
|
||||
this.importModalShowFlag = true
|
||||
this.importExcelUrl = '/api/lawss/sarBussionessStand/importSarBussionessStandFile?'+ 'userId=' + this.$store.getters.userInfo.userId
|
||||
},
|
||||
// 模板下载
|
||||
handleMoudel(){
|
||||
window.open('/api/lawss/sarBussionessStand/exportTemplateFile?fileName=企业标准导入模板')
|
||||
},
|
||||
// 新增编辑
|
||||
openDrawer (type, row) {
|
||||
this.showDrawer = false
|
||||
switch (type) {
|
||||
case 'add':
|
||||
this.$set(this, 'editForm', {})
|
||||
this.titleDrawer = '新增'
|
||||
break
|
||||
case 'edit':
|
||||
this.titleDrawer = '编辑'
|
||||
this.$set(this, 'editForm', row)
|
||||
break
|
||||
}
|
||||
this.showDrawer = true
|
||||
},
|
||||
onDelete (id) {
|
||||
alert('删除' + id)
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
// 查询各下拉框数据
|
||||
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.dict = { ...res.data }
|
||||
}, e => {
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.meeting-root{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.content{
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user