|
|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<div class="topBox">
|
|
|
- <NavBar :go="{type:'push',path:'/menu'}" />
|
|
|
+ <NavBar :go="{ type: 'push', path: '/menu' }" />
|
|
|
|
|
|
<van-row>
|
|
|
<van-col span="24">
|
|
|
@@ -12,14 +12,14 @@
|
|
|
<van-col span="12"
|
|
|
><van-field
|
|
|
v-model="fieldValue"
|
|
|
- is-link
|
|
|
label-width="3em"
|
|
|
clearable
|
|
|
:disabled="showStatus"
|
|
|
label="状态"
|
|
|
placeholder=""
|
|
|
@click="showStatus = true"
|
|
|
- />
|
|
|
+ ><van-icon name="arrow-down" slot="button"
|
|
|
+ /></van-field>
|
|
|
<van-popup v-model="showStatus" round position="bottom">
|
|
|
<van-picker
|
|
|
title="状态"
|
|
|
@@ -27,7 +27,6 @@
|
|
|
:columns="columns"
|
|
|
@confirm="onConfirm"
|
|
|
@cancel="onCancel"
|
|
|
- @change="onChange"
|
|
|
:close-on-click-overlay="false"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
@@ -41,19 +40,35 @@
|
|
|
placeholder=""
|
|
|
:disabled="showDate"
|
|
|
@click="showDate = true"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <van-icon name="arrow-down" slot="button"
|
|
|
+ /></van-field>
|
|
|
<van-popup v-model="showDate" round position="bottom">
|
|
|
- <van-datetime-picker
|
|
|
+ <van-picker
|
|
|
v-model="presentDate"
|
|
|
@cancel="onCancel"
|
|
|
+ :columns="yearColumns"
|
|
|
@confirm="onDateConfirm"
|
|
|
- type="year-month"
|
|
|
+ :default-index="yearSelect"
|
|
|
title="年份"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
</van-col>
|
|
|
</van-row>
|
|
|
+ <van-row>
|
|
|
+ <van-col span="24">
|
|
|
+ <van-tabs v-model="active">
|
|
|
+ <van-tab title="Q1"></van-tab>
|
|
|
+ <van-tab title="Q2"></van-tab>
|
|
|
+ <van-tab title="Q3"></van-tab>
|
|
|
+ <van-tab title="Q4"></van-tab>
|
|
|
+ </van-tabs>
|
|
|
+ </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>
|
|
|
|
|
|
<!-- //卡片内容区域 -->
|
|
|
@@ -64,13 +79,13 @@
|
|
|
<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 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 type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
|
|
|
>签名</van-button
|
|
|
>
|
|
|
- <van-button plain type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
|
|
|
+ <van-button type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
|
|
|
>评价</van-button
|
|
|
>
|
|
|
</div>
|
|
|
@@ -91,7 +106,7 @@
|
|
|
</div>
|
|
|
<div class="mainItem" @click="goInfo(item.id)">
|
|
|
<div>演练时间</div>
|
|
|
- <div>{{ item.startDate }}</div>
|
|
|
+ <div>{{ item.trainingStartDateTime }}</div>
|
|
|
</div>
|
|
|
<div class="mainItem">
|
|
|
<div>签名情况</div>
|
|
|
@@ -102,7 +117,13 @@
|
|
|
</van-list>
|
|
|
</div>
|
|
|
<!-- 卡片弹框 -->
|
|
|
- <van-dialog v-model="conditionShow" title="签名情况" show-cancel-button>
|
|
|
+ <van-dialog
|
|
|
+ v-model="conditionShow"
|
|
|
+ title="签名情况"
|
|
|
+ show-confirm-button
|
|
|
+ confirm-button-text="关闭"
|
|
|
+ @closed="beforeClose"
|
|
|
+ >
|
|
|
<div class="conditionCls">
|
|
|
<div class="title">已签名人员({{ participationList.num }}人):</div>
|
|
|
<div class="people">{{ participationList.list }}</div>
|
|
|
@@ -119,7 +140,7 @@ import { gettrainingList, getsignUserList } from '@/api/training.js'
|
|
|
import { deptTreeList } from '@/api/toConsult.js'
|
|
|
import { Toast } from 'vant'
|
|
|
import OrgTree from '@/components/orgTree'
|
|
|
-import { newDateMonth } from '@/utils/date.js'
|
|
|
+import { newDateMonth,newDateYear } from '@/utils/date.js'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -133,6 +154,7 @@ export default {
|
|
|
list: [], // 参与人员
|
|
|
num: 0 //人数
|
|
|
},
|
|
|
+ yearColumns: [],
|
|
|
absenceList: {
|
|
|
list: [],
|
|
|
num: 0
|
|
|
@@ -140,7 +162,7 @@ export default {
|
|
|
orgName: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //机构名称
|
|
|
cascaderValue: '', //机构ID
|
|
|
show: false, //机构弹框显示隐藏
|
|
|
-
|
|
|
+ active: '0',
|
|
|
fieldNames: {
|
|
|
text: 'name',
|
|
|
value: 'id',
|
|
|
@@ -148,16 +170,15 @@ export default {
|
|
|
},
|
|
|
taskList: [], //列表数据
|
|
|
typeValue: ' ', //类型值
|
|
|
- typeName: '全部', //类型名称
|
|
|
+ yearSelect: null,
|
|
|
value1: JSON.parse(sessionStorage.getItem('SET_USER_ID')) || '', //输入框model
|
|
|
|
|
|
- typeStatus: false, //类型显示隐藏
|
|
|
showStatus: false, //状态显示隐藏
|
|
|
showDate: false, //月份显示隐藏
|
|
|
fieldValue: '全部', //状态名称
|
|
|
statusValue: ' ', //状态值
|
|
|
columns: ['全部', '待记录', '待签名', '已完成'], //状态数组
|
|
|
- currentDate: newDateMonth(), //月份值
|
|
|
+ currentDate: newDateYear(), //年份
|
|
|
conditionShow: false //机构弹框显示隐藏
|
|
|
}
|
|
|
},
|
|
|
@@ -199,12 +220,13 @@ export default {
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
- this.presentDate = new Date(+newDateMonth().split('-')[0], +newDateMonth().split('-')[1] - 1)
|
|
|
+ this.presentDate = new Date(newDateYear())
|
|
|
+ console.log(this.presentDate);
|
|
|
+ this.yearData()
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
|
|
|
- console.log(this.cascaderValue)
|
|
|
this.init()
|
|
|
+ this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
|
|
|
},
|
|
|
methods: {
|
|
|
//机构搜索
|
|
|
@@ -215,67 +237,65 @@ export default {
|
|
|
},
|
|
|
//判断是否展示签名按钮
|
|
|
isSignature(list) {
|
|
|
- return true
|
|
|
- // let falg = false
|
|
|
- // let timefalg = false
|
|
|
- // //value1 当前登陆用户ID
|
|
|
- // //任务处于待记录状态,且任务在规定完成时间范围内,登录人所在机构和角色与任务培训角色、培训机构一致才显示
|
|
|
- // if (list.startDate && list.endDate && list.status == 1) {
|
|
|
- // let date = new Date().getTime()
|
|
|
- // let startDate = Date.parse(new Date(list.startDate))
|
|
|
- // let endDate = Date.parse(new Date(list.endDate))
|
|
|
+ let falg = false
|
|
|
+ let timefalg = false
|
|
|
+ //value1 当前登陆用户ID
|
|
|
+ //当前时间再时间范围内且签名是待签名状态且签名列表存在当前登录人未签名的情况才可以进行签名
|
|
|
+ if (list.startDate && list.endDate && list.status == 1) {
|
|
|
+ let date = new Date().getTime()
|
|
|
+ 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 (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 && item.type == 1) {
|
|
|
+ falg = true
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- // if (falg && timefalg) {
|
|
|
- // return true
|
|
|
- // }
|
|
|
+ if (falg && timefalg) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
},
|
|
|
//判断是否展示登记按钮
|
|
|
isSign(list) {
|
|
|
- return true
|
|
|
- // let falg = false
|
|
|
- // let timefalg = false
|
|
|
- // //value1 当前登陆用户ID
|
|
|
- // let date = new Date().getTime()
|
|
|
- // let startDate = Date.parse(new Date(list.startDate))
|
|
|
- // let endDate = Date.parse(new Date(list.endDate))
|
|
|
- // //当前时间再时间范围内且签名是待签名状态且签名列表存在当前登录人未签名的情况才可以进行签名
|
|
|
- // if (list.startDate && list.endDate && list.status == 0) {
|
|
|
- // if (date >= startDate && date <= endDate) {
|
|
|
- // timefalg = true
|
|
|
- // }
|
|
|
- // }
|
|
|
- // //cascaderValue 当前机构ID
|
|
|
- // //当前用户角色ID
|
|
|
- // let roleL = JSON.parse(sessionStorage.getItem('SET_USER_ROLELIST'))
|
|
|
- // roleL.forEach(i => {
|
|
|
- // list.taskRoleList?.forEach(item => {
|
|
|
- // if (this.cascaderValue == list.orgId && i.roleId == item.roleId) {
|
|
|
- // falg = true
|
|
|
- // }
|
|
|
- // })
|
|
|
- // })
|
|
|
- // if (date > endDate) {
|
|
|
- // //当前时间大于结束时间表示已超期
|
|
|
+ let falg = false
|
|
|
+ let timefalg = false
|
|
|
+ //value1 当前登陆用户ID
|
|
|
+ let date = new Date().getTime()
|
|
|
+ let startDate = Date.parse(new Date(list.startDate))
|
|
|
+ let endDate = Date.parse(new Date(list.endDate))
|
|
|
+ //任务处于待记录状态,且任务在规定完成时间范围内,登录人所在机构和角色与任务培训角色、培训机构一致才显示
|
|
|
|
|
|
- // timefalg = false
|
|
|
- // falg = false
|
|
|
- // }
|
|
|
- // if (falg && timefalg) {
|
|
|
- // return true
|
|
|
- // }
|
|
|
+ if (list.startDate && list.endDate && list.status == 0) {
|
|
|
+ if (date >= startDate && date <= endDate) {
|
|
|
+ timefalg = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //cascaderValue 当前机构ID
|
|
|
+ //当前用户角色ID
|
|
|
+ let roleL = JSON.parse(sessionStorage.getItem('SET_USER_ROLELIST'))
|
|
|
+ roleL.forEach(i => {
|
|
|
+ list.taskRoleList?.forEach(item => {
|
|
|
+ if (this.cascaderValue == list.orgId && i.roleId == item.roleId) {
|
|
|
+ falg = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ if (date > endDate) {
|
|
|
+ //当前时间大于结束时间表示已超期
|
|
|
+
|
|
|
+ timefalg = false
|
|
|
+ falg = false
|
|
|
+ }
|
|
|
+ if (falg && timefalg) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
},
|
|
|
//清空查询条件
|
|
|
clearSearch() {
|
|
|
@@ -307,11 +327,11 @@ export default {
|
|
|
if (this.statusValue) {
|
|
|
obj.status = this.statusValue
|
|
|
}
|
|
|
- if (this.cascaderValue) {
|
|
|
- obj.orgId = this.cascaderValue
|
|
|
- }
|
|
|
+
|
|
|
+ obj.orgId = this.cascaderValue || JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + '' || ''
|
|
|
+
|
|
|
if (this.currentDate) {
|
|
|
- obj.date = this.currentDate + '-01'
|
|
|
+ obj.date = this.currentDate
|
|
|
}
|
|
|
if (this.typeValue) {
|
|
|
obj.type = this.typeValue
|
|
|
@@ -380,7 +400,22 @@ export default {
|
|
|
this.showDate = false
|
|
|
this.selectListAppHandler()
|
|
|
},
|
|
|
- //日期转换
|
|
|
+ yearData() {
|
|
|
+ // 获取默认显示的时间
|
|
|
+ var nowTime = new Date()
|
|
|
+ let year = nowTime.getFullYear()
|
|
|
+ let month = nowTime.getMonth()
|
|
|
+ let day = nowTime.getDate()
|
|
|
+ // 循环数组 填写最小时间和最大时间范围
|
|
|
+ for (let i = 1980; i < 2099; i++) {
|
|
|
+ this.yearColumns.push(i)
|
|
|
+ }
|
|
|
+ // 格式化时间并截取
|
|
|
+ var years = this.formatDate(new Date(year, month, day))
|
|
|
+ var Year = years.slice(0, 4)
|
|
|
+ // 将截取的年份赋值给绑定值 用于点击弹出日期窗口后显示当前的时间
|
|
|
+ this.yearSelect = this.yearColumns.indexOf(Number(Year))
|
|
|
+ }, //日期转换
|
|
|
newDate(time) {
|
|
|
var date = new Date(time)
|
|
|
var y = date.getFullYear()
|
|
|
@@ -388,8 +423,13 @@ export default {
|
|
|
m = m < 10 ? '0' + m : m
|
|
|
var d = date.getDate()
|
|
|
d = d < 10 ? '0' + d : d
|
|
|
- return y + '-' + m
|
|
|
+ return y
|
|
|
},
|
|
|
+ //日期格式
|
|
|
+ formatDate(date) {
|
|
|
+ return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
|
|
|
+ },
|
|
|
+
|
|
|
//onLoad下拉刷新
|
|
|
onLoad() {
|
|
|
if (this.pageNum == 1) {
|
|
|
@@ -409,7 +449,7 @@ export default {
|
|
|
console.log(res, 'ssss')
|
|
|
let { meg, code, data } = res
|
|
|
data.map(item => {
|
|
|
- if (item.sign !== 1) {
|
|
|
+ if (item.sign != 1) {
|
|
|
this.absenceList.list.push(item.userName)
|
|
|
this.absenceList.num++
|
|
|
} else {
|
|
|
@@ -427,15 +467,28 @@ export default {
|
|
|
},
|
|
|
//签名
|
|
|
signature(id) {
|
|
|
- this.$router.push('/personnelSignature/' + id + '_edit')
|
|
|
+ this.$router.push('/rehearsalTaskSign/' + id + '_edit')
|
|
|
+ },
|
|
|
+ //关闭弹框
|
|
|
+ beforeClose() {
|
|
|
+ console.log('sssssssss')
|
|
|
+ ;(this.participationList = {
|
|
|
+ list: [], // 参与人员
|
|
|
+ num: 0 //人数
|
|
|
+ }),
|
|
|
+ (this.absenceList = {
|
|
|
+ list: [],
|
|
|
+ num: 0
|
|
|
+ })
|
|
|
},
|
|
|
//跳转详情
|
|
|
goInfo(id) {
|
|
|
- this.$router.push('/personnelSigninfo/' + id + '_info')
|
|
|
+ this.$router.push('/rehearsalTasinfo/' + id + '_info')
|
|
|
},
|
|
|
+
|
|
|
onCancel() {
|
|
|
this.show = false
|
|
|
-
|
|
|
+ this.typeStatus = false
|
|
|
this.showDate = false
|
|
|
this.showStatus = false
|
|
|
}
|
|
|
@@ -502,14 +555,14 @@ export default {
|
|
|
.topBox {
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
-:deep.van-field--disabled{
|
|
|
+:deep.van-field--disabled {
|
|
|
+ color: #323233;
|
|
|
+}
|
|
|
+:deep.van-field--disabled .van-field__label {
|
|
|
color: #323233;
|
|
|
}
|
|
|
-:deep.van-field--disabled .van-field__label{
|
|
|
+:deep .van-field__control[disabled] {
|
|
|
color: #323233;
|
|
|
+ -webkit-text-fill-color: #323233;
|
|
|
}
|
|
|
-:deep .van-field__control[disabled]{
|
|
|
- color: #323233;
|
|
|
- -webkit-text-fill-color: #323233;
|
|
|
- }
|
|
|
</style>
|