coys 2 years ago
parent
commit
ba9ef7e076

+ 12 - 0
src/router/router.config.js

@@ -90,6 +90,12 @@ export let routers = [
     meta: { title: '演练参与人员签名', keepAlive: false }
   },
   {
+    path: '/commentSign/:id',
+    name: 'commentSign',
+    component: () => import('@/views/menu/rehearsalTask/components/rehearsalTaskSign.vue'),
+    meta: { title: '演练详情', keepAlive: false }
+  },
+  {
     path: '/home',
     component: () => import('@/components/layouts/index'),
     redirect:'/works',
@@ -165,6 +171,12 @@ export let routers = [
         meta: { title: '演练登记', keepAlive: true }
       },
       {
+        path: '/rehearsaloptimal',
+        name: 'rehearsaloptimal',
+        component: () => import('@/views/menu/rehearsalTask/optimal'),
+        meta: { title: '评优推优', keepAlive: true }
+      },
+      {
         path: '/educationStatistics',
         name: 'educationStatistics',
         component: () => import('@/views/menu/educationStatistics/index'),

+ 68 - 84
src/views/menu/rehearsalTask/components/addRehearsalTask.vue

@@ -4,36 +4,22 @@
     <van-form class="bigbox" ref="form">
       <div class="mainItem">
         <div class="label">标题</div>
-        <div >{{ trainingData?.title }}</div>
+        <div>{{ trainingData?.title }}</div>
       </div>
       <div class="mainItem">
         <div class="label">单位名称</div>
-        <div >{{ trainingData?.orgName }}</div>
+        <div>{{ trainingData?.orgName }}</div>
       </div>
-      <van-field
-        readonly
-        clickable
-        required
-        name="picker"
-        :value="form.typeText"
-        label="培训类型"
-        :rules="[{ required: true, message: '培训类型不能为空' }]"
-        placeholder="请选择培训类型"
-        @click="showPicker = true"
-      />
-      <van-popup v-model="showPicker" position="bottom">
-        <van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
-      </van-popup>
-      <!-- 培训开始时间 -->
+      <!-- 演练时间 -->
       <van-field
         readonly
         clickable
         name="datetimePicker"
         :value="form.trainingStartDateTime"
         required
-        :rules="[{ required: true, message: '培训开始时间不能为空' }]"
-        label="培训开始时间"
-        placeholder="请选择培训开始时间"
+        :rules="[{ required: true, message: '演练时间不能为空' }]"
+        label="演练时间"
+        placeholder="请选择演练时间"
         @click="showStartDate = true"
       />
       <van-popup v-model="showStartDate" position="bottom">
@@ -44,63 +30,68 @@
           @cancel="showStartDate = false"
         />
       </van-popup>
-      <!-- 培训结束时间 -->
+      <!-- 演练地点 -->
+      <van-field
+        required
+        :rules="[{ required: true, message: '演练地点不能为空' }]"
+        v-model="form.content"
+        name="content"
+        label="演练地点"
+        type="textarea"
+        row="3"
+        maxlength="50"
+        show-word-limit
+        placeholder="请填写演练地点"
+      />
+      <!-- //演练项目 -->
       <van-field
         readonly
         clickable
-        name="datetimePicker"
-        :value="form.trainingEndDateTime"
         required
-        :rules="[{ required: true, message: '培训结束时间不能为空' }]"
-        label="培训结束时间"
-        placeholder="请选择培训结束时间"
-        @click="showEndDate = true"
+        name="picker"
+        :value="form.typeText"
+        label="演练项目"
+        :rules="[{ required: true, message: '演练项目不能为空' }]"
+        placeholder="请选择演练项目"
+        @click="showPicker = true"
       />
-      <van-popup v-model="showEndDate" position="bottom">
-        <van-datetime-picker
-          v-model="endDateTime"
-          type="datetime"
-          @confirm="onConfirmEndDate"
-          @cancel="showEndDate = false"
-        />
+      <van-popup v-model="showPicker" position="bottom">
+        <van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
       </van-popup>
+      <!-- 参考预案演练库 -->
       <div class="mainItem">
-      <div class="label labelPeople">培训资料</div>
-      <template v-for="item in studyList">
-        <div :key="item.url" class="imglIST" style="{width:'100px',height: '100px';}">
+        <div class="label labelPeople"><van-button size="small" type="info">参考预案演练库</van-button></div>
+      </div>
+      <!-- 预设案由 -->
 
-          <imgCom :width="'100'" v-if="this_window.origin+item.url&&item.type==0"  :height="'100'" :src="this_window.origin+item.url"></imgCom>
-          <!-- <VuePdf v-else :src="this_window.origin+item.url"></VuePdf> -->
-          <VuePdf  v-else  :src="this_window.origin+item.url"></VuePdf>
-        </div>
-      </template>
-    </div>
-      <!-- 培训内容 -->
       <van-field
         required
-        :rules="[{ required: true, message: '培训内容不能为空' }]"
+        :rules="[{ required: true, message: '预设案由不能为空' }]"
         v-model="form.content"
         name="content"
-        label="培训内容"
+        label="预设案由"
         type="textarea"
         row="3"
-        maxlength="2000"
+        maxlength="50"
         show-word-limit
-        placeholder="请填写培训内容"
+        placeholder="请填写预设案由"
       />
-      <!-- 总结 -->
+
+     
+      <!-- 演练情况 -->
       <van-field
         required
-        :rules="[{ required: true, message: '总结不能为空' }]"
-        v-model="form.note"
-        name="note"
-        label="总结"
+        :rules="[{ required: true, message: '演练情况不能为空' }]"
+        v-model="form.content"
+        name="content"
+        label="演练情况"
         type="textarea"
         row="3"
         maxlength="2000"
         show-word-limit
-        placeholder="请结合网点进行总结"
+        placeholder="请填写演练情况"
       />
+     
 
       <!-- 参与人员 -->
 
@@ -142,7 +133,7 @@ import imgCom from '@/components/imgCom/index.vue'
 import { gettrainingInfo, edittrainingInfo } from '@/api/training.js'
 import { newDateTime } from '@/utils/date.js'
 import { Dialog, Toast } from 'vant'
-import VuePdf from "@/components/pdfCom/index.vue"
+import VuePdf from '@/components/pdfCom/index.vue'
 
 export default {
   name: 'SocAppAddTraining',
@@ -155,13 +146,12 @@ export default {
   },
   data() {
     return {
-      this_window:window,
-      studyList: [], //学习资料数组
+      // this_window: window,
+      // studyList: [], //学习资料数组
       startDateTime: new Date(),
-      endDateTime: new Date(),
+     
       falg: false, //校验是否通过
-      username: '',
-      password: '',
+    
       form: {
         typeText: '', //培训类型
         type: '', //培训value
@@ -177,7 +167,6 @@ export default {
       lackPeopleList: [], //缺席人员数组
       showPicker: false, //培训类型显示隐藏
       showStartDate: false, //开始时间显示隐藏
-      showEndDate: false, //结束时间显示隐藏
       columns: ['每月安全培训教育', '专项安全培训教育']
     }
   },
@@ -190,19 +179,19 @@ export default {
         if (!data.taskUserList) {
           data.taskUserList = []
         }
-        let newlist = data.fileList || []
-        if (newlist.length > 0) {
-          newlist.forEach(item => {
-           let i=JSON.parse(item)
-           console.log(i);
-            if(i.url.split('.')[1]=='pdf'){
-              i.type=1
-            }else{
-              i.type=0
-            }
+        // let newlist = data.fileList || []
+        // if (newlist.length > 0) {
+        //   newlist.forEach(item => {
+        //     let i = JSON.parse(item)
+        //     console.log(i)
+        //     if (i.url.split('.')[1] == 'pdf') {
+        //       i.type = 1
+        //     } else {
+        //       i.type = 0
+        //     }
             this.studyList.push(i)
-          })
-        }
+        //   })
+        // }
         if (!data.imageList) {
           data.imageList = []
         } else {
@@ -243,8 +232,7 @@ export default {
   mounted() {},
 
   methods: {
-    // 查看pdf
-    
+   
     onSubmit(values) {
       console.log('submit', values)
       Dialog.confirm({
@@ -279,11 +267,7 @@ export default {
 
       this.showStartDate = false
     },
-    //结束时间
-    onConfirmEndDate(val) {
-      this.form.trainingEndDateTime = newDateTime(val)
-      this.showEndDate = false
-    },
+    
     userListHandler(list) {
       list.forEach(item => {
         ;(item.type = 1), (item.userId = item.id)
@@ -305,7 +289,7 @@ export default {
     },
     //上传附件成功
     listHandler(list) {
-      console.log(list,'mmmm');
+    
       this.form.imageList = list || []
     },
     //表单提交前校验
@@ -389,9 +373,9 @@ export default {
       let obj = JSON.parse(JSON.stringify(this.form))
 
       obj.imageList = obj.imageList.map(item => item.path).join(',')
-      console.log(obj.imageList);
+      console.log(obj.imageList)
       obj.taskUserList = []
-      
+
       obj.taskUserList.push(...this.userPeopleList, ...this.lackPeopleList)
 
       edittrainingInfo({
@@ -425,7 +409,7 @@ export default {
     text-align: left;
   }
   .label {
-    width: 200px;
+    
     flex: none;
     text-align: left;
   }

+ 68 - 24
src/views/menu/rehearsalTask/components/rehearsalTaskSign.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <NavBar :go="{ type: 'push', path: '/rehearsalTask' }" />
+    <NavBar :go="{ type: 'push', path: goBack }" />
 
     <div class="mainItem">
       <div class="label">标题</div>
@@ -11,45 +11,42 @@
       <div>{{ trainingData?.orgName }}</div>
     </div>
     <div class="mainItem">
-      <div class="label">培训类型</div>
+      <div class="label">演练时间</div>
       <div>{{ trainingData?.typeText }}</div>
     </div>
     <div class="mainItem">
-      <div class="label">培训开始时间</div>
+      <div class="label">演练地点</div>
       <div>{{ trainingData?.trainingStartDateTime }}</div>
     </div>
     <div class="mainItem">
-      <div class="label">培训结束时间</div>
+      <div class="label">指挥人</div>
       <div>{{ trainingData?.trainingEndDateTime }}</div>
     </div>
     <div class="mainItem">
-      <div class="label">主持人</div>
+      <div class="label">演练项目</div>
       <div>{{ trainingData?.hostName }}</div>
     </div>
     <div class="mainItem">
-      <div class="label">记录人</div>
+      <div class="label">预设案由</div>
       <div>{{ trainingData?.recorderName }}</div>
     </div>
-    <div class="mainItem">
+    <!-- <div class="mainItem">
       
       <div class="label labelPeople">培训资料</div>
       <template v-for="item in studyList">
         <div :key="item.url" class="imglIST" style="{width:'100px',height: '100px';}">
 
           <imgCom :width="'100'"  v-if="this_window.origin+item.url&&item.type==0"  :height="'100'" :src="this_window.origin+item.url"></imgCom>
-          <!-- <VuePdf v-else :src="this_window.origin+item.url"></VuePdf> -->
+          
           <VuePdf v-else  :src="this_window.origin+item.url"></VuePdf>
         </div>
       </template>
-    </div>
+    </div> -->
     <div class="mainItem">
-      <div class="label">培训内容</div>
+      <div class="label">演练情况</div>
       <div>{{ trainingData?.content }}</div>
     </div>
-    <div class="mainItem">
-      <div class="label">总结</div>
-      <div>{{ trainingData?.note }}</div>
-    </div>
+
     <div class="mainItem">
       <div class="label">参与人员</div>
       <div>{{ taskUserList }}</div>
@@ -63,14 +60,39 @@
 
       <imgCom :width="'100'" v-for="item in imgList" :key="item" :height="'100'" :src="item"></imgCom>
     </div>
-    <div class="mainItem" v-if="this.$route.params.id.split('_')[1] === 'info'">
+    <div
+      class="mainItem"
+      v-if="this.$route.params.id.split('_')[1] === 'info' || this.$route.params.id.split('_')[1] === 'comment'"
+    >
       <div class="label labelPeople">参与人员签名图片</div>
       <template v-for="item in signUserList">
         <imgCom :width="'100'" v-if="item.signImage" :key="item.userId" :height="'100'" :src="item.signImage"></imgCom>
       </template>
     </div>
+    <!-- <van-rate value="{{ value }}" count="{{ 6 }}" bind:change="onChange" /> -->
+    <div
+      class="mainItem"
+      v-if="this.$route.params.id.split('_')[1] === 'evaluate' || this.$route.params.id.split('_')[1] === 'comment'"
+    >
+      <div class="label">评分</div>
+      <div><van-rate v-model="value" :count="10" /></div>
+    </div>
+    <van-field
+      v-if="this.$route.params.id.split('_')[1] === 'evaluate' || this.$route.params.id.split('_')[1] === 'comment'"
+      required
+      :rules="[{ required: true, message: '评语不能为空' }]"
+      v-model="content"
+      name="content"
+      label="评语"
+      type="textarea"
+      row="3"
+      maxlength="200"
+      show-word-limit
+      placeholder="请填写评语"
+    />
     <van-row>
       <van-col span="24" class="btns">
+        <!-- 签名 -->
         <van-button
           type="info"
           class="btn"
@@ -78,6 +100,16 @@
           @click="signatureHandler"
           >签名</van-button
         >
+         <!-- 评价 || 评优推优选  -->
+        <van-button
+          type="info"
+          class="btn"
+          v-if="this.$route.params.id.split('_')[1] === 'evaluate' || this.$route.params.id.split('_')[1] === 'comment'"
+          @click="signatureHandler"
+          >提交</van-button
+        >
+        
+        
       </van-col>
     </van-row>
     <van-action-sheet v-model="show" title="签署名字" class="sheet">
@@ -93,7 +125,7 @@ import { upload } from '@/api/public'
 import imgCom from '@/components/imgCom/index.vue'
 import { base64ToBlob } from '@/utils/base64TurnImg.js'
 import config from '@/config/index'
-import VuePdf from "@/components/pdfCom/index.vue"
+import VuePdf from '@/components/pdfCom/index.vue'
 export default {
   name: 'SocAppAddTraining',
   components: {
@@ -104,7 +136,9 @@ export default {
   },
   data() {
     return {
-      this_window:window,
+      content: '', //评语
+      value: 0, //评分
+      this_window: window,
       show: false,
       taskUserList: [], //参与人员
       qsUserList: [], //缺席人员
@@ -114,6 +148,16 @@ export default {
       trainingData: {} //详情数据
     }
   },
+  computed:{
+    goBack(){
+      if(this.$route.params.id.split('_')[1] === 'evaluate'){
+        return '/rehearsalTask'
+      }else if(this.$route.params.id.split('_')[1] === 'comment'){
+        return '/rehearsaloptimal'
+      }
+      
+    }
+  },
   created() {
     //获取详情信息
     gettrainingInfo(this.$route.params.id.split('_')[0]).then(res => {
@@ -136,17 +180,17 @@ export default {
         let list = data.fileList || []
         if (list.length > 0) {
           list.forEach(item => {
-           let i=JSON.parse(item)
-           console.log(i);
-            if(i.url.split('.')[1]=='pdf'){
-              i.type=1
-            }else{
-              i.type=0
+            let i = JSON.parse(item)
+            console.log(i)
+            if (i.url.split('.')[1] == 'pdf') {
+              i.type = 1
+            } else {
+              i.type = 0
             }
             this.studyList.push(i)
           })
         }
-        
+
         this.imgList = this.trainingData?.imageList?.split(',') || []
       }
     })

+ 8 - 1
src/views/menu/rehearsalTask/index.vue

@@ -85,9 +85,10 @@
                 <van-button type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
                   >签名</van-button
                 >
-                <van-button type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
+                <van-button type="info" v-if="isSignature(item)" size="mini" @click="evaluate(item.id)"
                   >评价</van-button
                 >
+                
               </div>
             </div>
           </template>
@@ -237,6 +238,7 @@ export default {
     },
     //判断是否展示签名按钮
     isSignature(list) {
+      return true
       let falg = false
       let timefalg = false
       //value1 当前登陆用户ID
@@ -264,6 +266,7 @@ export default {
     },
     //判断是否展示登记按钮
     isSign(list) {
+      return true
       let falg = false
       let timefalg = false
       //value1 当前登陆用户ID
@@ -469,6 +472,10 @@ export default {
     signature(id) {
       this.$router.push('/rehearsalTaskSign/' + id + '_edit')
     },
+    //评价
+    evaluate(id){
+      this.$router.push('/rehearsalTaskSign/' + id + '_evaluate')
+    },
     //关闭弹框
     beforeClose() {
       console.log('sssssssss')

+ 479 - 0
src/views/menu/rehearsalTask/optimal.vue

@@ -0,0 +1,479 @@
+<template>
+  <div>
+    <div class="topBox">
+      <NavBar :go="{ type: 'push', path: '/menu' }" />
+
+      <van-row>
+        <van-col span="24">
+          <org-tree v-model="cascaderValue" :name="'sss'" @changeItem="getDataList"></org-tree>
+        </van-col>
+      </van-row>
+      <van-row>
+        <van-col span="12"
+          ><van-field
+            v-model="fieldValue"
+            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="状态"
+              show-toolbar
+              :columns="columns"
+              @confirm="onConfirm"
+              @cancel="onCancel"
+              :close-on-click-overlay="false"
+            />
+          </van-popup>
+        </van-col>
+        <van-col span="12">
+          <van-field
+            v-model="currentDate"
+            clearable
+            label-width="3em"
+            label="年份"
+            placeholder=""
+            :disabled="showDate"
+            @click="showDate = true"
+          >
+            <van-icon name="arrow-down" slot="button"
+          /></van-field>
+          <van-popup v-model="showDate" round position="bottom">
+            <van-picker
+              v-model="presentDate"
+              @cancel="onCancel"
+              :columns="yearColumns"
+              @confirm="onDateConfirm"
+              :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>
+
+    <!-- //卡片内容区域 -->
+    <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 type="info" v-if="isSign(item)" size="mini" @click="commentSign(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.trainingStartDateTime }}</div>
+            </div>
+          </div>
+        </van-panel>
+      </van-list>
+    </div>
+   
+  </div>
+</template>
+<script>
+import NavBar from '@/components/NavBar'
+import { Col, Row, Cascader, Dialog, DatetimePicker, Icon, Picker } from 'vant'
+import { gettrainingList,  } from '@/api/training.js'
+import { deptTreeList } from '@/api/toConsult.js'
+import { Toast } from 'vant'
+import OrgTree from '@/components/orgTree'
+import { newDateMonth, newDateYear } from '@/utils/date.js'
+export default {
+  data() {
+    return {
+      orgName: '',
+      orgShow: false,
+      presentDate: '', //默认时间
+      pageNum: 1,
+      loading: false, //加载状态
+      finished: false, //是否全部加载完毕
+     
+      yearColumns: [],
+    
+      orgName: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //机构名称
+      cascaderValue: '', //机构ID
+      show: false, //机构弹框显示隐藏
+      active: '0',
+      fieldNames: {
+        text: 'name',
+        value: 'id',
+        children: 'children'
+      },
+      taskList: [], //列表数据
+      typeValue: ' ', //类型值
+      yearSelect: null,
+      value1: JSON.parse(sessionStorage.getItem('SET_USER_ID')) || '', //输入框model
+
+      showStatus: false, //状态显示隐藏
+      showDate: false, //月份显示隐藏
+      fieldValue: '全部', //状态名称
+      statusValue: ' ', //状态值
+      columns: ['全部', '待记录', '待签名', '已完成'], //状态数组
+      currentDate: newDateYear(), //年份
+    }
+  },
+  components: {
+    NavBar,
+    OrgTree,
+    Dialog,
+    Icon,
+    DatetimePicker,
+    Picker,
+    Col,
+    Row,
+    Cascader
+  },
+
+  filters: {
+    statusFilter: function (value) {
+      let str = ''
+      // 0待调阅,1调阅中,2已调阅,3已超期
+      switch (value) {
+        case 0:
+          str = '待调阅'
+
+          break
+        case 1:
+          str = '调阅中'
+          break
+
+        case 2:
+          str = '已调阅'
+          break
+
+        case 3:
+          str = '已超期'
+          break
+      }
+      return str
+    }
+  },
+
+  created() {
+    this.presentDate = new Date(newDateYear())
+    console.log(this.presentDate)
+    this.yearData()
+  },
+  mounted() {
+    this.init()
+    this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
+  },
+  methods: {
+    //机构搜索
+    getDataList(val) {
+      this.cascaderValue = val.id
+      this.orgName = val.name
+      this.selectListAppHandler()
+    },
+   
+    //判断是否展示登记按钮
+    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) {
+        //当前时间大于结束时间表示已超期
+
+        timefalg = false
+        falg = false
+      }
+      if (falg && timefalg) {
+        return true
+      }
+    },
+    //清空查询条件
+    clearSearch() {
+      this.fieldValue = ''
+      this.statusValue = ''
+      this.cascaderValue = ''
+      this.currentDate = ''
+      this.typeValue = ''
+      this.typeName = ''
+      this.orgName = ''
+
+      this.selectListAppHandler()
+    },
+
+    //初始化
+    init() {
+      this.selectListAppHandler()
+    },
+    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
+      }
+
+      obj.orgId = this.cascaderValue || JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + '' || ''
+
+      if (this.currentDate) {
+        obj.date = this.currentDate
+      }
+      if (this.typeValue) {
+        obj.type = this.typeValue
+      }
+
+      //获取任务列表
+      gettrainingList(obj).then(res => {
+        let { code, rows, msg } = res
+        if (code == 200) {
+          if (type) {
+            this.taskList.push(...rows)
+            if (rows.length == 0 || rows.length < 10) {
+              //已加载完全部数据
+              this.finished = true
+            }
+            callback()
+          } else {
+            this.finished = false
+            this.taskList = rows
+          }
+        }
+      })
+    },
+
+    // 开始调阅事件
+    startMonitorHandler(taskId) {
+      this.taskId = taskId
+      this.showDialog = true
+    },
+    //已调阅事件
+    endMonitorHandler(status, taskId) {
+      // 0待调阅,1调阅中,2已调阅,3已超期
+      //跳转详情
+      if (status <= 1) return
+      this.$router.push('/consultInfo/' + taskId)
+    },
+
+    //搜索选择状态时触发
+    onConfirm(value, index) {
+      this.fieldValue = value
+
+      switch (value) {
+        case '待记录':
+          this.statusValue = '0'
+
+          break
+        case '待签名':
+          this.statusValue = '1'
+          break
+
+        case '已完成':
+          this.statusValue = '2'
+          break
+        case '全部':
+          this.statusValue = ' '
+          break
+      }
+      this.selectListAppHandler()
+      this.showStatus = false
+    },
+
+    //月份选中触发
+    onDateConfirm() {
+      this.currentDate = this.newDate(this.presentDate)
+
+      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()
+      var m = date.getMonth() + 1
+      m = m < 10 ? '0' + m : m
+      var d = date.getDate()
+      d = d < 10 ? '0' + d : d
+      return y
+    },
+    //日期格式
+    formatDate(date) {
+      return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
+    },
+
+    //onLoad下拉刷新
+    onLoad() {
+      if (this.pageNum == 1) {
+        this.pageNum = 2
+      }
+      this.loading = true
+      this.selectListAppHandler(1, () => {
+        this.pageNum++
+        this.loading = false
+        console.log(1)
+      })
+    },
+   
+    //培训登记跳转
+    commentSign(id) {
+        this.$router.push('/commentSign/' + id + '_comment')
+    },
+  
+    //跳转详情
+    goInfo(id) {
+      this.$router.push('/commentSign/' + id + '_info')
+    },
+
+    onCancel() {
+      this.show = false
+      this.typeStatus = false
+      this.showDate = false
+      this.showStatus = false
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.popup {
+  height: 40vh;
+}
+.navBarclas {
+  height: calc(100vh - 380px);
+  overflow: scroll;
+}
+.btnf_box {
+  background-color: #fff;
+}
+.card {
+  margin: 20px;
+  margin-bottom: 0px;
+  box-shadow: 0 8px 12px #ebedf0;
+}
+.btn {
+  float: right;
+  margin-top: 24px;
+  margin-right: 20px;
+  box-sizing: border-box;
+}
+.titleClass {
+  display: flex;
+  align-items: center;
+  height: 100%;
+  padding: 20px;
+  border-bottom: 1px solid #ccc;
+
+  .title {
+    font-size: 30px;
+    flex: 1;
+    line-height: 50px;
+  }
+}
+.mainItem {
+  display: flex;
+  font-size: 28px;
+  padding: 20px;
+  justify-content: space-between;
+  .condition {
+    color: #1989fa;
+    text-decoration: underline;
+  }
+}
+.conditionCls {
+  .title {
+    color: #1989fa;
+    margin-left: 30px;
+    // margin-top: 30px;
+  }
+  .people {
+    margin-left: 80px;
+    margin-bottom: 30px;
+    margin-top: 30px;
+  }
+}
+.topBox {
+  overflow: hidden;
+}
+:deep.van-field--disabled {
+  color: #323233;
+}
+:deep.van-field--disabled .van-field__label {
+  color: #323233;
+}
+:deep .van-field__control[disabled] {
+  color: #323233;
+  -webkit-text-fill-color: #323233;
+}
+</style>