OA/pages/appcenter/index.vue

148 lines
2.8 KiB
Vue

<template>
<view class="application">
<block v-for="(item,i) in appDataList" :key="i">
<view class="apply_line">
<view class="title flex_a_c">
<view class="text flex_a_c">
{{item.type==1?'假勤':item.type==2?'行政':item.type==3?'财务':item.type==4?'人事':item.type==5?'财务':item.type==6?'报销':item.type==7?'发票':'合同' }}
</view>
</view>
<view class="line_cent">
<block v-for="(itemData,i) in item.data" :key="i">
<view class="line_item" @click="lineCentClick(itemData)">
<u--image :showLoading="true" :src="itemData.img" width="77.19rpx"
height="77.19rpx"></u--image>
<view class="name">{{ itemData.title }}</view>
</view>
</block>
</view>
</view>
</block>
</view>
</template>
<script>
import {
Toast
} from '@/libs/uniApi.js'
import {
oaapprove,
} from '@/api/oa.js'
export default {
data() {
return {
appDataList: [],
src: 'https://cdn.uviewui.com/uview/album/1.jpg'
}
},
onLoad() {
this.getList()
},
onShow() {},
methods: {
//获取公列表
async getList() {
const res = await oaapprove()
// this.appDataList = res.data
const groupedData = res.data.reduce((result, item) => {
const type = item.type;
if (!result[type]) {
result[type] = {
type: type,
data: []
};
}
result[type].data.push(item);
return result;
}, {});
this.appDataList = groupedData
},
lineCentClick(item) {
if (item.id == '9998') {
uni.navigateTo({
url: '/pages/resources/index'
})
} else if (item.id == '9999') {
uni.navigateTo({
url: '/pages/finance/index'
})
} else if (item.id == '9997') {
uni.navigateTo({
url: '/pages/invoice/add'
})
} else if (item.id == '9996') {
uni.navigateTo({
url: '/pages/reimbursementapplication/index'
})
} else {
uni.navigateTo({
url: '/pages/leaveapplication/index?type=' + item.id
})
}
},
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
</script>
<style lang="scss">
.application {}
.apply_line {
width: 100%;
padding: 0 28.07rpx;
background-color: #fff;
margin-bottom: 31.58rpx;
.title {
width: 100%;
height: 77.19rpx;
border-bottom: 1px solid rgba(204, 204, 204, 0.5);
.text {
font-size: 31.58rpx;
&::before {
content: '';
display: inline-block;
width: 2px;
height: 33.33rpx;
background-color: $theme-oa-color;
margin-right: 10.53rpx;
}
}
}
.line_cent {
display: flex;
flex-wrap: wrap;
.line_item {
width: 220rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 28.07rpx 0;
.name {
font-size: 24.56rpx;
margin-top: 14.04rpx;
}
}
}
}
</style>