coys 2 gadi atpakaļ
vecāks
revīzija
7cd772f990

+ 1 - 1
src/config/env.development.js

@@ -2,7 +2,7 @@
 module.exports = {
   title: 'soc-app-dev',
   baseUrl: 'http://localhost:9018', // 项目地址
-  baseApi: '/yuanjingchao', // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
+  baseApi: '/luowei', // 本地api请求地址,注意:如果你使用了代理,请设置成'/'
   APPID: 'xxx',
   APPSECRET: 'xxx',
   $cdn: 'https://www.sunniejs.cn/static'  //静态资源

+ 52 - 7
src/views/menu/monitoringCall/index.vue

@@ -56,11 +56,13 @@
         />
         <van-popup v-model="showDate" round position="bottom">
           <van-datetime-picker
-            v-model="currentDate"
+            v-model="presentDate"
             @cancel="onCancel"
+           
             @confirm="onDateConfirm"
             type="year-month"
             title="月份"
+            ref="pickers"
           />
         </van-popup>
       </van-col>
@@ -70,7 +72,10 @@
     </van-row>
     <!-- 调阅列表 -->
     <div class="bigbox">
-      <van-panel :title="item.title" v-for="item in taskList" :key="item.id" class="card" status="状态">
+      <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">
@@ -99,6 +104,7 @@
           <div class="date">{{ item.planEndTime }}</div>
         </div>
       </van-panel>
+    </van-list>
     </div>
 
     <!-- 扫描弹框 -->
@@ -117,11 +123,15 @@ import {upload} from "@/api/public";
 export default {
   data() {
     return {
+      pageNum:1,
+      loading: false, //加载状态
+      finished: false, //是否全部加载完成
       str: '',
       fieldValue: '全部',
       monitor: ['monitor', 'monitored', 'monitoring', 'waringtoring'], //状态样式
       value1: JSON.parse(sessionStorage.getItem('SET_USER_ORGNAME')) || '', //输入框model
       currentDate: newDateMonth(),
+      presentDate:'2020-01-01',//当前时间
       cascaderValue: JSON.parse(sessionStorage.getItem('SET_USER_ORGID')) || '',
       columns: ['全部'],
       statusList: [], //调阅状态字典数组
@@ -168,8 +178,24 @@ export default {
   },
   created() {
     this.init()
+
+  },
+  mounted(){
+  
+
   },
   methods: {
+    //onLoad下拉刷新
+    onLoad() {
+      if(this.pageNum==1){
+        this.pageNum=2
+      }
+      
+      this.selectListAppHandler(()=>{
+        this.loading = false
+this.pageNum++
+      })
+    },
     //清空查询条件
     clearSearch() {
       this.str = ''
@@ -201,16 +227,28 @@ export default {
       })
       this.selectListAppHandler()
     },
-    selectListAppHandler() {
+    selectListAppHandler(callBack=(()=>{})) {
       //获取任务列表
       selectListApp({
+        pageNum:this.pageNum,
+        pageSize:10,
         status: this.str || '',
         orgId: this.cascaderValue || '',
         moth: this.currentDate || ''
       }).then(res => {
-        let { code, data, msg } = res
+        let { code, rows, msg } = res
         if (code == 200) {
-          this.taskList = data
+          
+          this.taskList.push(...rows)
+          if(rows.length==0){//已经没有数据判断
+            this.finished=true
+            return
+          } 
+          callBack()
+          // if(num===1){
+          //   this.loading = false
+          //   this.pageNum++
+          // }
         }
       })
     },
@@ -307,7 +345,7 @@ export default {
     },
     //月份选中触发
     onDateConfirm() {
-      this.currentDate = this.newDate(this.currentDate)
+      this.currentDate = this.newDate(this.presentDate)
       this.showDate = false
       this.selectListAppHandler()
     },
@@ -321,6 +359,12 @@ export default {
       d = d < 10 ? '0' + d : d
       return y + '-' + m
     },
+    // //日期组件change
+    // changeHandler(Picker){
+    //   console.log(Picker);
+    //   console.log(Picker.getValues());
+    //   debugger
+    // },
     onChange(picker, value, index) {},
     onCancel() {
       this.show = false
@@ -458,7 +502,8 @@ export default {
   box-sizing: border-box;
 }
 .bigbox {
-  height: calc(100vh - 300px);
+  height: calc(100vh - 380px);
+  overflow: scroll;
   background-color: #fff;
 }
 .card {

+ 5 - 2
src/views/menu/training/components/personnelSignature.vue

@@ -48,7 +48,7 @@
     </div>
     <div class="mainItem" v-if="this.$route.params.id.split('_')[1]==='info'">
       <div>参与人员签名图片</div>
-      <van-image width="100" v-for="item in signUserList" :key="item" height="100" :src="item.signImage" />
+      <van-image width="100" v-for="item in signUserList" :key="item.userId" height="100" :src="item.signImage||''" />
     </div>
     <van-row>
       <van-col span="24" class="btns">
@@ -101,8 +101,11 @@ export default {
           }
         })
         this.qsUserList = this.qsUserList.join(',')
-        this.signUserList=data.taskUserList
+        this.signUserList=data.taskUserList||[]
         this.imgList = this.trainingData?.imageList?.split(',')||[]
+        console.log(this.qsUserList);
+        console.log(this.signUserList);
+        console.log(this.imgList);
       }
     })
   },

+ 93 - 47
src/views/menu/training/index.vue

@@ -1,6 +1,12 @@
 <template>
   <div>
+    <div class="topBox">
+
+    
     <NavBar />
+    
+
+    
     <van-row>
       <van-col span="24"
         ><van-field
@@ -69,7 +75,8 @@
       </van-col>
     </van-row>
     <van-row>
-      <van-col span="18"
+    
+      <van-col span="24"
         ><van-field
           v-model="typeName"
           is-link
@@ -91,55 +98,64 @@
           />
         </van-popup>
       </van-col>
-
-      <van-col span="6" class="btnf_box">
+    
+      <!-- <van-col span="6" class="btnf_box">
         <van-button type="info" class="btn" @click="clearSearch" size="small">重置</van-button>
-      </van-col>
+      </van-col> -->
     </van-row>
+  </div>
+   
+
+    
     <!-- //卡片内容区域 -->
-    <van-panel :title="item.title" v-for="item in taskList" :key="item.id" class="card" status="状态">
-      <template #header>
-        <div class="titleClass">
-          <div class="title">{{ item.title }}</div>
-          <div>
-            <van-button plain type="info" v-if="isSign(item)" size="mini" @click="trainSign(item.id)"
-              >培训登记</van-button
-            >
-            <van-button plain type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
-              >签名</van-button
-            >
+    <div class="navBarclas">
+    <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+      
+      <van-panel :title="item.title" v-for="item in taskList" :key="item.id" class="card" status="状态">
+        <template #header>
+          <div class="titleClass">
+            <div class="title">{{ item.title }}</div>
+            <div>
+              <van-button plain type="info" v-if="isSign(item)" size="mini" @click="trainSign(item.id)"
+                >培训登记</van-button
+              >
+              <van-button plain type="info" v-if="isSignature(item)" size="mini" @click="signature(item.id)"
+                >签名</van-button
+              >
+            </div>
+          </div>
+        </template>
+        <div>
+          <div class="mainItem" @click="goInfo(item.id)">
+            <div>单位名称</div>
+            <div>{{ item.orgName }}</div>
+          </div>
+          <div class="mainItem" @click="goInfo(item.id)">
+            <div>培训状态</div>
+            <div>{{ item.statusText }}</div>
+          </div>
+          <div class="mainItem" @click="goInfo(item.id)">
+            <div>培训类型</div>
+            <div>{{ item.typeText }}</div>
+          </div>
+          <div class="mainItem" @click="goInfo(item.id)">
+            <div>培训时间</div>
+            <div>{{ item.startDate }}</div>
+          </div>
+          <div class="mainItem">
+            <div>签名情况</div>
+            <div class="condition" @click="signatureCondition(item.id)">{{ item.signNums }}</div>
           </div>
         </div>
-      </template>
-      <div @click="goInfo(item.id)">
-        <div class="mainItem">
-          <div>单位名称</div>
-          <div>{{ item.orgName }}</div>
-        </div>
-        <div class="mainItem">
-          <div>培训状态</div>
-          <div>{{ item.statusText }}</div>
-        </div>
-        <div class="mainItem">
-          <div>培训类型</div>
-          <div>{{ item.typeText }}</div>
-        </div>
-        <div class="mainItem">
-          <div>培训时间</div>
-          <div>{{ item.startDate }}</div>
-        </div>
-        <div class="mainItem">
-          <div>签名情况</div>
-          <div class="condition" @click="signatureCondition(item.id)">{{ item.signNums }}</div>
-        </div>
-      </div>
-    </van-panel>
+      </van-panel>
+    </van-list>
+  </div>
     <!-- 卡片弹框 -->
     <van-dialog v-model="conditionShow" title="签名情况" show-cancel-button>
       <div class="conditionCls">
-        <div class="title">签名人员({{ participationList.num }}人):</div>
+        <div class="title">未签名人员({{ participationList.num }}人):</div>
         <div class="people">{{ participationList.list }}</div>
-        <div class="title">签名人员({{ absenceList.num }}人):</div>
+        <div class="title">已签名人员({{ absenceList.num }}人):</div>
         <div class="people">{{ absenceList.list }}</div>
       </div>
     </van-dialog>
@@ -155,6 +171,9 @@ import { newDateMonth } from '@/utils/date.js'
 export default {
   data() {
     return {
+      pageNum: 1,
+      loading: false, //加载状态
+      finished: false, //是否全部加载完毕
       participationList: {
         list: [], // 参与人员
         num: 0 //人数
@@ -260,10 +279,10 @@ export default {
       let timefalg = false
       //value1 当前登陆用户ID
       //当前时间再时间范围内且签名是待签名状态且签名列表存在当前登录人未签名的情况才可以进行签名
-      if (list.trainingStartDateTime && list.trainingEndDateTime && list.status == 1) {
+      if (list.startDate && list.endDate && list.status == 0) {
         let date = new Date().getTime()
-        let startDate = Date.parse(new Date(list.trainingStartDateTime))
-        let endDate = Date.parse(new Date(list.trainingEndDateTime))
+        let startDate = Date.parse(new Date(list.startDate))
+        let endDate = Date.parse(new Date(list.endDate))
         if (date >= startDate && date <= endDate) {
           timefalg = true
         }
@@ -307,9 +326,11 @@ export default {
       })
       this.selectListAppHandler()
     },
-    selectListAppHandler() {
+    selectListAppHandler(callback=()=>{}) {
       let obj = {
-        isAppSelect: 1
+        isAppSelect: 1,
+        pageNum: this.pageNum,
+        pageSize: 10
       }
 
       if (this.statusValue) {
@@ -329,7 +350,13 @@ export default {
       gettrainingList(obj).then(res => {
         let { code, rows, msg } = res
         if (code == 200) {
-          this.taskList = rows
+          this.taskList.push(...rows)
+          if(rows.length==0){
+            //已加载完全部数据
+            this.finished=true
+            return
+          }
+          callback()
         }
       })
     },
@@ -420,6 +447,18 @@ export default {
       d = d < 10 ? '0' + d : d
       return y + '-' + m
     },
+    //onLoad下拉刷新
+    onLoad() {
+      if(this.pageNum==1){
+        this.pageNum=2
+      }
+      this.loading = true
+      this.selectListAppHandler(() => {
+        this.pageNum++
+        this.loading = false
+        console.log(1);
+      })
+    },
     //查看签名情况
     signatureCondition(id) {
       this.conditionShow = true
@@ -462,6 +501,10 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
+.navBarclas{
+  height: calc(100vh - 380px);
+  overflow: scroll;
+}
 .btnf_box {
   background-color: #fff;
 }
@@ -511,4 +554,7 @@ export default {
     margin-top: 30px;
   }
 }
+.topBox{
+  overflow: hidden;
+}
 </style>

+ 1 - 1
vue.config.js

@@ -93,7 +93,7 @@ module.exports = defineConfig({
         }
       },
       '/dev': {
-        target: "http://10.87.10.55:8080",
+        target: "http://10.87.10.55:8081",
         // ws:true,
         changOrigin:true,
         pathRewrite:{