Browse Source

Merge branch 'dev-calendar' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev-calendar

feature
dai 3 years ago
parent
commit
23d5b21711
  1. BIN
      src/assets/img/party-helper.gif
  2. 263
      src/views/modules/communityParty/orgActivity/activivityList/activivityList.vue
  3. 485
      src/views/modules/communityParty/orgActivity/activivityList/addActivity.vue
  4. 495
      src/views/modules/communityParty/orgActivity/activivityList/addRule.vue
  5. 100
      src/views/modules/communityParty/orgActivity/activivityList/scheduleForm.vue
  6. 200
      src/views/modules/communityParty/orgActivity/activivityList/yearplanList.vue
  7. 5
      src/views/modules/partymember/icpartyorg-add-or-update.vue
  8. 2
      src/views/modules/partymember/icpartyorgtree.vue

BIN
src/assets/img/party-helper.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

263
src/views/modules/communityParty/orgActivity/activivityList/activivityList.vue

@ -9,7 +9,7 @@
<div>
<el-form-item label="所属组织"
prop="serviceCategoryKey">
prop="publishPartyOrgId">
<el-cascader class="customer_cascader"
ref="myCascader"
size="small"
@ -20,8 +20,8 @@
@change="handleChangeAgency"></el-cascader>
</el-form-item>
<el-form-item label="活动类型"
prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryKey"
prop="actType">
<el-select v-model="formData.actType"
placeholder="请选择"
size="small"
clearable
@ -34,30 +34,29 @@
</el-select>
</el-form-item>
<el-form-item label="举办时间"
prop="serviceTimeStart">
<el-date-picker v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
prop="startDate">
<el-date-picker v-model="formData.startDate"
class="item_width_2"
size="small"
type="date"
value-format="yyyy-MM-dd HH:mm"
value="yyyy-MM-dd"
value-format="yyyyMMdd"
format="yyyy-MM-dd"
placeholder="开始时间">
</el-date-picker>
<span class="data-tag"></span>
<el-date-picker v-model="formData.serviceTimeEnd"
<el-date-picker v-model="formData.endDate"
:picker-options="endPickerOptions"
class="item_width_2 data-tag"
size="small"
type="date"
value-format="yyyy-MM-dd HH:mm"
value="yyyy-MM-dd"
value-format="yyyyMMdd"
format="yyyy-MM-dd"
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动地点"
prop="serviceProjectName">
<el-input v-model="formData.serviceProjectName"
prop="address">
<el-input v-model="formData.address"
class="item_width_2"
size="small"
clearable
@ -66,8 +65,8 @@
</el-form-item>
<el-form-item label="活动主题"
prop="serviceOrgName">
<el-input v-model="formData.serviceOrgName"
prop="topic">
<el-input v-model="formData.topic"
class="item_width_2"
size="small"
clearable
@ -76,9 +75,9 @@
</el-form-item>
<el-form-item label="发布状态"
prop="serviceStatus">
prop="isPublish">
<el-select class="item_width_2"
v-model="formData.serviceStatus"
v-model="formData.isPublish"
placeholder="全部"
size="small"
clearable>
@ -115,10 +114,13 @@
<el-button class="diy-button--add"
size="small"
@click="handleAddSchedule">添加日程提醒</el-button>
<!-- <el-button @click="handleExport"
<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> -->
size="small">导出</el-button>
</div>
<el-table :data="tableData"
@ -127,51 +129,61 @@
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
class="table"
style="width: 100%"
@select-all="selectAll"
@selection-change="selectionChange"
:height="maxTableHeight">
<el-table-column type="selection"
width="55">
</el-table-column>
<el-table-column label="序号"
fixed="left"
type="index"
align="center"
width="50" />
<el-table-column prop="serviceCategoryName"
<el-table-column prop="topic"
align="center"
min-width="150"
label="活动主题"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="serviceProjectName"
<el-table-column prop="publishPartyOrgName"
label="所属组织"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="serviceOrgName"
<el-table-column prop="actTypeName"
align="center"
width="100"
width="150"
label="会议类型"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="holdTime"
align="center"
width="110"
width="150"
label="开始时间"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="address"
align="center"
width="110"
label="活动地点"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="isPublish"
align="center"
width="80"
label="发布状态"
:show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.isPublish == '1'">已发布</span>
<span v-if="scope.row.isPublish == '0'">未发布</span>
</template>
</el-table-column>
<el-table-column fixed="right"
@ -179,16 +191,31 @@
align="center"
width="180">
<template slot-scope="scope">
<el-button @click="handlePublish(scope.row)"
<el-button @click="handleDetail(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">查看</el-button>
<el-button v-if="scope.row.isPublish == '0' && user.id===scope.row.publishStaffId"
@click="handlePublish(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">发布</el-button>
<el-button @click="handleEdit(scope.row)"
<!-- <el-button @click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">修改</el-button> -->
<el-button v-if="user.id===scope.row.publishStaffId"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">修改</el-button>
<el-button @click="handleDel(scope.row)"
<!-- <el-button @click="handleDel(scope.row)"
type="text"
size="small"
class="div-table-button--delete">删除</el-button> -->
<el-button v-if="user.id===scope.row.publishStaffId"
@click="handleDel(scope.row)"
type="text"
size="small"
class="div-table-button--delete">删除</el-button>
@ -222,6 +249,7 @@
@closed="showAdd = false">
<add-activity ref="ref_add_form"
:formType="formType"
:icPartyActId="icPartyActId"
@handleOk="handleOk"
@handleClose="handleClose"></add-activity>
</el-dialog>
@ -267,11 +295,9 @@ export default {
let endDisabledDate = (time) => {//datareturn
let nowData = Date.now()
if (this.formData.serviceTimeStart) {
let serviceTimeStart = new Date(this.formData.serviceTimeStart)
return time.getTime() > nowData || time.getTime() < serviceTimeStart || time.getTime() === serviceTimeStart
} else {
return time.getTime() > nowData
if (this.formData.startDate) {
let startDate = new Date(this.formData.startDate)
return time.getTime() < startDate || time.getTime() === startDate
}
}
@ -289,38 +315,23 @@ export default {
categrayArray: [],
statusArray: [
{
value: "in_service",
value: "0",
label: "未发布",
},
{
value: "completed",
value: "1",
label: "已发布",
},
],
satisfyArray: [
{
value: "bad",
label: "不满意",
},
{
value: "good",
label: "基本满意",
},
{
value: "perfect",
label: "非常满意",
},
],
formData: {
serviceCategoryKey: '',//id
serviceProjectName: '',//
serviceOrgName: '',//
serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd
serviceStatus: '',//in_servicecompleted:
satisfaction: '',//.:bad:good:perfect
publishPartyOrgId: '',//
actType: '',//
startDate: '',//20220817
endDate: '',//20220817
isPublish: '',//01:
address: '',
topic: '',
},
pageNo: 1,
@ -329,11 +340,10 @@ export default {
endPickerOptions: {
disabledDate: endDisabledDate
},
startPickerOptions: {
disabledDate: startDisabledDate
},
serviceRecordId: '',
serviceProjectName: '',
// startPickerOptions: {
// disabledDate: startDisabledDate
// },
orgOptions: [],
orgOptionProps: {
@ -351,7 +361,8 @@ export default {
showSchedule: false,
showType: 'list',
icPartyActId: '',
selection: []
};
},
computed: {
@ -363,13 +374,7 @@ export default {
...mapGetters(["clientHeight", "iframeHeight"]),
},
watch: {
"formData.serviceTimeEnd": function (val) {
if (val && val != '') {
let arrayTemp = val.split(' ')
this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59'
}
},
},
mounted () {
console.log(this.$store.state)
@ -402,11 +407,12 @@ export default {
},
handleChangeAgency (val) {
let obj = this.$refs["myCascader"].getCheckedNodes()[0].data
if (obj) {
this.formData.publishPartyOrgId = obj.id
} else {
this.formData.publishPartyOrgId = ''
}
},
@ -434,11 +440,10 @@ export default {
},
//
async getCategrayList () {
const url = "/sys/dict/data/dictlist"
const url = "/resi/partymember/icPartyAct/acttypelist"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/acttypelist"
let params = {
dictType: 'ic_service_type'
}
let params = {}
const { data, code, msg } = await requestPost(url, params)
@ -451,12 +456,15 @@ export default {
async handleAdd () {
this.icPartyActId = ''
this.addDiaTitle = '新增活动计划'
this.formType = 'add'
this.showAdd = true;
},
async handlePublish (row) {
this.icPartyActId = row.icPartyActId
this.$confirm("确认发布活动?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -479,7 +487,8 @@ export default {
async publishActivity () {
const url = `/heart/icServiceProject/service/cancel/${this.serviceRecordId}`;
const url = `/resi/partymember/icPartyAct/publish/${this.icPartyActId}`;
// const url = `http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/publish/${this.icPartyActId}`;
const { data, code, msg } = await requestPost(url, {});
@ -493,7 +502,15 @@ export default {
},
async handleDetail (row) {
this.icPartyActId = row.icPartyActId
this.addDiaTitle = '查看活动计划'
this.formType = 'detail'
this.showAdd = true
},
async handleEdit (row) {
this.icPartyActId = row.icPartyActId
this.addDiaTitle = '修改活动计划'
this.formType = 'edit'
this.showAdd = true
@ -518,9 +535,9 @@ export default {
async handleDel (row) {
this.serviceRecordId = row.serviceRecordId
this.icPartyActId = row.icPartyActId
this.$confirm("确认取消服务?", "提示", {
this.$confirm("活动删除后不可恢复,您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
@ -542,23 +559,79 @@ export default {
async cancelActivity () {
const url = `/heart/icServiceProject/service/cancel/${this.serviceRecordId}`;
const url = "/resi/partymember/icPartyAct/del";
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/del";
let params = []
params.push(this.icPartyActId)
const { data, code, msg } = await requestPost(url, {});
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("取消成功!");
this.$message.success("删除成功!");
this.getTableData();
} else {
this.$message.error("操作失败!");
}
},
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.icPartyActId)
});
const url = "/resi/partymember/icPartyAct/del";
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/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 = "/heart/icServiceProject/service/recordList";
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/recordList";
const url = "/resi/partymember/icPartyAct/page-list";
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/page-list";
const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,
@ -594,7 +667,8 @@ export default {
},
async handleExport () {
const url = "/gov/project/icEvent/export";
const url = "/resi/partymember/icPartyAct/export-act";
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/export-act";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -641,14 +715,15 @@ export default {
},
resetSearch () {
this.agencyIdArray = []
this.formData = {
serviceCategoryKey: '',
serviceProjectName: '',
serviceOrgName: '',
serviceTimeStart: '',
serviceTimeEnd: '',
serviceStatus: '',
satisfaction: ''
publishPartyOrgId: '',//
actType: '',//
startDate: '',//20220817
endDate: '',//20220817
isPublish: '',//
address: '',
topic: '',
}

485
src/views/modules/communityParty/orgActivity/activivityList/addActivity.vue

@ -6,17 +6,17 @@
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType==='detail'"
class="div_form">
<el-form-item label="活动类型"
label-width="150px"
prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryKey"
prop="actType">
<el-select v-model="formData.actType"
placeholder="请选择"
clearable
class="item_width_1">
<el-option v-for="(item,index) in categrayArray"
@click.native="hancleClickCategray(index)"
<el-option v-for="(item) in categrayArray"
:key="item.value"
:label="item.label"
:value="item.value">
@ -26,40 +26,41 @@
<el-form-item label="举办活动时间"
style="display: block"
prop="activityTime"
prop="holdTime"
label-width="150px">
<el-date-picker v-model="formData.activityTime"
<el-date-picker v-model="formData.holdTime"
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="活动主题"
prop="principalName"
prop="topic"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入活动主题"
v-model="formData.principalName">
v-model="formData.topic">
</el-input>
</el-form-item>
<el-form-item label="活动地点"
prop="principalName"
prop="address"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入活动地点"
v-model="formData.principalName">
v-model="formData.address">
</el-input>
</el-form-item>
<el-form-item label="自动发布时间"
prop="serviceProjectId"
prop="autoPublicType"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.serviceProjectId"
v-model="formData.autoPublicType"
placeholder="请选择"
filterable
clearable>
@ -72,26 +73,45 @@
</el-form-item>
<el-form-item label="参加活动党组织"
prop="serviceScope"
<el-form-item label="发布活动党组织"
prop="publichIdArray"
label-width="150px"
style="display: block">
<el-cascader class="item_width_1"
<div v-if="formType==='detail'"
class="item_width_1">{{formData.publishPartyOrgName}}</div>
<el-cascader v-else
class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
v-model="formData.publichIdArray"
:key="iscascaderShow"
:options="orgOptions"
:props="optionProps"
:options="publishOptions"
:props="publichOptionProps"
:show-all-levels="false"
@change="handleChangeScope"></el-cascader>
</el-form-item>
<el-form-item label="参加活动党组织"
prop="joinIdArray"
label-width="150px"
style="display: block">
<div v-if="formType==='detail'"
class="item_width_1">{{formData.joinNames}}</div>
<el-cascader v-else
class="item_width_1"
ref="myCascader_join"
v-model="formData.joinIdArray"
:key="joinIscascaderShow"
:options="joinOptions"
:props="joinOptionProps"
:show-all-levels="false"
@change="handleChangeJoinOrg"></el-cascader>
</el-form-item>
<el-form-item label="参加人员"
prop="serviceOrgId"
prop="joinUserType"
label-width="150px"
style="display: block">
<el-select class="item_width_1"
v-model="formData.serviceOrgId"
v-model="formData.joinUserType"
placeholder="请选择"
filterable
clearable>
@ -105,15 +125,15 @@
</el-form-item>
<el-form-item label="自动通知参加人员"
prop="remark"
prop="isAutoInform"
label-width="150px"
style="display: block">
<el-checkbox :label="'是'"
v-model="autoNotice"></el-checkbox>
v-model="isAutoInform"></el-checkbox>
</el-form-item>
<el-form-item label="活动介绍"
prop="remark"
prop="introduce"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
@ -122,7 +142,7 @@
show-word-limit
:rows="3"
placeholder="请输入活动介绍,不超过1000字"
v-model="formData.remark"></el-input>
v-model="formData.introduce"></el-input>
</el-form-item>
<el-form-item class="block"
@ -171,68 +191,70 @@ export default {
data () {
return {
btnDisable: false,
orgOptions: [],
scopeIdArray: [],
publishOptions: [],
iscascaderShow: 0,
publichOptionProps: {
multiple: false,
value: 'id',
label: 'partyOrgName',
children: 'children',
checkStrictly: true
},
joinOptions: [],
optionProps: {
joinIscascaderShow: 0,
joinOptionProps: {
multiple: true,
value: 'id',
label: 'partyOrgName',
children: 'children',
checkStrictly: true
checkStrictly: false
},
categrayArray: [],
formData: {
serviceCategoryKey: '',//id
serviceProjectId: '',//id
serviceOrgId: '',//id
serviceScope: [],//
principalName: '',//()
principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd
remark: '',//
icPartyActId: '',//
actType: '',// value
holdYearId: '',//yyyy
holdMonthId: '',//yyyyMM
holdTime: '',//yyyy-MM-dd HH:mm:ss
topic: '',//
address: '',//
latitude: '',//
longitude: '',//
autoPublicType: '',//key;
publishPartyOrgId: '',// id
publishPartyOrgName: '',//
publishOrgPid: '',// ID
publishOrgType: '',// 0,1,2,3,4,56
publishOrgPath: '',//PUBLISH_PARTY_ORG_ID便
joinUserType: '',//01
isAutoInform: '',// 01
introduce: '',//
joinOrgList: [],
attachmentList: [],
joinIdArray: [],
publichIdArray: [],
},
autoNotice: true,
isAutoInform: false,
autoTimeArray: [
{
valule: '3',
label: '活动开始前3天'
},
{
valule: '5',
label: '活动开始前5天'
},
{
valule: '7',
label: '活动开始前7天'
},
{
valule: '1',
label: '活动开始前1天'
},
],
autoTimeArray: [],
joinArray: [//
{
valule: 'all',
value: '0',
label: '全体党员'
},
{
valule: 'branch',
value: '1',
label: '支部委员'
},
],
fileList: [],
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile',
@ -240,183 +262,248 @@ export default {
},
watch: {
"formData.serviceTimeEnd": function (val) {
if (val && val != '') {
let arrayTemp = val.split(' ')
this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59'
}
},
"formData.holdTime": function (val) {
let array = val.split('-')
this.formData.holdYearId = array[0]
this.formData.holdMonthId = array[0] + array[1]
}
},
components: {},
async mounted () {
this.startLoading()
await this.getCategrayList()
await this.getAutoTimeArray()
await this.getOrgTreeList()
await this.getJoinOrgTreeList()
if (this.formType === 'add') {
this.$refs.ref_form.resetFields();
if (this.icPartyActId) {
await this.loadInfo()
} else {
this.$refs.ref_form.resetFields();
}
this.endLoading()
},
methods: {
handleChangeScope (value) {
hancleClickCategray () {
this.formData.serviceProjectId = ''
this.formData.serviceOrgId = ''
let obj = this.$refs["myCascader"].getCheckedNodes()[0].data
//
// this.loadOrgList()
if (obj) {
this.formData.publishPartyOrgId = obj.id//id
this.formData.publishPartyOrgName = obj.partyOrgName//
this.formData.publishOrgPid = obj.pid//ID
this.formData.publishOrgType = obj.partyOrgType// 0,1,2,3,4,56
this.formData.publishOrgPath = value.join(':')//PUBLISH_PARTY_ORG_ID便
} else {
this.formData.publishPartyOrgId = ''
this.formData.publishPartyOrgName = ''
this.formData.publishOrgPid = ''
this.formData.publishOrgType = ''
this.formData.publishOrgPath = ''
}
},
//
async getCategrayList () {
const url = "/sys/dict/data/dictlist"
handleChangeJoinOrg (value) {
console.log('value', value)
console.log('joinIdArray', this.formData.joinIdArray)
this.formData.joinOrgList = []
let selArray = this.$refs["myCascader_join"].getCheckedNodes()
console.log('selArray', selArray)
selArray.forEach((element, index) => {
let obj = {
joinOrgId: element.data.id,
orgType: element.data.partyOrgType,
pid: element.data.pid,
joinOrgPath: element.path.join(':'),
joinOrgName: element.data.partyOrgName,
}
this.formData.joinOrgList.push(obj)
});
},
async handleComfirm () {
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 10000)
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
// app.util.validateRule(messageObj)
this.btnDisable = false
} else {
this.addActivity()
}
})
},
async addActivity () {
// debugger
if (this.isAutoInform) {
this.formData.isAutoInform = '1'
} else {
this.formData.isAutoInform = '0'
}
this.formData.attachmentList = [...this.fileList]
if (this.formType === 'add') {
this.formData.icPartyActId = ''
}
console.log(this.formData)
const url = '/resi/partymember/icPartyAct/addOrUpdate'
// const url = 'http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/addOrUpdate'
let params = {
dictType: 'ic_service_type'
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.categrayArray = data
this.$message.success('操作成功')
this.resetData()
this.$emit('handleOk')
} else {
this.$message.error(msg)
}
},
async getOrgTreeList () {
async loadInfo () {
const url = `/resi/partymember/icPartyAct/act-detail/${this.icPartyActId}`;
// const url = `http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/act-detail/${this.icPartyActId}`;
const url = '/resi/partymember/icPartyOrg/getSearchTreelist'
let params = {
customerId: localStorage.getItem('customerId'),
agencyId: localStorage.getItem('agencyId')
};
let params = {}
const { data, code, msg } = await requestPost(url, params)
const { data, code, msg } = await requestGet(url, params);
console.log('data-orgparty----o', data)
if (code === 0) {
this.formData = { ...data }
this.orgOptions = data
this.formData.publichIdArray = data.publishOrgPath.split(':')
this.formData.joinIdArray = []
this.formData.joinNames = ''
data.joinOrgList.forEach(element => {
this.formData.joinIdArray.push(element.joinOrgPath.split(':'))
this.formData.joinNames = this.formData.joinNames + element.joinOrgName + ','
} else {
}
});
if (this.formData.joinNames) {
this.formData.joinNames = this.formData.joinNames.substring(0, this.formData.joinNames.length - 1)
}
this.isAutoInform = this.formData.isAutoInform == '1'
this.fileList = [... this.formData.attachmentList]
} else {
this.$message.error(msg)
}
},
//
async getCategrayList () {
const url = "/resi/partymember/icPartyAct/acttypelist"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/acttypelist"
handleChangeScope (value) {
this.formData.serviceScope = []
let selArray = this.$refs["myCascader"].getCheckedNodes()
selArray.forEach(element => {
let params = {}
let obj = {
objectType: element.data.objectType === 'grid' ? 'grid' : element.data.objectType === 'neighborhood' ? 'neighborhood' : 'agency',
objectId: element.data.objectId,
objectName: element.data.objectName,
}
this.formData.serviceScope.push(obj)
});
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.categrayArray = data
} else {
this.$message.error(msg)
}
},
//
async getAutoTimeArray () {
const url = "/sys/dict/data/dictlist"
//
async loadOrgList () {
const url = '/heart/icServiceOrg/selectlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist'
let params = {
serviceType: this.formData.serviceCategoryKey,
dictType: 'icpartyact_auto_publish_time'
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.orgList = data
this.autoTimeArray = data
this.autoTimeArray.forEach(element => {
element.value = parseInt(element.value)
});
} else {
this.$message.error(msg)
}
},
async handleComfirm () {
if (this.formType === 'add') {
this.handleAdd()
} else if (this.formType === 'feedback') {
}
},
async handleAdd () {
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 10000)
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
this.btnDisable = false
} else {
async getOrgTreeList () {
const url = '/resi/partymember/icPartyOrg/getSearchTreelist'
let params = {
customerId: localStorage.getItem('customerId'),
agencyId: localStorage.getItem('agencyId')
};
this.addActivity()
const { data, code, msg } = await requestGet(url, params);
console.log('data-orgparty----o', data)
if (code === 0) {
this.publishOptions = data
this.joinOptions = data
this.changeKey(this.joinOptions)
}
} else {
}
})
},
async addActivity () {
console.log(this.formData)
// return false
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
if (this.formData.principalContact && regPhone.test(this.formData.principalContact) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的手机号码'
})
return false;
changeKey (arr) {
for (var i = 0; i < arr.length; i++) {
arr[i].value = arr[i].userId
arr[i].label = arr[i].userName
if (arr[i].children.length) {
this.changeKey(arr[i].children)
} else {
delete arr[i].children
}
}
},
const url = '/heart/icServiceProject/service/initiate'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate'
//
async getJoinOrgTreeList () {
const url = '/resi/partymember/icPartyOrg/getOrgTreeHaveGroup'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist'
let params = {
agencyId: localStorage.getItem('agencyId')
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message.success('发起成功')
this.resetData()
this.$emit('handleOk')
// this.joinOptions = data
} else {
this.$message.error(msg)
}
},
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
@ -449,21 +536,23 @@ export default {
const mp3Array = ['mp3']
if (picArray.indexOf(fileType) > -1) {
file.attachmentFormat = 'image'
file.format = 'image'
} else if (videoarray.indexOf(fileType) > -1) {
file.attachmentFormat = 'video'
file.format = 'video'
} else if (docArray.indexOf(fileType) > -1) {
file.attachmentFormat = 'doc'
file.format = 'doc'
} else if (mp3Array.indexOf(fileType) > -1) {
file.attachmentFormat = 'voice'
file.format = 'voice'
}
file.url = res.data.url
file.type = fileType
file.attachmentName = file.name
file.attachmentType = file.type
file.attachmentUrl = file.url
// file.attachmentName = file.name
// file.attachmentType = file.type
// file.attachmentUrl = file.url
file.format = file.attachmentFormat
this.fileList.push(file)
console.log(this.fileList)
@ -491,17 +580,30 @@ export default {
resetData () {
this.formData = {
serviceCategoryKey: '',//id
serviceProjectId: '',//id
serviceOrgId: '',//id
serviceScope: [],//
principalName: '',//()
principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd
remark: '',//
this.formData = {
icPartyActId: '',//
actType: '',// value
holdYearId: '',//yyyy
holdMonthId: '',//yyyyMM
holdTime: '',//yyyy-MM-dd HH:mm:ss
topic: '',//
address: '',//
latitude: '',//
longitude: '',//
autoPublicType: '',//key;
publishPartyOrgId: '',// id
publishPartyOrgName: '',//
publishOrgPid: '',// ID
publishOrgType: '',// 0,1,2,3,4,56
publishOrgPath: '',//PUBLISH_PARTY_ORG_ID便
joinUserType: '',//01
isAutoInform: '',// 01
introduce: '',//
joinOrgList: [],
attachmentList: [],
joinIdArray: [],
publichIdArray: []
}
@ -526,21 +628,30 @@ export default {
dataRule () {
return {
serviceCategoryKey: [
{ required: true, message: '服务类别不能为空', trigger: 'blur' },
actType: [
{ required: true, message: '活动类型不能为空', trigger: 'change' },
],
serviceProjectId: [
{ required: true, message: '服务项目不能为空', trigger: 'blur' }
holdTime: [
{ required: true, message: '活动举办时间不能为空', trigger: 'change' }
],
serviceOrgId: [
{ required: true, message: '服务组织不能为空', trigger: 'blur' }
topic: [
{ required: true, message: '活动主题不能为空', trigger: 'change' }
],
address: [
{ required: true, message: '活动地点不能为空', trigger: 'change' }
],
autoPublicType: [
{ required: true, message: '自动发布时间不能为空', trigger: 'change' }
],
joinUserType: [
{ required: true, message: '参加人员不能为空', trigger: 'change' }
],
serviceTimeStart: [
{ required: true, message: '服务时间不能为空', trigger: 'blur' }
joinIdArray: [
{ required: true, message: '参加活动党组织不能为空', trigger: 'change' }
],
serviceScope: [
{ required: true, message: '服务范围不能为空', trigger: 'blur' }
publichIdArray: [
{ required: true, message: '发布活动党组织不能为空', trigger: 'change' }
],
}
@ -550,12 +661,14 @@ export default {
},
props: {
formType: { // addeditdetail
type: String,
required: ''
},
icPartyActId: {
type: String,
required: ''
},
}
}

495
src/views/modules/communityParty/orgActivity/activivityList/addRule.vue

@ -27,7 +27,7 @@
</div>
<div class="div_search">
<span>活动举办频次</span>
<span style="margin-left:30px">每季度一次</span>
<span style="margin-left:30px">{{selActType.frequencyDesc?selActType.frequencyDesc:'--'}}</span>
</div>
</div>
@ -47,18 +47,18 @@
width="50">
</el-table-column>
<el-table-column prop="reviewTime"
<el-table-column prop="holdTime"
header-align="center"
align="center"
label="举办活动时间"
width="200">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.reviewTime"
<el-date-picker v-model="scope.row.holdTime"
style="width: 175px"
size="small"
format="yyyy-MM-dd hh:mm"
value-format="yyyy-MM-dd hh:mm"
format="yyyy-MM-dd hh:mm:ss"
value-format="yyyy-MM-dd hh:mm:ss"
type="datetime"
placeholder="选择日期">
</el-date-picker>
@ -83,14 +83,14 @@
</template>
</el-table-column>
<el-table-column prop="theme"
<el-table-column prop="topic"
header-align="center"
align="center"
label="活动主题"
width="220">
min-width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.theme"
<el-input v-model="scope.row.topic"
style="width: 195px"
size="small"
placeholder="输入主题">
@ -103,25 +103,43 @@
<el-table-column prop="scopeId"
header-align="center"
align="center"
label="参加活动党组织"
label="发布活动党组织"
width="220">
<template slot-scope="scope">
<el-cascader style="width: 195px"
ref="myCascader"
v-model="scope.row.scopeIdArray"
size="small"
<el-cascader class="item_width_1"
:ref="'myCascader'+scope.$index"
v-model="scope.row.publichIdArray"
:key="iscascaderShow"
:options="orgOptions"
:props="optionProps"
:options="publishOptions"
:props="publichOptionProps"
:show-all-levels="false"
@change="handleChangeScope"></el-cascader>
@change="handleChangeScope(scope.$index)"></el-cascader>
</template>
</el-table-column>
<el-table-column prop="scopeId"
header-align="center"
align="center"
label="参加活动党组织"
width="220">
<template slot-scope="scope">
<el-cascader class="item_width_1"
:ref="'myCascader_join'+scope.$index"
v-model="scope.row.joinIdArray"
:key="joinIscascaderShow"
:options="joinOptions"
:props="joinOptionProps"
:show-all-levels="false"
@change="((value)=>{handleChangeJoinOrg(value,scope.$index)})"></el-cascader>
<el-table-column prop="joinPerson"
</template>
</el-table-column>
<el-table-column prop="joinUserType"
header-align="center"
align="center"
label="参加人员"
@ -131,7 +149,7 @@
<el-select style="width: 115px"
size="small"
v-model="scope.row.joinPerson"
v-model="scope.row.joinUserType"
placeholder="请选择"
clearable>
<el-option v-for="item in joinArray"
@ -143,7 +161,7 @@
</template>
</el-table-column>
<el-table-column prop="autoTime"
<el-table-column prop="autoPublicType"
header-align="center"
align="center"
label="自动发布时间"
@ -152,7 +170,7 @@
<template slot-scope="scope">
<el-select style="width: 135px"
v-model="scope.row.autoTime"
v-model="scope.row.autoPublicType"
size="small"
placeholder="请选择"
filterable
@ -167,7 +185,7 @@
</template>
</el-table-column>
<el-table-column prop="autoNotice"
<el-table-column prop="isAutoInformShow"
header-align="center"
align="center"
label="自动通知"
@ -177,7 +195,7 @@
<el-checkbox :label="'是'"
size="small"
v-model="scope.row.autoNotice"></el-checkbox>
v-model="scope.row.isAutoInformShow"></el-checkbox>
</template>
</el-table-column>
@ -201,8 +219,11 @@
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button @click="handleCancle">确定</el-button>
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
type="primary"
@click="handleComfirm">确定</el-button>
</div>
</div>
@ -212,7 +233,7 @@
<script>
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request'
import { requestPost, requestGet } from '@/js/dai/request'
let loading //
export default {
@ -221,155 +242,133 @@ export default {
tableLoading: false,
tableData: [],
actTypeArray: [
{
value: '1',
label: '支部党员大会',
fre: 4
},
{
value: '2',
label: '支部委员会',
fre: 12
}
],
actTypeArray: [],
selActType: {},
actType: "",
joinArray: [//
{
valule: 'all',
value: '0',
label: '全体党员'
},
{
valule: 'branch',
value: '1',
label: '支部委员'
},
],
autoTimeArray: [
{
valule: '3',
label: '活动开始前3天'
},
{
valule: '5',
label: '活动开始前5天'
},
{
valule: '7',
label: '活动开始前7天'
},
{
valule: '1',
label: '活动开始前1天'
},
],
orgOptions: [],
autoTimeArray: [],
publishOptions: [],
publichIdArray: [],
iscascaderShow: 0,
publichOptionProps: {
multiple: false,
value: 'id',
label: 'partyOrgName',
children: 'children',
checkStrictly: true
},
optionProps: {
joinOptions: [],
joinIdArray: [],
joinIscascaderShow: 0,
joinOptionProps: {
multiple: true,
value: 'id',
label: 'partyOrgName',
children: 'children',
checkStrictly: true
checkStrictly: false
},
defaultPublishParty: {}
}
},
components: {},
mounted () {
async mounted () {
await this.getOrgTreeList()
await this.getJoinOrgTreeList()
await this.getCategrayList()
await this.getAutoTimeArray()
await this.getDefaultPublishParty()
},
methods: {
handleClickActType (index) {
handleChangeScope (index) {
},
async initTable () {
await this.getOrgTreeList()
// await this.loadTable()
handleChangeJoinOrg (value, index) {
},
handleAdd () {
let obj = {
isNew: true,//
reviewTime: '',
address: '',
theme: '',
scopeIdArray: [],
joinPerson: '',
autoTime: '',
autoNotice: true,
async handleClickActType (index) {
this.selActType = { ...this.actTypeArray[index] }
//
// await this.getTableData()
//
// if (this.tableData.length === 0) {
for (let i = 0; i < this.selActType.yearCount; i++) {
this.handleAdd()
}
this.tableData.push(obj)
},
// }
async getOrgTreeList () {
const url = '/resi/partymember/icPartyOrg/getSearchTreelist'
},
async getTableData () {
this.tableLoading = true
const url = "/resi/partymember/icPartyAct/yearSearch";
let params = {
customerId: localStorage.getItem('customerId'),
agencyId: localStorage.getItem('agencyId')
};
yearId: this.yearId
}
const { data, code, msg } = await requestGet(url, params);
console.log('data-orgparty----o', data)
const { data, code, msg } = await requestPost(url, params);
this.tableLoading = false
if (code === 0) {
let tempArray = []
this.orgOptions = data
data.forEach(item => {
} else {
}
if (item.type === this.actType) {
tempArray = []
},
item.activityList.forEach(actItem => {
actItem.publichIdArray = actItem.publishOrgPath.split(':')
actItem.joinIdArray = []
actItem.joinOrgList.forEach(element => {
actItem.joinIdArray.push(element.joinOrgPath.split(':'))
});
//form
async loadTable () {
this.tableLoading = true
const url = '/gov/org/placepatrolreviewrecord/getlist'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolreviewrecord/getlist'
let params = {
placePatrolRecordId: this.placePatrolRecordId
}
item.isAutoInform = item.isAutoInform == '1'
const { data, code, msg } = await requestPost(url, params)
this.tableLoading = false
if (code === 0) {
tempArray.push(actItem)
});
}
if (data.list && data.list.length > 0) {
data.list.forEach(item => {
item.isEdit = false
item.isNew = false
let arrayInspectors = item.inspectors.split(',')
item.inspectorArray = [...arrayInspectors]
let arrayReviewTime = item.reviewTime.split(' ')
item.reviewTime = arrayReviewTime[0]
});
});
this.tableData = tempArray
console.log(' this.tableData', this.tableData)
this.tableData = [...data.list]
} else {
this.tableData = []
}
} else {
this.$message.error(msg)
this.$message.error(msg);
}
},
async handleComfirm (row, tableIndex) {
let valiMsg = this.validata(row)
async handleComfirm () {
this.disposeParty()
let valiMsg = this.validata()
if (valiMsg) {
this.$message({
type: 'warning',
@ -377,31 +376,23 @@ export default {
})
return false
}
this.addReview(row, tableIndex)
console.log(this.tableData)
this.addPlan()
},
async addReview (row, tableIndex) {
async addPlan () {
let url = "/gov/org/placepatrolreviewrecord/add"
if (row.placePatrolReviewRecordId) {
url = "/gov/org/placepatrolreviewrecord/edit"
}
let url = "/resi/partymember/icPartyAct/batch-add"
let params = JSON.parse(JSON.stringify(row))
params.inspectors = params.inspectorArray.join(',')
params.reviewTime = params.reviewTime + ' 00:00:00'
let params = {
delActIds: [],
actList: this.tableData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let array = data.reviewTime.split(' ')
data.reviewTime = array[0]
data.isEdit = false
data.isNew = false
this.$set(this.tableData, tableIndex, data)
this.$emit('handleOk')
} else {
this.$message.error(msg)
@ -409,34 +400,66 @@ export default {
},
validata (row) {
disposeParty () {
this.tableData.forEach((tableItem, index) => {
//
tableItem.joinOrgList = []
let selJoinArray = this.$refs["myCascader_join" + index].getCheckedNodes()
console.log('selJoinArray', selJoinArray)
selJoinArray.forEach(joinItem => {
let obj = {
joinOrgId: joinItem.data.id,
orgType: joinItem.data.partyOrgType,
pid: joinItem.data.pid,
joinOrgName: joinItem.data.partyOrgName,
joinOrgPath: joinItem.path.join(':'),
}
tableItem.joinOrgList.push(obj)
});
});
},
validata () {
let message = ''
if (row.reviewTime === '') {
message = message + '复查时间不能为空;'
}
if (row.placePatrolTeamId === '') {
message = message + '分队名称不能为空;'
}
if (row.inspectorArray.length === 0) {
message = message + '检查人员不能为空;'
}
if (row.reviewResult === '') {
message = message + '复查结论不能为空;'
console.log(this.tableData)
for (let i = 0; i < this.tableData.length; i++) {
let oneData = this.tableData[i]
if (oneData.holdTime) {
let array = oneData.holdTime.split('-')
oneData.holdYearId = array[0]
oneData.holdMonthId = array[0] + array[1]
}
oneData.isAutoInform = oneData.isAutoInformShow ? '1' : '0'
if (oneData.actType === '' || oneData.holdTime === '' || oneData.topic === '' || oneData.address === '' || oneData.publishPartyOrgId === ''
|| oneData.joinUserType === '' || oneData.joinIdArray.length === 0) {
message = '第' + (i + 1) + "行填写不完整,请先填写完整!"
break;
}
}
return message
},
async handleDelete (row, tableIndex) {
this.$confirm("确认删除?", "提示", {
this.$confirm("活动删除后不可恢复,您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
// if (row.icPartyActId) {
// this.icPartyActId = row.icPartyActId
// this.delPlan(tableIndex)
// } else {
this.tableData.splice(tableIndex, 1);
// }
})
.catch(err => {
@ -447,33 +470,173 @@ export default {
});
},
async deleteRecord (row, tableIndex) {
async delPlan (tableIndex) {
const url = "/resi/partymember/icPartyAct/del";
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/del";
let params = []
params.push(this.icPartyActId)
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("删除成功!");
this.tableData.splice(tableIndex, 1);
// this.getTableData();
} else {
this.$message.error("操作失败!");
}
},
handleCancle () {
this.$emit('handleClose')
},
handleAdd () {
if (!this.actType) {
this.$message({
type: 'info',
message: '请先选择活动类型'
})
return false
}
let obj = {
icPartyActId: '',//
actType: this.actType,// value
holdYearId: '',//yyyy
holdMonthId: '',//yyyyMM
holdTime: '',//yyyy-MM-dd HH:mm:ss
topic: '',//
address: '',//
latitude: '',//
longitude: '',//
autoPublicType: '',//key;
publishPartyOrgId: this.defaultPublishParty.defaultPartyOrgId,// id
publishPartyOrgName: this.defaultPublishParty.defaultPartyOrgName,//
publishOrgPid: this.defaultPublishParty.defaultPartyOrgPid,// ID
publishOrgType: this.defaultPublishParty.orgType,// 0,1,2,3,4,56
publishOrgPath: this.defaultPublishParty.defaultPartyOrgPath,//PUBLISH_PARTY_ORG_ID便
joinUserType: '',//01
isAutoInform: '',// 01
introduce: '',//
attachmentList: [],
joinOrgList: [],
publichIdArray: this.defaultPublishParty.defaultPartyOrgPath.split(':'),
// publichIdArray: ['1536584227130798081'],
joinIdArray: [],
isAutoInformShow: true
}
this.tableData.push(obj)
},
const url = "/gov/org/placepatrolreviewrecord/del"
async getOrgTreeList () {
const url = '/resi/partymember/icPartyOrg/getSearchTreelist'
let params = {
placePatrolReviewRecordId: row.placePatrolReviewRecordId
customerId: localStorage.getItem('customerId'),
agencyId: localStorage.getItem('agencyId')
};
const { data, code, msg } = await requestGet(url, params);
console.log('data-orgparty----o', data)
if (code === 0) {
this.publishOptions = data
this.joinOptions = data
this.changeKey(this.joinOptions)
} else {
}
},
changeKey (arr) {
for (var i = 0; i < arr.length; i++) {
arr[i].value = arr[i].userId
arr[i].label = arr[i].userName
if (arr[i].children.length) {
this.changeKey(arr[i].children)
} else {
delete arr[i].children
}
}
},
//
async getJoinOrgTreeList () {
const url = '/resi/partymember/icPartyOrg/getOrgTreeHaveGroup'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist'
let params = {
agencyId: localStorage.getItem('agencyId')
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
// this.$message({
// type: "success",
// message: ""
// });
// this.joinOptions = data
} else {
this.$message.error(msg)
}
},
this.tableData.splice(tableIndex, 1);
//
async getCategrayList () {
const url = "/resi/partymember/icPartyAct/acttypelist"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/acttypelist"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.actTypeArray = data
} else {
this.$message.error(msg)
}
},
handleCancle () {
this.$emit('dialogCancle')
//
async getAutoTimeArray () {
const url = "/sys/dict/data/dictlist"
let params = {
dictType: 'icpartyact_auto_publish_time'
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.autoTimeArray = data
} else {
this.$message.error(msg)
}
},
//
async getDefaultPublishParty () {
const url = "/resi/partymember/icPartyOrg/defaultpartyorg"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyOrg/defaultpartyorg"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.defaultPublishParty = data
} else {
this.$message.error(msg)
}
},
//
startLoading () {
@ -503,11 +666,11 @@ export default {
},
props: {
yearId: {
type: String,
required: true
},
resultList: {
type: Array,
default: []
}
}
}
</script>

100
src/views/modules/communityParty/orgActivity/activivityList/scheduleForm.vue

@ -8,21 +8,22 @@
:rules="dataRule"
class="div_form">
<el-form-item label="活动标题"
prop="principalName"
<el-form-item label="日程标题"
prop="title"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入活动标题"
v-model="formData.principalName">
v-model="formData.title">
</el-input>
</el-form-item>
<el-form-item label="提醒时间"
style="display: block"
prop="activityTime"
prop="remindTime"
label-width="150px">
<el-date-picker v-model="formData.activityTime"
<el-date-picker v-model="formData.remindTime"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择时间">
</el-date-picker>
@ -30,8 +31,8 @@
<el-form-item label="是否公开"
label-width="150px"
prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryKey"
prop="isPublic">
<el-select v-model="formData.isPublic"
placeholder="请选择"
clearable
class="item_width_1">
@ -43,7 +44,7 @@
</el-select>
</el-form-item>
<el-form-item label="活动介绍"
<el-form-item label="备注"
prop="remark"
label-width="150px"
style="display: block">
@ -87,27 +88,22 @@ export default {
formData: {
serviceCategoryKey: '',//id
serviceProjectId: '',//id
serviceOrgId: '',//id
serviceScope: [],//
principalName: '',//()
principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd
title: '',//
remindTime: '',//
isPublic: '',//
remark: '',//
scheduleId: '',
},
gongkaiArray: [
{
valule: '1',
value: '0',
label: '仅自己可见'
},
{
valule: '2',
value: '1',
label: '组织内其他人可见'
},
@ -141,7 +137,7 @@ export default {
}, 10000)
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
this.btnDisable = false
} else {
@ -158,10 +154,8 @@ export default {
console.log(this.formData)
const url = '/heart/icServiceProject/service/initiate'
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate'
const url = '/resi/partymember/icSchedule/addOrEdit'
// const url = 'http://yapi.elinkservice.cn/mock/245/icSchedule/addOrEdit'
let params = {
...this.formData
@ -190,15 +184,11 @@ export default {
resetData () {
this.formData = {
serviceCategoryKey: '',//id
serviceProjectId: '',//id
serviceOrgId: '',//id
serviceScope: [],//
principalName: '',//()
principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd
title: '',//
remindTime: '',//
isPublic: '',//
remark: '',//
scheduleId: '',
}
@ -224,50 +214,16 @@ export default {
dataRule () {
return {
serviceCategoryKey: [
{ required: true, message: '服务类别不能为空', trigger: 'blur' },
],
serviceProjectId: [
{ required: true, message: '服务项目不能为空', trigger: 'blur' }
],
serviceOrgId: [
{ required: true, message: '服务组织不能为空', trigger: 'blur' }
],
serviceTimeStart: [
{ required: true, message: '服务时间不能为空', trigger: 'blur' }
],
serviceScope: [
{ required: true, message: '服务范围不能为空', trigger: 'blur' }
title: [
{ required: true, message: '日程标题不能为空', trigger: 'change' },
],
}
},
feedbackDataRule () {
return {
serviceProjectName: [
{ required: true, message: '服务项目不能为空', trigger: 'blur' },
remindTime: [
{ required: true, message: '提醒时间不能为空', trigger: 'change' }
],
serviceGoal: [
{ required: true, message: '服务目标不能为空', trigger: 'blur' }
isPublic: [
{ required: true, message: '是否公开不能为空', trigger: 'change' }
],
serviceEffect: [
{ required: true, message: '服务效果不能为空', trigger: 'blur' }
],
servicePeopleNumber: [
{ required: true, message: '服务人数不能为空', trigger: 'blur' }
],
serviceStatus: [
{ required: true, message: '服务状态不能为空', trigger: 'blur' }
],
satisfaction: [
{ required: true, message: '满意度不能为空', trigger: 'blur' }
],
address: [
{ required: true, message: '地址不能为空', trigger: 'blur' }
]
}
},

200
src/views/modules/communityParty/orgActivity/activivityList/yearplanList.vue

@ -10,7 +10,7 @@
<el-form-item label="活动类型"
prop="serviceCategoryKey">
<el-select v-model="formData.year"
<el-select v-model="formData.yearId"
placeholder="请选择"
size="small"
clearable
@ -47,69 +47,89 @@
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
class="table"
style="width: 100%"
:span-method="objectSpanMethod"
:height="maxTableHeight">
<el-table-column label="序号"
<!-- <el-table-column label="序号"
fixed="left"
type="index"
align="center"
width="50" />
width="50" /> -->
<el-table-column prop="serviceCategoryName"
<el-table-column prop="actType"
align="center"
width="100"
width="120"
label="活动类别"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="serviceProjectName"
<el-table-column prop="frequency"
label="举办频次"
width="120"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="serviceOrgName"
<el-table-column prop="holdTime"
align="center"
width="100"
width="160"
label="活动时间"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="address"
align="center"
width="110"
min-width="180"
label="活动地点"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="topic"
align="center"
width="110"
min-width="180"
label="活动主题"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="publishPartyOrgName"
align="center"
width="80"
min-width="180"
label="发布活动党支部"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="publishStaffName"
align="center"
width="120"
label="发布人"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="joinOrgsShow"
align="center"
min-width="200"
label="参加活动党支部"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="joinUserTypeName"
align="center"
width="80"
label="参加人员"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="autoPublicTypeDesc"
align="center"
width="80"
width="120"
label="自动发布时间"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="servicePeopleNumber"
<el-table-column prop="isAutoInformValue"
align="center"
width="80"
label="自动通知"
:show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.isAutoInform == '1'"></span>
<span v-if="scope.row.isAutoInform == '0'"></span>
</template>
</el-table-column>
<el-table-column fixed="right"
@ -118,12 +138,19 @@
width="180">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.row)"
<el-button @click="handleDetail(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">查看</el-button>
<el-button v-if="user.id===scope.row.publishStaffId"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">修改</el-button>
<el-button @click="handleDel(scope.row)"
<el-button v-if="user.id===scope.row.publishStaffId"
@click="handleDel(scope.row)"
type="text"
size="small"
class="div-table-button--delete">删除</el-button>
@ -151,6 +178,7 @@
class="dialog-h"
@closed="showAdd = false">
<add-rule ref="ref_add_form"
:yearId="formData.yearId"
@handleOk="handleOk"
@handleClose="handleClose"></add-rule>
</el-dialog>
@ -165,6 +193,7 @@
@closed="showEdit = false">
<add-activity ref="ref_edit_form"
:formType="formType"
:icPartyActId="icPartyActId"
@handleOk="handleOk"
@handleClose="handleClose"></add-activity>
</el-dialog>
@ -190,13 +219,14 @@ export default {
agencyId: '',
tableData: [],
categrayArray: [],
originalData: [],
rowArray: [],//
yearArray: [],
formData: {
year: '',
yearId: '',
},
serviceRecordId: '',
serviceProjectName: '',
icPartyActId: '',
showAdd: false,
@ -220,14 +250,14 @@ export default {
},
mounted () {
console.log(this.$store.state)
this.user = this.$store.state.user
this.agencyId = this.user.agencyId
this.yearArray = []
let now = new Date()
let year = now.getFullYear()
this.formData.year = year
this.formData.yearId = year + ''
for (let i = 0; i < 5; i++) {
let obj = {
value: (year - i) + '',
@ -241,6 +271,48 @@ export default {
this.getTableData();
},
methods: {
flitterData (arr) {
let spanOneArr = []
let concatOne = 0
arr.forEach((item, index) => {
if (index === 0) {
spanOneArr.push(1)
} else {
if (item.actType === arr[index - 1].actType) { //
spanOneArr[concatOne] += 1
spanOneArr.push(0)
} else {
spanOneArr.push(1)
concatOne = index
};
}
});
return {
one: spanOneArr,
}
},
objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) { //
const _row = (this.flitterData(this.tableData).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
};
}
if (columnIndex === 1) { //
const _row = (this.flitterData(this.tableData).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
};
}
},
handleCancle () {
this.$emit('handleClose')
},
@ -253,27 +325,28 @@ export default {
this.getTableData();
},
async handleAdd () {
this.formType = 'add'
this.showAdd = true;
},
},
async handleDetail (row) {
this.icPartyActId = row.icPartyActId
this.addDiaTitle = '查看活动计划'
this.formType = 'detail'
this.showEdit = true
},
async handleEdit (row) {
this.icPartyActId = row.icPartyActId
this.formType = 'edit'
this.showEdit = true
},
handleClose () {
this.serviceRecordId = ""
this.formType = ''
this.showAdd = false
@ -291,9 +364,9 @@ export default {
async handleDel (row) {
this.serviceRecordId = row.serviceRecordId
this.icPartyActId = row.icPartyActId
this.$confirm("确认取消活动?", "提示", {
this.$confirm("活动删除后不可恢复,您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
@ -315,13 +388,14 @@ export default {
async cancelActivity () {
const url = `/heart/icServiceProject/service/cancel/${this.serviceRecordId}`;
const url = '/resi/partymember/icPartyAct/del';
// const url = 'http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/del';
let params = [this.icPartyActId]
const { data, code, msg } = await requestPost(url, {});
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("取消成功!");
this.$message.success("删除成功!");
this.getTableData();
} else {
this.$message.error("操作失败!");
@ -330,33 +404,45 @@ export default {
async getTableData () {
this.tableLoading = true
const url = "/heart/icServiceProject/service/recordList";
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/recordList";
const url = "/resi/partymember/icPartyAct/yearSearch";
// const url = "http://yapi.elinkservice.cn/mock/245/icPartyAct/yearSearch";
const { data, code, msg } = await requestPost(url, this.formData);
this.tableLoading = false
if (code === 0) {
let tempArray = []
this.rowArray = []
this.total = data.total || 0;
this.tableData = data.list
? data.list.map((item) => {
return item;
})
: [];
this.originalData = data.concat();
data.forEach(item => {
item.activityList.forEach(actItem => {
actItem.actType = item.typeValue
actItem.frequency = item.frequency
if (actItem.joinOrgList && actItem.joinOrgList.length > 0) {
let arr = []
actItem.joinOrgList.forEach(element => {
arr.push(element.joinOrgName)
});
actItem.joinOrgsShow = arr.join(',')
} else {
actItem.joinOrgsShow = ''
}
this.tableData.forEach(item => {
if (item.operationType === '2') {
item.operationTypeShow = '已转需求'
}
if (item.operationType === '1') {
item.operationTypeShow = '已立项'
}
if (item.operationType === '0') {
item.operationTypeShow = '已回复'
}
tempArray.push(actItem)
});
this.rowArray.push(item.activityList.length)
});
this.tableData = tempArray
} else {
this.$message.error(msg);
}

5
src/views/modules/partymember/icpartyorg-add-or-update.vue

@ -37,6 +37,7 @@
</el-form-item>
<el-form-item v-if="!dataForm.sjdzzName" prop="mySelectOrg" label="上级党组织">
<el-cascader
ref="myOrg"
style="width:300px"
v-model="dataForm.mySelectOrg"
:options="orgList"
@ -298,7 +299,7 @@
handleChangeOrg(e) {
if (this.dataForm.mySelectOrg.length > 0 && this.dataForm.mySelectOrg) {
this.dataForm.orgPid = this.dataForm.mySelectOrg[this.dataForm.mySelectOrg.length - 1]
this.dataForm.orgPids = ''
this.dataForm.orgPids = this.$refs.myOrg.getCheckedNodes()[0].data.orgPids;
this.dataForm.mySelectOrg.forEach(element => {
this.dataForm.orgPids = this.dataForm.orgPids ? this.dataForm.orgPids + ':' + element : element
});
@ -330,7 +331,7 @@
})
},
getInfoAgencyLisy(){
this.$http.get('/gov/org/customeragency/getOrgTreeByUserAndType', {params: {agencyId: this.agencyId, orgType: this.dataForm.partyOrgType}}).then(({data: res}) => {
this.$http.get('/gov/org/customeragency/getOrgTreeByUserAndType', {params: {agencyId: this.dataForm.pid?this.dataForm.pid:this.agencyId, orgType: this.dataForm.partyOrgType}}).then(({data: res}) => {
if (res.code !== 0) {
return this.$message.error(res.internalMsg ? res.internalMsg : res.msg ? res.msg : '查询失败')
}

2
src/views/modules/partymember/icpartyorgtree.vue

@ -25,7 +25,7 @@
size="small"
class="div-table-button--detail">{{'查看党员'}}</el-button>
<el-button v-if="(scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)) && scope.row.partyOrgType != '5'"
@click="addOrUpdateHandle('', scope.row.id, scope.row.orgPids, '', scope.row.partyOrgType, scope.row.partyOrgName)"
@click="addOrUpdateHandle('', scope.row.id, scope.row.orgPids, scope.row.agencyId, scope.row.partyOrgType, scope.row.partyOrgName)"
type="text"
size="small"
class="div-table-button--add">新增下级</el-button>

Loading…
Cancel
Save