loulijun2021
2024-05-14 9e7bbd1a203c39c74b81624640a5ea8f6e247ba3
pages/scgl/scbg.vue
@@ -11,10 +11,10 @@
      </view>
      <view v-show="topContent.length!==0">
         <view class="mainContent" :style="{maxHeight:'1200rpx',overflow: 'scroll'}">
         <view class="mainContent" :style="{maxHeight:'1260rpx',overflow: 'scroll'}">
            <!-- 报工信息 -->
            <u-gap height="15" bgColor="#eff0f1"></u-gap>
            <u-gap height="5" bgColor="#eff0f1"></u-gap>
            <view class="head" style="padding-bottom: 10rpx;">
               <view class="head_block">
                  <view class="head_left">
@@ -64,7 +64,7 @@
            </view>
            <!-- 报工操作 -->
            <u-gap height="15" bgColor="#eff0f1"></u-gap>
            <u-gap height="10" bgColor="#eff0f1"></u-gap>
            <view class="head  marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
               <view class="head_block">
                  <view class="head_left">
@@ -81,7 +81,7 @@
                     <view style="display: flex;" class="titleFont">
                        <view style="color: red;margin-right: 6rpx;">*</view> 计件方式:
                     </view>
                     <u-radio-group v-model="reckway">
                     <u-radio-group v-model="reckway" @change='radioGroupChange'>
                        <u-radio shape="circle" label="班组" name="班组" labelSize="16"></u-radio>
                        <u-radio shape="circle" label="个人" style="margin-left: 20rpx;" name="个人" labelSize="16">
                        </u-radio>
@@ -104,8 +104,8 @@
                  </view>
                  <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;"
                     v-if="reckway==='个人'">
                  <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                     <!-- v-if="reckway==='个人'" -->
                     <view style="display: flex;" class="titleFont">
                        <view style="color: red;margin-right: 6rpx;">*</view> 报工人员:
                     </view>
@@ -122,7 +122,7 @@
                  <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                     <view style="display: flex;" class="titleFont">
                        <view style="color: red;margin-right: 6rpx;">*</view> 设备名称:
                        <view style="color: #fff;margin-right: 6rpx;">*</view> 设备名称:
                     </view>
                     <view @click='epqSheetClick' class="custominputClass">
@@ -139,128 +139,98 @@
                  <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                     <view style="color: red;margin-right: 6rpx;">*</view> 报工数量:
                     <view class='inputClass'>
                        <u--input placeholder="请输入" border="surround" type='number' v-model="reportqty">
                        <u--input placeholder="请输入" :adjustPosition='false' border="surround" type='number'
                           v-model="reportqty">
                        </u--input>
                     </view>
                  </view>
                  <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                     <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量:
                     <view class='inputClass'>
                        <u--input placeholder="请输入" border="surround" @change='ngqtyChange' type='number'
                           v-model="ngqty"></u--input>
                     </view>
                  </view>
                  <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                     <view style="display: flex;" class="titleFont">
                        <view style="color: #fff;margin-right: 6rpx;">*</view> 不良原因:
                     </view>
                     <view @click='badSheetClick' class="custominputClass">
                        <view v-show='badSheetValue.length===0' style="color: rgb(192, 196, 204);">请选择</view>
                        <view v-show='badSheetValue.length!==0' class="ellipsis" style="width: 390rpx;">
                           {{badSheetValue}}
                        </view>
                        <u-icon :name="!badSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                     </view>
                  </view>
                  <!--       <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                     <view style="display: flex;">
                        <view style="color: red;margin-right: 6rpx;">*</view> 操作人员:
                     </view>
                     <view @click='operSheetClick' class="custominputClass">
                        <view v-show='operSheetValue===""' style="color: rgb(192, 196, 204);">请选择</view>
                        <view v-show='operSheetValue!==""' class="ellipsis" style="width: 390rpx;">
                           {{operSheetValue}}
                        </view>
                        <u-icon :name="!operSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                     </view>
                  </view> -->
                  <!-- 可能上拉显示 要换成下拉显示 -->
                  <!--       <uni-section style="width: 100%;" title=''>
                     <uni-data-select v-model="operSheetValue" :clear='false' emptyText :localdata="operSheetList">
                     </uni-data-select>
                  </uni-section>
                   -->
               </view>
            </view>
            <!-- 报工人员信息 -->
            <u-gap height="15" v-if="reckway==='班组'" bgColor="#eff0f1"></u-gap>
            <view class="head marginLeft10 marginRight10" v-if="reckway==='班组'">
            <u-gap height="10" bgColor="#eff0f1"></u-gap>
            <view class="head  marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
               <view class="head_block">
                  <view class="head_left">
                     <view class="head_bar"></view>
                     <view class="head_title">
                        报工人员信息
                        不良统计
                     </view>
                  </view>
               </view>
               <u-button type="primary" icon='plus-circle' plain
                  style="height: 100rpx;width: 98%;margin-top: 10rpx;" @click="addUser" class='addClass'
                  text="添加">
               </u-button>
               <view class="flex_between titleFont" style="margin: 20rpx 40rpx 30rpx;">
                  <view>序号</view>
                  <view :style="{width:'200rpx'}">人员名称</view>
                  <view style="width: 184rpx;">分配比例(%)</view>
                  <view>操作</view>
               </view>
               <view class="flex_column ">
               <view class="flex_column marginLeft20 marginRight20" :key="item.usercode"
                  v-for="(item,index) in userArr">
                  <view class="flex_between marginLeft20 marginRight20 contentFont">
                     <view style="width: 60rpx;text-align: center;">{{(index+1)}}</view>
                     <view style="width: 200rpx;text-align: center;">{{item.username}}</view>
                     <view style="width: 240rpx; text-align: center;color: rgb(41, 121, 255);">
                        <u-number-box @focus='isAsyncChange=true' @blur='isAsyncChange=false'
                           :key="item.usercode" :asyncChange='isAsyncChange' step="0.01" :name='item.usercode'
                           @change='numberBoxChange' decimal-length="2" :value="item.ratio" inputWidth='110'>
                        </u-number-box>
                  <u-button type="primary" :plain="true" icon='plus-circle' text="添加"
                     style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
                  <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
                     <view class="badNumber">{{index+1}}</view>
                     <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
                        @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
                     <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                        <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量:
                        <view class='inputClass'>
                           <u--input placeholder="请输入" border="surround" :adjustPosition='false' type='number'
                              v-model="item.ngqty"></u--input>
                        </view>
                     </view>
                     <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                        <view style="display: flex;" class="titleFont">
                           <view style="color: #fff;margin-right: 6rpx;">*</view> 不良原因:
                        </view>
                        <view @click='badSheetClick(item)' class="custominputClass">
                           <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">请选择
                           </view>
                           <view v-show='item.badSheetValue.length!==0' class="ellipsis"
                              style="width: 390rpx;">
                              {{item.badSheetValue}}
                           </view>
                           <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                        </view>
                     </view>
                     <u-icon @click="deleteUser(item)" style="width: 50rpx;text-align: center;" name="trash"
                        min='0' max='100' color="#2979ff" size="24">
                     </u-icon>
                     <u-divider></u-divider>
                  </view>
                  <u-divider></u-divider>
               </view>
            </view>
         </view>
         <u-gap height="20" bgColor="#eff0f1"></u-gap>
         <u-gap height="10" bgColor="#eff0f1"></u-gap>
         <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
            @click="submit" text="报工">
         </u-button>
         <!--          <u-action-sheet :actions="userGroupSheetList" :safeAreaInsetBottom='true' :closeOnClickOverlay="true"
            :closeOnClickAction="true" @close="userGroupSheetShow=false" :show="userGroupSheetShow"
            @select='userGroupSheetSelect'>
         </u-action-sheet> -->
         <!-- 生产班组 -->
         <u-picker v-if="topContent.length!==0" :show="userGroupSheetShow" :columns="userGroupColumns"
            :itemHeight='55' :closeOnClickOverlay='true' @close='userGroupSheetShow=false'
            @confirm='userGroupPickerConfirm' @cancel='userGroupSheetShow=false'>
         </u-picker>
         <!--       <u-action-sheet :actions="eqpSheetList" :safeAreaInsetBottom='true' :closeOnClickOverlay="true"
            :closeOnClickAction="true" @close="eqpSheetShow=false" :show="eqpSheetShow" @select='eqpSheetSelect'>
         </u-action-sheet> -->
         <!--  设备名称 -->
         <u-picker v-if="topContent.length!==0" :show="eqpSheetShow" :columns="eqpColumns" :itemHeight='55'
            :closeOnClickOverlay='true' @close='eqpSheetShow=false' @confirm='eqpPickerConfirm'
            @cancel='eqpSheetShow=false'>
@@ -268,43 +238,47 @@
         <!-- 不良原因 -->
         <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
            :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSheetShow=false" :show="badSheetShow"
            :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
            @select='badSheetSelect'>
            <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
            <view style="min-height: 100rpx;">
               <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
                  placement="column">
                  <view v-for="(item,index) in badSelectArr">
                     <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code" :name='item.name'
                        :label="item.name">
                     <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
                        :name='item.name' :label="item.name">
                     </u-checkbox>
                     <u-divider :key="item.code"></u-divider>
                  </view>
               </u-checkbox-group>
            </view>
         </u-action-sheet>
         <!--       <u-action-sheet :actions="operSheetList" :safeAreaInsetBottom='true' :closeOnClickOverlay="true"
            :closeOnClickAction="true" @close="operSheetShow=false" :show="operSheetShow" @select='operSheetSelect'>
         </u-action-sheet> -->
         <!--  报工人员 -->
         <u-action-sheet v-if="topContent.length!==0" :actions="userSelectArrAll" :safeAreaInsetBottom='true'
            :closeOnClickOverlay="true" :closeOnClickAction="true" @close="userSheetShow=false"
            :show="userSheetShow" @select='userSheetSelect'>
            <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
               <u-checkbox-group @change="userCheckboxChange" size='20px' v-model="userCheckBoxValue"
                  iconPlacement="right" placement="column">
                  <view v-for="(item,index) in userSelectArrAll">
                     <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
                        :name='item.name' :label="item.name">
                     </u-checkbox>
                  </view>
               </u-checkbox-group>
            </view>
         </u-action-sheet>
         <!-- 报工人员 -->
         <u-picker v-if="topContent.length!==0" :show="operSheetShow" :columns="operColumns" :itemHeight='55'
            :closeOnClickOverlay='true' @close='operSheetShow=false' @confirm='operPickerConfirm'
            @cancel='operSheetShow=false'>
         </u-picker>
         <u-modal v-if="topContent.length!==0" :show="modalShow" :showCancelButton='true' cancelText='取消'
            @close="modalShow=false" :closeOnClickOverlay="true" style=" " @cancel="modalCancel"
            @confirm="modalConfirm" title="报工人员" :content='modalContent'>
            <uni-section style="width: 100%;" title=''>
               <uni-data-select v-model="userSelectValue" :clear='false' emptyText :localdata="userSelectArr"
                  @change="userChange">
               </uni-data-select>
            </uni-section>
         </u-modal>
      </view>
@@ -317,7 +291,7 @@
      <!-- 悬浮球 -->
      <!--    <view
         v-show="topContent.length!==0&&!modalShow&&!userGroupSheetShow&&!eqpSheetShow&&!operSheetShow&&!badSheetShow"
         v-show="topContent.length!==0&&!userGroupSheetShow&&!eqpSheetShow&&!operSheetShow&&!badSheetShow"
         @click="topScanClick">
         <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
      </view> -->
@@ -334,7 +308,9 @@
      EqpPermissionsPlus,
      GroupsPermissions,
      GroupsPersonPermissions,
      DefectPermissions
      DefectPermissions,
      SavaMesOrderStepReport,
      LabelBarCode
   } from '../../config/api.js';
   // import scanCode from '@/components/scan-code/scan-code.vue'
   export default {
@@ -399,7 +375,25 @@
            ],
            reportqty: '', //报工数量
            ngqty: '', //不良数量
            ngqtyArr: [{
                  uid: new Date().getTime(),
                  ngqty: '',
                  badSheetValue: '',
                  arrowDown: true //向下箭头
               },
               // {
               //    ngqty: '',
               //    badSheetValue: '',
               //    arrowDown: true //向下箭头
               // },
            ], //不良数量、不良原因数组
            badSelectArr: [], //不良原因下拉数组
            badSheetValue: '', //不良原因选中值
            badSheetShow: false,
@@ -408,8 +402,8 @@
            operSheetShow: false,
            operSheetList: [], //操作人员数组
            userArr: [], //报工人员信息数组
            modalShow: false,
            modalContent: '', //模态框数
            userSelectValue: '', //下拉选项值
            userSelectArrAll: [], //所有人员下拉数组
            userSelectArr: [
@@ -421,7 +415,10 @@
            userGroupColumns: [], //
            eqpColumns: [], //
            operColumns: [], //
            isAsyncChange: false
            isAsyncChange: false,
            userCheckBoxValue: [],
            userSheetShow: false
         }
      },
      created() {
@@ -430,18 +427,21 @@
      mounted() {
         this.init()
         // this.getMesOrderStepStart('MO-2024-01-0004_1;102')
         this.getMesOrderStepStart('SGPO20231110_1;101')
         this.getGroupsPermissions() //获取生产班组
         this.getEqpPermissionsPlus() //获取设备名称
         this.getDefectPermissions() //获取缺陷下拉
         this.getPersonPermissions() //获取操作人员
         // this.getGroupsPersonPermissions('BZ001') //根据班组获取人员
         this.getSellectAllApi()
      },
      methods: {
         init() {
            uni.stopPullDownRefresh();
         },
         async getSellectAllApi() {
            await this.getGroupsPermissions() //获取生产班组
            await this.getEqpPermissionsPlus() //获取设备名称
            await this.getDefectPermissions() //获取缺陷下拉
            await this.getPersonPermissions() //获取操作人员
         },
         //获取生产班组
         async getGroupsPermissions(wkshopcode) {
@@ -475,7 +475,7 @@
               this.badSelectArr = res.data
            }
         },
         // 获取操作人员
         // 获取报工人员
         async getPersonPermissions() {
            const res = await PersonPermissions()
            if (res.code === '200') {
@@ -492,25 +492,38 @@
            }
         },
         // 根据生产班组获取人员
         async getGroupsPersonPermissions(usergroupcode) {
            const res = await GroupsPersonPermissions()
         async getGroupsPersonPermissions(groupcode) {
            const res = await GroupsPersonPermissions({
               groupcode
            })
            if (res.code === '200') {
               this.userArr = res.data
               this.calculatedValue()
               this.userCheckBoxValue = []
               if (res.data[0].usercode_list && res.data[0].usercode_list.length > 0) {
                  this.userSelectArrAll.forEach(i => {
                     if (res.data[0].usercode_list.split(',').includes(i.code)) {
                        this.userCheckBoxValue.push(i.name)
                     }
                  })
               }
               this.operSheetValue = this.userCheckBoxValue.join(',')
            }
         },
         // 计算分配比例的值
         calculatedValue() {
            const total = 100;
            let value = 0
            this.userArr.forEach(item => {
               item.ratio = parseFloat((100 / this.userArr.length).toFixed(2))
               value += item.ratio
            })
            if (Math.round(value * 100) / 100 !== total) {
               this.userArr[this.userArr.length - 1].ratio = parseFloat((this.userArr[this.userArr.length - 1].ratio +
                  (total - value)).toFixed(2))
            }
         userSheetSelect() {
         },
         userCheckboxChange(val) {
            this.userCheckBoxValue = val.join(',')
         },
         //获取开工信息
@@ -526,12 +539,6 @@
            if (res.code === '200' && res.count === 1) {
               this.formData = res.data
               this.topContent.unshift(res.data)
               // this.getGroupsPermissions(res.data.wkshopcode)
               // let o = res.data.wo_code + ';' + res.data.stepcode
               // this.getEqpPermissionsPlus(o)
               // this.getDefectPermissions(o)
               // this.getPersonPermissions()
            } else if (res.code === '200' && res.count !== 1) {
               this.$u.toast('此工序已报工!')
            }
@@ -566,19 +573,9 @@
            });
         },
         // 步进器值改变时
         numberBoxChange(val) {
            this.userArr.find(i => i.usercode === val.name).ratio = parseFloat(val.value).toFixed(2)
         },
         ngqtyChange(val) {
            if (!parseFloat(val)) {
               this.badSheetValue = ''
               this.checkBoxValue = ''
            }
         },
         async submit() {
            // 下午写生产报工提交
            if (this.reckway === '班组' && this.userGroupSheetValue === "") {
               return uni.$u.toast('生产班组不能为空!')
@@ -593,38 +590,11 @@
               return uni.$u.toast('报工数量不能为空!')
            }
            if (this.reckway === '班组' && this.userArr.length === 0) {
            if (this.reckway === '班组' && this.operSheetValue.length === 0) {
               return uni.$u.toast('报工人员信息不能为空!')
            }
            if (this.reckway === '班组') {
               let sum = 0
               this.userArr.forEach(item => {
                  console.log(item.ratio, 'item.ratio')
                  sum += parseFloat(item.ratio)
               })
               sum = parseFloat(sum)
               console.log(sum, 'sum44')
               if (Math.round(sum * 100) / 100 !== 100) {
                  return uni.$u.toast('分配比例总和必须为100!')
               }
            }
            const header = {
               // 'Content-Type': 'multipart/form-data',
               'Content-Type': 'application/x-www-form-urlencoded',
               'rediskey': uni.getStorageSync('rediskey'),
               'admin': uni.getStorageSync('usercode'),
               'username': encodeURIComponent(uni.getStorageSync('username')),
               'navTabId': uni.getStorageSync('usercode'),
               'userid': uni.getStorageSync('userid'),
               'guid': uni.getStorageSync('guid'),
               'usertype': 'APP'
            }
            let badcode = []
            if (this.badSheetValue.length > 0) {
               this.badSelectArr.forEach(i => {
@@ -634,92 +604,128 @@
               })
            }
            if (this.ngqty !== '') {
               if (badcode.length === 0) {
                  return uni.$u.toast('不良原因未选择!')
            let reportuser = []
            if (this.operSheetValue.length > 0) {
               this.userSelectArrAll.forEach(i => {
                  if (this.operSheetValue.split(',').includes(i.name)) {
                     reportuser.push(i.code)
                  }
               })
            }
            // 不良原因
            const defectlist = []
            //不良数量
            let ngqtyNumber = 0
            this.ngqtyArr.forEach(i => {
               if (i.badSheetValue.toString().length > 0) {
                  let codeArr = []
                  ngqtyNumber += parseFloat(i.ngqty)
                  i.badSheetValue.split(',').forEach(j => {
                     codeArr.push(this.badSelectArr.find(i => i.name === j).code)
                  })
                  defectlist.push({
                     badqty: i.ngqty,
                     defect_code: codeArr.join(',')
                  })
               }
            })
            if (parseFloat(this.reportqty) + parseFloat(ngqtyNumber) > parseFloat(this.topContent[0]
                  .noreportqty)) {
               return uni.$u.toast('报工数量加不良数量不能大于未报数量!')
            }
            let reportuser = ''
            // if (this.$company === 'A') {
            //    reportuser = this.reckway === '班组' ? JSON.stringify(this.userArr) : JSON.stringify([{
            //       usercode: this.operSheetValue,
            //       ratio: 100
            //    }])
            // } else {
            reportuser = this.userArr.map(i => i.usercode).join(';') //报工人员
            // }
            const D = {
               rightcode: '0601',
               partcode: this.topContent[0].partnumber,
               qty: parseFloat(this.reportqty),
               onelabqty: parseFloat(this.reportqty)
            }
            const {
               data: R
            } = await LabelBarCode(D)
            const data = {
               admin: uni.getStorageSync('usercode'),
               mesordercode: this.formData.wo_code, // 工单编号
               partcode: this.formData.partnumber, // 产品编码
               stepseq: this.formData.seq, // 工序序号
               stepcode: this.formData.stepcode, // 工序编码
               eqpcode: this.eqpSheetList.find(i => i.name === this.eqpSheetValue).code, // 设备编码
               taskqty: this.formData.planqty, // 任务数量
               startqty: this.formData.reportqty, // 开工数量
               mesordercode: this.topContent[0].wo_code,
               partcode: this.topContent[0].partnumber,
               stepseq: this.topContent[0].seq,
               stepcode: this.topContent[0].stepcode,
               stepprice: this.topContent[0].stepprice,
               eqpcode: this.eqpSheetList.find(i => i.name === this.eqpSheetValue).code,
               reckway: this.reckway === '班组' ? 'group' : 'person',
               usergroupcode: this.userGroupSheetValue ? this.userGroupSheetList.find(i => i.name === this
                  .userGroupSheetValue).code : '', // 班组编码
               reportqty: parseFloat(this.reportqty), // 报工数量
               // reportuser: this.userArr.map(i => i.usercode).join(';'), //报工人员
               reportuser,
               //报工人员
               remarks: '', // 备注
               reckway: this.reckway === '班组' ? 'group' : 'person', //
               ngqty: this.ngqty === '' ? 0 : this.ngqty, //不良数量
               badcode: badcode.join(';'), //不良原因
               inbarcode: '', //扫码入库
               reportuser: this.reckway === '班组' ? reportuser.join(',') : this.userSelectArrAll.find(i => i
                  .name === this.operSheetValue).code,
               taskqty: this.topContent[0].planqty,
               startqty: parseFloat(this.reportqty),
               reportqty: parseFloat(this.reportqty),
               inbarcode: R[0].labcode, //入库条码
               defectlist,
               // defectlist: badcode.length > 0 ? [{
               //    defect_code: badcode.join(','),
               //    badqty: this.ngqty
               // }] : [],
               remarks: ''
            }
            console.log(data, 7777)
            // console.log(JSON.parse(JSON.stringify(data)), 7777)
            this.isDisabledSubmitButton = true
            uni.uploadFile({
               url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepReport',
               files: [{
                  "uri": "/"
               }],
               header: header,
               formData: data,
               success: (res) => {
                  uni.$u.toast('报工成功!')
                  this.topContent = []
                  this.formData = {}
                  this.reportqty = ''
                  this.ngqty = ''
                  this.reckway = '个人'
                  this.userGroupSheetValue = ''
                  this.eqpSheetValue = ''
                  this.userGroupSheetList = []
                  this.eqpSheetList = []
                  this.badSelectArr = []
                  this.badSheetValue = []
                  this.checkBoxValue = []
                  this.operSheetValue = ''
                  this.operSheetList = []
                  this.userArr = []
                  this.userSelectValue = ''
                  this.userSelectArrAll = []
                  this.userSelectArr = []
                  this.userGroupColumns = []
                  this.eqpColumns = []
                  this.operColumns = []
            const res = await SavaMesOrderStepReport(data)
            if (res.code === '200') {
               uni.$u.toast('报工成功!')
               this.topContent = []
               this.formData = {}
               this.reportqty = ''
               // this.ngqty = ''
               this.reckway = '个人'
               this.userGroupSheetValue = ''
               this.eqpSheetValue = ''
                  this.isDisabledSubmitButton = false
               },
               fail(res) {
                  uni.$u.toast('报工失败!')
                  this.isDisabledSubmitButton = false
               },
            })
               this.ngqtyArr = [{
                  uid: new Date().getTime(),
                  ngqty: '',
                  badSheetValue: '',
                  arrowDown: true //向下箭头
               }]
               // this.userGroupSheetList = []
               // this.eqpSheetList = []
               // this.badSelectArr = []
               this.badSheetValue = []
               this.checkBoxValue = []
               this.operSheetValue = ''
               // this.operSheetList = []
               // this.userArr = []
               this.userSelectValue = ''
               // this.userSelectArrAll = []
               // this.userSelectArr = []
               // this.userGroupColumns = []
               // this.eqpColumns = []
               // this.operColumns = []
               this.userCheckBoxValue = []
               this.userSheetShow = false
               this.isDisabledSubmitButton = false
            }
         },
         userGroupSheetSelect(val) {
@@ -739,61 +745,68 @@
         badSheetSelect(val) {
            // console.log(val,9999999)
         },
         badSheetClick() {
            if (!this.ngqty) {
         badSheetClick(item) {
            if (!item.ngqty) {
               return uni.$u.toast('请先填写不良数量!')
            }
            item.arrowDown = !item.arrowDown
            this.checkBoxValue = item.badSheetValue.split(',')
            this.badSheetShow = true
         },
         badSelectClose() {
            let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
            this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
            this.ngqtyArr[index].arrowDown = true
            this.checkBoxValue = []
            this.badSheetShow = false
         },
         checkboxChange(val) {
            this.badSheetValue = val.join(',')
            console.log(this.badSheetValue, 5);
         },
         operSheetClick() {
            this.operSheetShow = true
            if (this.reckway === '个人') {
               this.operSheetShow = true
            }
            if (this.reckway === '班组') {
               this.userSheetShow = true
            }
         },
         operSheetSelect(val) {
            this.operSheetValue = val.name
            this.operSheetShow = false
         //单选框值改变时
         radioGroupChange(val) {
            this.userGroupSheetValue = ''
            this.operSheetValue = ''
         },
         // 添加人员按钮
         addUser() {
            this.userSelectArr = []
            this.userSelectArrAll.forEach(i => {
               if (!this.userArr.map(j => j.usercode).includes(i.code)) {
                  this.userSelectArr.push({
                     value: i.code,
                     text: i.name
                  })
               }
         // 添加
         add() {
            if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
               return uni.$u.toast('请先完善前面不良选项!')
            }
            this.ngqtyArr.unshift({
               uid: new Date().getTime(),
               ngqty: '',
               badSheetValue: '',
               arrowDown: true //向下箭头
            })
            this.modalShow = true
         },
         // 删除人员按钮
         deleteUser(item) {
            this.userArr = this.userArr.filter(i => i.usercode !== item.usercode)
            this.calculatedValue()
         //删除
         trashDelete(index) {
            console.log(index)
            this.ngqtyArr.splice(index, 1)
         },
         // 模态框取消按钮
         modalCancel() {
            this.modalShow = false
            this.userSelectValue = ''
         },
         // 模态框确认按钮
         modalConfirm() {
            if (this.userSelectValue) {
               this.userArr.unshift({
                  usercode: this.userSelectValue,
                  username: this.userSelectArrAll.find(i => i.code === this.userSelectValue).name
               })
               this.userSelectValue = ''
            } else {
               uni.$u.toast('请选择报工人员!')
            }
            this.modalShow = false
            this.calculatedValue()
         },
         userChange(val) {
            this.userSelectValue = val
         },
@@ -868,15 +881,29 @@
      overflow: auto !important;
   }
   ::v-deep .u-number-box__minus {
      height: 50rpx !important;
   ::v-deep .u-checkbox-label--right {
      padding: 30rpx;
      border-bottom: 1rpx solid #eee;
   }
   ::v-deep .u-number-box__input {
      height: 50rpx !important;
   .badSheetClass {
      position: relative;
   }
   ::v-deep .u-number-box__plus {
      height: 50rpx !important;
   .badNumber {
      position: absolute;
      top: 20rpx;
      left: 20rpx;
      font-size: 26rpx;
      color: rgb(0, 102, 255)
   }
   .trash {
      position: absolute;
      top: 20rpx;
      right: 30rpx;
      font-size: 26rpx;
   }
</style>