coys 2 vuotta sitten
vanhempi
commit
56a32a11d2

+ 7 - 1
src/router/router.config.js

@@ -78,10 +78,16 @@ export let routers = [
     meta: { title: '教育培训记录详情', keepAlive: false }
   },
   {
+    path: '/rehearsalTasinfo/:id',
+    name: 'rehearsalTasinfo',
+    component: () => import('@/views/menu/rehearsalTask/components/rehearsalTaskSign.vue'),
+    meta: { title: '演练详情', keepAlive: false }
+  },
+  {
     path: '/rehearsalTaskSign/:id',
     name: 'rehearsalTaskSign',
     component: () => import('@/views/menu/rehearsalTask/components/rehearsalTaskSign.vue'),
-    meta: { title: '演练登记签名', keepAlive: false }
+    meta: { title: '演练参与人员签名', keepAlive: false }
   },
   {
     path: '/home',

+ 7 - 0
src/utils/date.js

@@ -8,6 +8,13 @@ export function newDateMonth(time) {
   d = d < 10 ? '0' + d : d
   return y + '-' + m
 }
+export function newDateYear(time) {
+  var date=time? new Date(time):new Date()
+
+  var y = date.getFullYear()
+ 
+  return y 
+}
 export function newDateDay(time) {
   var date = new Date(time)
   var y = date.getFullYear()

+ 118 - 49
src/views/menu/rehearsalTask/components/addRehearsalTask.vue

@@ -3,24 +3,37 @@
     <NavBar :go="{ type: 'push', path: '/rehearsalTask' }" />
     <van-form class="bigbox" ref="form">
       <div class="mainItem">
-        <div>标题</div>
-        <div>{{ trainingData?.title }}</div>
+        <div class="label">标题</div>
+        <div >{{ trainingData?.title }}</div>
       </div>
       <div class="mainItem">
-        <div>单位名称</div>
-        <div>{{ trainingData?.orgName }}</div>
+        <div class="label">单位名称</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">
@@ -31,54 +44,62 @@
           @cancel="showStartDate = false"
         />
       </van-popup>
-      <!-- 演练地点 -->
+      <!-- 培训结束时间 -->
       <van-field
         readonly
         clickable
+        name="datetimePicker"
         :value="form.trainingEndDateTime"
         required
-        :rules="[{ required: true, message: '演练地点不能为空' }]"
-        label="演练地点"
-        placeholder="请选择演练地点"
+        :rules="[{ required: true, message: '培训结束时间不能为空' }]"
+        label="培训结束时间"
+        placeholder="请选择培训结束时间"
+        @click="showEndDate = true"
       />
-      <!-- 演练项目 -->
-      <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 v-model="showEndDate" position="bottom">
+        <van-datetime-picker
+          v-model="endDateTime"
+          type="datetime"
+          @confirm="onConfirmEndDate"
+          @cancel="showEndDate = false"
+        />
       </van-popup>
-      <van-button type="info" @click="submitHandler(1)">参考预案演练库</van-button>
+      <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>
+      <!-- 培训内容 -->
       <van-field
         required
-        :rules="[{ required: true, message: '预设案由不能为空' }]"
+        :rules="[{ required: true, message: '培训内容不能为空' }]"
         v-model="form.content"
         name="content"
-        label="预设案由"
+        label="培训内容"
         type="textarea"
-        row="2"
-        placeholder="请填写预设案由"
+        row="3"
+        maxlength="2000"
+        show-word-limit
+        placeholder="请填写培训内容"
       />
-      <!-- 演练情况 -->
+      <!-- 总结 -->
       <van-field
         required
-        :rules="[{ required: true, message: '演练情况不能为空' }]"
+        :rules="[{ required: true, message: '总结不能为空' }]"
         v-model="form.note"
         name="note"
-        label="演练情况"
+        label="总结"
         type="textarea"
         row="3"
-        placeholder="请结合网点进行演练情况"
+        maxlength="2000"
+        show-word-limit
+        placeholder="请结合网点进行总结"
       />
 
       <!-- 参与人员 -->
@@ -103,7 +124,7 @@
       <!-- 上传 -->
       <van-field readonly clickable name="uploader" label="上传图片">
         <template #input>
-          <Upload v-model="form.imageList"></Upload>
+          <Upload v-model="form.imageList" :maxCount="5" @input="listHandler"></Upload>
         </template>
       </van-field>
       <div class="btns">
@@ -117,18 +138,25 @@
 import NavBar from '@/components/NavBar'
 import CheckPeople from '@/components/peopleList/index.vue'
 import Upload from '@/components/upload/index.vue'
+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"
+
 export default {
   name: 'SocAppAddTraining',
   components: {
+    VuePdf,
     NavBar,
+    imgCom,
     Upload,
     CheckPeople
   },
   data() {
     return {
+      this_window:window,
+      studyList: [], //学习资料数组
       startDateTime: new Date(),
       endDateTime: new Date(),
       falg: false, //校验是否通过
@@ -162,10 +190,32 @@ 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
+            }
+            this.studyList.push(i)
+          })
+        }
         if (!data.imageList) {
           data.imageList = []
         } else {
-          data.imageList = [data.imageList]
+          let list = []
+          data.imageList = data.imageList.split(',')
+
+          data.imageList.forEach(item => {
+            list.push({
+              name: '',
+              path: item
+            })
+          })
+          data.imageList = list || []
         }
         Object.assign(this.form, data)
         // checkPeople
@@ -193,6 +243,8 @@ export default {
   mounted() {},
 
   methods: {
+    // 查看pdf
+    
     onSubmit(values) {
       console.log('submit', values)
       Dialog.confirm({
@@ -252,7 +304,10 @@ export default {
       this.lackPeopleList = list
     },
     //上传附件成功
-    listHandler(list) {},
+    listHandler(list) {
+      console.log(list,'mmmm');
+      this.form.imageList = list || []
+    },
     //表单提交前校验
     beforSubmitV() {
       this.falg = false
@@ -312,14 +367,13 @@ export default {
         message: `是否${type === 2 ? '提交' : '保存'}培训数据?`
       })
         .then(() => {
-          this.beforSubmitV() //校验
-          if (!this.falg) {
-            //校验通过触发
-
-            if (type === 1) {
-              //type 1保存2提交
-              this.submitHandlerConfirm(type)
-            } else {
+          if (type === 1) {
+            //type 1保存2提交
+            this.submitHandlerConfirm(type)
+          } else {
+            this.beforSubmitV() //校验
+            if (!this.falg) {
+              //校验通过触发
               this.$refs.form.validate().then(() => {
                 this.submitHandlerConfirm(type)
               })
@@ -334,8 +388,10 @@ export default {
     submitHandlerConfirm(type) {
       let obj = JSON.parse(JSON.stringify(this.form))
 
-      obj.imageList = obj.imageList.map(item => item.imgPath).join(',')
+      obj.imageList = obj.imageList.map(item => item.path).join(',')
+      console.log(obj.imageList);
       obj.taskUserList = []
+      
       obj.taskUserList.push(...this.userPeopleList, ...this.lackPeopleList)
 
       edittrainingInfo({
@@ -364,11 +420,24 @@ export default {
   padding: 34px;
   justify-content: space-between;
   background-color: #fff;
+  div {
+    flex: 1;
+    text-align: left;
+  }
+  .label {
+    width: 200px;
+    flex: none;
+    text-align: left;
+  }
 }
 .bigbox {
   height: calc(100vh - 200px);
   overflow: scroll;
 }
+// .imglIST{
+//   width: 100px;
+//   height: 100px;
+// }
 .btns {
   position: fixed;
   bottom: -7%;

+ 89 - 40
src/views/menu/rehearsalTask/components/rehearsalTaskSign.vue

@@ -1,62 +1,83 @@
 <template>
   <div>
-    <NavBar :go="{type:'push',path:'/rehearsalTask'}"/>
+    <NavBar :go="{ type: 'push', path: '/rehearsalTask' }" />
 
     <div class="mainItem">
-      <div>标题</div>
+      <div class="label">标题</div>
       <div>{{ trainingData?.title }}</div>
     </div>
     <div class="mainItem">
-      <div>单位名称</div>
+      <div class="label">单位名称</div>
       <div>{{ trainingData?.orgName }}</div>
     </div>
     <div class="mainItem">
-      <div>演练时间</div>
+      <div class="label">培训类型</div>
       <div>{{ trainingData?.typeText }}</div>
     </div>
     <div class="mainItem">
-      <div>演练地点</div>
+      <div class="label">培训开始时间</div>
       <div>{{ trainingData?.trainingStartDateTime }}</div>
     </div>
     <div class="mainItem">
-      <div>指挥人</div>
+      <div class="label">培训结束时间</div>
       <div>{{ trainingData?.trainingEndDateTime }}</div>
     </div>
     <div class="mainItem">
-      <div>演练项目</div>
+      <div class="label">主持人</div>
       <div>{{ trainingData?.hostName }}</div>
     </div>
     <div class="mainItem">
-      <div>预设案由</div>
+      <div class="label">记录人</div>
+      <div>{{ trainingData?.recorderName }}</div>
+    </div>
+    <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 class="mainItem">
+      <div class="label">培训内容</div>
       <div>{{ trainingData?.content }}</div>
     </div>
     <div class="mainItem">
-      <div>演练情况</div>
+      <div class="label">总结</div>
       <div>{{ trainingData?.note }}</div>
     </div>
     <div class="mainItem">
-      <div>参与人员</div>
+      <div class="label">参与人员</div>
       <div>{{ taskUserList }}</div>
     </div>
     <div class="mainItem">
-      <div>缺席人员</div>
+      <div class="label">缺席人员</div>
       <div>{{ qsUserList }}</div>
     </div>
     <div class="mainItem">
-      <div>上传图片</div>
-      
+      <div class="label">上传图片</div>
+
       <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>参与人员签名图片</div>
-      <imgCom :width="'100'" v-for="item in signUserList" :key="item.userId" :height="'100'" :src="item.signImage||''"></imgCom>
-
-     
+    <div class="mainItem" v-if="this.$route.params.id.split('_')[1] === 'info'">
+      <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-row>
       <van-col span="24" class="btns">
-        <van-button type="info" class="btn" v-if="this.$route.params.id.split('_')[1]==='edit'" @click="signatureHandler">签名</van-button>
+        <van-button
+          type="info"
+          class="btn"
+          v-if="this.$route.params.id.split('_')[1] === 'edit'"
+          @click="signatureHandler"
+          >签名</van-button
+        >
       </van-col>
     </van-row>
     <van-action-sheet v-model="show" title="签署名字" class="sheet">
@@ -67,25 +88,29 @@
 <script>
 import NavBar from '@/components/NavBar'
 import writingPad from '@/components/writingPad/index.vue'
-import { gettrainingInfo,signtrainingInfo } from '@/api/training.js'
+import { gettrainingInfo, signtrainingInfo } from '@/api/training.js'
 import { upload } from '@/api/public'
 import imgCom from '@/components/imgCom/index.vue'
-import {base64ToBlob} from '@/utils/base64TurnImg.js'
-import config from '@/config/index';
+import { base64ToBlob } from '@/utils/base64TurnImg.js'
+import config from '@/config/index'
+import VuePdf from "@/components/pdfCom/index.vue"
 export default {
   name: 'SocAppAddTraining',
   components: {
     NavBar,
+    VuePdf,
     imgCom,
     writingPad
   },
   data() {
     return {
+      this_window:window,
       show: false,
       taskUserList: [], //参与人员
       qsUserList: [], //缺席人员
       imgList: [], //图片数组
       signUserList: [], //参与人员签名数组
+      studyList: [], //学习资料数组
       trainingData: {} //详情数据
     }
   },
@@ -107,11 +132,22 @@ export default {
           }
         })
         this.qsUserList = this.qsUserList.join(',')
-        this.signUserList=data.taskUserList||[]
-        this.imgList = this.trainingData?.imageList?.split(',')||[]
-        console.log(this.qsUserList);
-        console.log(this.signUserList);
-        console.log(this.imgList);
+        this.signUserList = data.taskUserList || []
+        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
+            }
+            this.studyList.push(i)
+          })
+        }
+        
+        this.imgList = this.trainingData?.imageList?.split(',') || []
       }
     })
   },
@@ -131,30 +167,30 @@ export default {
     resultImg(img) {
       let obj = base64ToBlob(img)
       let formData = new FormData()
-      
+
       obj.name = '签名.jpg'
       formData.append('file', base64ToBlob(img))
-      
+
       upload(formData, 'image')
         .then(res => {
-          console.log(process.env.NODE_ENV);
+          console.log(process.env.NODE_ENV)
           /*上传成功*/
-          let imgUrl = process.env.NODE_ENV === 'development' ?  res.data.url : window.origin + res.data.url
-         this.submitSign(imgUrl)
-          
+          let imgUrl = process.env.NODE_ENV === 'development' ? res.data.url : res.data.url
+          this.submitSign(imgUrl)
+
           // this.$emit("imgUrl", res.data.url);
         })
         .catch(err => {
           /*上传失败*/
         })
     },
-    
+
     //提交到后端数据
-    submitSign(url){
+    submitSign(url) {
       signtrainingInfo({
-        id:this.trainingData.id,
-        signImage:url,
-      }).then(res=>{
+        id: this.trainingData.id,
+        signImage: url
+      }).then(res => {
         this.$router.push('/training')
       })
     }
@@ -168,6 +204,19 @@ export default {
   padding: 34px;
   justify-content: space-between;
   background-color: #fff;
+  overflow: scroll;
+  div {
+    flex: 1;
+    text-align: right;
+  }
+  .label {
+    width: 200px;
+    flex: none;
+    text-align: left;
+  }
+  .labelPeople {
+    width: 300px;
+  }
 }
 .btns {
   background-color: #fff;
@@ -177,6 +226,6 @@ export default {
   width: 100%;
 }
 .sheet {
-  height: 60%;
+  height: 45%;
 }
 </style>

+ 144 - 91
src/views/menu/rehearsalTask/index.vue

@@ -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>