qq_41295110
2025-07-22 d192710b103db633b04b7e2da4442cbf1fd25450
pages/caigourukujiaoyan/table.vue
@@ -1,22 +1,531 @@
<template>
   <view>
   <view class="content">
      <view class="tabs">
         <view :class="tabs == 0 ? 'on':''" @tap="changeTab(0)">缓存列表</view>
         <view :class="tabs == 1 ? 'on':''" @tap="changeTab(1)">已校验列表</view>
      </view>
      <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
      <view class="form" v-if="tabs == 0">
         <view class="buttons" @tap="add">
            <uni-icons type="plus" style="margin-right: 10rpx;" size="22"></uni-icons>新增
         </view>
      </view>
      <view class="form" v-if="tabs == 1">
         <view class="form-item">
            <view class="title">单据号:</view>
            <view class="right">
               <input v-model="hform.HBillNo" placeholder="请输入单据号" />
            </view>
         </view>
         <view class="form-item">
            <view class="title">源单单号:</view>
            <view class="right">
               <input v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
            </view>
         </view>
         <view class="buttons">
            <button class="btn-a" size="mini" type="default" @tap="clear">重置</button>
            <button class="btn-c" size="mini" type="default" @tap="search">查询</button>
         </view>
      </view>
      <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
      <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
         <uni-card :title="item.制单日期.substr(0,10)" :extra="item.单据号" style="margin: 10px;"
            @tap="showDetail = showDetail==index?-1:index">
            <view class="card-detail">
               <view class="detail" v-if="item.制单人">
                  <text>制单人:</text>{{item.制单人}}
               </view>
               <view class="detail" v-if="item.单据内码">
                  <text>单据内码:</text>{{item.单据内码}}
               </view>
               <view class="detail" v-if="item.数量">
                  <text>数量:</text>{{item.数量}}
               </view>
               <view class="detail" v-if="item.源单单号">
                  <text>源单单号:</text>{{item.源单单号}}
               </view>
               <view class="detail" v-if="item.组织">
                  <text>组织:</text>{{item.组织}}
               </view>
            </view>
            <view class="more">
               <view class="part" style="border-right: 1px solid #eee;color: #3a78ff;" @tap.stop="edit(item)">
                  <uni-icons type="compose" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>编辑
               </view>
               <view class="part" style="color: #da0000;" @tap.stop="del(item)">
                  <uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;" size="18"></uni-icons>删除
               </view>
            </view>
         </uni-card>
      </view>
      <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==1">
         <uni-card :title="item.日期" :extra="item.单据号" style="margin: 10px;"
            @tap="showDetail = showDetail==index?-1:index">
            <view class="card-detail">
               <view class="detail" v-if="item.制单人">
                  <text>制单人:</text>{{item.制单人}}
               </view>
               <view class="detail" v-if="item.数量">
                  <text>数量:</text>{{item.数量}}
               </view>
               <view class="detail" v-if="item.源单单号">
                  <text>源单单号:</text>{{item.源单单号}}
               </view>
               <view class="detail" v-if="item.物料代码">
                  <text>物料代码:</text>{{item.物料代码}}
               </view>
               <view class="detail" v-if="item.物料名称">
                  <text>物料名称:</text>{{item.物料名称}}
               </view>
               <view class="detail" v-if="item.规格型号">
                  <text>规格型号:</text>{{item.规格型号}}
               </view>
               <view class="detail" v-if="item.组织">
                  <text>组织:</text>{{item.组织}}
               </view>
            </view>
            <view class="more">
               <view class="part" style="color: #d98d00;width: 100%;" @tap.stop="revoke(item)">
                  <uni-icons type="undo" style="color: #d98d00;margin-right: 10rpx;" size="18"></uni-icons>撤销
               </view>
            </view>
         </uni-card>
      </view>
      <view class="over" v-if="!listData || listData.length == 0">暂无数据</view>
      <view class="over" v-if="listData.length != 0 && listData.length != showList.length">加载中...</view>
      <view class="over" v-if="listData.length != 0 && listData.length == showList.length">已到底</view>
   </view>
</template>
<script>
   import {
      getUserInfo
   } from "@/utils/auth.js";
   export default {
      data() {
         return {
            userInfo: getUserInfo(),
            serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
            tabs: 0,
            urls: '/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json',
            MvarReportTitle: '采购入库单校验缓存列表',
            hform: {
               HBillNo: '',
               HSourceBillNo: '',
               HBillType: 1201,
               HMaker: uni.getStorageSync('HUserName'),
               HStockOrgID: uni.getStorageSync('OrganizationID'),
            },
            sWhere: '',
            listData: [],
            showList: [],
            showDetail: -1,
            page: 1,
         }
      },
      onLoad() {
         // //用户模块权限判断
         // this.CheckModRight()
         // this.changeTab(0)
         // console.log(this.userInfo, uni.getStorageSync('HUserName'))
      },
      onShow() {
         //用户模块权限判断
         this.CheckModRight()
         this.changeTab(0)
         console.log(this.userInfo, uni.getStorageSync('HUserName'))
      },
      onReachBottom: function() {
         this.page++
         setTimeout(() => {
            this.showList = this.showList.concat(this.getPage(this.page, this.listData))
         }, 100)
      },
      onPullDownRefresh: function() {
         this.clear()
         setTimeout(() => {
            uni.stopPullDownRefresh();
         }, 1000);
      },
      methods: {
         CheckModRight() {
            uni.request({
               url: this.serverUrl + '/WEBSController/CheckModRight_Json',
               data: {
                  ModRightName: 'CE_POStockInCheck',
                  HUserName: uni.getStorageSync('HUserName')
               },
               success: (res) => {
                  if (res.data.count == 1) {} else {
                     uni.showToast({
                        title: res.data.Message,
                        icon: 'none'
                     })
                  }
               },
               fail: (res) => {
                  console.log(res);
                  uni.showToast({
                     title: '接口请求失败',
                     icon: 'none'
                  })
               },
            });
         },
         getPage(page, list) {
            let sindex = (parseInt(page) - 1) * 20
            let eindex = parseInt(page) * 20
            let newList = list.slice(sindex, eindex)
            return newList
         },
         changeTab(e) {
            this.tabs = e
            this.page = 1
            this.showList = []
            if (this.tabs == 0) {
               this.urls = '/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json'
            }
            if (this.tabs == 1) {
               this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_BillCheck_Json'
            }
            this.getList()
         },
         getList() {
            uni.showLoading({
               title: '加载中...'
            })
            uni.request({
               url: this.serverUrl + this.urls,
               data: this.hform,
               success: (res) => {
                  console.log(1, res);
                  if (res.data.count == 1) {
                     this.listData = res.data.data
                     this.showList = this.getPage(this.page, this.listData)
                     setTimeout(() => {
                        uni.hideLoading()
                     }, 1000)
                  } else {
                     uni.hideLoading()
                     this.listData = []
                     uni.showToast({
                        title: res.data.Message,
                        icon: 'none'
                     })
                  }
               },
               fail: (res) => {
                  console.log(res);
                  uni.hideLoading()
                  uni.showToast({
                     title: '接口请求失败',
                     icon: 'none'
                  })
               },
            });
         },
         search() {
            this.sWhere = ''
            this.listData = []
            this.page = 1
            this.showList = []
            console.log(this.hform)
            // if (this.hform.HBillNo) {
            //     this.sWhere += " and 单据号 like '%" + this.hform.HBillNo + "%'";
            // }
            // if (this.hform.HSourceBillNo) {
            //     this.sWhere += " and 设备类型 like '%" + this.hform.HSourceBillNo + "%'";
            // }
            this.getList()
         },
         clear() {
            this.listData = []
            this.page = 1
            this.showList = []
            this.sWhere = ''
            this.hform = {
               HBillNo: '',
               HSourceBillNo: '',
               HBillType: 1201,
               HMaker: uni.getStorageSync('HUserName'),
               HStockOrgID: uni.getStorageSync('OrganizationID'),
            }
            this.getList()
         },
         add() {
            uni.navigateTo({
               url: './form?OperationType=1'
            })
         },
         //编辑
         edit(item) {
            console.log(item)
            uni.navigateTo({
               url: './form?OperationType=2&HBillNo=' + item.HBillNo
            })
            //          uni.request({
            //              url: this.serverUrl + '/WEBSController/TempList_Modify_Json',
            //             data:{ "HInterID": item.HInterID, "HBillNo": item.单据号, "HBillType": this.hform.HBillType },
            //              success: (res) => {
            //                  console.log(1,res);
            //                if(res.data.count == 1){
            //                }else{
            //                   uni.showToast({
            //                      title:res.data.Message,
            //                      icon:'none'
            //                   })
            //                }
            //             },
            //             fail: (res) => {
            //                console.log(res);
            //                uni.hideLoading()
            //                uni.showToast({
            //                   title:'接口请求失败',
            //                   icon:'none'
            //                })
            //             },
            //          })
         },
         //删除
         del(item) {
            // console.log(item.hmainid,uni.getStorageSync('HUserName'))
            uni.showModal({
               title: '提示',
               content: '确认要删除记录?删除后不能恢复',
               success: (res) => {
                  if (res.confirm) {
                     console.log('用户点击确定');
                     uni.request({
                        url: this.serverUrl +
                           '/WEBSController/DeleteTempBillList_BillCheck_Json',
                        data: {
                           HInterID: item.HInterID,
                           HBillNo: item.单据号,
                           HBillType: this.hform.HBillType,
                           HMaker: uni.getStorageSync('HUserName'),
                           HStockOrgID: this.hform.HStockOrgID,
                           MvarReportTitle: this.MvarReportTitle,
                        },
                        success: (res) => {
                           console.log(1, res);
                           if (res.data.count == 1) {
                              this.clear()
                           }
                           uni.showToast({
                              title: res.data.Message,
                              icon: 'none'
                           })
                        },
                        fail: (res) => {
                           console.log(res);
                           uni.hideLoading()
                           uni.showToast({
                              title: '接口请求失败',
                              icon: 'none'
                           })
                        },
                     });
                  } else if (res.cancel) {
                     console.log('用户点击取消');
                  }
               }
            });
         },
         //撤销
         revoke(item) {
            // console.log(item.hmainid,uni.getStorageSync('HUserName'))
            uni.showModal({
               title: '提示',
               content: '是否确认撤销',
               success: (res) => {
                  if (res.confirm) {
                     console.log('用户点击确定');
                     uni.request({
                        url: this.serverUrl +
                           '/WEBSController/set_DeleteICStockBillAndWMS_BillCheck_Json',
                        data: {
                           HInterID: item.HInterID,
                           HBillNo: item.单据号,
                           HBillType: this.hform.HBillType,
                           HMaker: uni.getStorageSync('HUserName'),
                           HStockOrgID: this.hform.HStockOrgID,
                           MvarReportTitle: this.MvarReportTitle,
                        },
                        success: (res) => {
                           console.log(1, res);
                           if (res.data.count == 1) {
                              this.clear()
                           }
                           uni.showToast({
                              title: res.data.Message,
                              icon: 'none'
                           })
                        },
                        fail: (res) => {
                           console.log(res);
                           uni.hideLoading()
                           uni.showToast({
                              title: '接口请求失败',
                              icon: 'none'
                           })
                        },
                     });
                  } else if (res.cancel) {
                     console.log('用户点击取消');
                  }
               }
            });
         },
      }
   }
</script>
<style>
<style lang="scss" scoped>
   .form {
      width: 640rpx;
      margin: 20rpx auto;
      margin-top: 90rpx;
   }
</style>
   .tabs {
      width: 100%;
      position: fixed;
      left: 0;
      z-index: 9;
      display: flex;
      background-color: #e5e5e5;
      view {
         width: 50%;
         font-size: 30rpx;
         color: #333;
         text-align: center;
         padding: 16rpx 0;
      }
      .on {
         color: #3a78ff;
         font-weight: bold;
         border-bottom: 3px solid #3a78ff;
      }
   }
   .buttons {
      width: 100%;
      display: flex;
      justify-content: center;
      margin-top: 20rpx;
      button {
         border-radius: 50rpx;
         width: 180rpx;
         height: 66rpx;
         line-height: 66rpx;
         font-size: 28rpx;
      }
      .btn-a {
         background-color: #acacac;
         color: #fff;
      }
      .btn-b {
         background-color: #41a863;
         color: #fff;
      }
      .btn-c {
         background-color: #3a78ff;
         color: #fff;
      }
   }
   .form-item {
      display: flex;
      align-items: center;
      font-size: 28rpx;
      padding: 6rpx 0;
      .title {
         width: 180rpx;
         text {
            color: red;
            font-weight: bold;
         }
      }
      .right {
         width: 450rpx;
         border-radius: 22rpx;
         border: 1px solid #acacac;
      }
      .righton {
         width: 450rpx;
         border-radius: 22rpx;
         border: 1px solid #e4e4e4;
         background-color: #e4e4e4;
      }
      input {
         width: 100%;
         padding: 8rpx 20rpx;
         font-size: 30rpx;
      }
   }
   .list {
      width: 100%;
      .card-detail {
         width: 100%;
         display: flex;
         flex-wrap: wrap;
         justify-content: space-between;
         line-height: 120%;
         .detail {
            // width: 50%;
            font-size: 26rpx;
            margin-bottom: 12rpx;
            color: #555;
            margin-right: 20rpx;
            text {
               color: #999;
               font-size: 26rpx;
            }
         }
      }
      .more {
         color: #888;
         font-size: 26rpx;
         display: flex;
         border-top: 1px solid #eee;
         padding-top: 20rpx;
         .part {
            width: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
         }
      }
   }
</style>