194 lines
5.1 KiB
Vue
194 lines
5.1 KiB
Vue
<template>
|
||
<div class="workonline">
|
||
<div class="search">
|
||
<u-search class="serach_content" placeholder="请输入标题" :show-action="false" v-model="keyword" @clear="clearSearch" @search="search"></u-search>
|
||
</div>
|
||
|
||
<u-tabs :list="list" :is-scroll="false" :current="currentType" @change="change"></u-tabs>
|
||
|
||
<template v-if="datas.length > 0">
|
||
<u-card v-for="(item, index) in datas" :key="index" :foot-border-top="false" :head-border-bottom="false" :show-head="false" @click="goDetail(item, 1)">
|
||
<view class="body" slot="body">
|
||
<!-- 审批名称 -->
|
||
<view class="u-body-item">
|
||
<div class="title">{{ item.processName }}</div>
|
||
</view>
|
||
|
||
<view class="u-body-item">
|
||
<div class="plan">
|
||
<span>审批进度:</span>
|
||
|
||
<span class="business_status" v-if="item.approvalStatus == 0"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
|
||
|
||
<!-- end -->
|
||
<span class="business_status_blue" v-if="item.approvalStatus == 1"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
|
||
|
||
<!-- false -->
|
||
<span class="business_status_gray" v-if="item.approvalStatus == 2">
|
||
{{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}
|
||
</span>
|
||
</div>
|
||
</view>
|
||
|
||
<view class="u-body-item">
|
||
<div class="modetpye">
|
||
<span>申请类型:</span>
|
||
<span>{{ item.classificationName }}</span>
|
||
</div>
|
||
</view>
|
||
|
||
<view class="u-body-item">
|
||
<div class="applytime">
|
||
<span>申请日期:</span>
|
||
<span class="timeContent">{{ item.createTime }}</span>
|
||
</div>
|
||
</view>
|
||
|
||
<view class="u-body-item">
|
||
<div class="overtime">
|
||
<span>完成日期:</span>
|
||
<span class="timeContent">{{ item.overTime }}</span>
|
||
</div>
|
||
</view>
|
||
|
||
<span class="icon">
|
||
<!-- ing -->
|
||
<img src="./components/ing.png" alt="" v-if="item.approvalStatus == 0" />
|
||
<!-- end -->
|
||
<img src="./components/end.png" alt="" v-if="item.approvalStatus == 1" />
|
||
<!-- false -->
|
||
<img src="./components/reject.png" alt="" v-if="item.approvalStatus == 2" />
|
||
</span>
|
||
</view>
|
||
</u-card>
|
||
|
||
<u-loadmore status="nomore" color="#999" font-size="24" margin-top="32" margin-bottom="80" />
|
||
</template>
|
||
|
||
<AiEmpty description="没有数据" v-else> </AiEmpty>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
name: 'WorkOnline',
|
||
appName: '网上办事',
|
||
// 组件
|
||
components: {},
|
||
props: {},
|
||
data() {
|
||
return {
|
||
list: [
|
||
{ name: '待我审批', type: 0 },
|
||
{ name: '我已审批', type: 1 },
|
||
{ name: '抄送我的', type: 3 },
|
||
{ name: '超时督办', type: 4 },
|
||
],
|
||
currentType: 0, // 0待我审批 1已审批 2抄送我的 3超时
|
||
keyword: '',
|
||
datas: {},
|
||
listType: 0,
|
||
current: 1,
|
||
}
|
||
},
|
||
// 计算
|
||
computed: {},
|
||
// 监听
|
||
watch: {},
|
||
// 实例创建后
|
||
created() {
|
||
// 字典
|
||
this.$dict.load('listApprovalStatusHb').then(() => {
|
||
this.dictList = this.$dict.getDict('listApprovalStatusHb')
|
||
this.getList()
|
||
})
|
||
},
|
||
// 实例渲染后
|
||
mounted() {},
|
||
// 方法
|
||
methods: {
|
||
getList() {
|
||
this.$http.post(`/app/approv-alapply-info/list?listType=${this.listType}¤t=${this.current}¶m=${this.keyword}`).then((res) => {
|
||
if (res?.code == 0) {
|
||
this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
|
||
}
|
||
})
|
||
},
|
||
|
||
// 跳转页面的id
|
||
goDetail(item) {
|
||
console.log(1)
|
||
uni.navigateTo({ url: `./detail?id=${item.id}&listType=${this.listType}` })
|
||
},
|
||
|
||
change(index) {
|
||
this.currentType = index
|
||
this.listType = this.list[index].type
|
||
this.getListInit()
|
||
},
|
||
|
||
getListInit() {
|
||
this.current = 1
|
||
this.getList()
|
||
},
|
||
|
||
search(e) {
|
||
this.keyword = e
|
||
this.getListInit()
|
||
},
|
||
|
||
clearSearch() {
|
||
this.keyword = ''
|
||
this.getListInit()
|
||
},
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.workonline {
|
||
.search {
|
||
.serach_content {
|
||
background-color: #fff;
|
||
height: 104px;
|
||
line-height: 104px;
|
||
box-sizing: border-box;
|
||
padding: 0 32px;
|
||
}
|
||
}
|
||
|
||
.u-card {
|
||
::v-deep .u-card__body {
|
||
.body {
|
||
position: relative;
|
||
.u-body-item {
|
||
.title {
|
||
font-size: 32px;
|
||
font-weight: 500;
|
||
margin-bottom: 16px;
|
||
}
|
||
.plan,
|
||
.modetpye,
|
||
.applytime,
|
||
.overtime {
|
||
margin-top: 16px;
|
||
font-size: 30px;
|
||
color: #999999;
|
||
.timeContent {
|
||
color: #343d65;
|
||
}
|
||
}
|
||
}
|
||
img {
|
||
position: absolute;
|
||
right: 0;
|
||
top: 0;
|
||
width: 113px;
|
||
height: 113px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|