|
|
@@ -1,161 +1,153 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<div class="topBox">
|
|
|
+ <NavBar />
|
|
|
|
|
|
-
|
|
|
- <NavBar />
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <van-row>
|
|
|
- <van-col span="24"
|
|
|
- ><van-field
|
|
|
- v-model="orgName"
|
|
|
- is-link
|
|
|
- label-width="4em"
|
|
|
- clearable
|
|
|
- label="组织机构"
|
|
|
- placeholder=""
|
|
|
- @click="show = true"
|
|
|
- />
|
|
|
- <van-popup v-model="show" round position="bottom" :close-on-click-overlay="false">
|
|
|
- <van-cascader
|
|
|
- v-model="cascaderValue"
|
|
|
- title="组织机构"
|
|
|
- :options="options"
|
|
|
- @close="closeDialog"
|
|
|
- @change="changeCascader"
|
|
|
- @finish="onFinish"
|
|
|
- :field-names="fieldNames"
|
|
|
+ <van-row>
|
|
|
+ <van-col span="24"
|
|
|
+ ><van-field
|
|
|
+ v-model="orgName"
|
|
|
+ is-link
|
|
|
+ label-width="4em"
|
|
|
+ clearable
|
|
|
+ label="组织机构"
|
|
|
+ placeholder=""
|
|
|
+ @click="show = true"
|
|
|
/>
|
|
|
- </van-popup>
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-row>
|
|
|
- <van-col span="12"
|
|
|
- ><van-field
|
|
|
- v-model="fieldValue"
|
|
|
- is-link
|
|
|
- label-width="3em"
|
|
|
- clearable
|
|
|
- label="状态"
|
|
|
- placeholder=""
|
|
|
- @click="showStatus = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showStatus" round position="bottom">
|
|
|
- <van-picker
|
|
|
- title="状态"
|
|
|
- show-toolbar
|
|
|
- :columns="columns"
|
|
|
- @confirm="onConfirm"
|
|
|
- @cancel="onCancel"
|
|
|
- @change="onChange"
|
|
|
- :close-on-click-overlay="false"
|
|
|
+ <van-popup v-model="show" round position="bottom" :close-on-click-overlay="false">
|
|
|
+ <van-cascader
|
|
|
+ v-model="cascaderValue"
|
|
|
+ title="组织机构"
|
|
|
+ :options="options"
|
|
|
+ @close="closeDialog"
|
|
|
+ @change="changeCascader"
|
|
|
+ @finish="onFinish"
|
|
|
+ :field-names="fieldNames"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-row>
|
|
|
+ <van-col span="12"
|
|
|
+ ><van-field
|
|
|
+ v-model="fieldValue"
|
|
|
+ is-link
|
|
|
+ label-width="3em"
|
|
|
+ clearable
|
|
|
+ label="状态"
|
|
|
+ placeholder=""
|
|
|
+ @click="showStatus = true"
|
|
|
/>
|
|
|
- </van-popup>
|
|
|
- </van-col>
|
|
|
- <van-col span="12">
|
|
|
- <van-field
|
|
|
- v-model="currentDate"
|
|
|
- clearable
|
|
|
- label-width="3em"
|
|
|
- label="月份"
|
|
|
- placeholder=""
|
|
|
- @click="showDate = true"
|
|
|
- />
|
|
|
- <van-popup v-model="showDate" round position="bottom">
|
|
|
- <van-datetime-picker
|
|
|
- v-model="presentDate"
|
|
|
- @cancel="onCancel"
|
|
|
- @confirm="onDateConfirm"
|
|
|
- type="year-month"
|
|
|
- title="月份"
|
|
|
+ <van-popup v-model="showStatus" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ title="状态"
|
|
|
+ show-toolbar
|
|
|
+ :columns="columns"
|
|
|
+ @confirm="onConfirm"
|
|
|
+ @cancel="onCancel"
|
|
|
+ @change="onChange"
|
|
|
+ :close-on-click-overlay="false"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-col>
|
|
|
+ <van-col span="12">
|
|
|
+ <van-field
|
|
|
+ v-model="currentDate"
|
|
|
+ clearable
|
|
|
+ label-width="3em"
|
|
|
+ label="月份"
|
|
|
+ placeholder=""
|
|
|
+ @click="showDate = true"
|
|
|
/>
|
|
|
- </van-popup>
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- <van-row>
|
|
|
-
|
|
|
- <van-col span="24"
|
|
|
- ><van-field
|
|
|
- v-model="typeName"
|
|
|
- is-link
|
|
|
- label-width="3em"
|
|
|
- clearable
|
|
|
- label="类型"
|
|
|
- placeholder=""
|
|
|
- @click="typeStatus = true"
|
|
|
- />
|
|
|
- <van-popup v-model="typeStatus" round position="bottom">
|
|
|
- <van-picker
|
|
|
- title="类型"
|
|
|
- show-toolbar
|
|
|
- :columns="typeColumns"
|
|
|
- @confirm="onConfirmHandler"
|
|
|
- @cancel="onCancel"
|
|
|
- @change="onChange"
|
|
|
- :close-on-click-overlay="false"
|
|
|
+ <van-popup v-model="showDate" round position="bottom">
|
|
|
+ <van-datetime-picker
|
|
|
+ v-model="presentDate"
|
|
|
+ @cancel="onCancel"
|
|
|
+ @confirm="onDateConfirm"
|
|
|
+ type="year-month"
|
|
|
+ title="月份"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-col>
|
|
|
+ </van-row>
|
|
|
+ <van-row>
|
|
|
+ <van-col span="24"
|
|
|
+ ><van-field
|
|
|
+ v-model="typeName"
|
|
|
+ is-link
|
|
|
+ label-width="3em"
|
|
|
+ clearable
|
|
|
+ label="类型"
|
|
|
+ placeholder=""
|
|
|
+ @click="typeStatus = true"
|
|
|
/>
|
|
|
- </van-popup>
|
|
|
- </van-col>
|
|
|
-
|
|
|
- <!-- <van-col span="6" class="btnf_box">
|
|
|
+ <van-popup v-model="typeStatus" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ title="类型"
|
|
|
+ show-toolbar
|
|
|
+ :columns="typeColumns"
|
|
|
+ @confirm="onConfirmHandler"
|
|
|
+ @cancel="onCancel"
|
|
|
+ @change="onChange"
|
|
|
+ :close-on-click-overlay="false"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-col>
|
|
|
+
|
|
|
+ <!-- <van-col span="6" class="btnf_box">
|
|
|
<van-button type="info" class="btn" @click="clearSearch" size="small">重置</van-button>
|
|
|
</van-col> -->
|
|
|
- </van-row>
|
|
|
- </div>
|
|
|
-
|
|
|
+ </van-row>
|
|
|
+ </div>
|
|
|
|
|
|
-
|
|
|
<!-- //卡片内容区域 -->
|
|
|
<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
|
|
|
- >
|
|
|
+ <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>
|
|
|
- <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>
|
|
|
- </van-panel>
|
|
|
- </van-list>
|
|
|
- </div>
|
|
|
+ </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>
|
|
|
@@ -171,7 +163,7 @@ import { newDateMonth } from '@/utils/date.js'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- presentDate:'',//默认时间
|
|
|
+ presentDate: '', //默认时间
|
|
|
pageNum: 1,
|
|
|
loading: false, //加载状态
|
|
|
finished: false, //是否全部加载完毕
|
|
|
@@ -186,7 +178,6 @@ export default {
|
|
|
orgName: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //机构名称
|
|
|
cascaderValue: JSON.parse(sessionStorage.getItem('SET_USER_ORGID')) || '', //机构ID
|
|
|
show: false, //机构弹框显示隐藏
|
|
|
-
|
|
|
options: [], //机构数组
|
|
|
fieldNames: {
|
|
|
text: 'name',
|
|
|
@@ -196,7 +187,8 @@ export default {
|
|
|
taskList: [], //列表数据
|
|
|
typeValue: ' ', //类型值
|
|
|
typeName: '全部', //类型名称
|
|
|
-
|
|
|
+ value1: JSON.parse(sessionStorage.getItem('SET_USER_ID')) || '', //输入框model
|
|
|
+
|
|
|
typeStatus: false, //类型显示隐藏
|
|
|
showStatus: false, //状态显示隐藏
|
|
|
showDate: false, //月份显示隐藏
|
|
|
@@ -248,12 +240,11 @@ export default {
|
|
|
|
|
|
created() {
|
|
|
this.init()
|
|
|
- this.presentDate=this.presentDateCpd
|
|
|
+ this.presentDate = this.presentDateCpd
|
|
|
},
|
|
|
- computed:{
|
|
|
- presentDateCpd(){
|
|
|
- return new Date(+newDateMonth().split('-')[0],+newDateMonth().split('-')[1]-1)
|
|
|
-
|
|
|
+ computed: {
|
|
|
+ presentDateCpd() {
|
|
|
+ return new Date(+newDateMonth().split('-')[0], +newDateMonth().split('-')[1] - 1)
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
@@ -263,21 +254,26 @@ export default {
|
|
|
let timefalg = false
|
|
|
//value1 当前登陆用户ID
|
|
|
//任务处于待记录状态,且任务在规定完成时间范围内,登录人所在机构和角色与任务培训角色、培训机构一致才显示
|
|
|
- if (list.trainingStartDateTime && list.trainingEndDateTime && list.status == 1) {
|
|
|
+ if (list.startDate && list.endDate && list.status == 1) {
|
|
|
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) {
|
|
|
+ console.log(list.id,'ssss');
|
|
|
timefalg = true
|
|
|
}
|
|
|
}
|
|
|
list.userList?.forEach(item => {
|
|
|
+ console.log(this.value1,'sss');
|
|
|
if (this.value1 == item.userId && item.sign === 0) {
|
|
|
+ console.log(list.id,'fff');
|
|
|
falg = true
|
|
|
}
|
|
|
})
|
|
|
|
|
|
if (falg && timefalg) {
|
|
|
+
|
|
|
return true
|
|
|
}
|
|
|
},
|
|
|
@@ -292,6 +288,7 @@ export default {
|
|
|
let startDate = Date.parse(new Date(list.startDate))
|
|
|
let endDate = Date.parse(new Date(list.endDate))
|
|
|
if (date >= startDate && date <= endDate) {
|
|
|
+
|
|
|
timefalg = true
|
|
|
}
|
|
|
}
|
|
|
@@ -334,13 +331,16 @@ export default {
|
|
|
})
|
|
|
this.selectListAppHandler()
|
|
|
},
|
|
|
- selectListAppHandler(type=0,callback=()=>{}) {
|
|
|
+ selectListAppHandler(type = 0, callback = () => {}) {
|
|
|
let obj = {
|
|
|
isAppSelect: 1,
|
|
|
pageNum: this.pageNum,
|
|
|
pageSize: 10
|
|
|
}
|
|
|
-
|
|
|
+ if (!type) {
|
|
|
+ obj.pageNum = 1
|
|
|
+ this.pageNum=1
|
|
|
+ }
|
|
|
if (this.statusValue) {
|
|
|
obj.status = this.statusValue
|
|
|
}
|
|
|
@@ -358,18 +358,18 @@ export default {
|
|
|
gettrainingList(obj).then(res => {
|
|
|
let { code, rows, msg } = res
|
|
|
if (code == 200) {
|
|
|
- if(type){
|
|
|
+ if (type) {
|
|
|
this.taskList.push(...rows)
|
|
|
- if(rows.length==0){
|
|
|
- //已加载完全部数据
|
|
|
- this.finished=true
|
|
|
- return
|
|
|
- }
|
|
|
- callback()
|
|
|
- }else{
|
|
|
- this.taskList=rows
|
|
|
+ if (rows.length == 0) {
|
|
|
+ //已加载完全部数据
|
|
|
+ this.finished = true
|
|
|
+
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ } else {
|
|
|
+ this.finished = false
|
|
|
+ this.taskList = rows
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
@@ -462,14 +462,14 @@ export default {
|
|
|
},
|
|
|
//onLoad下拉刷新
|
|
|
onLoad() {
|
|
|
- if(this.pageNum==1){
|
|
|
- this.pageNum=2
|
|
|
+ if (this.pageNum == 1) {
|
|
|
+ this.pageNum = 2
|
|
|
}
|
|
|
this.loading = true
|
|
|
- this.selectListAppHandler(1,() => {
|
|
|
+ this.selectListAppHandler(1, () => {
|
|
|
this.pageNum++
|
|
|
this.loading = false
|
|
|
- console.log(1);
|
|
|
+ console.log(1)
|
|
|
})
|
|
|
},
|
|
|
//查看签名情况
|
|
|
@@ -514,7 +514,7 @@ export default {
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
-.navBarclas{
|
|
|
+.navBarclas {
|
|
|
height: calc(100vh - 380px);
|
|
|
overflow: scroll;
|
|
|
}
|
|
|
@@ -567,7 +567,7 @@ export default {
|
|
|
margin-top: 30px;
|
|
|
}
|
|
|
}
|
|
|
-.topBox{
|
|
|
+.topBox {
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
</style>
|