#
zjj
2 天以前 d111b3ab62e3a10053d3f339497e03e62459148e
pages/check/checkOrderItem.vue
@@ -2,97 +2,168 @@
   <view class="has-foot">
      <form>
         <view class="cu-form-group" v-show="!isconfirm">
            <view class="title">差异单号</view>
            <text class="text-black ">{{check.orderCode}}</text>
            <view class="title">盘点单号:<text class="text-black ">{{check.orderCode}}</text></view>
            <text class='cuIcon-add text-blue' @click="returnPage"></text>
         </view>
         <view class="cu-form-group" v-show="!isconfirm">
            <view class="title">容器号</view>
            <input placeholder="请扫描容器号" v-model="barcode"  focus></input>
            <input placeholder="请扫描容器号" v-model="barcode" focus></input>
            <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text>
            <text class='cuIcon-search text-blue' @click="search"></text>
         </view>
         <view class="cu-form-group" v-show="isconfirm">
            <view class="title">物料码</view>
            <input placeholder="请扫描物料码" v-model="matnr" focus></input>
            <text class='cuIcon-close text-gray margin-right-xs' v-show="matnr!==''" @click="clearCode"></text>
            <text class='cuIcon-search text-blue' @click="addMatnr" v-show="matnr!==''"></text>
         </view>
      </form>
      <view class="cu-list det menu sm-border  padding">
         <block  v-for="(item, index) in list">
            <view  class="cu-list det menu  ">
            <view class="cu-bar bg-white solid-bottom margin-top-sm">
               <view class="action">
                  <view class="index">
                     {{index+1}}
                  </view>
               </view>
               <view class="content2">
                  <text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text>
               </view>
            </view>
            <view class="cu-item">
               <view class="content">
                  <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text>
               </view>
            </view>
            <view class="cu-item">
               <view class="content">
                  <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text>
               </view>
            </view>
            <view class="cu-item" v-if="check.checkType === 0">
               <view class="content">
                  <text class="text-gray">库存数:<text class="text-black ">{{item.anfme}}</text></text>
               </view>
            </view>
            <view class="cu-item">
               <view class="content">
                  <view class="cu-form-group padding-lr-0">
                     <view class="title text-blue"><text
                           class="text-red text-xl vertical-middle"></text>实盘数:</view>
                     <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty"
                        :step='1' ></uni-number-box>
                  </view>
               </view>
            </view>
            <view class="cu-item">
               <view class="content">
                  <view class="cu-form-group padding-lr-0">
                     <text class=" text-blue">备注:</text>
                     <input placeholder="请输入备注" v-model="item.memo" ></input>
                  </view>
               </view>
            </view>
            <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
               <view class="content">
                  <view class="cu-form-group padding-lr-0">
                     <view class=" text-blue" >差异原因</view>
                     <view style="width: 80%;">
                        <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason" :localdata="reasons"
                           placement="top"></uni-data-select>
         <block v-for="(item, index) in list" v-if="!isconfirm">
            <view class="cu-list det menu  ">
               <view class="cu-bar bg-white solid-bottom margin-top-sm">
                  <view class="action">
                     <view class="index">
                        {{index+1}}
                     </view>
                  </view>
               </view>
                  <view class="content2">
                     <text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-gray">批次:<text class="text-black ">{{item.batch}}</text></text>
                  </view>
               </view>
               <view class="cu-item" v-if="check.checkType === 0">
                  <view class="content">
                     <text class="text-gray">库存数:<text class="text-black ">{{item.anfme}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>实盘数:
                        </view>
                        <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty"
                           :step='1'></uni-number-box>
                     </view>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <text class=" text-blue">备注:</text>
                        <input placeholder="请输入备注" v-model="item.memo"></input>
                     </view>
                  </view>
               </view>
               <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <view class=" text-blue">差异原因</view>
                        <view style="width: 80%;">
                           <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
                              :localdata="reasons" placement="top"></uni-data-select>
                        </view>
                     </view>
                  </view>
               </view>
            </view>
         </block>
         <block v-for="(item, index) in matnrList">
            <view class="cu-list det menu  ">
               <view class="cu-bar bg-white solid-bottom margin-top-sm">
                  <view class="action">
                     <view class="index">
                        {{index+1}}
                     </view>
                  </view>
                  <view class="action">
                     <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text>
                  </view>
               </view>
               <view class="cu-item" v-if="check.checkType === 0">
                  <view class="content">
                     <text class="text-gray">库存数:<text class="text-black ">{{item.anfme}}</text></text>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <text class=" text-blue">批次:</text>
                        <input placeholder="请输入批次" v-model="item.batch"></input>
                     </view>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>实盘数:
                        </view>
                        <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty"
                           :step='1'></uni-number-box>
                     </view>
                  </view>
               </view>
               <view class="cu-item">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <text class=" text-blue">备注:</text>
                        <input placeholder="请输入备注" v-model="item.memo"></input>
                     </view>
                  </view>
               </view>
               <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
                  <view class="content">
                     <view class="cu-form-group padding-lr-0">
                        <view class=" text-blue">差异原因</view>
                        <view style="width: 80%;">
                           <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
                              :localdata="reasons" placement="top"></uni-data-select>
                        </view>
                     </view>
                  </view>
               </view>
            </view>
         </block>
      </view>
      <view class="cu-bar btn-group foot" v-show="!isconfirm">
         <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
         <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="complete">提交</button>
      </view>
      <view class="cu-bar btn-group foot" v-show="isconfirm">
         <button class="cu-btn text-blue line-blue shadow" @click="returnPage">返回</button>
         <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="sureAdd">确定添加</button>
      </view>
   </view>
</template>
@@ -110,19 +181,21 @@
   export default {
      data() {
         return {
            check:'',
            list: [],
            check: '',
            list: [],
            isconfirm: false,
            barcode:'',
            barcode: '',
            max: 99999999,
            repeatClick:false,
            reasons:[]
            repeatClick: false,
            reasons: [],
            matnr: '',
            matnrList:[]
         }
      },
      computed: {
      computed: {
      },
      mounted() {
         this.getReasons()
@@ -130,20 +203,53 @@
      onLoad() {
         let that = this
         const eventChannel = this.getOpenerEventChannel();
         eventChannel.on('checkItem', function(data) {
            that.check = data.data
         })
      },
      methods: {
         sureAdd(){
            if(this.matnrList.length === 0){
               uni.showToast({
                  title: "请添加物料明细",
                  icon: "none",
                  position: 'top'
               })
               return ;
            }
            this.list.push(...this.matnrList)
            this.matnrList = []
            this.isconfirm = !this.isconfirm
         },
         remove(index) {
            this.matnrList.splice(index, 1);
         },
         async addMatnr() {
            const {
               code,
               data,
               msg
            } = await request('/selectAddMatnr', {
               matnr:this.matnr
            })
            if (code === 200) {
               this.matnrList.push(data)
               this.matnr = ''
            }
         },
         returnPage() {
            this.matnrList = []
            this.isconfirm = !this.isconfirm
         },
         async getReasons() {
            const {
               code,
               data,
               msg
            } = await request('/getCheckDiffReasonList', {},'get')
            } = await request('/getCheckDiffReasonList', {}, 'get')
            if (code === 200) {
               this.reasons = data.map(item => ({
                  value: item.id,
@@ -156,7 +262,8 @@
            this.list = []
         },
         clearCode() {
            this.barcode = ''
            this.barcode = ''
            this.matnr = ''
         },
         async search() {
            this.list = []
@@ -167,67 +274,66 @@
               code,
               data,
               msg
            } = await request('/getCheckTaskItemList',{
               barcode:this.barcode,
            } = await request('/getCheckTaskItemList', {
               barcode: this.barcode,
               checkCode: this.check.orderCode
            }
            )
            if (code === 200) {
               if (Object.keys(data).length === 0){
            })
            if (code === 200) {
               if (Object.keys(data).length === 0) {
                  uni.showToast({
                     title: "该标签未查询到数据",
                     icon: "none",
                     position: 'top'
                  })
               }
               for(var i=0;i<data.length;i++){
                  data[i].checkQty = data[i].anfme
               for (var i = 0; i < data.length; i++) {
                  data[i].checkQty = data[i].anfme
               }
               this.list=data
            }else if(code == 401){
               this.list = data
            } else if (code == 401) {
               setTimeout(() => {
                  uni.removeStorageSync('token');
                  uni.reLaunch({
                     url: "/pages/login/login"
                  });
               }, 1000);
            }else {
            } else {
               uni.showToast({
                  title: msg,
                  icon: "none",
                  position: 'top'
               })
            }
         },
         async complete() {
            let that = this
            if(that.barcode === '' || that.barcode === null){
            if (that.barcode === '' || that.barcode === null) {
               uni.showToast({
                  title: "容器号为空",
                  icon: "error",
               })
               return ;
               return;
            }
            if(that.list === [] || that.list.length === 0){
            if (that.list === [] || that.list.length === 0) {
               uni.showToast({
                  title: "任务明细为空",
                  icon: "error",
               })
               return ;
               return;
            }
            this.repeatClick = true
            const {
               code,
               data,
               msg
            } = await request('/saveCheckDiff',{
               container:that.barcode,
            } = await request('/saveCheckDiff', {
               container: that.barcode,
               checkId: that.check.id,
               checkDiffItems:that.list
               checkDiffItems: that.list
            })
            if (code === 200) {
               uni.showToast({
@@ -272,7 +378,8 @@
      min-height: 80upx;
      align-items: center;
   }
   .content2 {
   .content2 {
      /* background-color: coral; */
      width: 100%;
      display: flex;
@@ -282,7 +389,8 @@
      margin-right: 10px;
      color: #0081ff;
   }
   .noMargin{
   .noMargin {
      margin-top: 0px;
      padding: 5px;
   }