zhgdyun/src/views/projectFront/smartPartyBuilding/partyBuildingActivities.vue

393 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="fullHeight whiteBlock">
<div style="padding: 15px 15px 0">
<!-- 党建活动 -->
<el-form
:inline="true"
ref="searchForm"
:model="searchForm"
size="medium"
>
<el-form-item label="活动主题">
<el-input
v-model="searchForm.activityTheme"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="getList">{{
$t('message.energyManage.waybill.query')
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t('message.deviceManage.refresh')
}}</el-button>
<el-button type="primary" size="medium" @click="add">新增</el-button>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" :data="List" @row-click="showDetailFn">
<el-table-column
prop="activityTheme"
label="活动主题"
align="center"
></el-table-column>
<el-table-column
prop="activityTime"
align="center"
label="活动时间"
></el-table-column>
<el-table-column
prop="principal"
align="center"
label="负责人"
></el-table-column>
<el-table-column
prop="participant"
align="center"
label="参与人"
></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns" style="margin-left: 110px !important">
<div @click.stop="edit(scope.row)" class="operationText">
<img
src="@/assets/images/icon-edit.png"
width="15px"
height="15px"
/>
<span>编辑</span>
</div>
<div @click.stop="deleteDev(scope.row)" class="operationText">
<img
src="@/assets/images/icon-delete.png"
width="15px"
height="15px"
/>
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
<!-- 新增 -->
<el-dialog
:modal-append-to-body="false"
:title="title"
:visible.sync="dialogShow"
@close="close"
width="1200px"
>
<div class="dialog_content">
<el-form
size="medium"
:model="addEditForm"
ref="addEditForm"
:rules="addEditRules"
label-width="70px"
:inline="true"
>
<el-form-item label="活动主题">
<el-input
v-model="addEditForm.activityTheme"
style="width: 1020px"
placeholder="请输入活动主题"
></el-input>
</el-form-item>
<el-form-item label="活动时间">
<el-date-picker
value-format="yyyy-MM-dd"
v-model="addEditForm.activityTime"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="负责人">
<el-input
v-model="addEditForm.principal"
placeholder="请输入负责人"
></el-input>
</el-form-item>
<el-form-item label="参与人">
<el-input
v-model="addEditForm.participant"
style="width: 438px"
placeholder="请输入参与人"
></el-input>
</el-form-item>
<el-form-item label="活动内容" prop="content">
<quill-editor
class="ql-editor"
style="width: 1020px"
v-model="addEditForm.activity"
ref="myQuillEditor"
:options="editorOption"
@blur="onEditorBlur($event)"
@focus="onEditorFocus($event)"
@change="onEditorChange($event)"
>
</quill-editor>
</el-form-item>
</el-form>
<div class="dialog-footer" style="margin-right: 40%">
<el-button
class="cancleBtn"
@click="dialogShow = false"
icon="el-icon-circle-close"
size="medium"
>取消
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit"
size="medium"
>确认
</el-button>
</div>
</div>
</el-dialog>
<!-- 详情 -->
<el-dialog
:modal-append-to-body="false"
title="详情"
:visible.sync="dialogContent"
width="1200px"
>
<div style="padding: 10px 80px;">
<h1 style="text-align: center;">{{detailData.activityTheme}}</h1>
<div class="detailHeader">
<span>活动时间{{detailData.activityTime}}</span>
<span>活动负责人{{detailData.principal}}</span>
<span>活动参与人{{detailData.participant}}</span>
</div>
<div class="detailContent">
<div class="ql-editor" style="white-space:pre-line" v-html="detailData.activity"></div>
</div>
<div class="dialog-footer" style="margin-right: 45%">
<el-button
type="primary"
icon="el-icon-circle-check"
@click="dialogContent = false"
size="medium"
>确认
</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import VueQuillEditor from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import {
addgtMaterialPartyBuildingActivityApi,
delgtMaterialPartyBuildingActivityApi,
editgtMaterialPartyBuildingActivityApi,
getgtMaterialPartyBuildingActivityApi
} from '@/assets/js/api/materialManagement.js'
export default {
mounted() {
this.getList()
},
components: {
VueQuillEditor
},
data() {
return {
title: "",
dialogShow: false,
pagInfo: {
pageNo: 1, //页数
pageSize: 10, //条数
total: 0 //总条数
},
List: [],
addEditForm: {
activityTheme: '',
activityTime: '',
principal: '',
participant: '',
activity: '',
},
addEditRules: {
},
searchForm: {
activityTheme: '',
},
editorOption: {
modules: {
toolbar: [
['bold', 'italic', 'underline', 'strike'], //加粗,斜体,下划线,删除线
['blockquote', 'code-block'], //引用,代码块
[{ header: 1 }, { header: 2 }], // 标题键值对的形式1、2表示字体大小
[{ list: 'ordered' }, { list: 'bullet' }], //列表
[{ script: 'sub' }, { script: 'super' }], // 上下标
[{ indent: '-1' }, { indent: '+1' }], // 缩进
[{ direction: 'rtl' }], // 文本方向
[{ size: ['small', false, 'large', 'huge'] }], // 字体大小
[{ header: [1, 2, 3, 4, 5, 6, false] }], //几级标题
[{ color: [] }, { background: [] }], // 字体颜色,字体背景颜色
[{ font: [] }], //字体
[{ align: [] }], //对齐方式
['clean'], //清除字体样式
['image'] //上传图片、上传视频
]
},
theme: 'snow'
},
detailData: {},
dialogContent: false
}
},
methods: {
onEditorBlur() {
// 失去焦点事件
},
onEditorFocus() {
// 获得焦点事件
},
onEditorChange() {
// 内容改变事件
},
//显示检查详细弹框
showDetailFn(row) {
this.detailData = row
this.dialogContent = true
},
//查询仓库数据
getList() {
getgtMaterialPartyBuildingActivityApi({
pageNo: this.pagInfo.pageNo,
pageSize: this.pagInfo.pageSize,
projectSn: this.$store.state.projectSn,
activityTheme: this.searchForm.activityTheme,
}).then((result) => {
if (result.success) {
this.List = result.result.records
this.pagInfo.total = result.result.total
}
})
},
add() {
this.title = '新增机构'
this.dialogShow = true
this.close()
},
edit(obj) {
this.title = '编辑机构'
this.dialogShow = true
this.addEditForm = JSON.parse(JSON.stringify(obj))
},
submit() {
let params = JSON.parse(JSON.stringify(this.addEditForm))
params.projectSn = this.$store.state.projectSn
this.$refs.addEditForm.validate((valid) => {
if (valid) {
if (this.title == '新增机构') {
addgtMaterialPartyBuildingActivityApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
} else if (this.title === '编辑机构') {
editgtMaterialPartyBuildingActivityApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
}
this.dialogShow = false
} else {
return false
}
})
},
deleteDev(obj) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
delgtMaterialPartyBuildingActivityApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getList()
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
close() {
this.addEditForm = {}
this.$nextTick(() => {
this.$refs.addEditForm.clearValidate()
})
},
SizeChange(val) {
this.pagInfo.pageSize = val
this.getList()
},
CurrentChange(val) {
this.pagInfo.pageNo = val
this.getList()
},
refresh() {
this.searchForm = {}
this.pagInfo.pageNo = 1 //页数
this.pagInfo.pageSize = 10 //条数
this.getList()
},
}
}
</script>
<style lang="less" scoped>
.detailHeader{
text-align: center;
padding: 20px;
span{
color: #ccc;
font-size: 12px;
margin-right: 20px;
}
}
</style>