129 lines
3.9 KiB
Vue
129 lines
3.9 KiB
Vue
|
<template>
|
||
|
<view class="wrap">
|
||
|
<view class="top-head">
|
||
|
<view class="top-tabbar">
|
||
|
<view class="tab-item" :class="{ active: goalType == 1 }" @click="changeType(1)">{{ $t('S_C_59') }}</view>
|
||
|
<view class="tab-item" :class="{ active: goalType == 2 }" @click="changeType(2)">{{ $t('S_C_60') }}</view>
|
||
|
<view class="tab-item" :class="{ active: goalType == 3 }" @click="changeType(3)">{{ $t('S_C_61') }}</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="cardWrap">
|
||
|
<!-- 月度目标 -->
|
||
|
<template v-if="goalType == 1">
|
||
|
<template v-if="showForm">
|
||
|
<monthlyIndex :goalType="goalType" @get-data="getData" />
|
||
|
</template>
|
||
|
<template v-else>
|
||
|
<detailsIndex :data="showFormData" />
|
||
|
</template>
|
||
|
</template>
|
||
|
<!-- 季度目标 -->
|
||
|
<template v-if="goalType == 2">
|
||
|
<template v-if="showForm">
|
||
|
<quarterIndex :goalType="goalType" @get-data="getData" />
|
||
|
</template>
|
||
|
<template v-else>
|
||
|
<quarterDetailsIndex :data="showFormData" />
|
||
|
</template>
|
||
|
</template>
|
||
|
<!-- 年度目标 -->
|
||
|
<template v-if="goalType == 3">
|
||
|
<template v-if="showForm">
|
||
|
<yearIndex :goalType="goalType" @get-data="getData" />
|
||
|
</template>
|
||
|
<template v-else>
|
||
|
<yearDetailsIndex :data="showFormData" />
|
||
|
</template>
|
||
|
</template>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import monthlyIndex from "./monthly/forms/index.vue";
|
||
|
import detailsIndex from "./monthly/details/index.vue";
|
||
|
import quarterIndex from "./quarter/forms/index.vue";
|
||
|
import quarterDetailsIndex from "./quarter/details/index.vue";
|
||
|
import yearIndex from "./year/forms/index.vue";
|
||
|
import yearDetailsIndex from "./year/details/index.vue";
|
||
|
export default {
|
||
|
components: {
|
||
|
monthlyIndex,
|
||
|
detailsIndex,
|
||
|
quarterIndex,
|
||
|
quarterDetailsIndex,
|
||
|
yearIndex,
|
||
|
yearDetailsIndex,
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
goalType: 1,
|
||
|
showForm: true,
|
||
|
showFormData: {},
|
||
|
};
|
||
|
},
|
||
|
onShow(){
|
||
|
this.getShowGoals();
|
||
|
},
|
||
|
methods: {
|
||
|
getData(){
|
||
|
this.getShowGoals();
|
||
|
},
|
||
|
getShowGoals(){
|
||
|
let self = this;
|
||
|
self.showForm = true;
|
||
|
self.loading = true;
|
||
|
uni.showLoading({
|
||
|
title: self.$t('MN_F_6')
|
||
|
});
|
||
|
self._get('member/api/goals/show-goals', {
|
||
|
goalType: self.goalType,
|
||
|
}, res => {
|
||
|
const { data } = res;
|
||
|
if(data){
|
||
|
self.showForm = false;
|
||
|
self.showFormData = data;
|
||
|
}
|
||
|
self.loading = false;
|
||
|
uni.hideLoading();
|
||
|
})
|
||
|
},
|
||
|
changeType(v){
|
||
|
this.goalType = v;
|
||
|
this.getShowGoals();
|
||
|
},
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
.cardWrap{
|
||
|
padding: 20rpx;
|
||
|
box-sizing: border-box;
|
||
|
|
||
|
/* .cardBox{
|
||
|
padding: 77rpx 56rpx;
|
||
|
background: #fff;
|
||
|
border-radius: 20rpx;
|
||
|
display: grid;
|
||
|
grid-template-columns: repeat(3,1fr);
|
||
|
grid-gap: 69rpx;
|
||
|
}
|
||
|
.cardItem{
|
||
|
text-align: center;
|
||
|
.img{
|
||
|
width: 102rpx;
|
||
|
height: 102rpx;
|
||
|
background: #FB3024;
|
||
|
border-radius: 35rpx;
|
||
|
display: block;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
.txt{
|
||
|
font-size: 26rpx;
|
||
|
color: #666666;
|
||
|
margin-top: 25rpx;
|
||
|
}
|
||
|
} */
|
||
|
}
|
||
|
</style>
|