组织换届
This commit is contained in:
215
src/project/pingchang/AppOrganizational/AppOrganizational.vue
Normal file
215
src/project/pingchang/AppOrganizational/AppOrganizational.vue
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page" :class="tabIndex == 1 ? 'bg-369' : 'bg-fff'">
|
||||||
|
<div class="detail-top">
|
||||||
|
<p>{{ dataInfo.organizationName || '-' }}</p>
|
||||||
|
<div>成立时间:{{ formatTime(dataInfo.createOrganizationTime) || '-' }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="line-bg"></div>
|
||||||
|
<div class="select-tab">
|
||||||
|
<div :class="tabIndex == 0 ? 'tab-active' : ''" @click="tabClick(0)">当前届次</div>
|
||||||
|
<div :class="tabIndex == 1 ? 'tab-active' : ''" @click="tabClick(1)">历史届次</div>
|
||||||
|
</div>
|
||||||
|
<div class="organization-detail" v-if="!tabIndex">
|
||||||
|
<p>当前届次:{{ dataInfo.sessionTime || '-' }}</p>
|
||||||
|
<p>本届换届时间:{{ dataInfo.changeTime || '-' }}</p>
|
||||||
|
<p>换届类型:{{ $dict.getLabel('organizationChangeType', dataInfo.type) || '-' }}</p>
|
||||||
|
<p class="padd-b32">下届换届时间:{{ dataInfo.nextChangeTime || '-' }}</p>
|
||||||
|
|
||||||
|
<p class="fw500">本届任职</p>
|
||||||
|
<div style="margin-bottom: 40px;">
|
||||||
|
<p v-for="(item, index) in dataInfo.serveList" :key="index">{{ item.position }}:{{ item.name }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="fw500">本届候选人</p>
|
||||||
|
<p v-for="(item, index) in dataInfo.candidateList" :key="index">{{ item.position }}:{{ item.name }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="history-list" v-if="historyList.length && tabIndex">
|
||||||
|
<div class="item" v-for="(item, index) in historyList" :key="index" @click="toDetail(item.id)">
|
||||||
|
<div class="item-top">
|
||||||
|
<image src="https://cdn.cunwuyun.cn/img/organizationalchange-icon.png"/>
|
||||||
|
届次:{{ item.sessionTime }}
|
||||||
|
</div>
|
||||||
|
<div class="item-date">换届时间:{{ item.changeTime }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<AiEmpty v-if="!historyList.length && tabIndex"/>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {mapState} from 'vuex'
|
||||||
|
export default {
|
||||||
|
name:"AppOrganizational",
|
||||||
|
appName: "组织换届",
|
||||||
|
computed: {
|
||||||
|
...mapState(['user']),
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tabIndex: 0,
|
||||||
|
historyList: [],
|
||||||
|
dataInfo: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onLoad(options) {
|
||||||
|
uni.setNavigationBarColor({
|
||||||
|
frontColor: "#ffffff",
|
||||||
|
backgroundColor: "#e60012",
|
||||||
|
})
|
||||||
|
this.$dict.load('organizationChangeType').then(() => {
|
||||||
|
this.getDetail()
|
||||||
|
this.getHistory()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetail() {
|
||||||
|
this.$instance.post(`/app/apporganizationchangeconfig/queryDetailByOrganizationIdFromApplet`, null, {
|
||||||
|
params: {organizationId: this.user.partyOrgId}
|
||||||
|
}).then(res => {
|
||||||
|
this.dataInfo = res.data
|
||||||
|
}).catch(err => {
|
||||||
|
this.$toast(err)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getHistory() {
|
||||||
|
this.$instance.post(`/app/apporganizationgeneralelection/list-forwx?organizationId=${this.user.partyId}`).then(res => {
|
||||||
|
if (res && res.data) {
|
||||||
|
this.historyList = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
tabClick(index) {
|
||||||
|
this.tabIndex = index
|
||||||
|
},
|
||||||
|
toDetail(id) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `./detail?id=${id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
user() {
|
||||||
|
return uni.getStorageSync("userInfo")
|
||||||
|
},
|
||||||
|
formatTime() {
|
||||||
|
return function (time) {
|
||||||
|
return time && time.substring(0, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
|
||||||
|
.page {
|
||||||
|
.detail-top {
|
||||||
|
padding: 32px;
|
||||||
|
background-color: #E60012;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
p {
|
||||||
|
line-height: 64px;
|
||||||
|
font-size: 40px;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 28px;
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-bg {
|
||||||
|
height: 8px;
|
||||||
|
background-color: #F3F6F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select-tab {
|
||||||
|
display: flex;
|
||||||
|
line-height: 96px;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
div {
|
||||||
|
flex: 1;
|
||||||
|
border-bottom: 2px solid #D8DDE6;
|
||||||
|
font-size: 28px;
|
||||||
|
text-align: center;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-active {
|
||||||
|
color: #F26C77;
|
||||||
|
border-bottom: 4px solid #E60012;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.organization-detail {
|
||||||
|
padding: 48px 32px 0;
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 32px;
|
||||||
|
color: #666;
|
||||||
|
line-height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.padd-b32 {
|
||||||
|
padding-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fw500 {
|
||||||
|
font-weight: 600;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.history-list {
|
||||||
|
padding: 16px 32px;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 686px;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.02);
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.item-top {
|
||||||
|
width: 622px;
|
||||||
|
height: 108px;
|
||||||
|
line-height: 106px;
|
||||||
|
margin-left: 16px;
|
||||||
|
color: #333;
|
||||||
|
font-size: 32px;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
margin: 0 20px 0 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-date {
|
||||||
|
line-height: 106px;
|
||||||
|
padding-right: 32px;
|
||||||
|
flex: 1;
|
||||||
|
color: #999;
|
||||||
|
font-size: 28px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-fff {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-369 {
|
||||||
|
background-color: #F3F6F9 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
62
src/project/pingchang/AppOrganizational/detail.vue
Normal file
62
src/project/pingchang/AppOrganizational/detail.vue
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<div class="line-bg"></div>
|
||||||
|
<div class="organization-detail">
|
||||||
|
<p>当前届次:{{dataInfo.sessionTime || '-'}}</p>
|
||||||
|
<p>换届时间:{{dataInfo.changeTime || '-'}}</p>
|
||||||
|
<p class="fw500">该届任职</p>
|
||||||
|
<div style="margin-bottom: 40rpx;">
|
||||||
|
<p v-for="(item, index) in dataInfo.serveList" :key="index">{{item.position}}:{{item.name}}</p>
|
||||||
|
</div>
|
||||||
|
<p class="fw500">该届候选人</p>
|
||||||
|
<p v-for="(item, index) in dataInfo.candidateList" :key="index">{{item.position}}:{{item.name}}</p>
|
||||||
|
</div>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
id: '',
|
||||||
|
dataInfo: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onLoad(options){
|
||||||
|
this.$dict.load('organizationChangeType')
|
||||||
|
this.id = options.id
|
||||||
|
this.getDetail()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getDetail() {
|
||||||
|
this.$instance.post(`/app/apporganizationgeneralelection/queryDetailById-forwx?id=${this.id}`).then( res => {
|
||||||
|
this.dataInfo = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scope>
|
||||||
|
|
||||||
|
.page {
|
||||||
|
background-color: #fff;
|
||||||
|
.line-bg{
|
||||||
|
height: 20rpx;
|
||||||
|
background-color: #F3F6F9;
|
||||||
|
}
|
||||||
|
.organization-detail{
|
||||||
|
padding: 20rpx 32rpx 0;
|
||||||
|
p{
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #666;
|
||||||
|
line-height: 48rpx;
|
||||||
|
}
|
||||||
|
.padd-b32{
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
.fw500{
|
||||||
|
font-weight: 600;
|
||||||
|
font-family:PingFangSC-Medium,PingFang SC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user