wzp
2022-03-08 1f478b4b033d518f6de21f931d828d2a175b2a3e
assetMgtH5/pages/apply/apply.vue
@@ -6,70 +6,164 @@
            <block slot="content">我的申请</block>
         </cu-custom>
      </view>
      <view class="">
         <view class="cu-list menu-avatar">
            <view class="cu-item" v-for="(item,index) in assetsList" :key="index">
               <view class="cu-avatar radius lg bg-white"
                  style="background-image:url(../../static/device.png);">
               </view>
               <view class="content">
                  <view>
                     <view class="text-cut text-bold text-xl">设备</view>
                     <view class="cu-tag radius bg-orange sm">数量:{{item.quantity}}</view>
                  </view>
                  <view class="text-gray text-sm flex">
                     <view class="text-cut">申请时间:{{item.createTime}}</view>
                  </view>
               </view>
               <view class="action">
               <view class="text-grey text-xs">申请状态</view>
               <view class="cu-tag round bg-red sm">通过</view>
               </view>
            </view>
         </view>
      <view class="tabBox">
         <u-subsection
            :list="curlist"
            mode="button"
            :current="current"
            @change="changeCurrent"
         ></u-subsection>
      </view>
      <view class="contentBox">
         
         <view class=""  v-if="listFlag">
            <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback">
               <view class="cu-list menu-avatar">
                  <view class="cu-item" v-for="(item,index) in assetsList" :key="index" @click="navTo(item.id)">
                     <view class="cu-avatar radius lg bg-white"
                        style="background-image:url(../../static/device.png);">
                     </view>
                     <view class="content">
                        <view>
                           <view class="text-cut text-bold text-xl">{{item.approvalAssets[0].assets.name}}</view>
                           <view class="cu-tag radius bg-orange sm">数量:{{item.approvalAssets[0].quantity}}</view>
                        </view>
                        <view class="text-gray text-sm flex">
                           <view class="text-cut">申请时间:{{item.createTime}}</view>
                        </view>
                     </view>
                     <view class="action">
                     <view class="text-grey text-xs">申请状态</view>
                     <view class="cu-tag round bg-red sm">{{current+1===1?'待审批':current+1===2?'通过':"未通过"}}</view>
                     </view>
                  </view>
               </view>
            </mescroll-body>
         <view class=""  v-if="assetsList.length===0">
            <u-empty mode="list" icon="http://cdn.uviewui.com/uview/empty/list.png">
            </u-empty>
         </view>
      </view>
   </view>
</template>
<script>
   import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
   export default {
      mixins: [MescrollMixin], // 使用mixin
      data() {
         return {
            assetsList:[],
            listFlag:false
            current: 0,
            status:0,
            curlist: ['待审批', '已完成', '未通过'],
         }
      },
      onShow() {
         this.getAssetList();
         // this.getAssetList();
         this.page = 1;
         let page ={};
         page.num =1;
         this.upCallback(page);
      },
      methods: {
         //请求
         getAssetList() {
            this.$http.post('/assets/approval/myAssets')
         changeCurrent(index) {
            this.current = index
            // this.getAssetList();
            this.page = 1;
            let page ={};
            page.num =1;
            this.upCallback(page);
         },
         //接口有问题
         upCallback(page) {
            let pageNum = page.num; //页码,默认从1开始
            let pageSize = 10; //页长,默认每页10条
            console.log("this.current",this.current)
            this.$http.get('/assets/approval/myApply',{params:{
               "pageNum":1,
               "pageSize":100,
               "type":this.current+1
            }})
               .then(res => {
                  // debugger;
                  if(res.data.code===0){
                     this.assetsList =res.data.data;
                     console.log(JSON.stringify(res.data.data[0]))
                  if (res.data.code === 0) {
                     let data = res.data.data;
                     console.log('列表:'+ data.length)
                     if (page.num == 1) this.assetsList = []; //如果是第一页,需手动置空列表
                     this.assetsList = this.assetsList.concat(data); //追加新数据
                     // console.log('数据',JSON.stringify(this.assetsList[0]));
                     this.mescroll.endBySize(this.assetsList.length, res.data.total);
                  }
                  else{
                     this.listFlag=true;
                     this.mescroll.endBySize(0, 0);
                  }
                  
               })
               .catch(err => {
                  this.mescroll.endErr();
                  console.log('异常', err);
               });
         },
         //请求
         getAssetList() {
            this.$http.get('/assets/approval/myApply',{params:{
               "pageNum":1,
               "pageSize":100,
               "type":this.current+1
            }})
               .then(res => {
                  // debugger;
                  if(res.data.code===0 ){
                     let data =res.data.data;
                     this.assetsList =data;
                     console.log("结果",data)
                  }
                  
               }).catch(err => {
                  console.log(err.data)
               })
         },
         navTo(id) {
            uni.navigateTo({
               url: `./applyInfo?id=${id}&type=${this.current+1}`
            })
         }
      }
   }
</script>
<style>
.tabBox{
   z-index: 100;
   position: fixed;
   width: 100%;
   top:90rpx;
}
.contentBox{
   z-index: 99;
   position: fixed;
   width: 100%;
   top:165rpx;
}
</style>