From 8081e115c0d8ffd0dd572e02a4dfa28818ad2d5a Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期一, 12 五月 2025 17:09:40 +0800
Subject: [PATCH] 1.采购入库实现35%
---
config/api.js | 16
pages/wlgl/cgrk3.vue | 483 ++++++++++++++++
pages/login/index.vue | 6
pages/wlgl/cgrk2.vue | 163 +++++
pages/wlgl/cgrk4.vue | 460 +++++++++++++++
pages.json | 7
pages/zlgl/rcjy.vue | 4
.hbuilderx/launch.json | 2
pages/wlgl/cgrk.vue | 89 +++
pages/wlgl/cgrk4_back.vue | 460 +++++++++++++++
10 files changed, 1,683 insertions(+), 7 deletions(-)
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
index f2d09b0..39bb1f7 100644
--- a/.hbuilderx/launch.json
+++ b/.hbuilderx/launch.json
@@ -2,7 +2,7 @@
"version" : "1.0",
"configurations" : [
{
- "playground" : "standard",
+ "playground" : "custom",
"type" : "uni-app:app-android"
},
{
diff --git a/config/api.js b/config/api.js
index 1a7486c..c65879d 100644
--- a/config/api.js
+++ b/config/api.js
@@ -383,4 +383,18 @@
//鍏ュ巶妫�楠�,鏍规嵁閫夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
export const InFactoryCheckItem = (data, config = {}) => http.get(
'/AppQualityManagement/InFactoryCheckItem' +
- data, config)
\ No newline at end of file
+ data, config)
+
+
+//浠撲綅鏌ヨ浠撳簱
+export const WarehouseLocationSearchStoreHouse = (data, config = {}) => http.get(
+ '/GeneralBasicData/WarehouseLocationSearchStoreHouse', {
+ params: data
+ })
+
+
+
+
+//閲囪喘鍏ュ簱鎻愪氦
+export const MesAppPurchInStorSave = (data1, data2, config = {}) => http.post(
+ '/AppPurchManagement/MesAppPurchInStorSave' + data1, data2, config)
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 0dd6ebc..511f117 100644
--- a/pages.json
+++ b/pages.json
@@ -404,6 +404,13 @@
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
+ }, {
+ "path": "pages/wlgl/cgrk4",
+ "style": {
+ "navigationBarTitleText": "閲囪喘鍏ュ簱",
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
},
{
"path": "pages/wlgl/cgdh",
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 65e4952..ccca08a 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -74,14 +74,14 @@
data() {
return {
// #ifdef H5
- usercode: '',
+ usercode: '001',
// #endif
// #ifdef APP-PLUS
- usercode: '',
+ usercode: '999',
// #endif
- userpassword: '',
+ userpassword: '123',
isView: false, //瀵嗙爜鏄惁鍙
isDisabledSubmitButton: false, //鎻愪氦鎸夐挳鏄惁澶勪簬鍔犺浇涓�
diff --git a/pages/wlgl/cgrk.vue b/pages/wlgl/cgrk.vue
index e69de29..f083e65 100644
--- a/pages/wlgl/cgrk.vue
+++ b/pages/wlgl/cgrk.vue
@@ -0,0 +1,89 @@
+<template>
+ <view>
+ <page-nav title="閲囪喘鍏ュ簱1"></page-nav>
+ <view class="body" style="flex-direction: column;">
+ <u-button type="primary" icon='plus-circle' size='large' style="width: 96%;margin-left: 2%;margin-top: 70%;"
+ :plain="true" :hairline="true" @click="navigateTo" text="閫夋嫨閲囪喘璁㈠崟"></u-button>
+
+ <u-button type="primary" icon='scan' size='large' style="width: 96%;margin-left: 2%;margin-top: 4%;"
+ :plain="true" :hairline="true" @click="navigateTo2" text="鎵弿鍒拌揣鏍囩"></u-button>
+ </view>
+ </view>
+</template>
+
+
+<script>
+ // import {
+
+
+ // } from '../../config/api.js';
+ const App = getApp()
+ export default {
+ onLoad(option) {
+
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+
+
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+ },
+ methods: {
+ navigateTo() {
+ uni.navigateTo({
+ url: './cgrk2' //閫夋嫨閲囪喘璁㈠崟
+ });
+ },
+ navigateTo2() {
+ uni.navigateTo({
+ url: './cgrk3' //鎵弿鍒拌揣鏍囩
+ });
+ },
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ .body {
+ background-color: #f6f7fb !important;
+ width: 100%;
+ height: 1400rpx;
+ display: flex;
+ align-items: center;
+ }
+
+
+ .u-button--large {
+ position: relative;
+ }
+
+ ::v-deep .uicon-plus-circle {
+ font-size: 32rpx !important;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk2.vue b/pages/wlgl/cgrk2.vue
index e69de29..63e059a 100644
--- a/pages/wlgl/cgrk2.vue
+++ b/pages/wlgl/cgrk2.vue
@@ -0,0 +1,163 @@
+<template>
+ <view>
+ <page-nav title="閲囪喘鍏ュ簱2"></page-nav>
+
+
+ <view v-if="purchorderArrAll.length===0">
+ <div class="sacnBody">
+ <div class="boxImg"></div>
+ <div class="scanText">鏆傛棤閲囪喘鍒拌揣</div>
+ </div>
+ </view>
+
+
+ <view v-if="purchorderArrAll.length>0">
+ <!-- <view class="mainContent" :style="{maxHeight: '1340rpx',overflow: 'scroll',padding:0}"> -->
+ <u--input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" placeholder="杈撳叆閲囪喘璁㈠崟鍙�"
+ clearable border="surround" @clear='inputBoxValueClear' v-model="inputBoxValue"
+ @change="changeInputBoxValue"></u--input>
+
+ <u-alert :title="'閲囪喘璁㈠崟鏁帮紙鍏�'+title+'涓級'" type="primary"></u-alert>
+
+ <u-radio-group v-model="radioValue" iconPlacement="right" @change="radioValueClick" class="radioGroupClass">
+ <view v-for="(item,index) in purchorderArr" :key="item.ordercode">
+ <!-- @click="radioValueClick(item.code)" -->
+ <view>
+ <u-radio activeColor="red" size="18" labelSize='18' :name='item.ordercode'
+ :label="item.ordercode"></u-radio>
+ </view>
+ <u-line v-if="index!==purchorderArr.length-1" color="#2979ff"></u-line>
+ </view>
+ </u-radio-group>
+
+ <view class="footer" style="min-height:62rpx;">
+ <u-button type="primary" size='large' :hairline="true" @click="navigateTo" text="涓嬩竴姝�"></u-button>
+ </view>
+ <!-- </view> -->
+ </view>
+
+
+ <view v-if="purchorderArrAll.length===0">
+ <div class="sacnBody">
+ <div class="boxImg"></div>
+ <div class="scanText">鏆傛棤閲囪喘鍒拌揣</div>
+ </div>
+ </view>
+
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesAppPurchInStorSelectCGOrder
+ } from '../../config/api.js';
+ const App = getApp()
+ export default {
+ onLoad(option) {},
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+
+ inputBoxValue: '', //杈撳叆妗嗗��
+
+ title: 0,
+
+
+ radioValue: '',
+
+ purchorderArr: [],
+
+ purchorderArrAll: []
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+ this.getMesAppPurchOrderSearch()
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ changeInputBoxValue(val) {
+ this.purchorderArr = this.purchorderArrAll.filter((p) => {
+ return p.ordercode.indexOf(val) !== -1
+ })
+ },
+ inputBoxValueClear() {
+ this.inputBoxValue = ''
+ },
+ radioValueClick(val) {
+ console.log(val)
+ this.radioValue = val
+ },
+ navigateTo() {
+ uni.navigateTo({
+ url: './cgrk4?ordercode=' + this.radioValue
+ });
+ },
+ async getMesAppPurchOrderSearch() {
+ const res = await MesAppPurchInStorSelectCGOrder()
+
+ this.purchorderArrAll = res.data
+
+ this.purchorderArr = res.data
+
+ this.title = res.data.length
+
+ this.radioValue = res.data[0].ordercode
+
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ .u-input--square {
+ margin: 20rpx 10rpx;
+ border-radius: 40rpx;
+ background-color: #fff;
+ border: 1px solid #c8c8c8;
+ }
+
+ ::v-deep .u-alert__text--primary--light {
+ margin-bottom: 0;
+ font-size: 32rpx !important;
+ }
+
+ .radioGroupClass {
+ display: flex;
+ flex-direction: column;
+ background-color: #fff;
+
+ overflow-y: auto;
+ max-height: 1140rpx;
+ margin-top: 20rpx;
+ }
+
+ ::v-deep .u-radio-label--right {
+ height: 90rpx;
+ line-height: 90rpx;
+ width: 92%;
+ margin-left: 4%;
+ // padding: 0 50rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk3.vue b/pages/wlgl/cgrk3.vue
index e69de29..eb6da76 100644
--- a/pages/wlgl/cgrk3.vue
+++ b/pages/wlgl/cgrk3.vue
@@ -0,0 +1,483 @@
+<template>
+ <view>
+ <page-nav title="閲囪喘鍏ュ簱3"></page-nav>
+
+
+
+ <view v-if="purchorderArr.length===0">
+ <div class="sacnBody">
+ <div class="scanImg" @click="topScanClick"></div>
+ <div class="scanText">鎵弿鐗╂枡鏍囩</div>
+ </div>
+ </view>
+
+ <view v-if='purchorderArr.length!==0' class="mainContent" style="">
+ <view>
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+
+ <view style="max-height: 940rpx;overflow: auto;">
+
+ <view class="head" style="position: relative;">
+
+ <u-radio-group v-model="radioValue" class="flex_column">
+ <view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.hbarcode)"
+ v-for="(item,index) in purchorderDetailArr" :key="item.hbarcode">
+
+
+ <view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 鏍囩淇℃伅
+ </view>
+ </view>
+ </view>
+
+
+ <view class="orderNumber" :key="item.hbarcode">
+ {{(index+1).toString().padStart(2,0)}}
+ </view>
+
+ <view class="trash" v-show="purchorderDetailArr.length>1"
+ @click="trashClick(index)">
+ <u-icon name="trash" size='20'></u-icon>
+ </view>
+
+ <view v-show="purchorderDetailArr.length===1" style="width: 48rpx;height: 48rpx;">
+ </view>
+
+
+
+ <view class="flex_between marginBottom20 marginLeft20 marginTop20">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>鐗╂枡鏍囩锛�</view>
+ <view>鏍囩鏁伴噺锛�</view>
+ <view>渚涙柟淇℃伅锛�</view>
+ <view>閲囪喘鎵规锛�</view>
+ <view>璐ㄩ噺鐘舵�侊細</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{item.hbarcode}}</view>
+ <view>{{item.hqty}}</view>
+ <view class="ellipsis" style="width: 460rpx;">{{item.hcustomername}}
+ </view>
+ <view>{{item.hbatchno}}</view>
+ <!-- <view>{{item.qualitystatus?item.qualitystatus:'/'}}</view> -->
+ <view v-if="item.qualitystatus===null">/</view>
+ <view v-else style="display: flex;align-items: center;">
+ <!-- <u-icon
+ :name="item.qualitystatus==='OK'?'checkmark-circle-fill':'close-circle-fill'"
+ :color="item.qualitystatus==='OK'?'#55ff00':'#FF0000'"
+ size="40"></u-icon>
+ <view style="margin-left: 10rpx;">
+ {{item.qualitystatus==='OK'?'鍚堟牸':'涓嶅悎鏍�'}}
+ </view> -->
+
+ <u-icon name="more-circle-fill" color="#55aaff" size="20"></u-icon>
+ <view style="margin-left: 10rpx;">
+ 寰呮
+ </view>
+
+ </view>
+ </view>
+ </view>
+ <u-radio size='20' class="marginRight20" :key="item.hbarcode"
+ :name="item.hbarcode" activeColor="red"></u-radio>
+ </view>
+
+ <u-gap height="10" v-if="index!==purchorderDetailArr.length-1"
+ bgColor="#eff0f1"></u-gap>
+
+ </view>
+ </u-radio-group>
+ </view>
+
+ </view>
+
+ </view>
+ </view>
+ </view>
+
+ <!-- <view v-if='purchorderArr.length!==0' class="footer">
+ <view class="head_block" style="align-items: center;padding: 0 23rpx;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 閫夋嫨璐ㄦ鏂规
+ </view>
+ </view>
+
+ <view class="flex_center" style="margin-right: 20rpx;">
+ <view @click='sheetClick' class="custominputClass">
+
+ <view v-show='sheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='sheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{sheetValue}}
+ </view>
+
+ <u-icon :name="!sheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+ </view>
+ </view> -->
+
+ <u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+ @close='sheetShow=false' @confirm='pickerConfirm' @cancel='sheetShow=false'></u-picker>
+
+
+ <view class="footer">
+
+ <u-button :disabled="!sheetValue" v-if='purchorderArr.length!==0' type="primary" size='large'
+ :hairline="true" @click="navigateTo" text="涓嬩竴姝�"></u-button>
+ </view>
+
+
+ <!-- <scan-code></scan-code> -->
+
+ <!-- 鎮诞鐞� -->
+ <!-- <view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
+ <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+ </view> -->
+
+
+
+ <!-- <navigator :url="'./rcjy2?item='+ encodeURIComponent(JSON.stringify(item))"> -->
+ <!-- <navigator :url="'./rcjy2?item='+encodeURIComponent(1)">
+ </navigator>
+ -->
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesAppPurchInStorScanLabCode
+ } from '../../config/api.js';
+ // import scanCode from '@/components/scan-code/scan-code.vue'
+ const App = getApp()
+ export default {
+ // components: {
+ // scanCode
+ // },
+ onLoad(option) {
+
+ // if (option.length !== undefined) {
+ // let t1 = JSON.parse(uni.getStorageSync('purchorderArr'))
+ // let t2 = JSON.parse(uni.getStorageSync('purchorderDetailArr'))
+ // // 鏄惁鍚屾鎵规
+ // if (option.issyncbatch === 'true') { //鏄�
+ // console.log('鎵ц1')
+ // this.purchorderArr = t1.filter(i => {
+ // return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+ // option.hbatchno)
+ // })
+ // this.purchorderDetailArr = t2.filter(i => {
+ // console.log(!(i.hbillno === option.hbillno && i.partcode === option.partcode && i
+ // .hbatchno ===
+ // option.hbatchno))
+ // return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+ // option.hbatchno)
+ // })
+
+ // } else if (option.issyncbatch === 'false') { //鍚�
+ // console.log('鎵ц2')
+ // this.purchorderDetailArr = t2.filter(i => i.hbarcode !== option.labcode)
+ // this.purchorderArr = t1.filter(i => i.hbarcode !== option.labcode)
+ // }
+ // console.log('鎵ц3')
+ // this.radioValue = this.purchorderDetailArr[0].hbarcode
+ // const t = this.purchorderDetailArr.find(i => i.hbarcode === this.radioValue).hbillno
+ // this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+ // this.$forceUpdate()
+ // }
+
+
+
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+
+
+ // "hbillno": "DH2303311361", //鍗曟嵁缂栧彿
+ // "partcode": "102", //浜у搧缂栫爜
+ // "partname": "鍐呭瓨", //浜у搧鍚嶇О
+ // "partspec": "", //浜у搧瑙勬牸
+ // "hbarcode": "DH2303311360", //鐗╂枡鏍囩
+ // "stocktype_code": "1", //瀛樿揣绫诲瀷缂栫爜
+ // "hqty": 300.00, //鏍囩鏁伴噺
+ // "hcustomercode": "0010002", //渚涘簲鍟嗙紪鐮�
+ // "hcustomername": "钂傛.鍏嬭檹浼彂鍔ㄦ満绯荤粺锛堝父宸烇級鏈夐檺鍏徃", //渚涘簲鍟嗗悕绉�
+ // "hbatchno": "2", //閲囪喘鎵规
+ // "qualitystatus": null //璐ㄩ噺鐘舵��
+
+ purchorderObj: {},
+ purchorderArr: [
+ // {
+ // hbillno: 'DH2304041465',
+ // partcode: 'ZG-Y-001',
+ // partname: 'ZG鍘熸潗鏂�001',
+ // partspec: '#001'
+ // },
+ // {
+ // hbillno: 'DH2304041463',
+ // partcode: 'ZG-Y-002',
+ // partname: 'ZG鍘熸潗鏂�002',
+ // partspec: '#002'
+ // }
+ ],
+ purchorderDetailArr: [
+ // {
+ // hbillno: 'DH2304041465',
+ // hbarcode: 'DH2304041464',
+ // hqty: 100,
+ // hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+ // hbatchno: '#101',
+ // qualitystatus: 'NG'
+ // },
+ // {
+ // hbillno: 'DH2304041463',
+ // hbarcode: 'DH2304041462',
+ // hqty: 400,
+ // hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+ // hbatchno: '#101',
+ // qualitystatus: 'OK'
+ // },
+ // {
+ // hbillno: 'DH2304041463',
+ // hbarcode: 'DH2304041461',
+ // hqty: 300,
+ // hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+ // hbatchno: '#101',
+ // qualitystatus: 'NG'
+ // }, {
+ // hbillno: 'DH2304041463',
+ // hbarcode: 'DH2304041460',
+ // hqty: 200,
+ // hcustomername: 'ZG澶栬喘渚涘簲鍟�',
+ // hbatchno: '#101',
+ // qualitystatus: 'OK'
+ // },
+ ],
+ radioValue: '',
+
+ sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ sheetValue: '',
+ sheetList: [],
+ columns: []
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+
+
+ this.getMesAppPurchInStorScanLabCode('DH25050900016')
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ //鏉ヨ嚜浜庨〉闈�3鐨勫�� 杩涜鏁版嵁澶勭悊
+ fromSubmitData(option) {
+
+ let t1 = JSON.parse(uni.getStorageSync('purchorderArr'))
+ let t2 = JSON.parse(uni.getStorageSync('purchorderDetailArr'))
+ // 鏄惁鍚屾鎵规
+ if (option.issyncbatch === 'Y') { //鏄�
+ console.log('鎵ц1')
+ this.purchorderArr = t1.filter(i => {
+ return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+ option.hbatchno)
+ })
+ this.purchorderDetailArr = t2.filter(i => {
+ return !(i.hbillno === option.hbillno && i.partcode === option.partcode && i.hbatchno ===
+ option.hbatchno)
+ })
+
+ } else if (option.issyncbatch === 'N') { //鍚�
+ console.log('鎵ц2')
+ this.purchorderDetailArr = t2.filter(i => i.hbarcode !== option.labcode)
+ this.purchorderArr = t1.filter(i => i.hbarcode !== option.labcode)
+ }
+ console.log('鎵ц3')
+ if (this.purchorderDetailArr.length > 0) {
+ this.radioValue = this.purchorderDetailArr[0].hbarcode
+ const t = this.purchorderDetailArr.find(i => i.hbarcode === this.radioValue).hbillno
+ this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+ }
+
+ this.$forceUpdate()
+
+ },
+ // 鎵弿
+ 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.scanContent = res.result;
+ let flag = false
+ that.purchorderDetailArr.forEach(item => {
+ if (item.hbarcode === res.result) {
+ flag = true
+ }
+ })
+ if (flag) {
+ that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+ } else {
+ //澶勭悊鎵爜浜嬩欢
+ that.getMesAppPurchInStorScanLabCode(that.scanContent);
+ }
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+ // 鑾峰彇鏍囩淇℃伅
+ async getMesAppPurchInStorScanLabCode(labcode) {
+ const data = {
+ labcode
+ }
+ const res = await MesAppPurchInStorScanLabCode(this.global.formatData(data))
+
+ if (res.code === '200') {
+ console.log(res)
+ this.purchorderArr.unshift({
+ hbillno: res.data[0].hbillno,
+ partcode: res.data[0].partcode,
+ partname: res.data[0].partname,
+ partspec: res.data[0].partspec,
+ hbarcode: res.data[0].hbarcode,
+ hbatchno: res.data[0].hbatchno ? res.data[0].hbatchno : '/',
+ })
+
+ this.purchorderDetailArr.unshift({
+ hbillno: res.data[0].hbillno,
+ partcode: res.data[0].partcode,
+ hbarcode: res.data[0].hbarcode,
+ hqty: res.data[0].hqty,
+ hcustomername: res.data[0].hcustomername,
+ hcustomercode: res.data[0].hcustomercode,
+ hbatchno: res.data[0].hbatchno ? res.data[0].hbatchno : '/',
+ qualitystatus: res.data[0].qualitystatus,
+ })
+
+ this.purchorderObj = this.purchorderArr[0]
+
+ this.radioValue = res.data.labcont[0].hbarcode
+
+ }
+ },
+ // picker纭鎸夐挳
+ pickerConfirm(val) {
+ this.sheetValue = val.value[0]
+ this.sheetShow = false
+ },
+ // 閫夋嫨璐ㄦ鏂规
+ sheetClick(val) {
+ this.sheetShow = true
+ },
+ // 椤甸潰璺宠浆
+ navigateTo() {
+
+
+ uni.setStorageSync('purchorderArr', JSON.stringify(this.purchorderArr))
+ uni.setStorageSync('purchorderDetailArr', JSON.stringify(this.purchorderDetailArr))
+
+ // uni.navigateTo({
+ // url:'./rcjy2?purchorderObj=' + JSON.stringify(this.purchorderObj)+
+ // })
+
+
+
+ uni.navigateTo({
+ url: './rcjy2?checkstandcode=' + this.sheetList.find(i => i.name === this.sheetValue).code +
+ '&checkstandname=' + this.sheetValue + '&sampmethod=' + this.sheetList.find(i => i.name ===
+ this.sheetValue).sampmethod + '&sampscare=' + this.sheetList.find(i => i.name === this
+ .sheetValue).sampscare + '&purchorderObj=' + JSON.stringify(this
+ .purchorderObj) + '&radioSelectValue=' + JSON.stringify(this.purchorderDetailArr.find(
+ i => i.hbarcode === this.radioValue))
+
+
+ });
+ },
+ // 鍗曢�夋寜閽偣鍑讳簨浠�
+ radioValueClick(val) {
+ this.radioValue = val
+ const t = this.purchorderDetailArr.find(i => i.hbarcode === val).hbillno
+ this.purchorderObj = this.purchorderArr.find(i => i.hbillno === t)
+ },
+ // 鍒犻櫎浜嬩欢鐐瑰嚮
+ trashClick(val) {
+ this.purchorderDetailArr.splice(val, 1)
+ },
+
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+
+
+ .orderNumber {
+ width: 60rpx;
+ height: 40rpx;
+ // margin: -22rpx 0 0 -30rpx;
+ background-color: #d3daf9;
+ color: #2979FF;
+ font-size: 26rpx;
+ padding: 4rpx 0 0 10rpx;
+ border-radius: 0 0 90% 0;
+ }
+
+ .trash {
+ width: 48rpx;
+ height: 48rpx;
+ margin: -26rpx 0 0 646rpx;
+ background-color: #d3daf9;
+ font-size: 26rpx;
+ padding: 6rpx 0 0 10rpx;
+ border-radius: 100%;
+ }
+
+ .custominputClass {
+ width: 424rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 10rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk4.vue b/pages/wlgl/cgrk4.vue
new file mode 100644
index 0000000..a7f2664
--- /dev/null
+++ b/pages/wlgl/cgrk4.vue
@@ -0,0 +1,460 @@
+<template>
+ <view>
+ <page-nav title="閲囪喘鍏ュ簱4"></page-nav>
+
+ <view v-if='purchorderArr.length!==0' class="mainContent" style="">
+ <view>
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <!-- max-height: 1340rpx;overflow: auto; -->
+ <view style="">
+
+ <view class="head" style="position: relative;">
+
+ <u-radio-group v-model="radioValue" class="flex_column">
+ <view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.sbid)"
+ v-for="(item,index) in purchorderArr" :key="item.sbid">
+
+ <view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 鐗╂枡淇℃伅
+ </view>
+ </view>
+ </view>
+
+
+ <view class="orderNumber" :key="item.sbid">
+ {{(index+1).toString().padStart(2,0)}}
+ </view>
+
+ <view class="trash" v-show="purchorderArr.length>1" @click="trashClick(index)">
+ <u-icon name="trash" size='20'></u-icon>
+ </view>
+
+ <view v-show="purchorderArr.length===1" style="width: 48rpx;height: 48rpx;">
+ </view>
+
+
+
+ <view class="flex_between marginBottom20 marginLeft20 marginTop20">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>鐗╂枡缂栫爜锛�</view>
+ <view>鐗╂枡鍚嶇О锛�</view>
+ <view>鐗╂枡瑙勬牸锛�</view>
+ <view>閲囪喘璁㈠崟锛�</view>
+ <view>鍒拌揣杩涘害锛�</view>
+ <!-- <view>鐗╂枡鏍囩锛�</view> -->
+ <view v-show="!item.arrowType">鐗╂枡鏁伴噺锛�</view>
+ <view v-show="!item.arrowType">渚涙柟淇℃伅锛�</view>
+ <view v-show="!item.arrowType">閲囪喘鎵规锛�</view>
+ <view v-show="!item.arrowType">璐ㄩ噺鐘舵�侊細</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{item.partcode}}</view>
+ <view>{{item.partname}}</view>
+ <view class="ellipsis" style="width: 460rpx;">
+ {{item.partspec?item.partspec:'/'}}
+ </view>
+ <view>{{item.ordercode}}</view>
+ <view style="height: 50rpx;display: flex;align-items: center;">
+ <u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
+ height="12" :showText='false'></u-line-progress>
+ <view style="margin-left: 6rpx; color:#2979FF">
+ {{item.hqty}}
+ </view>
+ <view>
+ /
+ </view>
+ <view>
+ {{item.hplanqty}} PCS
+ </view>
+ </view>
+ <!-- <view>杩樺儚杩樻病杩斿洖</view> -->
+ <view v-show="!item.arrowType">{{item.hqty}}</view>
+ <view v-show="!item.arrowType">{{item.customername}}</view>
+ <view v-show="!item.arrowType">/</view>
+ <view v-show="!item.arrowType">
+ <view v-if="!item.qualitystatus">/</view>
+ <view v-else style="display: flex;align-items: center;">
+
+ <u-icon name="tags-fill" color="green" size="20"
+ v-if="item.qualitystatus==='CS'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='CS'">鍏嶆</view>
+
+ <u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
+ v-if="item.qualitystatus==='OK'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='OK'">鍚堟牸</view>
+
+ <u-icon name="close-circle-fill" color="#FF0000" size="20"
+ v-if="item.qualitystatus==='NG'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='NG'">涓嶅悎鏍�</view>
+
+ <u-icon name="more-circle-fill" color="#55aaff" size="20"
+ v-if="item.qualitystatus==='TS'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='TS'">寰呮</view>
+
+ </view>
+ </view>
+
+ </view>
+ </view>
+ <u-radio size='20' class="marginRight20" :key="item.sbid" :name="item.sbid"
+ activeColor="red"></u-radio>
+ </view>
+
+
+ <view class="head_block" v-show="!item.arrowType">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 鎵弿搴撲綅
+ </view>
+ </view>
+
+ <view class="marginRight20">
+ <u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
+ </view>
+ </view>
+
+ <view class="flex_between marginBottom20 marginLeft20 marginTop20"
+ v-show="!item.arrowType">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>搴撲綅淇℃伅锛�</view>
+ <view>鎵�灞炰粨搴擄細</view>
+ </view>
+
+ <view class="flex_column contentFont" @click="sheetShow=true">
+ <view v-if="item.lcationcode">{{item.lcationcode}}</view>
+ <view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+ <view v-if="item.stockcode">{{item.stockcode}}</view>
+ <view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+ </view>
+ </view>
+ </view>
+
+
+ <view style="display: flex;justify-content: center;margin : 10rpx; 0">
+ <view class="arrowClass"
+ @click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
+ <u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
+ size="25"></u-icon>
+ </view>
+ </view>
+
+ <u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
+
+
+ </view>
+ </u-radio-group>
+ </view>
+
+ </view>
+
+ </view>
+
+
+
+ </view>
+
+ </view>
+
+
+ <view class="footer">
+ <u-button size="large" :loading="isDisabledSubmitButton" :disabled="isDisabledSubmitButton"
+ loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="纭鎻愪氦">
+ </u-button>
+ </view>
+
+
+ <u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+ @close='sheetShow=false' @change="changeHandler" @confirm='pickerConfirm'
+ @cancel='sheetShow=false'></u-picker>
+
+
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesAppPurchInStorSelectCGOrderPart,
+ WarehouseLocationSearchStoreHouse,
+ MesAppPurchInStorSave,
+ WareHouseLocation
+ } from '../../config/api.js';
+
+ const App = getApp()
+ export default {
+
+ onLoad(option) {
+ this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ purchorderObj: {},
+ purchorderArr: [],
+ radioValue: '',
+ sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ sheetList: [],
+ columns: [],
+ columnsData: [],
+ wareHouseLocationArr: [], //浠撳簱搴撲綅鏁扮粍
+ isDisabledSubmitButton: false
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+ this.getWareHouseLocation()
+
+
+ // this.getMesAppPurchInStorSelectCGOrderPart('PO-2025-01-0002')
+ // this.getWarehouseLocationSearchStoreHouse('0011')
+ },
+ methods: {
+ async getWareHouseLocation() {
+ const {
+ data: res
+ } = await WareHouseLocation()
+ this.wareHouseLocationArr = res.filter(i => i.children.length > 0)
+ this.columns = [
+ this.wareHouseLocationArr.map(i => i.text),
+ this.wareHouseLocationArr[0].children.map(i => i.text)
+ ]
+ this.wareHouseLocationArr.forEach(i => {
+ this.columnsData.push(i.children.map(j => j.text))
+ })
+
+ },
+ changeHandler(e) {
+ const {
+ columnIndex,
+ value,
+ values, // values涓哄綋鍓嶅彉鍖栧垪鐨勬暟缁勫唴瀹�
+ index,
+ // 寰俊灏忕▼搴忔棤娉曞皢picker瀹炰緥浼犲嚭鏉ワ紝鍙兘閫氳繃ref鎿嶄綔
+ picker = this.$refs.uPicker
+ } = e
+ // 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
+ if (columnIndex === 0) {
+ // picker涓洪�夋嫨鍣╰his瀹炰緥锛屽彉鍖栫浜屽垪瀵瑰簲鐨勯�夐」
+ picker.setColumnValues(1, this.columnsData[index])
+ }
+ },
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ // 鎵弿
+ 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.scanContent = res.result;
+ that.getWarehouseLocationSearchStoreHouse(that.scanContent)
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ async getWarehouseLocationSearchStoreHouse(locationcode) {
+ const data = {
+ locationcode
+ }
+ const res = await WarehouseLocationSearchStoreHouse(data)
+ if (res.code === '200') {
+ this.purchorderObj.lcationcode = res.data[0].locationname
+ this.purchorderObj.stockcode = res.data[0].warehousename
+
+ this.purchorderObj.lcationname2 = res.data[0].locationcode
+ this.purchorderObj.stockname2 = res.data[0].warehousecode
+ } else {
+ this.$u.toast(res.message)
+ }
+ },
+ // 鑾峰彇鏍囩淇℃伅
+ async getMesAppPurchInStorSelectCGOrderPart(ordercode) {
+ const data = {
+ ordercode
+ }
+ const res = await MesAppPurchInStorSelectCGOrderPart(this.global.formatData(data))
+ if (res.code === '200') {
+ res.data.forEach((i, ind) => {
+ i.arrowType = ind !== 0
+ i.lcationcode = '' //搴撲綅
+ i.stockcode = '' //浠撳簱
+ })
+ this.purchorderArr = res.data
+ this.purchorderObj = this.purchorderArr[0]
+ this.radioValue = this.purchorderObj.sbid
+ }
+ },
+ // picker纭鎸夐挳
+ pickerConfirm(val) {
+
+ this.purchorderObj.lcationcode = val.value[1]
+ this.purchorderObj.stockcode = val.value[0]
+
+ this.purchorderObj.stockname2 = this.wareHouseLocationArr.find(i => i.text === this.purchorderObj
+ .stockcode).value
+
+ this.purchorderObj.lcationname2 = this.wareHouseLocationArr.find(i => i.value === this.purchorderObj
+ .stockname2).children.find(i => i.text === this.purchorderObj
+ .lcationcode).value
+
+
+ this.sheetShow = false
+ },
+ // 鍗曢�夋寜閽偣鍑讳簨浠�
+ radioValueClick(val) {
+ this.radioValue = val
+ this.purchorderObj = this.purchorderArr.find(i => i.sbid === val)
+ },
+ // 鍒犻櫎浜嬩欢鐐瑰嚮
+ trashClick(val) {
+ this.purchorderArr.splice(val, 1)
+ this.purchorderObj = this.purchorderArr[0]
+ this.radioValue = this.purchorderObj.sbid
+ },
+ // 绠ご鐢卞悜涓嬪彉涓哄悜涓婃椂瑙﹀彂
+ arrowDownClick(val) {
+ this.purchorderArr.forEach(i => {
+ i.arrowType = i.sbid !== val.sbid
+ })
+ this.$forceUpdate()
+ },
+ // 绠ご鐢卞悜涓婂彉涓哄悜涓嬫椂瑙﹀彂
+ arrowUpClick(val) {
+ val.arrowType = true
+ this.$forceUpdate()
+ },
+ async submit() {
+ const data1 = {
+ username: uni.getStorageSync("username")
+ }
+ let data2 = []
+
+ let ind = this.purchorderArr.findIndex(i => i.lcationcode === '')
+ if (ind > -1) { //璇存槑鏈夋湭濉啓鐨勫簱浣嶄俊鎭�
+ return this.$u.toast('绗�' + (ind + 1) + '涓殑搴撲綅淇℃伅鏈~鍐�')
+ }
+ console.log(this.wareHouseLocationArr.flat())
+
+ this.purchorderArr.forEach(i => {
+ data2.push({
+ "hbarcode": "",
+ "hbillno": "",
+ "hqty": i.hqty,
+ "hcustomercode": i.customercode,
+ "hdeptcode": i.departmentcode,
+ "partcode": i.partcode,
+ "unitcode": i.unitcode,
+ "hsourceid": i.orderid,
+ "hsourcebillno": i.ordercode,
+
+ "stockcode": this.purchorderObj.stockname2,
+ "lcationcode": this.purchorderObj.lcationname2
+ })
+ })
+
+ // console.log(JSON.stringify(data2))
+
+ const res = await MesAppPurchInStorSave(this.global.formatData(
+ data1), data2)
+
+ if (res.code === '200') {
+ let prevPage = getCurrentPages()[getCurrentPages()
+ .length -
+ 2]; // 涓婁竴椤甸潰瀹炰緥
+ prevPage.$vm
+ .getMesAppPurchOrderSearch() // 璋冪敤涓婁竴椤� 瀹氫箟鐨勬柟娉�
+ uni.navigateBack({
+ delta: 1, //杩斿洖灞傛暟锛�2鍒欎笂涓婇〉
+ })
+ } else {
+ this.$u.toast(res.message)
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+
+
+ .orderNumber {
+ width: 60rpx;
+ height: 40rpx;
+ // margin: -22rpx 0 0 -30rpx;
+ background-color: #d3daf9;
+ color: #2979FF;
+ font-size: 26rpx;
+ padding: 4rpx 0 0 10rpx;
+ border-radius: 0 0 90% 0;
+ }
+
+ .trash {
+ width: 48rpx;
+ height: 48rpx;
+ margin: -26rpx 0 0 646rpx;
+ background-color: #d3daf9;
+ font-size: 26rpx;
+ padding: 6rpx 0 0 10rpx;
+ border-radius: 100%;
+ }
+
+ .custominputClass {
+ width: 424rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 10rpx;
+ }
+
+ .arrowClass {
+ display: flex;
+ justify-content: center;
+ // background-color: #efefef;
+ width: 100rpx;
+ // border-radius: 10rpx;
+ height: 56rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wlgl/cgrk4_back.vue b/pages/wlgl/cgrk4_back.vue
new file mode 100644
index 0000000..a7f2664
--- /dev/null
+++ b/pages/wlgl/cgrk4_back.vue
@@ -0,0 +1,460 @@
+<template>
+ <view>
+ <page-nav title="閲囪喘鍏ュ簱4"></page-nav>
+
+ <view v-if='purchorderArr.length!==0' class="mainContent" style="">
+ <view>
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <!-- max-height: 1340rpx;overflow: auto; -->
+ <view style="">
+
+ <view class="head" style="position: relative;">
+
+ <u-radio-group v-model="radioValue" class="flex_column">
+ <view class=" flex_column" style="width: 100%;" @click="radioValueClick(item.sbid)"
+ v-for="(item,index) in purchorderArr" :key="item.sbid">
+
+ <view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 鐗╂枡淇℃伅
+ </view>
+ </view>
+ </view>
+
+
+ <view class="orderNumber" :key="item.sbid">
+ {{(index+1).toString().padStart(2,0)}}
+ </view>
+
+ <view class="trash" v-show="purchorderArr.length>1" @click="trashClick(index)">
+ <u-icon name="trash" size='20'></u-icon>
+ </view>
+
+ <view v-show="purchorderArr.length===1" style="width: 48rpx;height: 48rpx;">
+ </view>
+
+
+
+ <view class="flex_between marginBottom20 marginLeft20 marginTop20">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>鐗╂枡缂栫爜锛�</view>
+ <view>鐗╂枡鍚嶇О锛�</view>
+ <view>鐗╂枡瑙勬牸锛�</view>
+ <view>閲囪喘璁㈠崟锛�</view>
+ <view>鍒拌揣杩涘害锛�</view>
+ <!-- <view>鐗╂枡鏍囩锛�</view> -->
+ <view v-show="!item.arrowType">鐗╂枡鏁伴噺锛�</view>
+ <view v-show="!item.arrowType">渚涙柟淇℃伅锛�</view>
+ <view v-show="!item.arrowType">閲囪喘鎵规锛�</view>
+ <view v-show="!item.arrowType">璐ㄩ噺鐘舵�侊細</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{item.partcode}}</view>
+ <view>{{item.partname}}</view>
+ <view class="ellipsis" style="width: 460rpx;">
+ {{item.partspec?item.partspec:'/'}}
+ </view>
+ <view>{{item.ordercode}}</view>
+ <view style="height: 50rpx;display: flex;align-items: center;">
+ <u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
+ height="12" :showText='false'></u-line-progress>
+ <view style="margin-left: 6rpx; color:#2979FF">
+ {{item.hqty}}
+ </view>
+ <view>
+ /
+ </view>
+ <view>
+ {{item.hplanqty}} PCS
+ </view>
+ </view>
+ <!-- <view>杩樺儚杩樻病杩斿洖</view> -->
+ <view v-show="!item.arrowType">{{item.hqty}}</view>
+ <view v-show="!item.arrowType">{{item.customername}}</view>
+ <view v-show="!item.arrowType">/</view>
+ <view v-show="!item.arrowType">
+ <view v-if="!item.qualitystatus">/</view>
+ <view v-else style="display: flex;align-items: center;">
+
+ <u-icon name="tags-fill" color="green" size="20"
+ v-if="item.qualitystatus==='CS'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='CS'">鍏嶆</view>
+
+ <u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
+ v-if="item.qualitystatus==='OK'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='OK'">鍚堟牸</view>
+
+ <u-icon name="close-circle-fill" color="#FF0000" size="20"
+ v-if="item.qualitystatus==='NG'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='NG'">涓嶅悎鏍�</view>
+
+ <u-icon name="more-circle-fill" color="#55aaff" size="20"
+ v-if="item.qualitystatus==='TS'"></u-icon>
+ <view style="margin-left: 10rpx;"
+ v-if="item.qualitystatus==='TS'">寰呮</view>
+
+ </view>
+ </view>
+
+ </view>
+ </view>
+ <u-radio size='20' class="marginRight20" :key="item.sbid" :name="item.sbid"
+ activeColor="red"></u-radio>
+ </view>
+
+
+ <view class="head_block" v-show="!item.arrowType">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bold;">
+ 鎵弿搴撲綅
+ </view>
+ </view>
+
+ <view class="marginRight20">
+ <u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
+ </view>
+ </view>
+
+ <view class="flex_between marginBottom20 marginLeft20 marginTop20"
+ v-show="!item.arrowType">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>搴撲綅淇℃伅锛�</view>
+ <view>鎵�灞炰粨搴擄細</view>
+ </view>
+
+ <view class="flex_column contentFont" @click="sheetShow=true">
+ <view v-if="item.lcationcode">{{item.lcationcode}}</view>
+ <view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+ <view v-if="item.stockcode">{{item.stockcode}}</view>
+ <view v-else style="color: #ccc;">鐐瑰嚮閫夋嫨鎴栨壂搴撲綅鐮�</view>
+ </view>
+ </view>
+ </view>
+
+
+ <view style="display: flex;justify-content: center;margin : 10rpx; 0">
+ <view class="arrowClass"
+ @click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
+ <u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
+ size="25"></u-icon>
+ </view>
+ </view>
+
+ <u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
+
+
+ </view>
+ </u-radio-group>
+ </view>
+
+ </view>
+
+ </view>
+
+
+
+ </view>
+
+ </view>
+
+
+ <view class="footer">
+ <u-button size="large" :loading="isDisabledSubmitButton" :disabled="isDisabledSubmitButton"
+ loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="纭鎻愪氦">
+ </u-button>
+ </view>
+
+
+ <u-picker :show="sheetShow" :columns="columns" :itemHeight='55' :closeOnClickOverlay='true'
+ @close='sheetShow=false' @change="changeHandler" @confirm='pickerConfirm'
+ @cancel='sheetShow=false'></u-picker>
+
+
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesAppPurchInStorSelectCGOrderPart,
+ WarehouseLocationSearchStoreHouse,
+ MesAppPurchInStorSave,
+ WareHouseLocation
+ } from '../../config/api.js';
+
+ const App = getApp()
+ export default {
+
+ onLoad(option) {
+ this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ purchorderObj: {},
+ purchorderArr: [],
+ radioValue: '',
+ sheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ sheetList: [],
+ columns: [],
+ columnsData: [],
+ wareHouseLocationArr: [], //浠撳簱搴撲綅鏁扮粍
+ isDisabledSubmitButton: false
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+ this.getWareHouseLocation()
+
+
+ // this.getMesAppPurchInStorSelectCGOrderPart('PO-2025-01-0002')
+ // this.getWarehouseLocationSearchStoreHouse('0011')
+ },
+ methods: {
+ async getWareHouseLocation() {
+ const {
+ data: res
+ } = await WareHouseLocation()
+ this.wareHouseLocationArr = res.filter(i => i.children.length > 0)
+ this.columns = [
+ this.wareHouseLocationArr.map(i => i.text),
+ this.wareHouseLocationArr[0].children.map(i => i.text)
+ ]
+ this.wareHouseLocationArr.forEach(i => {
+ this.columnsData.push(i.children.map(j => j.text))
+ })
+
+ },
+ changeHandler(e) {
+ const {
+ columnIndex,
+ value,
+ values, // values涓哄綋鍓嶅彉鍖栧垪鐨勬暟缁勫唴瀹�
+ index,
+ // 寰俊灏忕▼搴忔棤娉曞皢picker瀹炰緥浼犲嚭鏉ワ紝鍙兘閫氳繃ref鎿嶄綔
+ picker = this.$refs.uPicker
+ } = e
+ // 褰撶涓�鍒楀�煎彂鐢熷彉鍖栨椂锛屽彉鍖栫浜屽垪(鍚庝竴鍒�)瀵瑰簲鐨勯�夐」
+ if (columnIndex === 0) {
+ // picker涓洪�夋嫨鍣╰his瀹炰緥锛屽彉鍖栫浜屽垪瀵瑰簲鐨勯�夐」
+ picker.setColumnValues(1, this.columnsData[index])
+ }
+ },
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ // 鎵弿
+ 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.scanContent = res.result;
+ that.getWarehouseLocationSearchStoreHouse(that.scanContent)
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ async getWarehouseLocationSearchStoreHouse(locationcode) {
+ const data = {
+ locationcode
+ }
+ const res = await WarehouseLocationSearchStoreHouse(data)
+ if (res.code === '200') {
+ this.purchorderObj.lcationcode = res.data[0].locationname
+ this.purchorderObj.stockcode = res.data[0].warehousename
+
+ this.purchorderObj.lcationname2 = res.data[0].locationcode
+ this.purchorderObj.stockname2 = res.data[0].warehousecode
+ } else {
+ this.$u.toast(res.message)
+ }
+ },
+ // 鑾峰彇鏍囩淇℃伅
+ async getMesAppPurchInStorSelectCGOrderPart(ordercode) {
+ const data = {
+ ordercode
+ }
+ const res = await MesAppPurchInStorSelectCGOrderPart(this.global.formatData(data))
+ if (res.code === '200') {
+ res.data.forEach((i, ind) => {
+ i.arrowType = ind !== 0
+ i.lcationcode = '' //搴撲綅
+ i.stockcode = '' //浠撳簱
+ })
+ this.purchorderArr = res.data
+ this.purchorderObj = this.purchorderArr[0]
+ this.radioValue = this.purchorderObj.sbid
+ }
+ },
+ // picker纭鎸夐挳
+ pickerConfirm(val) {
+
+ this.purchorderObj.lcationcode = val.value[1]
+ this.purchorderObj.stockcode = val.value[0]
+
+ this.purchorderObj.stockname2 = this.wareHouseLocationArr.find(i => i.text === this.purchorderObj
+ .stockcode).value
+
+ this.purchorderObj.lcationname2 = this.wareHouseLocationArr.find(i => i.value === this.purchorderObj
+ .stockname2).children.find(i => i.text === this.purchorderObj
+ .lcationcode).value
+
+
+ this.sheetShow = false
+ },
+ // 鍗曢�夋寜閽偣鍑讳簨浠�
+ radioValueClick(val) {
+ this.radioValue = val
+ this.purchorderObj = this.purchorderArr.find(i => i.sbid === val)
+ },
+ // 鍒犻櫎浜嬩欢鐐瑰嚮
+ trashClick(val) {
+ this.purchorderArr.splice(val, 1)
+ this.purchorderObj = this.purchorderArr[0]
+ this.radioValue = this.purchorderObj.sbid
+ },
+ // 绠ご鐢卞悜涓嬪彉涓哄悜涓婃椂瑙﹀彂
+ arrowDownClick(val) {
+ this.purchorderArr.forEach(i => {
+ i.arrowType = i.sbid !== val.sbid
+ })
+ this.$forceUpdate()
+ },
+ // 绠ご鐢卞悜涓婂彉涓哄悜涓嬫椂瑙﹀彂
+ arrowUpClick(val) {
+ val.arrowType = true
+ this.$forceUpdate()
+ },
+ async submit() {
+ const data1 = {
+ username: uni.getStorageSync("username")
+ }
+ let data2 = []
+
+ let ind = this.purchorderArr.findIndex(i => i.lcationcode === '')
+ if (ind > -1) { //璇存槑鏈夋湭濉啓鐨勫簱浣嶄俊鎭�
+ return this.$u.toast('绗�' + (ind + 1) + '涓殑搴撲綅淇℃伅鏈~鍐�')
+ }
+ console.log(this.wareHouseLocationArr.flat())
+
+ this.purchorderArr.forEach(i => {
+ data2.push({
+ "hbarcode": "",
+ "hbillno": "",
+ "hqty": i.hqty,
+ "hcustomercode": i.customercode,
+ "hdeptcode": i.departmentcode,
+ "partcode": i.partcode,
+ "unitcode": i.unitcode,
+ "hsourceid": i.orderid,
+ "hsourcebillno": i.ordercode,
+
+ "stockcode": this.purchorderObj.stockname2,
+ "lcationcode": this.purchorderObj.lcationname2
+ })
+ })
+
+ // console.log(JSON.stringify(data2))
+
+ const res = await MesAppPurchInStorSave(this.global.formatData(
+ data1), data2)
+
+ if (res.code === '200') {
+ let prevPage = getCurrentPages()[getCurrentPages()
+ .length -
+ 2]; // 涓婁竴椤甸潰瀹炰緥
+ prevPage.$vm
+ .getMesAppPurchOrderSearch() // 璋冪敤涓婁竴椤� 瀹氫箟鐨勬柟娉�
+ uni.navigateBack({
+ delta: 1, //杩斿洖灞傛暟锛�2鍒欎笂涓婇〉
+ })
+ } else {
+ this.$u.toast(res.message)
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+
+
+ .orderNumber {
+ width: 60rpx;
+ height: 40rpx;
+ // margin: -22rpx 0 0 -30rpx;
+ background-color: #d3daf9;
+ color: #2979FF;
+ font-size: 26rpx;
+ padding: 4rpx 0 0 10rpx;
+ border-radius: 0 0 90% 0;
+ }
+
+ .trash {
+ width: 48rpx;
+ height: 48rpx;
+ margin: -26rpx 0 0 646rpx;
+ background-color: #d3daf9;
+ font-size: 26rpx;
+ padding: 6rpx 0 0 10rpx;
+ border-radius: 100%;
+ }
+
+ .custominputClass {
+ width: 424rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 10rpx;
+ }
+
+ .arrowClass {
+ display: flex;
+ justify-content: center;
+ // background-color: #efefef;
+ width: 100rpx;
+ // border-radius: 10rpx;
+ height: 56rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/zlgl/rcjy.vue b/pages/zlgl/rcjy.vue
index 56383e1..3e6240e 100644
--- a/pages/zlgl/rcjy.vue
+++ b/pages/zlgl/rcjy.vue
@@ -161,9 +161,9 @@
<!-- <scan-code></scan-code> -->
<!-- 鎮诞鐞� -->
- <view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
+ <!-- <view v-show="purchorderArr.length!==0&&!sheetShow" @click="topScanClick">
<drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
- </view>
+ </view> -->
--
Gitblit v1.9.3