317 lines
7.8 KiB
Vue
317 lines
7.8 KiB
Vue
|
|
<template>
|
|||
|
|
<section class="meetingSet">
|
|||
|
|
<ai-detail>
|
|||
|
|
<ai-title slot="title" title="三会一课设置" isShowBack @onBackClick="$parent.goBack()" isShowBottomBorder/>
|
|||
|
|
<template #content>
|
|||
|
|
<div class="tab-tips">
|
|||
|
|
<span class="el-icon-warning"/>
|
|||
|
|
<span class="text">未按照“会议要求”开展三会一课的情况下,支部负责人主要用于接收上级领导的催办消息。</span>
|
|||
|
|
</div>
|
|||
|
|
<ai-card title="基本信息">
|
|||
|
|
<template #content>
|
|||
|
|
<ai-wrapper>
|
|||
|
|
<ai-info-item label="党组织" :value="partyName"/>
|
|||
|
|
</ai-wrapper>
|
|||
|
|
|
|||
|
|
</template>
|
|||
|
|
</ai-card>
|
|||
|
|
<ai-card title="支部负责人">
|
|||
|
|
<template #right>
|
|||
|
|
<ai-party-member :instance="instance" v-model="peopleList"
|
|||
|
|
:action="'/app/appparty/list?partyOrgId='+partyId" @change="confirmAddUser"
|
|||
|
|
dialogTitle="添加支部负责人" customCliker>
|
|||
|
|
<el-button type="text" icon="iconfont iconAdd">添加人员</el-button>
|
|||
|
|
</ai-party-member>
|
|||
|
|
</template>
|
|||
|
|
<template #content>
|
|||
|
|
<el-table
|
|||
|
|
:key='0'
|
|||
|
|
:data="tableDataUser"
|
|||
|
|
style="width: 100%"
|
|||
|
|
border
|
|||
|
|
header-cell-class-name="table-header"
|
|||
|
|
empty-text="支部负责人信息为空,点击标题右侧添加按钮进行添加"
|
|||
|
|
>
|
|||
|
|
<el-table-column type="index" label="序号" align="center" width="240"></el-table-column>
|
|||
|
|
<el-table-column prop="partyName" label="姓名" align="center"></el-table-column>
|
|||
|
|
<el-table-column label="操作" align="center">
|
|||
|
|
<div slot-scope="{row}">
|
|||
|
|
<span @click="deleteUser(row)"
|
|||
|
|
class="iconfont iconDelete icon-color89B"
|
|||
|
|
title="删除"
|
|||
|
|
style="cursor: pointer;"
|
|||
|
|
/>
|
|||
|
|
</div>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table>
|
|||
|
|
</template>
|
|||
|
|
</ai-card>
|
|||
|
|
<ai-card title="三会一课要求">
|
|||
|
|
<template #content>
|
|||
|
|
<el-table
|
|||
|
|
:key='1'
|
|||
|
|
:data="tableDataRequirement"
|
|||
|
|
style="width: 100%"
|
|||
|
|
border
|
|||
|
|
header-cell-class-name="table-header"
|
|||
|
|
align="center"
|
|||
|
|
empty-text="三会一课要求为空"
|
|||
|
|
>
|
|||
|
|
<el-table-column prop="meetingClassification" label="类型">
|
|||
|
|
<div slot-scope="{row}">{{ dict.getLabel('meetingClassification', row.meetingClassification) || '-' }}
|
|||
|
|
</div>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column prop="type" label="要求">
|
|||
|
|
<div slot-scope="{row}">{{ dict.getLabel('appThreeMeetingCTCType', row.type) || '-' }}</div>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table>
|
|||
|
|
</template>
|
|||
|
|
</ai-card>
|
|||
|
|
</template>
|
|||
|
|
</ai-detail>
|
|||
|
|
</section>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import {mapState} from "vuex";
|
|||
|
|
|
|||
|
|
export default {
|
|||
|
|
name: "meetingSet",
|
|||
|
|
props: {
|
|||
|
|
instance: Function,
|
|||
|
|
dict: Object,
|
|||
|
|
permissions: Function,
|
|||
|
|
detail: Object,
|
|||
|
|
partyId: String,
|
|||
|
|
partyName: String,
|
|||
|
|
},
|
|||
|
|
computed: {
|
|||
|
|
...mapState(["user"])
|
|||
|
|
},
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
navList: [
|
|||
|
|
{name: "支部负责人", id: "1"},
|
|||
|
|
{name: "会议要求", id: "2"}
|
|||
|
|
],
|
|||
|
|
navId: "1",
|
|||
|
|
tableDataUser: [],
|
|||
|
|
searchMsg: '',
|
|||
|
|
peopleList: [],
|
|||
|
|
chooseUser: [],
|
|||
|
|
tableDataRequirement: [],
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
console.log(this.user)
|
|||
|
|
this.dict.load('appThreeMeetingCTCType', 'meetingClassification')
|
|||
|
|
this.getPartyList()
|
|||
|
|
this.getRequirement()
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
navClick(item) {
|
|||
|
|
this.navId = item.id;
|
|||
|
|
},
|
|||
|
|
//获取支部负责人table
|
|||
|
|
getPartyList() {
|
|||
|
|
this.instance.post(`/app/appthreemeetingpartyconfig/list?organizationId=${this.partyId}`).then(res => {
|
|||
|
|
if (res.code == 0) {
|
|||
|
|
this.tableDataUser = res.data.records
|
|||
|
|
this.peopleList = res.data.records.map((item) => {
|
|||
|
|
return {
|
|||
|
|
partyOrgId: item.organizationId,
|
|||
|
|
id: item.partyId,
|
|||
|
|
name: item.partyName,
|
|||
|
|
phone: item.phone
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
// this.$forceUpdate()
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
//获取会议要求列表
|
|||
|
|
getRequirement() {
|
|||
|
|
this.instance.post(`/app/appthreemeetingclassificationconfig/list`).then(res => {
|
|||
|
|
if (res.code == 0) {
|
|||
|
|
this.tableDataRequirement = res.data.records
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
//确认添加支部人员
|
|||
|
|
confirmAddUser(v) {
|
|||
|
|
let userList = v.map((item) => {
|
|||
|
|
return {
|
|||
|
|
organizationId: item.partyOrgId,
|
|||
|
|
partyId: item.id,
|
|||
|
|
partyName: item.name,
|
|||
|
|
phone: item.phone
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
this.instance.post(`/app/appthreemeetingpartyconfig/addOrUpdate`, userList, null).then(res => {
|
|||
|
|
if (res.code == 0) {
|
|||
|
|
this.$message({message: '添加成功', type: 'success'});
|
|||
|
|
this.getPartyList()
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
//删除支部负责人
|
|||
|
|
deleteUser(item) {
|
|||
|
|
this.$confirm('是否删除该支部负责人?', '', {
|
|||
|
|
type: 'error'
|
|||
|
|
}).then(() => {
|
|||
|
|
this.instance.post(`/app/appthreemeetingpartyconfig/delete?ids=${item.id}`).then(res => {
|
|||
|
|
if (res.code == 0) {
|
|||
|
|
this.$message({message: '删除成功', type: 'success'});
|
|||
|
|
this.getPartyList()
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
<style scoped lang="scss">
|
|||
|
|
::v-deep .right_title .iconfont {
|
|||
|
|
margin-right: 0 !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.mask {
|
|||
|
|
.operation {
|
|||
|
|
overflow: hidden;
|
|||
|
|
position: absolute;
|
|||
|
|
bottom: 0;
|
|||
|
|
left: 0;
|
|||
|
|
width: 100%;
|
|||
|
|
height: 64px;
|
|||
|
|
line-height: 64px;
|
|||
|
|
display: flex;
|
|||
|
|
z-index: 1000;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: center;
|
|||
|
|
background-color: #f3f6f9;
|
|||
|
|
box-shadow: inset 0 1px 0 0 #eeeeee;
|
|||
|
|
|
|||
|
|
button {
|
|||
|
|
width: 92px;
|
|||
|
|
height: 32px;
|
|||
|
|
padding: 0 !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.delete-btn {
|
|||
|
|
background-color: #fff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.content {
|
|||
|
|
padding: 0 16px 100px;
|
|||
|
|
|
|||
|
|
.search-info {
|
|||
|
|
line-height: 44px;
|
|||
|
|
border-bottom: 1px solid #D0D4DC;
|
|||
|
|
|
|||
|
|
span {
|
|||
|
|
display: inline-block;
|
|||
|
|
width: 120px;
|
|||
|
|
line-height: 20px;
|
|||
|
|
padding-right: 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.el-input {
|
|||
|
|
width: 160px;
|
|||
|
|
height: 28px;
|
|||
|
|
vertical-align: top;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
::v-deep .el-input__inner {
|
|||
|
|
height: 28px !important;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.user-list {
|
|||
|
|
padding: 8px 0;
|
|||
|
|
height: 200px;
|
|||
|
|
overflow-y: scroll;
|
|||
|
|
|
|||
|
|
.user-item {
|
|||
|
|
line-height: 24px;
|
|||
|
|
cursor: pointer;
|
|||
|
|
|
|||
|
|
.iconfont {
|
|||
|
|
margin-right: 4px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.active {
|
|||
|
|
color: #5088FF;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.content-left {
|
|||
|
|
width: 160px;
|
|||
|
|
height: 100%;
|
|||
|
|
// float:left;
|
|||
|
|
position: absolute;
|
|||
|
|
left: -224px;
|
|||
|
|
|
|||
|
|
.content-left-nav {
|
|||
|
|
width: 158px;
|
|||
|
|
background-color: #ffffff;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
border: solid 1px #eeeeee;
|
|||
|
|
margin-top: 56px;
|
|||
|
|
overflow: hidden;
|
|||
|
|
|
|||
|
|
li {
|
|||
|
|
height: 48px;
|
|||
|
|
line-height: 48px;
|
|||
|
|
padding-left: 24px;
|
|||
|
|
font-size: 14px;
|
|||
|
|
font-weight: normal;
|
|||
|
|
font-stretch: normal;
|
|||
|
|
letter-spacing: 0;
|
|||
|
|
color: #666666;
|
|||
|
|
cursor: pointer;
|
|||
|
|
border-left: 3px solid transparent;
|
|||
|
|
|
|||
|
|
&:hover {
|
|||
|
|
border-left: 3px solid #5088ff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
a {
|
|||
|
|
display: block;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.navActive {
|
|||
|
|
border-left: 3px solid #5088ff;
|
|||
|
|
color: #5088ff;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.tab-tips {
|
|||
|
|
display: inline-block;
|
|||
|
|
width: 790px;
|
|||
|
|
height: 32px;
|
|||
|
|
line-height: 30px;
|
|||
|
|
background-color: #fff3e8;
|
|||
|
|
border-radius: 4px;
|
|||
|
|
border: 1px solid #f82;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
color: #f82;
|
|||
|
|
margin: 16px 0;
|
|||
|
|
|
|||
|
|
.el-icon-warning {
|
|||
|
|
font-size: 16px;
|
|||
|
|
margin: 0 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.text {
|
|||
|
|
font-size: 12px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|