78263 内外部会议-添加调取课题功能
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="政策课题"
|
||||
:visible.sync="show"
|
||||
width="1100px"
|
||||
custom-class="demo-drawer"
|
||||
:close-on-click-modal="false"
|
||||
@close=""
|
||||
append-to-body
|
||||
>
|
||||
<!--搜索区-->
|
||||
<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-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="content">
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;overflow-y: auto;overflow-x: hidden;"
|
||||
:height="300"
|
||||
border
|
||||
class="drag-table"
|
||||
@sort-change="sortChange"
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px', fontWeight: 'bold', height: '48px', padding: 0}"
|
||||
:cell-style="{padding: 0}"
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="topicName"
|
||||
label="课题名称"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
<template slot-scope="{row, column, $index}">
|
||||
<a class="table-jump" style="color: #2d8cf0" @click="handlePreview(row.id)">{{ row.topicName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="organizer"
|
||||
label="课题承办单位"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="startTime"
|
||||
label="启动时间"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="topicStatus"
|
||||
label="课题状态"
|
||||
align="center"
|
||||
sortable="custom"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination style="position: relative" :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
|
||||
<loading :loading="loading">数据获取中...</loading>
|
||||
</div>
|
||||
<div slot="footer">
|
||||
<el-button class="common-button-default" round icon="el-icon-close" @click="handleCancel">取消</el-button>
|
||||
<el-button type="primary" round class="common-button-primary" icon="el-icon-check" @click="handleDragIn">带入</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TopicsTable",
|
||||
data () {
|
||||
const topicStatusOptions = [
|
||||
{
|
||||
label: '进行中',
|
||||
value: '进行中'
|
||||
},
|
||||
{
|
||||
label: '已结题',
|
||||
value: '已结题'
|
||||
},
|
||||
]
|
||||
return {
|
||||
show: false,
|
||||
searchForm: {},
|
||||
api: {
|
||||
page: 'lawss/sarLawsTopic/page'
|
||||
},
|
||||
// 列表
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
selectedList: [],
|
||||
topicStatusOptions,
|
||||
}
|
||||
},
|
||||
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 }
|
||||
const res = await this.$http._getData(this.api.page, params, {_this:this,loading: 'loading'})
|
||||
if (res.ok && res.data) {
|
||||
this.data = res.data.list
|
||||
this.total = res.data.count
|
||||
}
|
||||
},
|
||||
open () {
|
||||
this.$set(this, 'searchForm', {})
|
||||
this.getData()
|
||||
this.show = true
|
||||
},
|
||||
// 选择项勾选改变
|
||||
selectionChange (data) {
|
||||
this.selectedList = data
|
||||
},
|
||||
// 表格排序
|
||||
sortChange({ column, prop, order }) {
|
||||
this.searchForm.sortField = prop
|
||||
this.searchForm.sortMode = 'asc'
|
||||
if (order === 'descending') {
|
||||
this.searchForm.sortMode = 'desc'
|
||||
}
|
||||
if (!order) {
|
||||
this.searchForm.sortField = ''
|
||||
this.searchForm.sortMode = ''
|
||||
}
|
||||
this.getData()
|
||||
},
|
||||
// 分页点击后方法
|
||||
pageChange (page) {
|
||||
this.searchForm.page = page
|
||||
this.getData()
|
||||
},
|
||||
// 分页每页显示数改变后方法
|
||||
pageSizeChange (pageSize) {
|
||||
this.searchForm.pageSize = pageSize
|
||||
this.getData()
|
||||
},
|
||||
// 点击查看
|
||||
handlePreview(id) {
|
||||
let routeUrl = this.$router.resolve({
|
||||
name: 'policyTopicsDetail',
|
||||
params: { id }
|
||||
})
|
||||
window.open(routeUrl.href, '_blank')
|
||||
},
|
||||
onSearch () {
|
||||
this.searchForm.page = 1
|
||||
this.getData()
|
||||
},
|
||||
onClear () {
|
||||
this.$set(this, 'searchForm', {})
|
||||
this.getData()
|
||||
},
|
||||
handleCancel () {
|
||||
this.show = false
|
||||
},
|
||||
handleDragIn () {
|
||||
if (this.selectedList.length === 0) {
|
||||
return this.$message.warning('请选择要带入的课题信息')
|
||||
}
|
||||
if (this.selectedList.length > 1) {
|
||||
return this.$message.warning('最多可以带入一条课题信息')
|
||||
}
|
||||
this.$emit('dragIn', this.selectedList[0])
|
||||
this.show = false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
/deep/ .demo-drawer{
|
||||
.el-dialog__body{
|
||||
padding: 0 20px;
|
||||
}
|
||||
.el-dialog__footer {
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -21,6 +21,20 @@
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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-button
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
size="mini"
|
||||
style="position:absolute;top: 10px;right: 0;"
|
||||
@click="handleGetTopic"
|
||||
>调取课题</el-button>
|
||||
</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"
|
||||
@@ -165,6 +179,7 @@
|
||||
<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>
|
||||
<TopicsTable ref="TopicsTableRef" @dragIn="dragIn"></TopicsTable>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
@@ -172,12 +187,15 @@
|
||||
import CustomDatePick from '@/components/CustomFormComponents/DatePicker'
|
||||
import CustomFile from '@/components/CustomFormComponents/File'
|
||||
import CustomTextarea from '@/components/CustomFormComponents/Textarea'
|
||||
import TopicsTable from "./TopicsTable";
|
||||
|
||||
export default {
|
||||
name: "editDrawer",
|
||||
components: {
|
||||
CustomDatePick,
|
||||
CustomFile,
|
||||
CustomTextarea
|
||||
CustomTextarea,
|
||||
TopicsTable
|
||||
},
|
||||
props: {
|
||||
dict: {
|
||||
@@ -353,6 +371,12 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
handleGetTopic () {
|
||||
this.$refs.TopicsTableRef.open()
|
||||
},
|
||||
dragIn (val) {
|
||||
this.$set(this.form, 'topicName', val.topicName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,18 +7,6 @@
|
||||
v-model="form.meetingName"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
<DatePickerFormItem label="会议时间"
|
||||
prop="meetingTime"
|
||||
v-model="form.meetingTime"
|
||||
:disabled="disabled">
|
||||
</DatePickerFormItem>
|
||||
<InputFormItem label="参会人员"
|
||||
prop="participants"
|
||||
v-model="form.participants"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem label="会议主办单位"
|
||||
prop="meetingOrganizer"
|
||||
v-model="form.meetingOrganizer"
|
||||
@@ -37,6 +25,31 @@
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<InputFormItem label="课题名称"
|
||||
prop="topicName"
|
||||
v-model="form.topicName"
|
||||
:disabled="disabled">
|
||||
<el-button
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
size="mini"
|
||||
style="height: 40px;margin-top: 5px;"
|
||||
:disabled="disabled"
|
||||
@click="handleGetTopic"
|
||||
>调取课题</el-button>
|
||||
</InputFormItem>
|
||||
<DatePickerFormItem label="会议时间"
|
||||
prop="meetingTime"
|
||||
v-model="form.meetingTime"
|
||||
:disabled="disabled">
|
||||
</DatePickerFormItem>
|
||||
<InputFormItem label="参会人员"
|
||||
prop="participants"
|
||||
v-model="form.participants"
|
||||
:disabled="disabled">
|
||||
</InputFormItem>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<TextareaFormItem label="会议主要内容"
|
||||
prop="meetingContent"
|
||||
@@ -45,6 +58,7 @@
|
||||
</TextareaFormItem>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<TopicsTable ref="TopicsTableRef" @dragIn="dragIn"></TopicsTable>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -53,13 +67,16 @@ import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
import TextareaFormItem from "@/components/hzwlComponents/TextareaFormItem";
|
||||
import TopicsTable from '@/pages/policyRegulation/meeting/components/TopicsTable.vue'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
UploadFormItem,
|
||||
TextareaFormItem
|
||||
TextareaFormItem,
|
||||
TopicsTable
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
@@ -74,6 +91,14 @@ export default {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleGetTopic () {
|
||||
this.$refs.TopicsTableRef.open()
|
||||
},
|
||||
dragIn (val) {
|
||||
this.$set(this.form, 'topicName', val.topicName)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user