From e2ca4d610effef400b3c1da9899c91e14f3cacec Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 15 十一月 2023 10:46:53 +0800
Subject: [PATCH] 1.委外收料 100%
---
pages/wwgl/wxsl.vue | 604 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 603 insertions(+), 1 deletions(-)
diff --git a/pages/wwgl/wxsl.vue b/pages/wwgl/wxsl.vue
index 02409e3..9767f3b 100644
--- a/pages/wwgl/wxsl.vue
+++ b/pages/wwgl/wxsl.vue
@@ -1,8 +1,610 @@
<template>
+ <view>
+ <page-nav title="濮斿鏀舵枡"></page-nav>
+
+
+ <view v-show="topContent.length===0">
+ <div class="sacnBody">
+ <div class="scanImg" @click="topScanClick"></div>
+ <div class="scanText">鎵弿浠诲姟鏉$爜</div>
+ </div>
+ </view>
+
+ <view v-show="topContent.length!==0" class="mainContent">
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鏀舵枡淇℃伅
+ </view>
+ </view>
+ </view>
+
+ <view class="marginLeft20 marginRight20" style="height: 410rpx;" v-if="topContent.length!==0">
+ <view class="marginBottom20" style="display: flex;">
+ <!-- v-for="item in purchorderArr" -->
+ <view class="flex_column titleFont">
+ <view>宸ュ崟缂栧彿锛�</view>
+ <view>浜у搧缂栫爜锛�</view>
+ <view>浜у搧鍚嶇О锛�</view>
+ <view>浜у搧瑙勬牸锛�</view>
+ <view>褰撳墠宸ュ簭锛�</view>
+ <view>浠诲姟鏁伴噺锛�</view>
+ <view>鏈敹/宸叉敹锛�</view>
+ <view>涓嬮亾宸ュ簭锛�</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{topContent[0].wo_code}}</view>
+ <view>{{topContent[0].partnumber}}</view>
+ <view>{{topContent[0].partname}}</view>
+ <view>{{topContent[0].partspec?topContent[0].partspec:'/'}}</view>
+ <view>{{topContent[0].stepname}}</view>
+ <view>{{topContent[0].planqty}}</view>
+ <view>{{topContent[0].startqty+'/'+topContent[0].reportqty}}</view>
+ <view>{{topContent[0].nextstepname?topContent[0].nextstepname:'/'}}</view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鏀舵枡鎿嶄綔
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_column">
+
+ <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>
+ <view style="margin-left: 20rpx;">
+ <view @click='WXSheetClick' class="custominputClass">
+ <view v-show='WXSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='WXSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{WXSheetValue}}
+ </view>
+ <u-icon :name="!WXSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+ </view>
+
+ <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>
+ <view style="margin-left: 20rpx;">
+ <view @click='userSheetClick' class="custominputClass">
+ <view v-show='userSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='userSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{userSheetValue}}
+ </view>
+ <u-icon :name="!userSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+ </view>
+
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鏀舵枡鏁伴噺
+ <view style="margin-left: 20rpx;">
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" type='number' v-model="sqty">
+ </u--input>
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺
+ <view style="margin-left: 20rpx;">
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" @change='ngqtyChange' type='number'
+ v-model="ngqty">
+ </u--input>
+ </view>
+ </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 style="margin-left: 20rpx;">
+ <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>
+
+
+ <!-- <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 style="margin-left: 20rpx;">
+ <view class='inputClass'>
+ <u--textarea v-model="notes" placeholder="璇疯緭鍏�"></u--textarea>
+ </view>
+ </view>
+ </view> -->
+
+
+ </view>
+
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head" v-if="topContent.length!==0">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鍙敹鏂欎緵搴斿晢
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_column marginLeft20 marginRight20 marginBottom20 titleFont">
+ <view v-for='(i,index) in topContent[0].list'
+ v-if="parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)>0"
+ style="display: flex;">
+ <view>{{index+1}}</view>
+ <view class="ellipsis" style="width: 400rpx;margin: 0 30rpx;">{{i.tp}}</view>
+ <view>
+ {{ parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)}}
+ </view>
+ <!-- <view>浠�</view> -->
+ </view>
+
+ </view>
+
+ </view>
+
+
+ </view>
+
+
+ <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
+ :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSheetShow=false" :show="badSheetShow"
+ @select='badSheetSelect'>
+ <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
+ <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+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-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='WXSheetShow=false' @confirm='WXPickerConfirm'
+ @cancel='WXSheetShow=false'>
+ </u-picker>
+
+
+ <u-picker v-if="topContent.length!==0" :show="userSheetShow" :columns="userColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
+ @cancel='userSheetShow=false'>
+ </u-picker>
+
+
+ </view>
+
+ <u-button size="large" v-show="topContent.length!==0" :loading="isDisabledSubmitButton"
+ loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="鏀舵枡">
+ </u-button>
+
+
+ <!-- 鎮诞鐞� -->
+ <!-- <view v-show="topContent.length!==0&&!WXSheetShow&&!userSheetShow&&!badSheetShow" @click="topScanClick">
+ <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+ </view> -->
+
+ <!-- <scan-code></scan-code> -->
+
+
+ </view>
</template>
+
<script>
+ import {
+ MesOrderStepStart,
+ CustomerPermissions,
+ PersonPermissions,
+ DefectPermissions,
+ SavaMesOrderStepIn,
+ LabelBarCode
+ } from '../../config/api.js';
+ // import scanCode from '@/components/scan-code/scan-code.vue'
+
+ export default {
+ onLoad(option) {
+
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ topRightMessageCount: '',
+
+ isDisabledSubmitButton: false,
+
+ topContent: [],
+ // {
+ // "wo_code": "MO-2023-06-0003_1",
+ // "partnumber": "308",
+ // "partname": "鐢垫睜鍖�",
+ // "partspec": "",
+ // "seq": "2",
+ // "stepcode": "ZSStep03",
+ // "stepname": "鍘绘瘺鍒�",
+ // "nextstepcode": "ZSStep06",
+ // "nextstepname": "鍖呰2",
+ // "stepdesc": "",
+ // "wkshopcode": "ZS001",
+ // "wkshopname": "娉ㄥ杞﹂棿",
+ // "planqty": 50.00,
+ // "startqty": 29.00,
+ // "noreportqty": 29.00,
+ // "reportqty": 21.00,
+ // "noputqty": 0.0,
+ // "list": null
+ // }, //鎵弿浠诲姟鏉$爜鎵�甯﹀嚭鏉ョ殑鍐呭
+
+ WXSheetValue: '',
+ WXSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ WXColumns: [],
+ WXSheetList: [],
+
+
+ userSheetValue: '',
+ userSheetShow: false,
+ userColumns: [],
+ userSheetList: [],
+
+ sqty: null,
+ ngqty: null,
+
+
+ badSelectArr: [],
+ checkBoxValue: '',
+ badSheetShow: false,
+ badSheetValue: '',
+
+
+ notes: null //澶囨敞
+
+
+
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+
+ // this.getMesOrderStepStart('MO-2023-07-0015_1;103')
+
+
+ this.handleSelectAllApi()
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ async handleSelectAllApi() {
+ await this.getCustomerPermissions()
+ await this.getPersonPermissions()
+ await this.getDefectPermissions()
+ },
+
+ async getPersonPermissions(val) {
+ const data = {
+ usercode: val
+ }
+ const res = await PersonPermissions(this.global.formatData(data))
+ this.userSheetList = res.data
+ this.userColumns = [res.data.map(i => i.username)]
+ },
+
+ async getCustomerPermissions(val) {
+ const data = {
+ orderstepqrcode: val
+ }
+ const res = await CustomerPermissions(this.global.formatData(data))
+ this.WXSheetList = res.data
+ this.WXColumns = [res.data.map(i => i.name)]
+ },
+ // 鑾峰彇涓嶈壇鍘熷洜
+ async getDefectPermissions() {
+ const res = await DefectPermissions()
+ if (res.code === '200') {
+ this.badSelectArr = res.data
+ }
+ },
+
+
+ async getMesOrderStepStart(val) {
+ const data = {
+ OperType: 'WX',
+ SelectType: 'IN',
+ wocode: val ? val.split(';')[0] : '',
+ stepcode: val ? val.split(';')[1] : ''
+ }
+
+ const res = await MesOrderStepStart(this.global.formatData(data))
+ console.log(res, 3)
+
+ if (res.code === '200') {
+ // this.getCustomerPermissions(val)
+ // this.getMesOrderSelectUser(val)
+ // this.getDefectPermissions(val)
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.checkBoxValue = ''
+ this.badSheetValue = ''
+ this.sqty = null
+ this.ngqty = null
+ this.notes = null
+ this.topContent = []
+ this.topContent.push(res.data)
+ }
+ // console.log(this.topContent,6)
+
+ },
+
+ // 浠诲姟鏉$爜 鐨勬壂鐮佹鐐瑰嚮
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+
+ that.getMesOrderStepStart(res.result)
+
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+ badSheetClick() {
+ if (!this.ngqty) {
+ return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
+ }
+ this.badSheetShow = true
+ },
+
+ badSheetSelect(val) {
+ console.log('鎵ц浜嗭紒')
+ },
+ checkboxChange(val) {
+ this.badSheetValue = val.join(',')
+ },
+
+
+ WXSheetClick() {
+ this.WXSheetShow = true
+ },
+
+ WXPickerConfirm(val) {
+ this.WXSheetValue = val.value[0]
+ this.WXSheetShow = false
+ },
+
+ userSheetClick() {
+ this.userSheetShow = true
+ },
+
+ userPickerConfirm(val) {
+ this.userSheetValue = val.value[0]
+ this.userSheetShow = false
+ },
+
+ ngqtyChange(val) {
+ if (!parseFloat(val)) {
+ this.badSheetValue = ''
+ this.checkBoxValue = ''
+ }
+ },
+
+
+ async submit() {
+
+ if (!this.WXSheetValue) {
+ return uni.$u.toast('澶栧崗渚涙柟涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.userSheetValue) {
+ return uni.$u.toast('鏀舵枡浜哄憳涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.sqty) {
+ return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘涓虹┖锛�')
+ }
+
+ let t = this.topContent[0].list.find(i => i.tp === this.WXSheetValue)
+
+ if (!this.ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) - parseFloat(t
+ .ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
+ return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
+ }
+ if (this.ngqty && (parseFloat(this.sqty) + parseFloat(this.ngqty) > parseFloat(t.fqty) - parseFloat(t
+ .sqty) - parseFloat(t.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
+ return uni.$u.toast('鏀舵枡鏁伴噺+涓嶈壇鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
+ }
+
+ if (this.ngqty && !this.badSheetValue) {
+ return uni.$u.toast('涓嶈壇鍘熷洜涓嶈兘涓虹┖锛�')
+ }
+
+ let badcode = []
+
+ if (this.badSheetValue.length > 0) {
+ this.badSelectArr.forEach(i => {
+ if (this.badSheetValue.split(',').includes(i.name)) {
+ badcode.push(i.code)
+ }
+ })
+ }
+
+ // const header = {
+ // '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'
+ // }
+
+
+ const D = {
+ rightcode: '0601',
+ partcode: this.topContent[0].partnumber,
+ qty: parseFloat(this.sqty),
+ onelabqty: parseFloat(this.sqty)
+ }
+ const {
+ data: R
+ } = await LabelBarCode(D)
+
+
+ const data = {
+ mesordercode: this.topContent[0].wo_code, // 宸ュ崟缂栧彿
+ partcode: this.topContent[0].partnumber, // 浜у搧缂栫爜
+ stepseq: this.topContent[0].seq, // 宸ュ簭搴忓彿
+ stepcode: this.topContent[0].stepcode, // 宸ュ簭缂栫爜
+ wxcode: this.WXSheetList.find(i => i.name === this.WXSheetValue).code, // 澶栧崗渚涘簲鍟嗙紪鐮�
+ inuser: this.userSheetList.find(i => i.username === this.userSheetValue).usercode, // 鍙戞枡浜哄憳
+ taskqty: this.topContent[0].planqty, // 浠诲姟鏁伴噺
+ sqty: this.sqty, // 鏀舵枡鏁伴噺
+ // ngqty: !this.ngqty ? 0 : this.ngqty,
+ remarks: this.notes,
+ defectlist: badcode.length > 0 ? [{
+ defect_code: badcode.join(','),
+ badqty: this.ngqty
+ }] : [],
+ inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
+ }
+
+ console.log(JSON.parse(JSON.stringify(data)), 6)
+
+ this.isDisabledSubmitButton = true
+ const res = await SavaMesOrderStepIn(data)
+
+ if (res.code === '200') {
+ uni.$u.toast('鏀舵枡鎴愬姛锛�')
+
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.checkBoxValue = ''
+ this.badSheetValue = ''
+ this.sqty = null
+ this.ngqty = null
+ this.notes = null
+ this.topContent = []
+
+ this.isDisabledSubmitButton = false
+ }
+
+
+
+ // this.isDisabledSubmitButton = true
+ // uni.uploadFile({
+ // url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepIn',
+ // files: [{
+ // "uri": "/"
+ // }],
+ // header: header,
+ // formData: data,
+ // success: (res) => {
+ // console.log(res, 77)
+ // uni.$u.toast('鏀舵枡鎴愬姛锛�')
+
+ // this.WXSheetValue = ''
+ // this.userSheetValue = ''
+ // this.checkBoxValue = ''
+ // this.badSheetValue = ''
+ // this.sqty = null
+ // this.ngqty = null
+ // this.notes = null
+ // this.topContent = []
+
+ // this.isDisabledSubmitButton = false
+ // },
+ // fail(res) {
+ // uni.$u.toast('鏀舵枡澶辫触锛�')
+ // this.isDisabledSubmitButton = false
+ // },
+ // })
+
+
+
+ }
+ }
+ }
</script>
-<style>
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ .custominputClass {
+ width: 412rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 16rpx;
+ line-height: 68rpx;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3