瀏覽代碼

优秀案例管理优化, 驾驶舱总览统计页面调整

zhulu 1 年之前
父節點
當前提交
35e11bc1e5

+ 61 - 30
src/views/menu/cockpit/components/overviewCom.vue

@@ -25,17 +25,43 @@
         <span class="itemNum">{{ allData['throughwallDeviceCount'] }}</span>
       </van-cell>
     </div>
+    <!-- GA38 -->
+    <div class="ga38">
+      <van-cell>
+        <template #title>
+          <span >GA38-2015达标数(存量)</span>
+        </template>
+        <span class="itemNum">{{ allData.ga38['GA382015'].shouldComplete }}</span>
+      </van-cell>
+      <van-cell>
+        <template #title>
+          <span class="custom-title">GA38-2021达标数(存量)</span>
+        </template>
+        <span class="itemNum">{{ allData.ga38['GA382021'].shouldComplete }}</span>
+      </van-cell>
+      <van-cell>
+        <template #title>
+          <span class="custom-title">GA38-2021达标数(当月新增)</span>
+        </template>
+        <span class="itemNum">{{ allData.ga38['GA382021'].currentCompletedCount }}</span>
+      </van-cell>
+      <van-cell>
+        <template #title>
+          <span class="custom-title">网点安全防范达标率(当前)</span>
+        </template>
+        <span class="itemNum">{{(allData.ga38['GA38Total'].currentCompletedRate*100).toFixed(2)}}%</span>
+      </van-cell>
+    </div>
     <!-- 模块数据展示 -->
-    <div class="businessModule">
+    <!-- <div class="businessModule">
       <div class="moduleCom">
         <div class="titleText"><span class="leftSty"></span><span>GA38-2021</span></div>
         <div class="complete">
           <div class="numCls wj-title-blue">
-            <!--{{ parseInt((allData.ga38['GA382021'].currentCompletedRate || 0) * 100) }}%-->
             {{allData.ga38['GA382021'].shouldComplete || 0}}
           </div>
         </div>
-        <div class="moduleItem">
+        <div class="moduleItem"> -->
           <!--<div>
             <div class="numCls wj-title-blue">{{ allData.ga38['GA382021'].currentCompletedCount }}</div>
             <div class="fontCls">当月新增数</div>
@@ -48,20 +74,20 @@
             </div>
             <div class="fontCls ">较上月增长数</div>
           </div>-->
-          <div class="fontCls">当前达标数</div>
+          <!-- <div class="fontCls">当前达标数</div>
         </div>
       </div>
 
       <div class="moduleCom">
         <div class="titleText"><span class="leftSty"></span><span>GA38-2015</span></div>
         <div class="complete">
-          <div class="numCls wj-title-blue">
+          <div class="numCls wj-title-blue"> -->
             <!--{{ parseInt((allData.ga38['GA382015'].currentCompletedRate||0) * 100) }}%-->
 
-            {{allData.ga38['GA382015'].shouldComplete || 0}}
+            <!-- {{allData.ga38['GA382015'].shouldComplete || 0}}
           </div>
         </div>
-        <div class="moduleItem">
+        <div class="moduleItem"> -->
     <!--      <div>
             <div class="numCls wj-title-blue">{{ allData.ga38['GA382015'].currentCompletedCount }}</div>
             <div class="fontCls">当月新增数</div>
@@ -75,48 +101,43 @@
             </div>
             <div class="fontCls ">较上月增长数</div>
           </div>-->
-          <div class="fontCls">当前达标数</div>
+          <!-- <div class="fontCls">当前达标数</div>
         </div>
       </div>
-    </div>
+    </div> -->
     <div class="businessModule">
-      <div class="moduleCom2" v-for="(item, index) in Object.keys(allData.taskInfo)" :key="index">
+      <div class="moduleCom" v-for="(item, index) in Object.keys(allData.taskInfo)" :key="index">
         <div class="titleText">
           <span class="leftSty"></span><span>{{ Object.keys(allData.taskInfo)[index] }}</span>
         </div>
-         <!-- <div class="complete">
+         <div class="complete">
           <div class="numCls wj-title-blue">
-            {{ parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100) }}%
+            {{(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100).toFixed(2) }}%
           </div>
-        </div> -->
-        <div class="moduleItem2">
-          <div>
+        </div>
+        <div class="moduleItem">
+          <div class="fontCls">当前完成率</div>
             <!-- <div class="iconcls">
               <van-icon name="circle" size="10px" />
             </div> -->
-            <div class="fontCls">{{Object.keys(allData.taskInfo)[index]=='预案演练'?'当季完成率':'当月完成率'}}</div>
-            <div class="numCls wj-title-blue">
-              {{ parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100) }}%
-              
-              <!-- {{ allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedCount }} -->             
-            </div>    
-            <div class="iconcls">
+            <!-- <div class="fontCls">{{Object.keys(allData.taskInfo)[index]=='预案演练'?'当季完成率':'当月完成率'}}</div> -->
+            <!-- <div class="numCls wj-title-blue">
+              {{ parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].currentCompletedRate * 100) }}%                           
+            </div>     -->
+            <!-- <div class="iconcls">
               <van-icon v-if="allData.taskInfo[Object.keys(allData.taskInfo)[index]].compare  > 0" name="play" class="wj-title-red rate270" />
               <van-icon v-else name="play" class="wj-title-green rate" />
-            </div>        
-          </div>
-          <div>
+            </div>         -->
             <!-- <div class="iconcls">
               <van-icon name="circle" size="10px" />
             </div> -->
-            <div class="fontCls">{{Object.keys(allData.taskInfo)[index]=='预案演练'?'上季完成率':'上月完成率'}}</div>
+            <!-- <div class="fontCls">{{Object.keys(allData.taskInfo)[index]=='预案演练'?'上季完成率':'上月完成率'}}</div>
             <div class="numCls wj-title-blue tal">    
               <span>{{ Math.abs(parseInt(allData.taskInfo[Object.keys(allData.taskInfo)[index]].prevCompletedRate * 100)) }}%</span>
-            </div>   
-          <div>
+            </div>    -->
+          <!-- <div>
               <span></span>       
-          </div>
-        </div>
+          </div> -->
       </div>
     </div>
     </div>
@@ -258,6 +279,16 @@ export default {
   margin-left: 12px;
   margin-right: 14px;
 }
+.van-cell__title{
+    flex-grow: 2
+}
+.ga38 {
+  margin-top: 20px;
+  box-shadow: 0 2px 10px #ccc;
+  margin-left: 12px;
+  margin-right: 14px;
+  
+}
 .bigModule {
   display: flex;
   flex-wrap: wrap;

+ 123 - 83
src/views/menu/rehearsalTask/components/rehearsalTaskSign.vue

@@ -213,7 +213,7 @@
           <van-col :span="24" class="label bgc">
             <van-checkbox-group v-model="result" direction="horizontal" @change="clickChekcBox($event)">
               <van-checkbox
-                v-for="item in resultList"
+                v-for="item in checkBoxList"
                 :key="item.value"
                 :disabled="item.disabled"
                 shape="square"
@@ -277,11 +277,12 @@ export default {
     return {
       result: [],
       orgType: '', //机构类型
+      activeTab:null, // 当前推优活动的Tab
       content: '', //评语
       value: 0, //评分
       this_window: window,
       show: false,
-      resultList: [],
+      checkBoxList: [],
       taskUserList: [], //参演人员
       qsUserList: [], //缺席人员
       imgList: [
@@ -395,122 +396,161 @@ export default {
           this.imgList = this.trainingData.imageList.split(',') || []
         }
         //获取当前登录人机构类型
-        this.orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+        this.orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE');
+        this.activeTab =this.$route.params.id.split('_')[2];
+        this.getCheckBoxList();
+        
+      }
+    })
+  },
+  mounted() {},
+
+  methods: {
+    getCheckBoxList()
+    {        
         console.log(this.orgType, 'this.orgType')
         if (this.orgType == 1) {
-          //省联社
-          this.resultList = [
-          {
-              name: '不推荐',
-              value: 8,
-              disabled: false
-            },
+            //省联社
+            this.checkBoxList = [
             {
-              name: '设置为省级优秀案例',
-              value: 5,
-
-              disabled: false
-            }
-          ]
+                name: '不推荐',
+                value: 8,
+                disabled: false
+              },
+              {
+                name: '设置为省级优秀',
+                value: 5,
+                disabled: false
+              }
+            ]
+          
           if (data.recStatus == 5) {
             this.result = [5]
           }
         } else if (this.orgType == 2) {
+          if(this.activeTab=='1'){
           //办事处
-          this.resultList = [
-          {
-              name: '不推荐',
-              value: 7,
-              disabled: false
-            },
-            {
-              name: '设置为地区优秀案例',
-              value: 3,
-
-              disabled: false
-            },
-            {
-              name: '推荐为省级优秀案例',
-              value: 4,
-
-              disabled: true
-            }
-          ]
+          this.checkBoxList = [
+                    {   
+                      name: '不推荐',
+                      value: 7,
+                      disabled: false
+                    },
+                    {
+                      name: '设置为地区优秀',
+                      value: 3,
+                      disabled: false
+                    },
+                    {
+                      name: '推荐为省级优秀',
+                      value: 4,
+                      disabled: true
+                    }
+                  ]
+          }
+          else{
+             //办事处
+          this.checkBoxList = [
+                    {   
+                      name: '不推荐',
+                      value: 8,
+                      disabled: false
+                    },
+                    {
+                      name: '推荐为省级优秀',
+                      value: 4,
+                      disabled: false
+                    }
+                  ]
+          }
+        
           if (data.recStatus == 4) {
             this.result = [3, 4]
           } else if (data.recStatus == 3) {
             this.result = [3]
           }
         } else if (this.orgType == 3) {
-          //行社
-          this.resultList = [
-            {
-              name: '不推荐',
-              value: 6,
-              disabled: false
-            },
-            {
-              name: '设置为行社优秀案例',
-              value: 1,
-
-              disabled: false
-            },
-            {
-              name: '推荐为地区优秀案例',
-              value: 2,
-
-              disabled: true
-            }
-          ]
+          if(this.activeTab=='0')
+          {
+            //行社
+            this.checkBoxList = [
+              {
+                name: '不推荐',
+                value: 6,
+                disabled: false
+              },
+              {
+                name: '设置为行社优秀案例',
+                value: 1,
+                disabled: false
+              },
+              {
+                name: '推荐为地区优秀案例',
+                value: 2,
+                disabled: true
+              }
+            ]
+          }
+          else{
+            //行社
+            this.checkBoxList = [
+              {
+                name: '不推荐',
+                value: 7,
+                disabled: false
+              },
+              {
+                name: '推荐为地区优秀案例',
+                value: 2,
+                disabled: false
+              }
+            ]
+          }
+          
           if (data.recStatus == 2) {
             this.result = [1, 2]
           } else if (data.recStatus == 1) {
             this.result = [1]
           }
         }
-      }
-    })
-  },
-  mounted() {},
-
-  methods: {
+    },
     disabledCheck(item) {
       if (item == 'false') return false
       if (item == 'true') return true
       //当前是最后一个复选框禁用
-      if (this.resultList.length > 1 && item.value == this.resultList[this.resultList.length - 1].value) {
-        return true
-      } else {
-        return false
-      }
+      // if (this.checkBoxList.length > 1 && item.value == this.checkBoxList[this.checkBoxList.length - 1].value) {
+      //   return true
+      // } else {
+      //   return false
+      // }
     },
     clickChekcBox(v) {
       // console.log(v)
       // console.log(this.resultList[0])
-      console.log("clickChekcBox",v,this.resultList)
+      console.log("clickChekcBox",v,this.checkBoxList)
       // console.log("clickChekcBoxx",v[0] < this.resultList[0].value,v[0],,v[0]==this.resultList[1])
-      
-      if (v[0] == this.resultList[0].value) {
-        if (this.resultList[1]) {
-          this.resultList[1].disabled = this.disabledCheck('true')
+      // 当前选中的是第一个 选择框  未 “不推荐”
+      if (v[0] == this.checkBoxList[0].value) {
+        if (this.checkBoxList[1]) {
+          this.checkBoxList[1].disabled = this.disabledCheck('true')
         }
-        if (this.resultList[2]) {
-          this.resultList[2].disabled = this.disabledCheck('true')
+        if (this.checkBoxList[2]) {
+          this.checkBoxList[2].disabled = this.disabledCheck('true')
         }
-        console.log("clickChekcBox1",v,this.resultList)
-      } else if (v[0] < this.resultList[0].value && v[0]==this.resultList[1].value) {
-            this.resultList[0].disabled = this.disabledCheck('true')
-            this.resultList[2].disabled = this.disabledCheck('false')
-            console.log("clickChekcBox2",v,this.resultList)
+        console.log("clickChekcBox1",v,this.checkBoxList)
+      } else if (v[0] < this.checkBoxList[0].value && v[0]==this.checkBoxList[1].value) {
+            this.checkBoxList[0].disabled = this.disabledCheck('true')
+            if(this.checkBoxList[2]) this.checkBoxList[2].disabled = this.disabledCheck('false')
+            console.log("clickChekcBox2",v,this.checkBoxList)
       }
-      else if (v[0] < this.resultList[0].value && v[0]>this.resultList[1].value) {
+      else if (v[0] < this.checkBoxList[0].value && v[0]>this.checkBoxList[1].value) {
           this.result=[];
       }
       else {       
-          this.resultList[0].disabled = this.disabledCheck('false')
-          this.resultList[1].disabled = this.disabledCheck('false')
-          this.resultList[2].disabled = this.disabledCheck('true')
-          console.log("clickChekcBox3",v,this.resultList)
+          this.checkBoxList[0].disabled = this.disabledCheck('false')
+          this.checkBoxList[1].disabled = this.disabledCheck('false')
+          if(this.checkBoxList[2])this.checkBoxList[2].disabled = this.disabledCheck('true')
+          console.log("clickChekcBox3",v,this.checkBoxList)
       }
     },
     signatureHandler() {

+ 298 - 167
src/views/menu/rehearsalTask/optimal.vue

@@ -1,41 +1,14 @@
 <template>
   <div>
     <div class="topBox">
-      <NavBar  />
+      <NavBar />
 
       <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="24"
-          >
-          <!-- <van-field
-            v-model="fieldValue"
-            label-width="3em"
-            :disabled="showStatus"
-            label="状态"
-            placeholder=""
-            @click="showStatus = true"
-            ><van-icon name="arrow-down" slot="button"
-          /></van-field> -->
-          <van-cell title="状态" @click="showStatus = true" is-link arrow-direction="down" :value="fieldValue" />
 
-          <van-popup v-model="showStatus" round position="bottom">
-            <van-picker
-              title="状态"
-              show-toolbar
-              :columns="columns"
-              @confirm="onConfirm"
-              @cancel="onCancel"
-              confirm-button-text="确定"
-              :close-on-click-overlay="false"
-            />
-          </van-popup>
-        </van-col>
-
-      </van-row>
       <van-row>
         <van-col span="12">
           <!-- <van-field
@@ -56,8 +29,8 @@
               v-model="presentDate"
               show-toolbar
               @cancel="onCancel"
-              type="year-month"
               :formatter="formatter"
+              type="year-month"
               @confirm="onDateConfirm"
               confirm-button-text="确定"
               :default-index="yearSelect"
@@ -94,20 +67,62 @@
           </van-popup>
         </van-col>
       </van-row>
+      <van-row>
+        <van-col span="24">
+          <van-cell title="演练项目" @click="showStatus = true" is-link arrow-direction="down" :value="fieldValue" />
 
+          <van-popup v-model="showStatus" round position="bottom">
+            <van-picker
+              title="演练项目"
+              show-toolbar
+              :columns="columns"
+              @confirm="onConfirm"
+              confirm-button-text="确定"
+              @cancel="onCancel"
+              :close-on-click-overlay="false"
+            />
+          </van-popup>
+        </van-col>
+      </van-row>
+      <van-row>
+        <van-col span="24">
+          <van-tabs v-model="activeAl" @click="tbsAlHandler">
+            <van-tab name="0" title="普通案例"></van-tab>
+            <van-tab name="1" title="行社优秀"></van-tab>
+            <van-tab name="3" title="地区优秀"></van-tab>
+            <van-tab name="5" title="省级优秀"></van-tab>
+          </van-tabs>
+        </van-col>
+        <van-col span="24" v-if="subTabList && subTabList.length > 0">
+          <van-tabs v-model="activeSubTab" @click="tbsSubHandler">
+            <van-tab :key="item.name" v-for="item in subTabList" :name="item.name" :title="item.title"></van-tab>
+          </van-tabs>
+        </van-col>
+      </van-row>
     </div>
-
-    <!-- //卡片内容区域 -->
     <div class="navBarclas">
-      <van-list v-model="loading" :immediate-check="false" :finished="finished" finished-text="没有更多了" @load="onLoad">
+      <van-list
+        v-model="loading"
+        :immediate-check="false"
+        :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="small" @click="commentSign(item.id)"
-                  >评优推优</van-button
+                <van-button                 
+                  type="info"
+                  v-if="canCancel(item)"
+                  size="small"
+                  @click="cancelPromo(item.id)"
+                  >{{ cancelBtnText }}</van-button
                 >
+                <van-button  style="margin-left: 10px" type="info" v-if="canPromo(item)" size="small" @click="commentSign(item.id)">{{
+                  promoBtnText
+                }}</van-button>
               </div>
             </div>
           </template>
@@ -137,44 +152,53 @@
 <script>
 import NavBar from '@/components/NavBar'
 import { Col, Row, Cascader, Dialog, DatetimePicker, Icon, Picker } from 'vant'
-import { getlearningListPage } from '@/api/optimalLearning.js'
-import { deptTreeList } from '@/api/toConsult.js'
+import { submitRecTask, getlearningListPage } from '@/api/optimalLearning.js'
 import { Toast } from 'vant'
 import OrgTree from '@/components/orgTree'
-import {  newDateMonth } from '@/utils/date.js'
+import { newDateMonth } from '@/utils/date.js'
 export default {
   data() {
     return {
       orgName: '',
       orgShow: false,
       presentDate: '', //默认时间
+      presentEndDate: '', //默认结束时间
       pageNum: 1,
       loading: false, //加载状态
       finished: false, //是否全部加载完毕
-      presentEndDate: '', //默认结束时间
+
       yearColumns: [],
 
       orgName: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //机构名称
       cascaderValue: '', //机构ID
       show: false, //机构弹框显示隐藏
       // active: '01-01',
+      activeAl: '0',
+      activeSubTab: '0',
       fieldNames: {
         text: 'name',
         value: 'id',
         children: 'children'
       },
       taskList: [], //列表数据
-      endShowDate:false,
+      typeValue: ' ', //类型值
       yearSelect: null,
       value1: JSON.parse(sessionStorage.getItem('SET_USER_ID')) || '', //输入框model
-      columnsList: [],
+
       showStatus: false, //状态显示隐藏
       showDate: false, //月份显示隐藏
-      fieldValue: '', //状态名称
+      endShowDate: false, //月份显示隐藏
+      fieldValue: '', //演练项目名称
+      drillType: '',
       statusValue: ' ', //状态值
       columns: [], //状态数组
+      columnsList: [], //状态数组
       currentDate: newDateMonth(), //年份
       endDate: newDateMonth(), //年份
+      subTabList: [],
+      promoBtnText: '推优', // 推优按钮文字
+      cancelBtnText: '取消行社优秀', // 取消推优按钮文字
+      canBtnStatus: null
     }
   },
   components: {
@@ -191,89 +215,109 @@ export default {
 
   created() {
     this.presentDate = new Date(newDateMonth())
-    let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
-      switch (orgType) {
-        case '2':
-          this.fieldValue = '已推荐地区优秀案例'
-          this.statusValue='2'
-          break
-        case '3':
-          this.fieldValue = '普通案例'
-          this.statusValue='0'
-          break
-        case '1':
-          this.fieldValue = '已推荐省级优秀案例'
-          this.statusValue='4'
-          break
-
-        default:
-          break
-      }
-    this.yearData()
-    // this.getNewMonth()
+    this.presentEndDate = new Date(newDateMonth())
   },
   mounted() {
-    this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
     this.init()
+    this.getBtnText()
+    this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
   },
   methods: {
     formatter(type, val) {
       if (type === 'month') {
-        return `${val}月`;
-      }  else if (type === 'year') {
-        return `${val}年`;
+        return `${val}月`
+      } else if (type === 'year') {
+        return `${val}年`
       }
-      return val;
+      return val
     },
-    // getNewMonth() {
-    //   //获取当前月份
-    //   let date = new Date().getMonth() + 1
-
-    //   //默认填充当前季度
-    //   if (date > 7 && date < 10) {
-    //     this.active = '07-01'
-    //     //三季度
-    //   } else if (date > 4 && date < 7) {
-    //     //二季度
-    //     this.active = '04-01'
-    //   } else if (date > 1 && date < 4) {
-    //     //一季度
-    //     this.active = '01-01'
-    //   } else {
-    //     this.active = '10-01'
-    //     // 四季度
-    //   }
-    // },
     //机构搜索
     getDataList(val) {
       this.cascaderValue = val.id
       this.orgName = val.name
       this.selectListAppHandler()
     },
-    // 当前行社 3 -> 0:正常案例、1:行社优秀案例、
 
-    // 当前地区 2 -> 2:已推荐地区优秀案例、3:地区优秀案例、4:已推荐省级优秀案例
-
-    // 当前省联社 1 -> 4:已推荐省级优秀案例、5:省级优秀案例
-    //判断是否展示登记按钮
-    isSign(item) {
+    //初始化
+    init() {
+      //获取数据字典
+      this.getDictHandler('core_drill_type', res => {
+        this.columnsList = res
+        this.columns = res.map(item => item.dictLabel)
+      })      
+      //根据登录人机构 初始化默认选中Tab页
+      this.initDefaultActiveTab();
+      // 根据第一层默认选中的Tab页 初始化第二层Tab 页值
+      this.getSubTabList(this.activeAl)
+      //获取分页列表
+      this.selectListAppHandler()
+    },
+    initDefaultActiveTab(){
       let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+      // 省联社
+      if(orgType==1){
+        this.activeAl="3";
+        this.activeSubTab="4"
+      }
+      // 地区办事处
+      if(orgType==2)
+      {
+        this.activeAl="1";
+        this.activeSubTab="2"
+      }
+      // 行社
+      if(orgType==3)
+      {
+        this.activeAl="0";
+        this.activeSubTab="0";
+      }
+    },
+    //0:正常案例、1:行社优秀案例、2:已推荐地区优秀案例、3:地区优秀案例、4:已推荐省级优秀案例、5:省级优秀案例
+    //6 不推荐(保留普通案例) 7   不推荐(保留行社优秀案例) 8 不推荐(保留地区优秀案例)'
+    canCancel(item) {
+      let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+      // 行社用户
+      if (orgType == 3) {
+        if (item.recStatus == 1 || item.recStatus == 2) {
+          return true
+        } else {
+          return false
+        }
+        // 办事处用户
+      } else if (orgType == 2) {
+        if (item.recStatus == 3 || item.recStatus == 4) {
+          return true
+        } else {
+          return false
+        }
+        // 省联社用户
+      } else if (orgType == 1) {
+        if (item.recStatus == 5) {
+          return true
+        } else {
+          return false
+        }
+      }
+    },
+    canPromo(item) {
+      let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+      // 地区
       if (orgType == '2') {
-        if (item.recStatus == 2 || item.recStatus == 3||item.recStatus==4) {
+        if (item.recStatus == 2 || item.recStatus == 3) {
           return true
         } else {
           return false
         }
-        // 办事处
+        // 行社
       } else if (orgType == 3) {
-        if (item.recStatus == 0 || item.recStatus == 1||item.recStatus==2) {
+        if (item.recStatus == 0 || item.recStatus == 1) {
           return true
         } else {
           return false
         }
-        // 行社
+        // 省联
       } else if (orgType == 1) {
-        if (item.recStatus == 4 || item.recStatus == 5) {
+        if (item.recStatus == 4) {
           return true
         } else {
           return false
@@ -281,32 +325,83 @@ export default {
         // 省联社
       }
     },
-    //清空查询条件
-    clearSearch() {
-      this.fieldValue = ''
-      this.statusValue = ''
-      this.cascaderValue = ''
-      this.currentDate = ''
-
-      this.typeName = ''
-      this.orgName = ''
-
-      this.selectListAppHandler()
-    },
-
-    //初始化
-    init() {
-      //获取数据字典
-      this.getDictHandler('drill_task_rec_status', res => {
-        this.columnsList = res
-        this.columns = res.map(item => item.dictLabel)
-        this.columns.unshift('全部')
+    getBtnText() {
+      this.canBtnStatus = null
+      if (this.activeAl == '0' && this.activeSubTab == '0') {
+        this.promoBtnText = '推优'
+        this.cancelBtnText = ''
+      }
+      if (this.activeAl == '0' && this.activeSubTab == '6') {
+        this.promoBtnText = '重新推优'
+        this.cancelBtnText = ''
+      }
 
-        // fieldValue
-      })
+      if (this.activeAl == '1' && this.activeSubTab == '1') {
+        this.promoBtnText = '推荐地区优秀'
+        this.cancelBtnText = '取消行社优秀'
+        this.canBtnStatus = '6'
+      }
+      if (this.activeAl == '1' && this.activeSubTab == '7') {
+        this.promoBtnText = '重新推荐地区优秀'
+        this.cancelBtnText = '取消行社优秀'
+        this.canBtnStatus = '6'
+      }
+      if (this.activeAl == '1' && this.activeSubTab == '2') {
+        this.promoBtnText = '行社推地区优秀评定'
+        this.cancelBtnText = '取消地区优秀推荐'
+        this.canBtnStatus = '7'
+      }
 
+      if (this.activeAl == '3' && this.activeSubTab == '3') {
+        this.promoBtnText = '推荐省级优秀'
+        this.cancelBtnText = '取消地区优秀'
+        this.canBtnStatus = '7'
+      }
+      if (this.activeAl == '3' && this.activeSubTab == '8') {
+        this.promoBtnText = '重新推荐省级优秀'
+        this.cancelBtnText = '取消地区优秀'
+        this.canBtnStatus = '7'
+      }
+      if (this.activeAl == '3' && this.activeSubTab == '4') {
+        this.promoBtnText = '地区推省级优秀评定'
+        this.cancelBtnText = '取消省级优秀推荐'
+        this.canBtnStatus = '8'
+      }
 
-      this.selectListAppHandler()
+      if (this.activeAl == '5') {
+        this.promoBtnText='';
+        this.cancelBtnText = '取消省级优秀';
+        this.canBtnStatus = '8';
+      }
+    },
+    getSubTabList(activeTab,needReSetActiveSubTab) {
+      if (activeTab === '0') {
+        if(needReSetActiveSubTab) this.activeSubTab = '0'
+        this.subTabList = [
+          { name: '0', title: '可推荐行社优秀' },
+          { name: '6', title: '不推荐行社优秀' }
+        ]
+      }
+      if (activeTab === '1') {
+        if(needReSetActiveSubTab) this.activeSubTab = '1'
+        this.subTabList = [
+          { name: '1', title: '可推荐地区优秀' },
+          { name: '7', title: '不推荐地区优秀' },
+          { name: '2', title: '已推荐地区优秀' }
+        ]
+      }
+      if (activeTab === '3') {
+        if(needReSetActiveSubTab) this.activeSubTab = '3'
+        this.subTabList = [
+          { name: '3', title: '可推荐省级优秀' },
+          { name: '8', title: '不推荐省级优秀' },
+          { name: '4', title: '已推荐省级优秀' }
+        ]
+      }
+      if (activeTab === '5') {
+        if(needReSetActiveSubTab) this.activeSubTab = null
+        this.subTabList = []
+      }
     },
     selectListAppHandler(type = 0, callback = () => {}) {
       let obj = {
@@ -318,17 +413,31 @@ export default {
         this.pageNum = 1
         this.taskList = []
       }
-      if (this.statusValue) {
-        obj.recStatus = this.statusValue
-      }
-
       obj.orgId = this.cascaderValue || JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + '' || ''
-
+      if (!this.currentDate || !this.endDate) {
+        return Toast('请选择一个月份范围')
+      }
       if (this.currentDate) {
-        obj.startTime = this.currentDate+'-'+'01'
+        obj.startTime = this.currentDate + '-' + '01'
       }
       if (this.endDate) {
-        obj.endTime = this.endDate+'-'+'01'
+        obj.endTime = this.endDate + '-' + '01'
+      }
+      if (this.fieldValue) {
+        obj.drillType = this.drillType
+      }
+      if (this.activeAl) {
+        obj.recStatus = this.activeAl
+      }
+      if (this.activeSubTab) {
+        //6 不推荐(保留普通案例) 7   不推荐(保留行社优秀案例) 8 不推荐(保留地区优秀案例)
+        if (this.activeSubTab === '6' || this.activeSubTab === '7' || this.activeSubTab === '8') {
+          obj.unRecStatus = this.activeSubTab
+        }
+        //推荐状态:0:正常案例、1:行社优秀案例、2:已推荐地区优秀案例、3:地区优秀案例、4:已推荐省级优秀案例、5:省级优秀案例',
+        else if (this.activeSubTab === '2' || this.activeSubTab === '4') {
+          obj.recStatus = this.activeSubTab
+        }
       }
 
       //获取任务列表
@@ -355,34 +464,26 @@ export default {
 
             // this.taskList = rows || []
           }
-        }else{
+        } else {
           this.finished = true
-          this.taskList =[]
+          this.taskList = []
         }
       })
     },
+    tbsAlHandler(activeTab) {
+      console.log('tbsAlHandler', activeTab)
+      this.getSubTabList(activeTab,true)
+      this.getBtnText()
+      this.selectListAppHandler()
+    },
 
-    //搜索选择状态时触发
-    onConfirm(value, index) {
-      this.fieldValue = value
-      this.columnsList.forEach(item => {
-        if (value == item.dictLabel) {
-          this.statusValue = item.dictValue
-        }
-      })
-      if (value == '全部') {
-        this.statusValue = ' '
-      }
+    tbsSubHandler() {
+      this.getBtnText()
       this.selectListAppHandler()
-      this.showStatus = false
     },
-    // tbsHandler() {
-    //   this.selectListAppHandler()
-    // },
-    //月份选中触发
     //年份选中触发
     onDateConfirm(val) {
-      if(this.newDate(val + '')>this.endDate){
+      if (this.newDate(val + '') > this.endDate) {
         return Toast('开始月份不能大于结束月份')
       }
       this.currentDate = this.newDate(val + '')
@@ -391,31 +492,15 @@ export default {
     },
     //年份选中触发
     onEndDateConfirm(val) {
-      if(this.newDate(val + '')<this.currentDate){
+      if (this.newDate(val + '') < this.currentDate) {
         return Toast('结束月份不能小于开始月份')
       }
       this.endDate = this.newDate(val + '')
 
-      console.log(this.endDate);
+      console.log(this.endDate)
       this.endShowDate = 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()
@@ -423,7 +508,7 @@ export default {
       m = m < 10 ? '0' + m : m
       var d = date.getDate()
       d = d < 10 ? '0' + d : d
-      return y+ '-' + m
+      return y + '-' + m
     },
     //日期格式
     formatDate(date) {
@@ -442,16 +527,62 @@ export default {
       })
     },
 
+    //跳转详情
+    // goInfo(id) {
+    //   this.$router.push('/rehearsalTasinfo/' + id + '_learning')
+    // },
     //评优推优跳转
     commentSign(id) {
-      this.$router.push('/commentSign/' + id + '_comment')
+      this.$router.push('/commentSign/' + id + '_comment' + '_' + this.activeAl)
+    },
+
+    // 取消优秀 / 取消推优
+    cancelPromo(id) {
+      Dialog.confirm({
+        title: '',
+        message: `是否` + this.cancelBtnText + '?'
+      })
+        .then(() => {
+          console.log("cancelPromo",1);
+          let submitData={
+            drillTaskId: id,
+            recStatus: this.canBtnStatus
+          };
+          console.log("cancelPromo",submitData);
+          submitRecTask(submitData).then(res => {
+            console.log("cancelPromo res",res);
+            if (res) {
+              Toast(this.cancelBtnText + '成功')
+            }
+            setTimeout(() => {
+              this.selectListAppHandler()
+            }, 1000)
+          })
+          .catch((err) => {
+            console.log("cancelPromo err",res);
+          })
+        })
+        .catch(() => {
+          // on cancel
+        })
     },
 
     //跳转详情
     goInfo(id) {
       this.$router.push('/commentSign/' + id + '_info1')
     },
+    //搜索选择状态时触发
+    onConfirm(value, index) {
+      this.fieldValue = value
+      this.columnsList.forEach(item => {
+        if (value == item.dictLabel) {
+          this.drillType = item.dictValue
+        }
+      })
 
+      this.selectListAppHandler()
+      this.showStatus = false
+    },
     onCancel() {
       this.show = false
       this.typeStatus = false
@@ -489,7 +620,7 @@ export default {
   align-items: center;
   height: 100%;
   padding: 20px;
-  border-bottom: 1px solid #ccc;
+  //   border-bottom: 1px solid #1989fa;
 
   .title {
     font-size: 30px;
@@ -532,7 +663,7 @@ export default {
   color: #323233;
   -webkit-text-fill-color: #323233;
 }
-.van-cell__value{
+.van-cell__value {
   color: black;
   text-align: left;
 }

+ 539 - 0
src/views/menu/rehearsalTask/optimal_old.vue

@@ -0,0 +1,539 @@
+<template>
+  <div>
+    <div class="topBox">
+      <NavBar  />
+
+      <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="24"
+          >
+          <!-- <van-field
+            v-model="fieldValue"
+            label-width="3em"
+            :disabled="showStatus"
+            label="状态"
+            placeholder=""
+            @click="showStatus = true"
+            ><van-icon name="arrow-down" slot="button"
+          /></van-field> -->
+          <van-cell title="状态" @click="showStatus = true" is-link arrow-direction="down" :value="fieldValue" />
+
+          <van-popup v-model="showStatus" round position="bottom">
+            <van-picker
+              title="状态"
+              show-toolbar
+              :columns="columns"
+              @confirm="onConfirm"
+              @cancel="onCancel"
+              confirm-button-text="确定"
+              :close-on-click-overlay="false"
+            />
+          </van-popup>
+        </van-col>
+
+      </van-row>
+      <van-row>
+        <van-col span="12">
+          <!-- <van-field
+            v-model="currentDate"
+            label-width="5em"
+            label="开始月份"
+            placeholder=""
+            :disabled="showDate"
+            @click="showDate = true"
+          >
+            <van-icon name="arrow-down" slot="button"
+          /></van-field> -->
+          <van-cell title="开始月份" @click="showDate = true" is-link arrow-direction="down" :value="currentDate" />
+
+          <van-popup v-model="showDate" round position="bottom">
+            <!-- :columns="yearColumns" -->
+            <van-datetime-picker
+              v-model="presentDate"
+              show-toolbar
+              @cancel="onCancel"
+              type="year-month"
+              :formatter="formatter"
+              @confirm="onDateConfirm"
+              confirm-button-text="确定"
+              :default-index="yearSelect"
+              title="开始月份"
+            />
+          </van-popup>
+        </van-col>
+        <van-col span="12">
+          <!-- <van-field
+            v-model="endDate"
+            label-width="5em"
+            label="结束月份"
+            placeholder=""
+            :disabled="endShowDate"
+            @click="endShowDate = true"
+          >
+            <van-icon name="arrow-down" slot="button"
+          /></van-field> -->
+          <van-cell title="结束月份" @click="endShowDate = true" is-link arrow-direction="down" :value="endDate" />
+
+          <van-popup v-model="endShowDate" round position="bottom">
+            <!-- :columns="yearColumns" -->
+            <van-datetime-picker
+              v-model="presentEndDate"
+              show-toolbar
+              @cancel="onCancel"
+              type="year-month"
+              :formatter="formatter"
+              @confirm="onEndDateConfirm"
+              confirm-button-text="确定"
+              :default-index="yearSelect"
+              title="结束月份"
+            />
+          </van-popup>
+        </van-col>
+      </van-row>
+
+    </div>
+
+    <!-- //卡片内容区域 -->
+    <div class="navBarclas">
+      <van-list v-model="loading" :immediate-check="false" :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="small" @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.typeText }}</div>
+            </div>
+            <div class="mainItem" @click="goInfo(item.id)">
+              <div>评分</div>
+              <div>{{ item.commentScore }}</div>
+            </div>
+            <div class="mainItem" @click="goInfo(item.id)">
+              <div>评优状态</div>
+              <div>{{ item.recStatusText }}</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 { getlearningListPage } from '@/api/optimalLearning.js'
+import { deptTreeList } from '@/api/toConsult.js'
+import { Toast } from 'vant'
+import OrgTree from '@/components/orgTree'
+import {  newDateMonth } from '@/utils/date.js'
+export default {
+  data() {
+    return {
+      orgName: '',
+      orgShow: false,
+      presentDate: '', //默认时间
+      pageNum: 1,
+      loading: false, //加载状态
+      finished: false, //是否全部加载完毕
+      presentEndDate: '', //默认结束时间
+      yearColumns: [],
+
+      orgName: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //机构名称
+      cascaderValue: '', //机构ID
+      show: false, //机构弹框显示隐藏
+      // active: '01-01',
+      fieldNames: {
+        text: 'name',
+        value: 'id',
+        children: 'children'
+      },
+      taskList: [], //列表数据
+      endShowDate:false,
+      yearSelect: null,
+      value1: JSON.parse(sessionStorage.getItem('SET_USER_ID')) || '', //输入框model
+      columnsList: [],
+      showStatus: false, //状态显示隐藏
+      showDate: false, //月份显示隐藏
+      fieldValue: '', //状态名称
+      statusValue: ' ', //状态值
+      columns: [], //状态数组
+      currentDate: newDateMonth(), //年份
+      endDate: newDateMonth(), //年份
+    }
+  },
+  components: {
+    NavBar,
+    OrgTree,
+    Dialog,
+    Icon,
+    DatetimePicker,
+    Picker,
+    Col,
+    Row,
+    Cascader
+  },
+
+  created() {
+    this.presentDate = new Date(newDateMonth())
+    let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+      switch (orgType) {
+        case '2':
+          this.fieldValue = '已推荐地区优秀案例'
+          this.statusValue='2'
+          break
+        case '3':
+          this.fieldValue = '普通案例'
+          this.statusValue='0'
+          break
+        case '1':
+          this.fieldValue = '已推荐省级优秀案例'
+          this.statusValue='4'
+          break
+
+        default:
+          break
+      }
+    this.yearData()
+    // this.getNewMonth()
+  },
+  mounted() {
+    this.cascaderValue = JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + ''
+    this.init()
+  },
+  methods: {
+    formatter(type, val) {
+      if (type === 'month') {
+        return `${val}月`;
+      }  else if (type === 'year') {
+        return `${val}年`;
+      }
+      return val;
+    },
+    // getNewMonth() {
+    //   //获取当前月份
+    //   let date = new Date().getMonth() + 1
+
+    //   //默认填充当前季度
+    //   if (date > 7 && date < 10) {
+    //     this.active = '07-01'
+    //     //三季度
+    //   } else if (date > 4 && date < 7) {
+    //     //二季度
+    //     this.active = '04-01'
+    //   } else if (date > 1 && date < 4) {
+    //     //一季度
+    //     this.active = '01-01'
+    //   } else {
+    //     this.active = '10-01'
+    //     // 四季度
+    //   }
+    // },
+    //机构搜索
+    getDataList(val) {
+      this.cascaderValue = val.id
+      this.orgName = val.name
+      this.selectListAppHandler()
+    },
+    // 当前行社 3 -> 0:正常案例、1:行社优秀案例、
+
+    // 当前地区 2 -> 2:已推荐地区优秀案例、3:地区优秀案例、4:已推荐省级优秀案例
+
+    // 当前省联社 1 -> 4:已推荐省级优秀案例、5:省级优秀案例
+    //判断是否展示登记按钮
+    isSign(item) {
+      let orgType = window.sessionStorage.getItem('SET_USER_ORGTYPE')
+      if (orgType == '2') {
+        if (item.recStatus == 2 || item.recStatus == 3||item.recStatus==4) {
+          return true
+        } else {
+          return false
+        }
+        // 办事处
+      } else if (orgType == 3) {
+        if (item.recStatus == 0 || item.recStatus == 1||item.recStatus==2) {
+          return true
+        } else {
+          return false
+        }
+        // 行社
+      } else if (orgType == 1) {
+        if (item.recStatus == 4 || item.recStatus == 5) {
+          return true
+        } else {
+          return false
+        }
+        // 省联社
+      }
+    },
+    //清空查询条件
+    clearSearch() {
+      this.fieldValue = ''
+      this.statusValue = ''
+      this.cascaderValue = ''
+      this.currentDate = ''
+
+      this.typeName = ''
+      this.orgName = ''
+
+      this.selectListAppHandler()
+    },
+
+    //初始化
+    init() {
+      //获取数据字典
+      this.getDictHandler('drill_task_rec_status', res => {
+        this.columnsList = res
+        this.columns = res.map(item => item.dictLabel)
+        this.columns.unshift('全部')
+
+        // fieldValue
+      })
+
+
+      this.selectListAppHandler()
+    },
+    selectListAppHandler(type = 0, callback = () => {}) {
+      let obj = {
+        pageNum: this.pageNum,
+        pageSize: 10
+      }
+      if (!type) {
+        obj.pageNum = 1
+        this.pageNum = 1
+        this.taskList = []
+      }
+      if (this.statusValue) {
+        obj.recStatus = this.statusValue
+      }
+
+      obj.orgId = this.cascaderValue || JSON.parse(window.sessionStorage.getItem('SET_USER_ORGID')) + '' || ''
+
+      if (this.currentDate) {
+        obj.startTime = this.currentDate+'-'+'01'
+      }
+      if (this.endDate) {
+        obj.endTime = this.endDate+'-'+'01'
+      }
+
+      //获取任务列表
+      getlearningListPage(obj).then(res => {
+        let { code, rows, total } = res
+        if (code == 200) {
+          if (type) {
+            this.taskList.push(...rows)
+
+            if (this.taskList.length >= total) {
+              //已加载完全部数据
+              this.finished = true
+            } else {
+              callback()
+            }
+          } else {
+            this.taskList.push(...rows)
+            this.finished = false
+            this.loading = false
+            if (this.taskList.length >= total) {
+              //已加载完全部数据
+              this.finished = true
+            }
+
+            // this.taskList = rows || []
+          }
+        }else{
+          this.finished = true
+          this.taskList =[]
+        }
+      })
+    },
+
+    //搜索选择状态时触发
+    onConfirm(value, index) {
+      this.fieldValue = value
+      this.columnsList.forEach(item => {
+        if (value == item.dictLabel) {
+          this.statusValue = item.dictValue
+        }
+      })
+      if (value == '全部') {
+        this.statusValue = ' '
+      }
+      this.selectListAppHandler()
+      this.showStatus = false
+    },
+    // tbsHandler() {
+    //   this.selectListAppHandler()
+    // },
+    //月份选中触发
+    //年份选中触发
+    onDateConfirm(val) {
+      if(this.newDate(val + '')>this.endDate){
+        return Toast('开始月份不能大于结束月份')
+      }
+      this.currentDate = this.newDate(val + '')
+      this.showDate = false
+      this.selectListAppHandler()
+    },
+    //年份选中触发
+    onEndDateConfirm(val) {
+      if(this.newDate(val + '')<this.currentDate){
+        return Toast('结束月份不能小于开始月份')
+      }
+      this.endDate = this.newDate(val + '')
+
+      console.log(this.endDate);
+      this.endShowDate = 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+ '-' + m
+    },
+    //日期格式
+    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
+      })
+    },
+
+    //评优推优跳转
+    commentSign(id) {
+      this.$router.push('/commentSign/' + id + '_comment')
+    },
+
+    //跳转详情
+    goInfo(id) {
+      this.$router.push('/commentSign/' + id + '_info1')
+    },
+
+    onCancel() {
+      this.show = false
+      this.typeStatus = false
+      this.showDate = false
+      this.showStatus = false
+      this.endShowDate = 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;
+}
+.van-cell__value{
+  color: black;
+  text-align: left;
+}
+</style>

+ 7 - 1
src/views/menu/visitRecord/detail.vue

@@ -262,7 +262,13 @@ export default {
         this.selectedUser.letterFile = letterFile;
         //设置最小时间
         let minDate = this.selectedUser.arrivalTime;
-        this.minDate = new Date(minDate);
+      
+        this.minDate = Date.parse(new Date(minDate))
+        // 苹果手机下 某些版本 new Date(minDate) 对格式有严格要求
+        if(!this.minDate){
+          let objStart=minDate.replace(/-/g,"/");
+          this.minDate = Date.parse(new Date(objStart));
+        }
       })
     },
     previewFile(file){