平昌党建先提交挂起

This commit is contained in:
aixianling
2022-10-24 16:13:01 +08:00
parent 9209ac9fae
commit a9351c58d3
7 changed files with 305 additions and 77 deletions

View File

@@ -3,33 +3,43 @@
<ai-detail>
<ai-title slot="title" title="换届设置" isShowBottomBorder isShowBack @onBackClick="cancel(true)"/>
<template slot="content">
<ai-card title="基本信息">
<template #content>
<div class="tips">
<i class="el-icon-warning"></i>
系统将在下次换届时间开始前换届提醒人进行提醒提醒方式包括平台消息推送短信提醒
</div>
<div class="add-form">
<el-form ref="form" :model="form" :rules="formRules" size="small" label-width="150px">
<el-form-item label="组织名称">{{ org.name }}</el-form-item>
<el-form-item label="成立时间">{{ $dateFormat(org.createTime) }}</el-form-item>
<el-form-item label="换届类型" prop="type">
<el-radio v-model="form.type" label="0">年换届</el-radio>
<el-radio v-model="form.type" label="1">五年换届</el-radio>
</el-form-item>
<el-form-item label="换届提醒人" prop="userList">
<ai-person-select :instance="instance" :customClicker="true" :chooseUserList="chooseUserList"
:url="`/app/appparty/list?partyOrgId=${form.organizationId}`" headerTitle="党员列表"
:isMultiple="true" dialogTitle="选择抄送人" @selectPerson="selectUser" class="aipersonselect">
<template name="option" v-slot:option="{ item }">
<span class="iconfont iconProlife">{{ item.name }}</span>
</template>
</ai-person-select>
</el-form-item>
</el-form>
</div>
</template>
</ai-card>
<el-form ref="SettingForm" :model="form" :rules="formRules" size="small" label-width="150px">
<ai-card title="基本信息">
<template #content>
<div class="tips">
<i class="el-icon-warning"></i>
系统将在下次换届时间开始前换届提醒人进行提醒提醒方式包括平台消息推送短信提醒
</div>
<el-form-item label="单位名称">{{ org.name }}</el-form-item>
<el-form-item label="成立时间">{{ $dateFormat(org.createTime) }}</el-form-item>
<el-form-item label="换届类型" prop="type">
<el-radio v-model="form.type" label="0">三年换届</el-radio>
<el-radio v-model="form.type" label="1">年换届</el-radio>
</el-form-item>
<el-form-item label="换届提醒人" prop="userList">
<ai-person-select :instance="instance" :customClicker="true" :chooseUserList="chooseUserList"
:url="`/app/appparty/list?partyOrgId=${org.id}`" headerTitle="党员列表"
:isMultiple="true" dialogTitle="选择抄送人" @selectPerson="selectUser" class="aipersonselect">
<template name="option" v-slot:option="{ item }">
<span class="iconfont iconProlife">{{ item.name }}</span>
</template>
</ai-person-select>
</el-form-item>
</template>
</ai-card>
<ai-card v-if="isInit" title="届次设置">
<el-form-item label="本届换届时间:" prop="changeTime">
<el-date-picker v-model="form.changeTime"/>
</el-form-item>
<el-form-item label="下届换届时间:" prop="nextChangeTime">
<el-date-picker disabled v-model="form.nextChangeTime"/>
</el-form-item>
<el-form-item label="届次:" prop="sessionTime">
<el-input v-model="form.sessionTime" placeholder="请输入..."/>
</el-form-item>
<detail-panel :instance="instance" v-model="lists" editable/>
</ai-card>
</el-form>
</template>
<template slot="footer" class="footer">
<el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button>
@@ -42,9 +52,11 @@
<script>
import {mapState} from 'vuex'
import DetailPanel from "./detailPanel";
export default {
name: "organizationSetting",
components: {DetailPanel},
inject: ['permissions', 'instance', 'dict'],
data() {
let validUser = (rule, value, callback) => {
@@ -56,27 +68,32 @@ export default {
};
return {
form: {
addOrMakeup: true,
organizationId: '',
organizationName: '',
type: '0',
type: "",
userList: [],
sessionTime: "",
changeTime: "",
nextChangeTime: ""
},
lists: {
candidateList: [], //本届候选人
serveList: [] //本届任职
},
formRules: {
type: [{required: true, message: "请选择选举方式", trigger: "blur"}],
organizationName: [{required: true, message: "请选择党组织", trigger: "blur"}],
userList: [{required: true, validator: validUser, trigger: "blur"}],
},
chooseUserList: [],
org: null
}
},
computed: {
...mapState(['user']),
org: v => new v.MODEL.PartyOrg(v.$route.query.oid)
isInit: v => !!v.form.id,
isNew: v => v.$route.query.new
},
created() {
this.form.organizationId = this.$route.query.oid
this.getDetail()
this.org = new this.MODEL.PartyOrg(this.$route.query.oid)
!this.isNew && this.getDetail()
},
methods: {
cancel() {
@@ -89,6 +106,8 @@ export default {
}).then((res) => {
if (res?.data) {
this.form = res.data
let {candidateList, serveList} = this.form
this.lists = {candidateList, serveList}
}
})
},
@@ -100,10 +119,12 @@ export default {
},
confirm() {
// 换届设置
this.$refs.form.validate((valid) => {
if (valid) {
this.$refs.SettingForm.validate(v => {
if (v) {
const {id: organizationId, name: organizationName} = this.org
this.instance.post(`/app/apporganizationchangeconfig/update`, {
const action = `/app/apporganizationchangeconfig/${this.isInit ? 'update' : 'add'}`
this.instance.post(action, {
addOrMakeup: true,
...this.form, organizationId, organizationName
}).then(res => {
if (res.code == 0) {