|
|
@@ -1,6 +1,12 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
+ <div class="topBox">
|
|
|
+
|
|
|
+
|
|
|
<NavBar />
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
<van-row>
|
|
|
<van-col span="24"
|
|
|
><van-field
|
|
|
@@ -69,7 +75,8 @@
|
|
|
</van-col>
|
|
|
</van-row>
|
|
|
<van-row>
|
|
|
- <van-col span="18"
|
|
|
+
|
|
|
+ <van-col span="24"
|
|
|
><van-field
|
|
|
v-model="typeName"
|
|
|
is-link
|
|
|
@@ -91,55 +98,64 @@
|
|
|
/>
|
|
|
</van-popup>
|
|
|
</van-col>
|
|
|
-
|
|
|
- <van-col span="6" class="btnf_box">
|
|
|
+
|
|
|
+ <!-- <van-col span="6" class="btnf_box">
|
|
|
<van-button type="info" class="btn" @click="clearSearch" size="small">重置</van-button>
|
|
|
- </van-col>
|
|
|
+ </van-col> -->
|
|
|
</van-row>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
<!-- //卡片内容区域 -->
|
|
|
- <van-panel :title="item.title" v-for="item in taskList" :key="item.id" class="card" status="状态">
|
|
|
- <template #header>
|
|
|
- <div class="titleClass">
|
|
|
- <div class="title">{{ item.title }}</div>
|
|
|
- <div>
|
|
|
- <van-button plain type="info" v-if="isSign(item)" size="mini" @click="trainSign(item.id)"
|
|
|
- >培训登记</van-button
|
|
|
- >
|
|
|
- <van-button plain type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
|
|
|
- >签名</van-button
|
|
|
- >
|
|
|
+ <div class="navBarclas">
|
|
|
+ <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
|
|
|
+
|
|
|
+ <van-panel :title="item.title" v-for="item in taskList" :key="item.id" class="card" status="状态">
|
|
|
+ <template #header>
|
|
|
+ <div class="titleClass">
|
|
|
+ <div class="title">{{ item.title }}</div>
|
|
|
+ <div>
|
|
|
+ <van-button plain type="info" v-if="isSign(item)" size="mini" @click="trainSign(item.id)"
|
|
|
+ >培训登记</van-button
|
|
|
+ >
|
|
|
+ <van-button plain type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
|
|
|
+ >签名</van-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div>
|
|
|
+ <div class="mainItem" @click="goInfo(item.id)">
|
|
|
+ <div>单位名称</div>
|
|
|
+ <div>{{ item.orgName }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="mainItem" @click="goInfo(item.id)">
|
|
|
+ <div>培训状态</div>
|
|
|
+ <div>{{ item.statusText }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="mainItem" @click="goInfo(item.id)">
|
|
|
+ <div>培训类型</div>
|
|
|
+ <div>{{ item.typeText }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="mainItem" @click="goInfo(item.id)">
|
|
|
+ <div>培训时间</div>
|
|
|
+ <div>{{ item.startDate }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="mainItem">
|
|
|
+ <div>签名情况</div>
|
|
|
+ <div class="condition" @click="signatureCondition(item.id)">{{ item.signNums }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- <div @click="goInfo(item.id)">
|
|
|
- <div class="mainItem">
|
|
|
- <div>单位名称</div>
|
|
|
- <div>{{ item.orgName }}</div>
|
|
|
- </div>
|
|
|
- <div class="mainItem">
|
|
|
- <div>培训状态</div>
|
|
|
- <div>{{ item.statusText }}</div>
|
|
|
- </div>
|
|
|
- <div class="mainItem">
|
|
|
- <div>培训类型</div>
|
|
|
- <div>{{ item.typeText }}</div>
|
|
|
- </div>
|
|
|
- <div class="mainItem">
|
|
|
- <div>培训时间</div>
|
|
|
- <div>{{ item.startDate }}</div>
|
|
|
- </div>
|
|
|
- <div class="mainItem">
|
|
|
- <div>签名情况</div>
|
|
|
- <div class="condition" @click="signatureCondition(item.id)">{{ item.signNums }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </van-panel>
|
|
|
+ </van-panel>
|
|
|
+ </van-list>
|
|
|
+ </div>
|
|
|
<!-- 卡片弹框 -->
|
|
|
<van-dialog v-model="conditionShow" title="签名情况" show-cancel-button>
|
|
|
<div class="conditionCls">
|
|
|
- <div class="title">已签名人员({{ participationList.num }}人):</div>
|
|
|
+ <div class="title">未签名人员({{ participationList.num }}人):</div>
|
|
|
<div class="people">{{ participationList.list }}</div>
|
|
|
- <div class="title">未签名人员({{ absenceList.num }}人):</div>
|
|
|
+ <div class="title">已签名人员({{ absenceList.num }}人):</div>
|
|
|
<div class="people">{{ absenceList.list }}</div>
|
|
|
</div>
|
|
|
</van-dialog>
|
|
|
@@ -155,6 +171,9 @@ import { newDateMonth } from '@/utils/date.js'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ pageNum: 1,
|
|
|
+ loading: false, //加载状态
|
|
|
+ finished: false, //是否全部加载完毕
|
|
|
participationList: {
|
|
|
list: [], // 参与人员
|
|
|
num: 0 //人数
|
|
|
@@ -260,10 +279,10 @@ export default {
|
|
|
let timefalg = false
|
|
|
//value1 当前登陆用户ID
|
|
|
//当前时间再时间范围内且签名是待签名状态且签名列表存在当前登录人未签名的情况才可以进行签名
|
|
|
- if (list.trainingStartDateTime && list.trainingEndDateTime && list.status == 1) {
|
|
|
+ if (list.startDate && list.endDate && list.status == 0) {
|
|
|
let date = new Date().getTime()
|
|
|
- let startDate = Date.parse(new Date(list.trainingStartDateTime))
|
|
|
- let endDate = Date.parse(new Date(list.trainingEndDateTime))
|
|
|
+ let startDate = Date.parse(new Date(list.startDate))
|
|
|
+ let endDate = Date.parse(new Date(list.endDate))
|
|
|
if (date >= startDate && date <= endDate) {
|
|
|
timefalg = true
|
|
|
}
|
|
|
@@ -307,9 +326,11 @@ export default {
|
|
|
})
|
|
|
this.selectListAppHandler()
|
|
|
},
|
|
|
- selectListAppHandler() {
|
|
|
+ selectListAppHandler(callback=()=>{}) {
|
|
|
let obj = {
|
|
|
- isAppSelect: 1
|
|
|
+ isAppSelect: 1,
|
|
|
+ pageNum: this.pageNum,
|
|
|
+ pageSize: 10
|
|
|
}
|
|
|
|
|
|
if (this.statusValue) {
|
|
|
@@ -329,7 +350,13 @@ export default {
|
|
|
gettrainingList(obj).then(res => {
|
|
|
let { code, rows, msg } = res
|
|
|
if (code == 200) {
|
|
|
- this.taskList = rows
|
|
|
+ this.taskList.push(...rows)
|
|
|
+ if(rows.length==0){
|
|
|
+ //已加载完全部数据
|
|
|
+ this.finished=true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ callback()
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
@@ -420,6 +447,18 @@ export default {
|
|
|
d = d < 10 ? '0' + d : d
|
|
|
return y + '-' + m
|
|
|
},
|
|
|
+ //onLoad下拉刷新
|
|
|
+ onLoad() {
|
|
|
+ if(this.pageNum==1){
|
|
|
+ this.pageNum=2
|
|
|
+ }
|
|
|
+ this.loading = true
|
|
|
+ this.selectListAppHandler(() => {
|
|
|
+ this.pageNum++
|
|
|
+ this.loading = false
|
|
|
+ console.log(1);
|
|
|
+ })
|
|
|
+ },
|
|
|
//查看签名情况
|
|
|
signatureCondition(id) {
|
|
|
this.conditionShow = true
|
|
|
@@ -462,6 +501,10 @@ export default {
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
+.navBarclas{
|
|
|
+ height: calc(100vh - 380px);
|
|
|
+ overflow: scroll;
|
|
|
+}
|
|
|
.btnf_box {
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
@@ -511,4 +554,7 @@ export default {
|
|
|
margin-top: 30px;
|
|
|
}
|
|
|
}
|
|
|
+.topBox{
|
|
|
+ overflow: hidden;
|
|
|
+}
|
|
|
</style>
|