6 changed files with 651 additions and 32 deletions
@ -0,0 +1,593 @@ |
|||||
|
<template> |
||||
|
<div class="div_main"> |
||||
|
<div v-if="showType==='list'"> |
||||
|
<div class="div_search"> |
||||
|
<el-form :inline="true" |
||||
|
:model="formData" |
||||
|
ref="ref_searchform" |
||||
|
:label-width="'80px'"> |
||||
|
<div> |
||||
|
<el-form-item label="提醒时间" |
||||
|
prop="startTime"> |
||||
|
<el-date-picker v-model="formData.startTime" |
||||
|
class="item_width_2" |
||||
|
size="small" |
||||
|
type="date" |
||||
|
value-format="yyyyMMdd" |
||||
|
format="yyyy-MM-dd" |
||||
|
placeholder="开始时间"> |
||||
|
</el-date-picker> |
||||
|
<span class="data-tag">至</span> |
||||
|
<el-date-picker v-model="formData.endTime" |
||||
|
:picker-options="endPickerOptions" |
||||
|
class="item_width_2 data-tag" |
||||
|
size="small" |
||||
|
type="date" |
||||
|
value-format="yyyyMMdd" |
||||
|
format="yyyy-MM-dd" |
||||
|
placeholder="结束时间"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="日程标题" |
||||
|
prop="topic"> |
||||
|
<el-input v-model="formData.title" |
||||
|
class="item_width_2" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="是否公开" |
||||
|
prop="isPublic"> |
||||
|
<el-select v-model="formData.isPublic" clearable placeholder="请选择"> |
||||
|
<el-option |
||||
|
v-for="item in isPublicList" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-button style="margin-left:30px" |
||||
|
size="small" |
||||
|
class="diy-button--search" |
||||
|
@click="handleSearch">查询</el-button> |
||||
|
<el-button style="margin-left:10px" |
||||
|
size="small" |
||||
|
class="diy-button--reset" |
||||
|
@click="resetSearch">重置</el-button> |
||||
|
</div> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="div_table"> |
||||
|
|
||||
|
<div class="div_btn"> |
||||
|
<el-button class="diy-button--add" |
||||
|
size="small" |
||||
|
@click="handleAddSchedule">添加日程提醒</el-button> |
||||
|
<el-button style="float:left;margin-left:10px" |
||||
|
class="diy-button--delete" |
||||
|
size="small" |
||||
|
@click="deleteBatch">批量删除</el-button> |
||||
|
<!--<el-button @click="handleExport" |
||||
|
class="diy-button--reset" |
||||
|
size="small">导出</el-button>--> |
||||
|
</div> |
||||
|
|
||||
|
<el-table :data="tableData" |
||||
|
border |
||||
|
v-loading="tableLoading" |
||||
|
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}" |
||||
|
class="table" |
||||
|
style="width: 100%" |
||||
|
@select-all="selectAll" |
||||
|
@selection-change="selectionChange" |
||||
|
:height="maxTableHeight"> |
||||
|
|
||||
|
<el-table-column :selectable="checkSelf" |
||||
|
type="selection" |
||||
|
width="55"> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="序号" |
||||
|
fixed="left" |
||||
|
type="index" |
||||
|
align="center" |
||||
|
width="50" /> |
||||
|
|
||||
|
<el-table-column prop="title" |
||||
|
align="center" |
||||
|
min-width="150" |
||||
|
label="日程标题" |
||||
|
:show-overflow-tooltip="true"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="remindTime" |
||||
|
label="提醒时间" |
||||
|
align="center" |
||||
|
:show-overflow-tooltip="true"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="remark" |
||||
|
align="center" |
||||
|
width="150" |
||||
|
label="备注" |
||||
|
:show-overflow-tooltip="true"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column fixed="right" |
||||
|
label="操作" |
||||
|
align="center" |
||||
|
width="180"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button v-if="user.id===scope.row.staffId" |
||||
|
@click="handleEdit(scope.row)" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
class="div-table-button--edit">修改</el-button> |
||||
|
<el-button v-if="user.id===scope.row.staffId" |
||||
|
@click="handleDel(scope.row)" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
class="div-table-button--delete">删除</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
<div> |
||||
|
<el-pagination @size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
:current-page.sync="pageNo" |
||||
|
:page-sizes="[20, 50, 100, 200]" |
||||
|
:page-size="parseInt(pageSize)" |
||||
|
layout="sizes, prev, pager, next, total" |
||||
|
:total="total"> |
||||
|
</el-pagination> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<el-dialog v-if="showAdd" |
||||
|
:visible.sync="showAdd" |
||||
|
:close-on-click-modal="false" |
||||
|
:close-on-press-escape="false" |
||||
|
:title="addDiaTitle" |
||||
|
width="850px" |
||||
|
top="5vh" |
||||
|
class="dialog-h" |
||||
|
@closed="showAdd = false"> |
||||
|
<add-activity ref="ref_add_form" |
||||
|
:formType="formType" |
||||
|
:icPartyActId="icPartyActId" |
||||
|
@handleOk="handleOk" |
||||
|
@handleClose="handleClose"></add-activity> |
||||
|
</el-dialog> |
||||
|
<el-dialog v-if="showSchedule" |
||||
|
:visible.sync="showSchedule" |
||||
|
:close-on-click-modal="false" |
||||
|
:close-on-press-escape="false" |
||||
|
:title="'添加日程提醒'" |
||||
|
width="850px" |
||||
|
top="5vh" |
||||
|
class="dialog-h" |
||||
|
@closed="showSchedule = false"> |
||||
|
<schedule-form ref="ref_schedule_form" |
||||
|
:formType="formType" |
||||
|
@handleOk="handleOk" |
||||
|
@handleClose="handleClose"> |
||||
|
</schedule-form> |
||||
|
</el-dialog> |
||||
|
|
||||
|
<div v-if="showType==='yearplan'"> |
||||
|
<yearplan-list @handleOk="handleAddPlanOk" |
||||
|
@handleClose="handleAddPlanClose"></yearplan-list> |
||||
|
</div> |
||||
|
<el-dialog |
||||
|
title="修改日程提醒" |
||||
|
:visible.sync="dialogVisible" |
||||
|
width="850px" |
||||
|
top="5vh" |
||||
|
class="dialog-h" |
||||
|
:before-close="handleClose"> |
||||
|
<el-form ref="ref_form" |
||||
|
:inline="true" |
||||
|
:model="scFormData" |
||||
|
:rules="dataRule" |
||||
|
class="div_form"> |
||||
|
|
||||
|
<el-form-item label="日程标题" |
||||
|
prop="title" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
placeholder="请输入活动标题" |
||||
|
v-model="scFormData.title"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="提醒时间" |
||||
|
style="display: block" |
||||
|
prop="remindTime" |
||||
|
label-width="150px"> |
||||
|
<el-date-picker v-model="scFormData.remindTime" |
||||
|
value-format="yyyy-MM-dd HH:mm:ss" |
||||
|
format="yyyy-MM-dd HH:mm:ss" |
||||
|
type="datetime" |
||||
|
placeholder="选择时间"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="是否公开" |
||||
|
label-width="150px" |
||||
|
prop="isPublic"> |
||||
|
<el-select v-model="scFormData.isPublic" |
||||
|
placeholder="请选择" |
||||
|
clearable |
||||
|
class="item_width_1"> |
||||
|
<el-option v-for="item in gongkaiArray" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="日程介绍" |
||||
|
prop="remark" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
type="textarea" |
||||
|
maxlength="1000" |
||||
|
show-word-limit |
||||
|
:rows="3" |
||||
|
placeholder="请输入日程介绍,不超过1000字" |
||||
|
v-model="scFormData.remark"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="dialogVisible = false">取 消</el-button> |
||||
|
<el-button type="primary" @click="editSchedule">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { requestPost, requestGet } from "@/js/dai/request"; |
||||
|
import { mapGetters } from "vuex"; |
||||
|
|
||||
|
import axios from "axios"; |
||||
|
import scheduleForm from "./scheduleForm"; |
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
components: { scheduleForm }, |
||||
|
|
||||
|
data () { |
||||
|
let endDisabledDate = (time) => {//这个关键属性我们一定要写在data的里面并且return的外面,这是动态改变区间的关键 |
||||
|
let nowData = Date.now() |
||||
|
|
||||
|
if (this.formData.startTime) { |
||||
|
let startTime = new Date(this.formData.startTime) |
||||
|
return time.getTime() < startTime || time.getTime() === startTime |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
let startDisabledDate = (time) => {//这个关键属性我们一定要写在data的里面并且return的外面,这是动态改变区间的关键 |
||||
|
let nowData = Date.now() |
||||
|
return time.getTime() > nowData |
||||
|
} |
||||
|
|
||||
|
return { |
||||
|
dialogVisible: false, |
||||
|
isPublicList: [ |
||||
|
{ |
||||
|
value: '0', |
||||
|
label: '仅自己可见' |
||||
|
}, |
||||
|
{ |
||||
|
value: '1', |
||||
|
label: '组织内其他人可见' |
||||
|
} |
||||
|
], |
||||
|
tableLoading: false, |
||||
|
user: {}, |
||||
|
agencyId: '', |
||||
|
gongkaiArray: [ |
||||
|
{ |
||||
|
value: '0', |
||||
|
label: '仅自己可见' |
||||
|
}, |
||||
|
{ |
||||
|
value: '1', |
||||
|
label: '组织内其他人可见' |
||||
|
}, |
||||
|
|
||||
|
], |
||||
|
tableData: [], |
||||
|
scFormData: { |
||||
|
title: '', |
||||
|
remindTime: '', |
||||
|
remark: '', |
||||
|
scheduleId: '', |
||||
|
isPublic: '' |
||||
|
}, |
||||
|
formData: { |
||||
|
title: '', |
||||
|
startTime: '',//活动开始时间20220817 |
||||
|
endTime: '',//活动结束时间20220817 |
||||
|
isPublish: '' |
||||
|
|
||||
|
}, |
||||
|
pageNo: 1, |
||||
|
pageSize: window.localStorage.getItem("pageSize") || 20, |
||||
|
total: 1, |
||||
|
endPickerOptions: { |
||||
|
disabledDate: endDisabledDate |
||||
|
}, |
||||
|
agencyIdArray: [], |
||||
|
|
||||
|
showAdd: false, |
||||
|
formType: 'add', |
||||
|
addDiaTitle: '添加活动计划', |
||||
|
showSchedule: false, |
||||
|
showType: 'list', |
||||
|
|
||||
|
scheduleId: '', |
||||
|
selection: [], |
||||
|
scheduleDiaTitle: '', |
||||
|
isPublic: '', |
||||
|
title: '', |
||||
|
remindTime: '' |
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
|
||||
|
dataRule () { |
||||
|
return { |
||||
|
|
||||
|
title: [ |
||||
|
{ required: true, message: '日程标题不能为空', trigger: 'change' }, |
||||
|
], |
||||
|
remindTime: [ |
||||
|
{ required: true, message: '提醒时间不能为空', trigger: 'change' } |
||||
|
], |
||||
|
isPublic: [ |
||||
|
{ required: true, message: '是否公开不能为空', trigger: 'change' } |
||||
|
], |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
maxTableHeight () { |
||||
|
return this.$store.state.inIframe |
||||
|
? this.clientHeight - 410 + this.iframeHeigh |
||||
|
: this.clientHeight - 410; |
||||
|
}, |
||||
|
...mapGetters(["clientHeight", "iframeHeight"]), |
||||
|
}, |
||||
|
watch: { |
||||
|
|
||||
|
}, |
||||
|
mounted () { |
||||
|
this.user = this.$store.state.user |
||||
|
this.agencyId = this.user.agencyId |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
methods: { |
||||
|
checkSelf (row) { |
||||
|
return this.$store.state.user.id === row.staffId |
||||
|
}, |
||||
|
|
||||
|
handleAddYearPlan () { |
||||
|
this.showType = 'yearplan' |
||||
|
}, |
||||
|
|
||||
|
handleAddPlanOk () { |
||||
|
this.showType = 'list' |
||||
|
}, |
||||
|
handleAddPlanClose () { |
||||
|
this.showType = 'list' |
||||
|
}, |
||||
|
|
||||
|
handleAddSchedule () { |
||||
|
this.formType = 'schedule' |
||||
|
this.showSchedule = true; |
||||
|
}, |
||||
|
|
||||
|
handleSearch (val) { |
||||
|
this.pageNo = 1; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
|
||||
|
async handleAdd () { |
||||
|
this.icPartyActId = '' |
||||
|
this.addDiaTitle = '新增活动计划' |
||||
|
this.formType = 'add' |
||||
|
this.showAdd = true; |
||||
|
}, |
||||
|
|
||||
|
async handlePublish (row) { |
||||
|
this.icPartyActId = row.icPartyActId |
||||
|
|
||||
|
this.$confirm("确认发布活动?", "提示", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning" |
||||
|
}) |
||||
|
.then(() => { |
||||
|
this.publishActivity() |
||||
|
}) |
||||
|
.catch(err => { |
||||
|
if (err == "cancel") { |
||||
|
// this.$message({ |
||||
|
// type: "info", |
||||
|
// message: "已取消发布" |
||||
|
// }); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
async handleEdit (row) { |
||||
|
this.scFormData = row |
||||
|
this.dialogVisible = true |
||||
|
this.scFormData.scheduleId = row.id |
||||
|
}, |
||||
|
|
||||
|
async editSchedule () { |
||||
|
const url = '/resi/partymember/icSchedule/addOrEdit' |
||||
|
// const url = 'http://yapi.elinkservice.cn/mock/245/icSchedule/addOrEdit' |
||||
|
let params = { |
||||
|
...this.scFormData |
||||
|
} |
||||
|
const { data, code, msg } = await requestPost(url, params) |
||||
|
if (code === 0) { |
||||
|
this.$message.success('操作成功') |
||||
|
this.$emit('handleOk') |
||||
|
} else { |
||||
|
this.$message.error(msg) |
||||
|
} |
||||
|
this.dialogVisible = false |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
handleClose () { |
||||
|
this.formType = '' |
||||
|
this.showAdd = false |
||||
|
this.showSchedule = false |
||||
|
this.dialogVisible = false |
||||
|
}, |
||||
|
|
||||
|
handleOk () { |
||||
|
this.handleClose() |
||||
|
this.pageNo = 1 |
||||
|
this.getTableData() |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
async handleDel (row) { |
||||
|
this.scheduleId = row.id |
||||
|
this.$confirm("活动删除后不可恢复,您确定要删除吗?", "提示", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning" |
||||
|
}) |
||||
|
.then(() => { |
||||
|
this.deleteActBatch() |
||||
|
}) |
||||
|
.catch(err => { |
||||
|
if (err == "cancel") { |
||||
|
// this.$message({ |
||||
|
// type: "info", |
||||
|
// message: "已取消删除" |
||||
|
// }); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
selectAll (selection) { |
||||
|
this.selection = selection |
||||
|
}, |
||||
|
selectionChange (selection) { |
||||
|
this.selection = selection |
||||
|
}, |
||||
|
|
||||
|
deleteBatch () { |
||||
|
if (this.selection.length > 0) { |
||||
|
this.$confirm("确认删除选择的活动?", "提示", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning" |
||||
|
}) |
||||
|
.then(() => { |
||||
|
this.deleteActBatch() |
||||
|
}) |
||||
|
.catch(err => { |
||||
|
if (err == "cancel") { |
||||
|
// this.$message({ |
||||
|
// type: "info", |
||||
|
// message: "已取消删除" |
||||
|
// }); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
} else { |
||||
|
this.$message.warning('请先选择要删除的活动') |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async deleteActBatch () { |
||||
|
let params = [] |
||||
|
this.selection.forEach(element => { |
||||
|
params.push(element.id) |
||||
|
}); |
||||
|
if (this.scheduleId !== null && this.scheduleId !== '' && this.scheduleId !== undefined){ |
||||
|
params.push(this.scheduleId) |
||||
|
} |
||||
|
const url = "/resi/partymember/icSchedule/del"; |
||||
|
const { data, code, msg } = await requestPost(url, params) |
||||
|
|
||||
|
if (code === 0) { |
||||
|
this.$message.success("删除成功!"); |
||||
|
this.getTableData(); |
||||
|
} else { |
||||
|
this.$message.error('操作失败!') |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async getTableData () { |
||||
|
this.tableLoading = true |
||||
|
const url = "/resi/partymember/icSchedule/list"; |
||||
|
const { pageSize, pageNo, formData } = this; |
||||
|
const { data, code, msg } = await requestPost(url, { |
||||
|
pageSize, |
||||
|
pageNo, |
||||
|
...formData, |
||||
|
}); |
||||
|
|
||||
|
this.tableLoading = false |
||||
|
if (code === 0) { |
||||
|
this.total = data.total || 0; |
||||
|
this.tableData = data.list; |
||||
|
} else { |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
handleSizeChange (val) { |
||||
|
|
||||
|
this.pageSize = val; |
||||
|
window.localStorage.setItem("pageSize", val); |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
handleCurrentChange (val) { |
||||
|
|
||||
|
this.pageNo = val; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
|
||||
|
resetSearch () { |
||||
|
this.agencyIdArray = [] |
||||
|
this.formData = { |
||||
|
startTime: '',//活动开始时间20220817 |
||||
|
endTime: '',//活动结束时间20220817 |
||||
|
isPublish: '', |
||||
|
title: '', |
||||
|
} |
||||
|
|
||||
|
this.pageNo = 1 |
||||
|
this.getTableData() |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import "@/assets/scss/buttonstyle.scss"; |
||||
|
@import "@/assets/scss/modules/management/list-main.scss"; |
||||
|
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
||||
|
</style> |
Loading…
Reference in new issue