剩余模块:生产退料
This commit is contained in:
parent
63a44af1d8
commit
03e22dd9f6
16
App.vue
16
App.vue
@ -1,7 +1,5 @@
|
||||
<script>
|
||||
import {
|
||||
useI18n
|
||||
} from 'vue-i18n'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import {
|
||||
getAppVersion
|
||||
} from './common/request/api/api'
|
||||
@ -37,10 +35,7 @@
|
||||
//语言变更
|
||||
console.log('App Show')
|
||||
const getI18n = useI18n()
|
||||
const {
|
||||
t,
|
||||
locale
|
||||
} = getI18n
|
||||
const { t, locale } = getI18n
|
||||
if (!uni.getStorageSync('locale')) {
|
||||
locale.value = 'en'
|
||||
uni.setStorageSync('locale', locale.value)
|
||||
@ -55,10 +50,10 @@
|
||||
url: '/pages/client/account/login',
|
||||
})
|
||||
}
|
||||
const appVersion = '0.0.1' //珠海版本号
|
||||
const appTaiGuoVersion = '0.0.1' //泰国版本号
|
||||
|
||||
const appVersion = '0.1.5' //珠海版本号
|
||||
const appTaiGuoVersion = '0.1.5' //泰国版本号
|
||||
|
||||
// #ifdef APP-NVUE
|
||||
//版本信息获取以及更新
|
||||
getAppVersion().then(res => {
|
||||
console.log(res);
|
||||
@ -99,7 +94,6 @@
|
||||
}
|
||||
|
||||
})
|
||||
// #endif
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide')
|
||||
|
@ -114,4 +114,10 @@ export const accountSearchOrg = (data: object) => requst('/api/Account/SearchOrg
|
||||
export const getAppVersion = () => requst('https://maxcess.gatedge.cn:91/api/Admin/GlobalSwitch/GetAppVersion?key=A9E45EED-E6F2-4276-8554-AF3055CA0512', 'get', {});
|
||||
|
||||
//条码主档
|
||||
export const UHIK_BD_BarCodeMainFileView = (data: object) => requst('/api/UHIK_BD_BarCodeMainFile/View', 'get', {...data});
|
||||
export const UHIK_BD_BarCodeMainFileView = (data: object) => requst('/api/UHIK_BD_BarCodeMainFile/View', 'get', {...data});
|
||||
|
||||
//生产退料验证
|
||||
export const PRD_ReturnMtrlList = (data: object) => requst('/api/PRD_ReturnMtrl/List', 'get', {...data});
|
||||
export const PRD_ReturnMtrlView = (data: object) => requst('/api/PRD_ReturnMtrl/View', 'get', {...data});
|
||||
export const PRD_ReturnMtrlScanData = (data: object) => requst('/api/PRD_ReturnMtrl/ScanData', 'get', {...data});
|
||||
export const PRD_ReturnMtrlCheck = (data: object) => requst('/api/PRD_ReturnMtrl/Check', 'post', {...data});
|
@ -1,6 +1,6 @@
|
||||
import env from './env';
|
||||
// import uniChat from "./uniChat";
|
||||
export default function requst(url : string, type : string, params : any, header : object = {}, noMsg:boolean = true) {
|
||||
export default function requst(url : string, type : string, params : any, header : object = {}, noMsg : boolean = true) {
|
||||
// #ifndef APP-PLUS
|
||||
uni.showLoading({
|
||||
mask: true
|
||||
@ -9,61 +9,60 @@ export default function requst(url : string, type : string, params : any, header
|
||||
// #ifdef APP-PLUS
|
||||
plus.nativeUI.showWaiting();
|
||||
// #endif
|
||||
console.log('检查URL' + env.API_URL + url,)
|
||||
console.log('检查TOKEN' + 'Bearer '+ uni.getStorageSync('TOKEN'),)
|
||||
console.log(params);
|
||||
// console.log('检查URL' + env.API_URL + url,)
|
||||
// console.log('检查TOKEN' + 'Bearer '+ uni.getStorageSync('TOKEN'),)
|
||||
console.log('检查请求体', params);
|
||||
var apiHeader = ''
|
||||
var headerObj = {}
|
||||
if(url.indexOf('http') !== -1){
|
||||
if (url.indexOf('http') !== -1) {
|
||||
apiHeader = url
|
||||
headerObj = {}
|
||||
} else {
|
||||
apiHeader = env.API_URL + url
|
||||
headerObj = {
|
||||
Authorization: 'Bearer '+ uni.getStorageSync('TOKEN') || ''
|
||||
Authorization: 'Bearer ' + uni.getStorageSync('TOKEN') || ''
|
||||
}
|
||||
}
|
||||
console.log(apiHeader);
|
||||
// console.log(apiHeader);
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: apiHeader,
|
||||
method: type,
|
||||
data: params,
|
||||
sslVerify:false,
|
||||
sslVerify: false,
|
||||
header: {
|
||||
...headerObj
|
||||
},
|
||||
timeout: 5000,
|
||||
success(result : any) {
|
||||
console.log(result);
|
||||
console.log('检查返回', result);
|
||||
let res = result.data;
|
||||
if (res.code === 200) {
|
||||
resolve(res);
|
||||
} else if (res.code == 401) {
|
||||
// #ifdef APP-PLUS
|
||||
plus.nativeUI.toast('登录状态失效,请重新登录');
|
||||
// #endif
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: '登录状态失效,请重新登录',
|
||||
duration: 2500,
|
||||
})
|
||||
// uni.removeStorageSync('TOKEN')
|
||||
// uni.removeStorageSync('userInfo');
|
||||
// uni.clearStorage();
|
||||
// tools.jumpTo('/pages/client/account/login', {}, 0)
|
||||
resolve(res)
|
||||
} else {
|
||||
if(!noMsg){
|
||||
setTimeout(() => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
mask: true,
|
||||
title: res.msg
|
||||
})
|
||||
// if (!noMsg) {
|
||||
// setTimeout(() => {
|
||||
// uni.showToast({
|
||||
// icon: 'none',
|
||||
// mask: true,
|
||||
// title: res.msg
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
console.log(res.msg,'========================================================');
|
||||
setTimeout(() => {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none',
|
||||
mask: false,
|
||||
duration:5000,
|
||||
success: function () {
|
||||
console.log('成功显示');
|
||||
}
|
||||
})
|
||||
}
|
||||
},1000)
|
||||
|
||||
uni.$u.toast(res.msg)
|
||||
resolve(res)
|
||||
}
|
||||
},
|
||||
|
@ -13,8 +13,8 @@
|
||||
<tki-qrcode cid="qrcode" ref="qrcode" :val="state.inputText" :size="170" unit="upx" :loadMake="true"
|
||||
:usingComponents="true" />
|
||||
<view class="codeBoxText">
|
||||
<view>单据:{{ props.dataType }}</view>
|
||||
<view>编码:</view>
|
||||
<view>{{ t('receive.djbh1') }}:{{ props.dataType }}</view>
|
||||
<view>{{ t('receive.code') }}:</view>
|
||||
<view class="container chinese-text">{{ state.inputText }}</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -53,6 +53,10 @@
|
||||
})
|
||||
watch(()=> props.fence,(val1,val2) => {
|
||||
console.log(val1,val2);
|
||||
if (props.fence.filter((item : any) => item).length !== 0) {
|
||||
state.inputText = ''
|
||||
state.show = true
|
||||
}
|
||||
})
|
||||
const state = reactive({
|
||||
inputText: '',
|
||||
@ -70,7 +74,7 @@
|
||||
const confirmfun = (e : any) => {
|
||||
emits('inputConfirm', e)
|
||||
}
|
||||
const closeFun = (time : number = 2000) => {
|
||||
const closeFun = (time : number = 4000) => {
|
||||
setTimeout(() => {
|
||||
state.inputText = ''
|
||||
state.show = true
|
||||
|
@ -38,7 +38,7 @@
|
||||
</view>
|
||||
<view class="input-box" v-if="screeningTypes('quantityStr')">
|
||||
<view class="input-item">
|
||||
<up-input :placeholder="t('public.qsrsl')" border="none" clearable inputAlign="right"
|
||||
<up-input :placeholder="t('public.qsrsl')" border="none" clearable inputAlign="right" :disabled="props.qtyState"
|
||||
v-model="state.scanFrame.quantityStr" @change="quantityStrChangeFun">
|
||||
<template #prefix>
|
||||
<view class="item-title">{{ t('public.qty') }}</view>
|
||||
@ -84,6 +84,12 @@
|
||||
default: () => {
|
||||
return ['warehouseStr', 'locationStr', 'articlesStr', 'quantityStr', 'batchNumberStr']
|
||||
}
|
||||
},
|
||||
qtyState: {
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return false
|
||||
}
|
||||
}
|
||||
})
|
||||
const state = reactive({
|
||||
@ -126,7 +132,7 @@
|
||||
state.componentsData = obj
|
||||
state.scanFrame.warehouseStr = obj.warehouseStr
|
||||
state.scanFrame.locationStr = obj.locationStr
|
||||
state.scanFrame.quantityStr = obj.quantityStr
|
||||
state.scanFrame.quantityStr = props.qtyState ? 1 : obj.quantityStr
|
||||
state.scanFrame.batchNumberStr = obj.batchNumberStr
|
||||
state.warehouseData = obj.warehouseData
|
||||
state.locationData = obj.locationData
|
||||
@ -222,7 +228,7 @@
|
||||
state.show = true
|
||||
state.quantityStrState = true
|
||||
} else if (state.scanFrame.quantityStr == '') {
|
||||
state.scanFrame.quantityStr = state.receiveBillScanData.UnScanQty
|
||||
state.scanFrame.quantityStr = props.qtyState ? 1 : state.receiveBillScanData.UnScanQty
|
||||
}
|
||||
state.scanFrame.articlesStr = state.receiveBillScanData.MaterialNumber
|
||||
state.scanFrame.barCodeStr = state.receiveBillScanData.queryString
|
||||
@ -282,6 +288,8 @@
|
||||
state.quantityStrState = false
|
||||
} else {
|
||||
state.quantityStrState = true
|
||||
uni.$u.toast(t('index.slbndy') + state.receiveBillScanData.UnScanQty)
|
||||
state.scanFrame.quantityStr = state.receiveBillScanData.UnScanQty
|
||||
}
|
||||
|
||||
}
|
||||
|
13
i18n/cn.ts
13
i18n/cn.ts
@ -5,7 +5,8 @@ export const cn = {
|
||||
'loginbtn': '登录',
|
||||
'qsrzh': '请输入您的账号',
|
||||
'qsrmm': '请输入您的密码',
|
||||
'Language': '语言'
|
||||
'Language': '语言',
|
||||
'tcdl':'退出登录'
|
||||
},
|
||||
tab: {
|
||||
home: '首页'
|
||||
@ -16,6 +17,7 @@ export const cn = {
|
||||
'scfl': '生产发料',
|
||||
'scbl': '生产补料',
|
||||
'sctl': '生产退料',
|
||||
'sctlyz': '生产退料验证',
|
||||
'sctc': '生产投产',
|
||||
'scrk': '生产入库',
|
||||
'sczx': '生产装箱',
|
||||
@ -23,6 +25,8 @@ export const cn = {
|
||||
'kssc': '开始生产',
|
||||
'kscs': '开始测试',
|
||||
'kshb': '开始汇报',
|
||||
'plxsck': '批量销售出库',
|
||||
'wlbzcf':'物料包装拆分'
|
||||
},
|
||||
verify: {
|
||||
'grn': '收料通知单号',
|
||||
@ -69,6 +73,7 @@ export const cn = {
|
||||
},
|
||||
receive: {
|
||||
'djbh': '单据编号',
|
||||
'djbh1': '单据',
|
||||
'rq': '日期',
|
||||
'code': '条码',
|
||||
'wlmc': '物料名称',
|
||||
@ -148,6 +153,10 @@ export const cn = {
|
||||
'ljcg':'连接成功',
|
||||
'ljsb':'连接失败',
|
||||
'cjbqsb':'创建标签失败',
|
||||
'ljydk':'连接已断开,请重新连接'
|
||||
'ljydk':'连接已断开,请重新连接',
|
||||
'sxdj':'所选单据',
|
||||
'yzdj':'验证单据',
|
||||
'sdn':'销售出库单号',
|
||||
'slbndy':'数量不能大于'
|
||||
}
|
||||
}
|
179
i18n/en.ts
179
i18n/en.ts
@ -5,7 +5,8 @@ export const en = {
|
||||
'loginbtn': 'Login',
|
||||
'qsrzh': 'Please input your user name',
|
||||
'qsrmm': 'please input your password',
|
||||
'Language': 'Language'
|
||||
'Language': 'Language',
|
||||
'tcdl': 'Log out'
|
||||
},
|
||||
tab: {
|
||||
'home': 'Maxcess Barcode System',
|
||||
@ -16,6 +17,7 @@ export const en = {
|
||||
'scfl': 'Picking List',
|
||||
'scbl': 'Replenishment',
|
||||
'sctl': 'Production Return',
|
||||
'sctlyz': 'Production Return Verify',
|
||||
'sctc': 'Production',
|
||||
'scrk': 'MO Receipt',
|
||||
'sczx': 'MO Packing',
|
||||
@ -23,6 +25,8 @@ export const en = {
|
||||
'kssc': 'MO Start',
|
||||
'kscs': 'MO Test',
|
||||
'kshb': 'MO Report',
|
||||
'plxsck': 'Sales delivery Batch',
|
||||
'wlbzcf':'Split Label'
|
||||
},
|
||||
verify: {
|
||||
'grn': 'GRN #',
|
||||
@ -46,29 +50,30 @@ export const en = {
|
||||
'noDataMessage': 'No data is submitted!',
|
||||
'smjl': 'Records',
|
||||
'mrz': 'Default',
|
||||
'ckmc':'W/H Name',
|
||||
'cwmc':' Bin #',
|
||||
'ckmc': 'W/H Name',
|
||||
'cwmc': ' Bin #',
|
||||
'qty': 'QTY',
|
||||
'mmsph': 'Maxcess Lot #',
|
||||
'xzck': 'Select W/H name',
|
||||
'xzcw':'Select Bin name',
|
||||
'cwwqy':'Bin is not enabled',
|
||||
'qsrsl':'Please input the QTY',
|
||||
'qsrmssph':'Please input Maxcess Lot #',
|
||||
'gdtcckMessage':'Prompt Windows',
|
||||
'gdtc':'Normal Prompt',
|
||||
'yctc':'Error Prompt',
|
||||
'cz':'Reset',
|
||||
'bc':'Save',
|
||||
'qxzck':'Please select W/H',
|
||||
'qxzcw':'Please select Bin',
|
||||
'xzcw': 'Select Bin name',
|
||||
'cwwqy': 'Bin is not enabled',
|
||||
'qsrsl': 'Please input the QTY',
|
||||
'qsrmssph': 'Please input Maxcess Lot #',
|
||||
'gdtcckMessage': 'Prompt Windows',
|
||||
'gdtc': 'Normal Prompt',
|
||||
'yctc': 'Error Prompt',
|
||||
'cz': 'Reset',
|
||||
'bc': 'Save',
|
||||
'qxzck': 'Please select W/H',
|
||||
'qxzcw': 'Please select Bin',
|
||||
'wlbm': 'Part Number',
|
||||
'qsrwlbmmessage':'Please input the material part number',
|
||||
'qsrwlbmmessage': 'Please input the material part number',
|
||||
'tm': 'QR Code',
|
||||
'xxh':'SN #'
|
||||
'xxh': 'SN #'
|
||||
},
|
||||
receive: {
|
||||
'djbh': 'Order',
|
||||
'djbh1': 'Order',
|
||||
'code': 'Code',
|
||||
'rq': 'Date',
|
||||
'wlmc': 'Name of material',
|
||||
@ -80,74 +85,78 @@ export const en = {
|
||||
'ws': 'Not yet',
|
||||
'yss': 'Should',
|
||||
},
|
||||
index:{
|
||||
'bccg':'Save Successfully',
|
||||
'tj':'Add',
|
||||
'zxddh':'Prod Packing #',
|
||||
'scddbh':'MO #',
|
||||
'sczx':'Prod Packing',
|
||||
'bz':'Material Packing #',
|
||||
'minbz':'Material Mini Package #',
|
||||
'ts':'Prompt',
|
||||
'qdysc':'Please confirm the deletion',
|
||||
'qx':'Cancel',
|
||||
'qd':'Confirm',
|
||||
'ysc':'Deleted',
|
||||
'ctll':'Kit Picking',
|
||||
'ctllyz':'Kit Picking Verify',
|
||||
'scylqddh':'Prod BOM List #',
|
||||
'hbbdh':'MO report',
|
||||
'qdytsccsjm':'Data submitting comfirmation',
|
||||
'rb':'Concession',
|
||||
'hg':'Qualified',
|
||||
'bmygtsj':'No data is found',
|
||||
'scdd':'MO',
|
||||
'ksscsj':'MO Starting Time',
|
||||
'kscssj':'Test Starting Time',
|
||||
'kshbsj':'MO Report Time',
|
||||
'kstcgs':'QTY',
|
||||
'kssc':'Production Starting ',
|
||||
'kshb':'Test Starting',
|
||||
'kscs':'MO Report',
|
||||
'qxjxsc':'You have not started the MO',
|
||||
'zwck':'No W/H is found',
|
||||
'cpmc':'FG name',
|
||||
'cpbm':'FG Part Number',
|
||||
'scsl':'QTY',
|
||||
'llts':'Kit Picking QTY',
|
||||
'qsrllts':'Please input the QTY',
|
||||
'llthbddy':'The number exceeds the MO requirement',
|
||||
'csllddh':'Material Picking List #',
|
||||
'ck':'W/H',
|
||||
'ckcx':'W/H Query',
|
||||
'ckbh':'W/H #',
|
||||
'cw':'Bin Name',
|
||||
'cwcx':'Bin Query',
|
||||
'cwbh':'Bin #',
|
||||
'wzdgcw':'Bin # is not found',
|
||||
'ksmcw':'Scan Bin #',
|
||||
'qsrph':'Input Lot #',
|
||||
'cwwqy':'Bin # is not enabled',
|
||||
'ymrckbt':'Different W/H from default. Replace?',
|
||||
'gmkxyzdck':'W/H is required',
|
||||
'cwyqy':'Bin # is required',
|
||||
'phbnwk':'Lot # is required',
|
||||
'slbnwk':'QTY is must greater than 0',
|
||||
'zwsmsj':'No data is found.',
|
||||
'hgrksl':'Qualified QTY',
|
||||
'qdyqbsc':'All records deletion confirmation.',
|
||||
'tqbsc':'Deletion Successfully!',
|
||||
'qbsc':'Delete all',
|
||||
'zwph':'Lot # is not found.',
|
||||
'dyj':'Printer',
|
||||
'qxzdyj':'Please select printer',
|
||||
'zbdy':'Printing is ready',
|
||||
'sbmc':'Device Name',
|
||||
'sbbm':'Device Code',
|
||||
'whqdlyqx':'Bluethooth is not connected',
|
||||
'ljcg':'connection is successful.',
|
||||
'ljsb':'connection failed.',
|
||||
'cjbqsb':'QR code creation is failed',
|
||||
'ljydk':'Bluetooth is disconnected,please re-connect to the Bluetooth.'
|
||||
index: {
|
||||
'bccg': 'Save Successfully',
|
||||
'tj': 'Add',
|
||||
'zxddh': 'Prod Packing #',
|
||||
'scddbh': 'MO #',
|
||||
'sczx': 'Prod Packing',
|
||||
'bz': 'Material Packing #',
|
||||
'minbz': 'Material Mini Package #',
|
||||
'ts': 'Prompt',
|
||||
'qdysc': 'Please confirm the deletion',
|
||||
'qx': 'Cancel',
|
||||
'qd': 'Confirm',
|
||||
'ysc': 'Deleted',
|
||||
'ctll': 'Kit Picking',
|
||||
'ctllyz': 'Kit Picking Verify',
|
||||
'scylqddh': 'Prod BOM List #',
|
||||
'hbbdh': 'MO report',
|
||||
'qdytsccsjm': 'Data submitting comfirmation',
|
||||
'rb': 'Concession',
|
||||
'hg': 'Qualified',
|
||||
'bmygtsj': 'No data is found',
|
||||
'scdd': 'MO',
|
||||
'ksscsj': 'MO Starting Time',
|
||||
'kscssj': 'Test Starting Time',
|
||||
'kshbsj': 'MO Report Time',
|
||||
'kstcgs': 'QTY',
|
||||
'kssc': 'Production Starting',
|
||||
'kscs': 'Test Starting',
|
||||
'kshb': 'MO Report',
|
||||
'qxjxsc': 'You have not started the MO',
|
||||
'zwck': 'No W/H is found',
|
||||
'cpmc': 'FG name',
|
||||
'cpbm': 'FG Part Number',
|
||||
'scsl': 'QTY',
|
||||
'llts': 'Kit Picking QTY',
|
||||
'qsrllts': 'Please input the QTY',
|
||||
'llthbddy': 'The number exceeds the MO requirement',
|
||||
'csllddh': 'Material Picking List #',
|
||||
'ck': 'W/H',
|
||||
'ckcx': 'W/H Query',
|
||||
'ckbh': 'W/H #',
|
||||
'cw': 'Bin Name',
|
||||
'cwcx': 'Bin Query',
|
||||
'cwbh': 'Bin #',
|
||||
'wzdgcw': 'Bin # is not found',
|
||||
'ksmcw': 'Scan Bin #',
|
||||
'qsrph': 'Input Lot #',
|
||||
'cwwqy': 'Bin # is not enabled',
|
||||
'ymrckbt': 'Different W/H from default. Replace?',
|
||||
'gmkxyzdck': 'W/H is required',
|
||||
'cwyqy': 'Bin # is required',
|
||||
'phbnwk': 'Lot # is required',
|
||||
'slbnwk': 'QTY is must greater than 0',
|
||||
'zwsmsj': 'No data is found.',
|
||||
'hgrksl': 'Qualified QTY',
|
||||
'qdyqbsc': 'All records deletion confirmation.',
|
||||
'tqbsc': 'Deletion Successfully!',
|
||||
'qbsc': 'Delete all',
|
||||
'zwph': 'Lot # is not found.',
|
||||
'dyj': 'Printer',
|
||||
'qxzdyj': 'Please select printer',
|
||||
'zbdy': 'Printing is ready',
|
||||
'sbmc': 'Device Name',
|
||||
'sbbm': 'Device Code',
|
||||
'whqdlyqx': 'Bluethooth is not connected',
|
||||
'ljcg': 'connection is successful.',
|
||||
'ljsb': 'connection failed.',
|
||||
'cjbqsb': 'QR code creation is failed',
|
||||
'ljydk': 'Bluetooth is disconnected,please re-connect to the Bluetooth.',
|
||||
'sxdj':'SDN #',
|
||||
'yzdj':'Pick up Items',
|
||||
'sdn':'SDN #',
|
||||
'slbndy':'Qty cannot be greater than'
|
||||
}
|
||||
}
|
22
pages.json
22
pages.json
@ -8,8 +8,7 @@
|
||||
"^l-(.*)": "@/components/l-ui/components/l-$1/l-$1.vue"
|
||||
}
|
||||
},
|
||||
"pages": [
|
||||
{
|
||||
"pages": [{
|
||||
"path": "pages/main/home"
|
||||
},
|
||||
{
|
||||
@ -69,6 +68,17 @@
|
||||
{
|
||||
"path": "pages/returnMaterials/material"
|
||||
},
|
||||
{
|
||||
"path": "pages/returnMaterials/print"
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/productionReturnVerify/index"
|
||||
},
|
||||
{
|
||||
"path": "pages/productionReturnVerify/material"
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/ruleClaim/index"
|
||||
},
|
||||
@ -122,7 +132,7 @@
|
||||
},
|
||||
{
|
||||
"path": "pages/BatchOutOftock/index"
|
||||
},
|
||||
},
|
||||
{
|
||||
"path": "pages/BatchOutOftock/material"
|
||||
},
|
||||
@ -144,7 +154,7 @@
|
||||
"popGesture": "none",
|
||||
"animationType": "fade-in",
|
||||
"animationDuration": 200
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -174,13 +184,13 @@
|
||||
"pagePath": "pages/main/home",
|
||||
"iconPath": "static/tabbar/home.png",
|
||||
"selectedIconPath": "static/tabbar/homea.png",
|
||||
"text": "首页"
|
||||
"text": "Main Screen"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/main/mine",
|
||||
"iconPath": "static/tabbar/me.png",
|
||||
"selectedIconPath": "static/tabbar/mea.png",
|
||||
"text": "我的"
|
||||
"text": "My"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="app status-bar-gap">
|
||||
<l-header title="批量销售出库" sticky #right>
|
||||
<l-header :title=" t('home.plxsck') " sticky #right>
|
||||
<view style="margin-right: 32rpx;" v-if="state.tabsIndex === '1'" @click="submit()">{{ t('verify.tj') }}</view>
|
||||
</l-header>
|
||||
<view class="page">
|
||||
@ -32,8 +32,8 @@
|
||||
queryString: '',
|
||||
tabsIndex: '1',
|
||||
tabsList: [
|
||||
{ name: computed(() => '所选单据'), type: '1' },
|
||||
{ name: computed(() => '验证单据'), type: '2' },
|
||||
{ name: computed(() => t('index.sxdj')), type: '1' },
|
||||
{ name: computed(() => t('index.yzdj')), type: '2' },
|
||||
],
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
|
@ -61,7 +61,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<scanFrame ref="scanFrameRef" @confirmation="scanFrameCnfirmation"
|
||||
<scanFrame ref="scanFrameRef" @confirmation="scanFrameCnfirmation" :qtyState="true"
|
||||
@scanFrameDataFeedback="(res:object)=>{state.scanFrameDataFeedback = res}"
|
||||
@fast="(row:any)=>{state.scanFrameDataFeedback = row}" @err="scanFrameErrFun" @boxShow="scanFrameBoxShowShow" />
|
||||
<shortcut ref="shortcutRef" @dataToscanFrame="dataToscanFrameFun" @boxShow="shortcutBoxShowShow" />
|
||||
@ -104,6 +104,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -124,7 +125,8 @@
|
||||
// scanFrameRef.value.stateShow(true)
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -152,6 +154,9 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
console.log(state.code);
|
||||
console.log(state.queryString);
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -198,13 +203,14 @@
|
||||
const str = JSON.stringify(obj);
|
||||
console.log(item);
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "SAL_OUTSTOCK", //数据类型
|
||||
FVHUBFormId: "SAL_OUTSTOCK", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
FVHUBFlot: item.batchNumberStr, //批号
|
||||
FVHUBFlot: item.batchNumberStr, //批号
|
||||
FVHUBJSON: item.FVHUBJSON, //序列号
|
||||
FVHUBStock: {
|
||||
FNUMBER: item.warehouseData.FNUMBER //仓库编号
|
||||
},
|
||||
@ -263,19 +269,17 @@
|
||||
EntryIds.push(item.FVHUBEntryId)
|
||||
ids.push(item.FID)
|
||||
ScanEntry.push({
|
||||
FENTRYID: item.FVHUBEntryId,
|
||||
Qty: item.FVHUBScanQty,
|
||||
Flot: item.FVHUBFlot,
|
||||
StockId: item.FVHUBStock,
|
||||
StockFlex: item.FVHUBStockFlex,
|
||||
Sno: item.FVHUBJSON
|
||||
Ids:state.materialId,
|
||||
EntryIds: item.FVHUBEntryId,
|
||||
// Qty: item.FVHUBScanQty,
|
||||
// Flot: item.FVHUBFlot,
|
||||
// StockId: item.FVHUBStock,
|
||||
// StockFlex: item.FVHUBStockFlex,
|
||||
FMaxcessSNo: item.FVHUBJSON
|
||||
})
|
||||
})
|
||||
//推送数据
|
||||
SAL_OUTSTOCKCheck({
|
||||
Ids: state.materialId,
|
||||
EntryIds: EntryIds.toString(),
|
||||
}).then((res : any) => {
|
||||
SAL_OUTSTOCKCheck({Items:ScanEntry}).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
fStockFlexDetailDelete({ Ids: ids.toString() }).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
@ -283,6 +287,8 @@
|
||||
uni.$u.toast('操作成功')
|
||||
}
|
||||
})
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
}
|
||||
|
||||
})
|
||||
@ -304,7 +310,7 @@
|
||||
*/
|
||||
const fnDataList = (FBillNo : any) => {
|
||||
let param = {
|
||||
id: FBillNo,
|
||||
Id: FBillNo,
|
||||
};
|
||||
uni.showLoading({ mask: true });
|
||||
SAL_OUTSTOCKView(param).then(res => {
|
||||
|
@ -118,6 +118,9 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
const fnToUrl = (item : any) => {
|
||||
toPages('/pages/BatchOutOftock/material',{id:item.id,fBillNo:item.fBillNo})
|
||||
}
|
||||
/**
|
||||
* 数据推送
|
||||
*/
|
||||
@ -161,12 +164,16 @@
|
||||
AutoAudit: 'true',
|
||||
ScanEntry: ScanEntry
|
||||
}
|
||||
}).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
}).then((resA : any) => {
|
||||
console.log(resA);
|
||||
if (resA.code === 200) {
|
||||
fStockFlexDetailDelete({ Ids: ids.toString() }).then((res : any) => {
|
||||
|
||||
if (res.code === 200) {
|
||||
fnDataList();
|
||||
uni.$u.toast(t('public.cg'))
|
||||
console.log({id:resA.data.SuccessEntitys[0].Id,fBillNo:resA.data.SuccessEntitys[0].Number});
|
||||
fnToUrl({id:resA.data.SuccessEntitys[0].Id,fBillNo:resA.data.SuccessEntitys[0].Number})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
@ -5,7 +5,7 @@
|
||||
<view class="list-box-list" v-if="state.dataList.length > 0">
|
||||
<view class="data-item" @click.stop="fnToUrl(item)"
|
||||
v-for="(item, index) in state.dataList" :key="index">
|
||||
<view class="tit">销售出库单单号:{{item.FBillNo}}</view>
|
||||
<view class="tit">{{ t('index.sdn') }}:{{item.FBillNo}}</view>
|
||||
<view class="line-p"></view>
|
||||
<view class="b-font">{{ t('receive.rq') }}:{{item.FDateFormat}}</view>
|
||||
</view>
|
||||
|
@ -40,11 +40,11 @@
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.FVHUBScanQty }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<!-- <view class="itemBox">
|
||||
<view>{{ t('index.ck') }}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item['FVHUBStock.FName'] }}</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="itemBox">
|
||||
<view>{{ t('public.xxh') }}</view>
|
||||
<view class="zongjian"></view>
|
||||
@ -91,7 +91,8 @@
|
||||
{ name: computed(() => t('index.bz')), type: '1' },
|
||||
{ name: computed(() => t('index.minbz')), type: '2' },
|
||||
],
|
||||
options: []
|
||||
options: [],
|
||||
code:''
|
||||
})
|
||||
onShow(() => {
|
||||
fnDataList()
|
||||
@ -103,7 +104,8 @@
|
||||
}).exec();
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
/**
|
||||
* 数据逻辑
|
||||
@ -125,6 +127,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -134,6 +137,7 @@
|
||||
FBarCode: val,
|
||||
}).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
console.log('断点1',res.data.Entry[0]);
|
||||
postTemporaryScanDraftSaveFun(res.data.Entry[0])
|
||||
}
|
||||
architectureRef.value.closeFun()
|
||||
@ -144,7 +148,7 @@
|
||||
console.log(item);
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "VHUB_BarcodePackBill", //数据类型
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.MaterialNumber, //物料编码
|
||||
FVHUBScanQty: item.BarCodeQty + '', //扫描数量
|
||||
FVHUBEntryId: item.Id, //行ID
|
||||
@ -171,6 +175,7 @@
|
||||
}
|
||||
//删除数据
|
||||
const fStockFlexDetailDeleteFun = (item : any) => {
|
||||
debugger
|
||||
uni.showModal({
|
||||
title: t('index.ts'), content: t('index.qdysc'), cancelText: t('index.qx'), confirmText: t('index.qd'),
|
||||
success(res) {
|
||||
|
@ -23,7 +23,7 @@
|
||||
<view class="type-item-text">{{ t('home.cgrk') }}</view>
|
||||
</view>
|
||||
<view class="type-item type-item-jz" @tap="toPages('/pages/split/index')">
|
||||
<view class="type-item-text">Split</view>
|
||||
<view class="type-item-text">{{ t('home.wlbzcf') }}</view>
|
||||
</view>
|
||||
<view class="type-item type-item-hl" @tap="toPages('/pages/material/index')">
|
||||
<view class="type-item-text">{{ t('home.scfl') }}</view>
|
||||
@ -34,6 +34,11 @@
|
||||
<view class="type-item type-item-hl" @tap="toPages('/pages/returnMaterials/index')">
|
||||
<view class="type-item-text">{{ t('home.sctl') }}</view>
|
||||
</view>
|
||||
|
||||
<view class="type-item type-item-hl" @tap="toPages('/pages/productionReturnVerify/index')">
|
||||
<view class="type-item-text">{{ t('home.sctlyz') }}</view>
|
||||
</view>
|
||||
|
||||
<view class="type-item type-item-hl" @tap="toPages('/pages/ruleClaim/index')">
|
||||
<view class="type-item-text">{{ t('index.ctll') }}</view>
|
||||
</view>
|
||||
@ -53,7 +58,7 @@
|
||||
<view class="type-item-text">{{ t('home.xxck') }}</view>
|
||||
</view>
|
||||
<view class="type-item type-item-hl" @tap="toPages('/pages/BatchOutOftock/index')">
|
||||
<view class="type-item-text">批量销售出库</view>
|
||||
<view class="type-item-text">{{ t('home.plxsck') }}</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<view class="app status-bar-gap">
|
||||
<view class="page-bc"></view>
|
||||
<view class="page">
|
||||
<view style="display: flex;align-items: center">
|
||||
<view style="display: flex;align-items: center;margin-top: 5vh;">
|
||||
<view style="margin-right: 32rpx">
|
||||
<up-image :show-loading="true" src="../../static/images/ygtx.png" width="136rpx" height="136rpx"
|
||||
radius="136rpx"></up-image>
|
||||
@ -12,7 +12,7 @@
|
||||
<view class="gysName">{{ state.userInfo.CustomName }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="common">
|
||||
<!-- <view class="common">
|
||||
<view class="type-bc">
|
||||
<view class="type-item type-item-gc" @tap="toPages('/pages/receive/index')">
|
||||
<view class="type-item-text">采购收料</view>
|
||||
@ -27,9 +27,9 @@
|
||||
<view class="type-item-text">来料验证</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<view class="input-box">
|
||||
<view class="input-box" style="margin-top: 10vh;">
|
||||
<view class="input-item u-flex" style="justify-content: space-between;align-items: center">
|
||||
<view class="item-title">扫描记录</view>
|
||||
<up-icon name="play-right-fill" size="8"></up-icon>
|
||||
@ -48,7 +48,7 @@
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
<view class="outLogin" @click="outLoginFun">退出登录</view>
|
||||
<view class="outLogin" @click="outLoginFun">{{ t('login.tcdl') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -56,6 +56,9 @@
|
||||
import { reactive, ref } from 'vue';
|
||||
import { onLoad, onShow } from '@dcloudio/uni-app'
|
||||
import { logout } from "../../common/request/api/api";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
const getI18n = useI18n()
|
||||
const { t, locale } = getI18n
|
||||
const state = reactive({
|
||||
userInfo:{}
|
||||
})
|
||||
|
@ -99,6 +99,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -121,7 +122,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val:boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -149,6 +151,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -200,7 +203,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PRD_PPBOM", //数据类型
|
||||
FVHUBFBillNo: state.BillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
|
@ -106,7 +106,8 @@
|
||||
tabsList: [
|
||||
{ name: computed(() => t('index.bz')), type: '1' },
|
||||
{ name: computed(() => t('index.minbz')), type: '2' },
|
||||
]
|
||||
],
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -128,7 +129,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const upTabsItemFun = (e:any) => {
|
||||
state.tabsIndex = e.type
|
||||
@ -158,6 +160,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
|
208
pages/productionReturnVerify/index.vue
Normal file
208
pages/productionReturnVerify/index.vue
Normal file
@ -0,0 +1,208 @@
|
||||
<template>
|
||||
<view class="app status-bar-gap">
|
||||
<view class="page">
|
||||
<l-header :title="t('home.sctl')" sticky></l-header>
|
||||
<architecture ref="architectureRef" :dataType="t('home.sctl')" :placeholder="t('index.scdd')"
|
||||
@scanConfirm="scanConfirmFun" @inputConfirm="changeFun" />
|
||||
<view class="receive-listBox" ref="listBoxRef">
|
||||
<scroll-view id="scroll-box" class="scroll-box" scroll-y="true" :style="{'height':state.scrollHeight+'px'}"
|
||||
@scrolltolower="fnScrollBottom()">
|
||||
<view class="list-box-list" v-if="state.dataList.length > 0">
|
||||
<view class="data-item" @click.stop="fnToUrl(item)" v-for="(item, index) in state.dataList" :key="index">
|
||||
<view class="tit">{{ t('index.scdd') }}:{{item.FBillNo}}</view>
|
||||
<view class="line-p"></view>
|
||||
<view class="b-font">{{ t('receive.rq') }}:{{item.FDateFormat}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="state.dataList.length==0">
|
||||
<up-empty mode="list"></up-empty>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { reactive, nextTick, onMounted, ref } from 'vue';
|
||||
import { onLoad, onShow, onReachBottom } from '@dcloudio/uni-app'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { parseTime } from '../../utils/tools.js';
|
||||
import { PRDPPBOMList, PRD_ReturnMtrlList } from '../../common/request/api/api';
|
||||
const listBoxRef = ref(null)
|
||||
const getI18n = useI18n()
|
||||
const architectureRef = ref()
|
||||
const { t, locale } = getI18n
|
||||
const state = reactive({
|
||||
queryString: '',
|
||||
dataList: [],
|
||||
scrollHeight: 0,
|
||||
page: {
|
||||
pageIndex: 1,
|
||||
pageSize: 200,
|
||||
totalCount: 0
|
||||
}
|
||||
})
|
||||
|
||||
onShow(() => {
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select(".receive-listBox").boundingClientRect((data) => {
|
||||
state.scrollHeight = data.height
|
||||
}).exec();
|
||||
fnDataList()
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
state.queryString = e
|
||||
state.page.pageIndex = 1
|
||||
state.dataList = []
|
||||
fnDataList()
|
||||
architectureRef.value.closeFun()
|
||||
}
|
||||
const fnScrollBottom = () => {
|
||||
console.log(state.page.pageIndex * state.page.pageSize, state.page.totalCount);
|
||||
if (state.page.pageIndex * state.page.pageSize <= state.page.totalCount) {
|
||||
debugger
|
||||
state.page.pageIndex++;
|
||||
uni.showLoading({ mask: true });
|
||||
setTimeout(() => {
|
||||
fnDataList();
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
const fnToUrl = (item : any) => {
|
||||
toPages('/pages/productionReturnVerify/material', { id: item.FID, fBillNo: item.FBillNo })
|
||||
}
|
||||
const debounceTimer = ref()
|
||||
const changeFun = (e : any) => {
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
state.page.pageIndex = 1
|
||||
state.dataList = []
|
||||
fnDataList()
|
||||
})
|
||||
}
|
||||
const fnDataList = () => {
|
||||
let param = {
|
||||
queryString: state.queryString,
|
||||
pageIndex: state.page.pageIndex,
|
||||
pageSize: state.page.pageSize,
|
||||
FType: 'Return'
|
||||
};
|
||||
if (state.page.pageIndex == 1) {
|
||||
uni.showLoading({ mask: true });
|
||||
}
|
||||
PRD_ReturnMtrlList(param).then(res => {
|
||||
uni.hideLoading();
|
||||
if (res.code == 200) {
|
||||
let result = res.data;
|
||||
let dataArray = result.list;
|
||||
dataArray.forEach(p => {
|
||||
p.FDateFormat = parseTime(p.FCREATEDATE, '{y}-{m}-{d}');
|
||||
});
|
||||
|
||||
if (state.page.pageIndex == 1) {
|
||||
state.dataList = dataArray;
|
||||
}
|
||||
else {
|
||||
state.dataList = state.dataList.concat(dataArray);
|
||||
}
|
||||
state.page.totalCount = result.total;
|
||||
|
||||
if (state.dataList.length == state.page.totalCount) {
|
||||
// more_status.value = 'nomore';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
const toPages = (url : string, data : any = {}) => {
|
||||
uni.$u.route({
|
||||
url: url,
|
||||
params: data
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.app {
|
||||
background-color: #F5F5F5;
|
||||
|
||||
.page {
|
||||
padding: 18px 32rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
|
||||
.input-box {
|
||||
background-color: white;
|
||||
box-sizing: border-box;
|
||||
padding: 0 16rpx;
|
||||
border-radius: 24rpx;
|
||||
margin: 0 0 32rpx 0;
|
||||
|
||||
.u-textarea {
|
||||
padding: 0 !important;
|
||||
font-size: 24rpx !important;
|
||||
color: #999999 !important;
|
||||
}
|
||||
|
||||
.input-item {
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx 0;
|
||||
color: #222222;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
|
||||
.item-title {
|
||||
//font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.item-text {
|
||||
font-weight: 400;
|
||||
font-size: 27rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.receive-listBox {
|
||||
flex: 1;
|
||||
|
||||
.list-box-list {
|
||||
width: 100%;
|
||||
|
||||
// margin: 20rpx auto;
|
||||
.data-item {
|
||||
border: 1px solid #efeaea;
|
||||
border-radius: 20rpx;
|
||||
box-shadow: 0rpx 15rpx 15rpx #efeaea;
|
||||
padding: 20rpx 20rpx 0;
|
||||
margin-bottom: 20rpx;
|
||||
background-color: #ffffff;
|
||||
|
||||
.tit {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
|
||||
.line-p {
|
||||
border: 1px solid #efeaea;
|
||||
}
|
||||
|
||||
.b-font {
|
||||
font-size: 25rpx;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
428
pages/productionReturnVerify/material.vue
Normal file
428
pages/productionReturnVerify/material.vue
Normal file
@ -0,0 +1,428 @@
|
||||
<template>
|
||||
<view class="app status-bar-gap">
|
||||
<view class="page">
|
||||
<l-header :title="state.FBillNo" sticky #right>
|
||||
<view style="margin-right: 32rpx;" @click="dataPushNotification">{{ t('receive.tj') }}</view>
|
||||
</l-header>
|
||||
<architecture ref="architectureRef" :dataType="t('home.llyz')" icon="scan" :placeholder="t('verify.tm')"
|
||||
@scanConfirm="scanConfirmFun" @inputConfirm="changeFun"
|
||||
:fence="[state.scanFrameRefShow,state.shortcutRefShow]" />
|
||||
<view class="material-listBox">
|
||||
<scroll-view id="scroll-box" class="scroll-box" scroll-y="true" :style="{'height':state.scrollHeight+'px'}">
|
||||
<view class="list-box-list" v-if="state.dataList.length > 0">
|
||||
<view class="data-item" v-for="(item, index) in state.dataList"
|
||||
:style="[{'background-color':interpolation(item)},{'margin-bottom':index + 1 === state.dataList.length ? '80px' : '20px'}]"
|
||||
:key="index">
|
||||
<view class="text" style="margin-bottom: 20px;display: flex;">
|
||||
<view>{{ item.MaterialName }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.djbh')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ state.FBillNo }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.wlbm')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.MaterialNo }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.ph')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.Lot }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.ys')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.CheckJoinQty }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.ws')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.NoCheckQty }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.yss')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.CheckQty }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="text-align: center;color: #F5F5F5;height: 20px;"></view>
|
||||
</view>
|
||||
<view v-if="state.dataList.length==0">
|
||||
<up-empty mode="list"></up-empty>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<scanFrame ref="scanFrameRef" @confirmation="scanFrameCnfirmation" :qtyState="true"
|
||||
@scanFrameDataFeedback="(res:object)=>{state.scanFrameDataFeedback = res}"
|
||||
@fast="(row:any)=>{state.scanFrameDataFeedback = row}" @err="scanFrameErrFun" @boxShow="scanFrameBoxShowShow" />
|
||||
<shortcut ref="shortcutRef" @dataToscanFrame="dataToscanFrameFun" @boxShow="shortcutBoxShowShow" />
|
||||
<tools ref="toolsRef" @defaultPopup="defaultPopupFun" @scanRecord="scanRecordFun" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { reactive, nextTick, onMounted, ref, computed, watch } from 'vue';
|
||||
import { onLoad, onShow, onReachBottom, } from '@dcloudio/uni-app'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { parseTime } from '../../utils/tools.js';
|
||||
import { PRDPPBOMPush, PRDPPBOMScanData, PRDPPBOMView, PRD_ReturnMtrlScanData, PRD_ReturnMtrlView, fStockFlexDetailDelete, temporaryScanDraftSave, temporaryScanList } from '../../common/request/api/api';
|
||||
import scanFrame from '../../components/scan-frame/scan-frame.vue'
|
||||
import tools from '../../components/tools/tools.vue'
|
||||
import shortcut from '../../components/tools/shortcut.vue'
|
||||
import { sqlite } from '../../stores/sqlite'
|
||||
const architectureRef = ref()
|
||||
const DB = sqlite()
|
||||
const inputRef = ref()
|
||||
const scanFrameRef = ref()
|
||||
const shortcutRef = ref()
|
||||
const getI18n = useI18n()
|
||||
const { t, locale } = getI18n
|
||||
const state = reactive({
|
||||
scanFrameRefShow: false,
|
||||
shortcutRefShow: false,
|
||||
queryString: '',
|
||||
dataList: [],
|
||||
scrollHeight: 0,
|
||||
page: {
|
||||
pageIndex: 1,
|
||||
pageSize: 200,
|
||||
totalCount: 0
|
||||
},
|
||||
FBillNo: '',
|
||||
BillNo: '',
|
||||
materialId: '',
|
||||
supplierName: '',
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code: ''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
state.materialId = pageData.id
|
||||
state.FBillNo = pageData.fBillNo
|
||||
state.BillNo = pageData.BillNo
|
||||
fnDataList(state.materialId);
|
||||
})
|
||||
onShow(() => {
|
||||
if (state.materialId) {
|
||||
fnDataList(state.materialId);
|
||||
}
|
||||
})
|
||||
onMounted(() => {
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select(".material-listBox").boundingClientRect((data) => {
|
||||
state.scrollHeight = data.height
|
||||
}).exec();
|
||||
// scanFrameRef.value.stateShow(true)
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
if (e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
}
|
||||
const scanFrameBoxShowShow = (val : boolean) => {
|
||||
state.scanFrameRefShow = val
|
||||
}
|
||||
/**
|
||||
* 数据逻辑
|
||||
*/
|
||||
const interpolation = (item : any) => {
|
||||
if (item.CheckJoinQty === 0 && item.CheckJoinQty + item.NoCheckQty === item.CheckQty) {
|
||||
return '#ffffff'
|
||||
}
|
||||
if (item.CheckJoinQty !== 0 && item.NoCheckQty !== 0 && item.CheckJoinQty + item.NoCheckQty === item.CheckQty) {
|
||||
return 'rgb(254 227 87)'
|
||||
}
|
||||
if (item.CheckJoinQty === item.CheckQty) {
|
||||
return 'rgb(87 191 254)'
|
||||
}
|
||||
}
|
||||
//防抖输入
|
||||
const debounceTimer = ref()
|
||||
const changeFun = (e : any) => {
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if (e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
//查询录入
|
||||
const getReceiveBillScanData = (val : string) => {
|
||||
PRD_ReturnMtrlScanData({
|
||||
FBarCode: val,
|
||||
FBillNo: state.BillNo,
|
||||
}).then((res : any) => {
|
||||
if (res.data !== null) {
|
||||
console.log(res);
|
||||
const scanData = res.data
|
||||
// if (scanData.UnScanQty > scanData.BarCodeQty) scanData.UnScanQty = scanData.BarCodeQty
|
||||
scanFrameRef.value.getreceiveBillScanData({ ...scanData, queryString: state.queryString, scanFrameShowSate: state.shortcutDataFeedback.scanFrameShowSate })
|
||||
if (Object.keys(state.shortcutDataFeedback).length) {
|
||||
if (state.shortcutDataFeedback.scanFrameShowSate) {
|
||||
scanFrameRef.value.stateShow(true)
|
||||
} else {
|
||||
postTemporaryScanDraftSaveFun(state.scanFrameDataFeedback)
|
||||
}
|
||||
} else {
|
||||
scanFrameRef.value.stateShow(true)
|
||||
}
|
||||
} else {
|
||||
uni.$u.toast(t('index.bmygtsj'))
|
||||
state.queryString = ''
|
||||
}
|
||||
architectureRef.value.closeFun()
|
||||
})
|
||||
}
|
||||
//固定弹窗数据传输
|
||||
const scanFrameCnfirmation = (row : any) => {
|
||||
state.scanFrameDataFeedback = row
|
||||
postTemporaryScanDraftSaveFun(state.scanFrameDataFeedback)
|
||||
}
|
||||
const scanFrameErrFun = () => {
|
||||
scanFrameRef.value.stateShow(true)
|
||||
}
|
||||
//数据记录暂存
|
||||
const postTemporaryScanDraftSaveFun = (item : any) => {
|
||||
const obj = {};
|
||||
if (item.warehouseData.FIsOpenLocation && Object.keys(item.locationData).length != 0) {
|
||||
const key = `FVHUBSTOCKFLEX__FF${item.locationData.FID}`; //仓位Id
|
||||
obj[key] = { FNumber: item.locationData.FlexEntryId.Number }; //仓位编码
|
||||
}
|
||||
const str = JSON.stringify(obj);
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PRD_ReturnMtrl", //数据类型
|
||||
FVHUBFBillNo: state.BillNo, //单据编号
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
FVHUBFlot: item.batchNumberStr, //批号
|
||||
FVHUBStock: {
|
||||
FNUMBER: item.warehouseData.FNUMBER //仓库编号
|
||||
},
|
||||
FVHUBMaterial: {
|
||||
FNUMBER: item.articlesStr
|
||||
},
|
||||
FType: "Return",
|
||||
...JSON.parse(str),
|
||||
}).then((res : any) => {
|
||||
console.log(res);
|
||||
state.queryString = ''
|
||||
if (res.data.IsSuccess) {
|
||||
fnDataList(state.materialId);
|
||||
uni.$u.toast(t('public.cg'))
|
||||
scanFrameRef.value.stateShow(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
//默认值传递
|
||||
const dataToscanFrameFun = (res : object) => {
|
||||
state.shortcutDataFeedback = res
|
||||
scanFrameRef.value.getComponentsData(res)
|
||||
shortcutRef.value.stateShow(false)
|
||||
}
|
||||
//唤起默认值弹窗
|
||||
const defaultPopupFun = () => {
|
||||
shortcutRef.value.stateShow(true)
|
||||
}
|
||||
const scanRecordFun = () => {
|
||||
toPages('/pages/records/index', {
|
||||
FormId: 'PRD_ReturnMtrl',
|
||||
FbillNo: state.BillNo
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 数据推送
|
||||
*/
|
||||
const dataPushNotification = () => {
|
||||
uni.showModal({
|
||||
title: t('public.ts'), content: t('public.tjMessage'), cancelText: t('public.cancel'), confirmText: t('public.confirm'),
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
let EntryIds : any = []
|
||||
let ids : any = []
|
||||
let ScanEntry : any = []
|
||||
let param = {
|
||||
FormId: 'PRD_ReturnMtrl',
|
||||
UserId: uni.getStorageSync('userInfo').Context.UserId,
|
||||
FbillNo: state.BillNo
|
||||
};
|
||||
uni.showLoading({ mask: true });
|
||||
//获取扫描数据里的所有数据
|
||||
temporaryScanList(param).then(res => {
|
||||
if (res.code == 200) {
|
||||
if (res.data.list.length != 0) {
|
||||
res.data.list.forEach((item : any) => {
|
||||
EntryIds.push(item.FVHUBEntryId)
|
||||
ids.push(item.FID)
|
||||
ScanEntry.push({
|
||||
FENTRYID: item.FVHUBEntryId,
|
||||
Qty: item.FVHUBScanQty,
|
||||
Flot: item.FVHUBFlot,
|
||||
StockId: item.FVHUBStock,
|
||||
StockFlex: item.FVHUBStockFlex
|
||||
})
|
||||
})
|
||||
//推送数据
|
||||
PRDPPBOMPush({
|
||||
EntryIds: EntryIds.toString(),
|
||||
Ids: state.materialId
|
||||
}).then((resA : any) => {
|
||||
if (resA.code === 200) {
|
||||
fStockFlexDetailDelete({ Ids: ids.toString() }).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
fnDataList(state.materialId);
|
||||
uni.$u.toast(t('public.cg'))
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
uni.$u.toast(t('public.noDataMessage'))
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
} else if (res.cancel) {
|
||||
console.log('用户点击取消');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据请求
|
||||
*/
|
||||
const fnDataList = (FBillNo : any, statesItem : boolean = false) => {
|
||||
let param = {
|
||||
id: FBillNo,
|
||||
IsFeed: 'other'
|
||||
};
|
||||
uni.showLoading({ mask: true });
|
||||
PRD_ReturnMtrlView(param).then(res => {
|
||||
uni.hideLoading();
|
||||
if (res.code == 200) {
|
||||
state.BillNo = res.data.BillNo
|
||||
state.dataList = []
|
||||
let dataListArray = res.data.Entry;
|
||||
if (dataListArray.length > 0) {
|
||||
dataListArray.forEach((p : any) => {
|
||||
let item = {
|
||||
Id: p.Id,
|
||||
MaterialNo: p.MaterialNumber, //物料编码
|
||||
MaterialName: formatLangTextValue(p.MaterialName), //物料名称
|
||||
Lot: p.FLot_Text, //批号
|
||||
CheckQty: p.Qty, //应扫数量
|
||||
CheckJoinQty: p.ScanedQty, //已扫数量
|
||||
NoCheckQty: p.UnScanQty, //未扫数量
|
||||
MultiLanguageText: Object.keys(p.StockId).length ? formatLangTextValue(p.StockId.Name) : ''
|
||||
};
|
||||
state.dataList.push(item);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//中英切换
|
||||
const formatLangTextValue = (val : any) => {
|
||||
let lang_Id = uni.getStorageSync('locale')
|
||||
let item = val.find(p => p.Key == (lang_Id == 'cn' ? 2052 : 1033));
|
||||
if (item != null) {
|
||||
return item.Value;
|
||||
}
|
||||
return val[0].Value;
|
||||
}
|
||||
const toPages = (url : string, data : any = {}) => {
|
||||
uni.$u.route({
|
||||
url: url,
|
||||
params: data
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.app {
|
||||
background-color: #F5F5F5;
|
||||
|
||||
.page {
|
||||
padding: 18px 32rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
|
||||
.input-box {
|
||||
background-color: white;
|
||||
box-sizing: border-box;
|
||||
padding: 0 16rpx;
|
||||
border-radius: 24rpx;
|
||||
margin: 0 0 32rpx 0;
|
||||
|
||||
.u-textarea {
|
||||
padding: 0 !important;
|
||||
font-size: 24rpx !important;
|
||||
color: #999999 !important;
|
||||
}
|
||||
|
||||
.input-item {
|
||||
box-sizing: border-box;
|
||||
padding: 16rpx 0;
|
||||
color: #222222;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
|
||||
.item-title {
|
||||
//font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.item-text {
|
||||
font-weight: 400;
|
||||
font-size: 27rpx;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.material-listBox {
|
||||
flex: 1;
|
||||
|
||||
.list-box-list {
|
||||
width: 100%;
|
||||
|
||||
.data-item {
|
||||
border: 1px solid #efeaea;
|
||||
border-radius: 20rpx;
|
||||
box-shadow: 0rpx 15rpx 15rpx #efeaea;
|
||||
padding: 20rpx 22rpx;
|
||||
margin-bottom: 16rpx;
|
||||
background-color: #ffffff;
|
||||
|
||||
.itemBox {
|
||||
line-height: 50rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.zongjian {
|
||||
height: 1px;
|
||||
flex: 1;
|
||||
background-color: #f0f0f0;
|
||||
margin: 0 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -104,6 +104,8 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -124,7 +126,8 @@
|
||||
// scanFrameRef.value.stateShow(true)
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -152,6 +155,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -191,7 +195,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PRD_MORPT", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
@ -208,7 +212,7 @@
|
||||
state.queryString = ''
|
||||
if (res.data.IsSuccess) {
|
||||
fnDataList(state.materialId);
|
||||
uni.$u.toast('成功')
|
||||
uni.$u.toast(t('public.cg'))
|
||||
scanFrameRef.value.stateShow(false)
|
||||
}
|
||||
})
|
||||
@ -276,7 +280,7 @@
|
||||
fStockFlexDetailDelete({ Ids: ids.toString() }).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
fnDataList(state.materialId);
|
||||
uni.$u.toast('操作成功')
|
||||
uni.$u.toast(t('public.cg'))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -113,6 +113,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -134,7 +135,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -163,6 +165,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
@ -215,7 +218,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PUR_ReceiveBill", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
|
@ -115,6 +115,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -136,7 +137,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -165,6 +167,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -177,6 +180,8 @@
|
||||
}).then((res : any) => {
|
||||
if (res.data !== null) {
|
||||
console.log(res);
|
||||
const scanData = res.data
|
||||
if( scanData.UnScanQty > scanData.BarCodeQty ) scanData.UnScanQty = scanData.BarCodeQty
|
||||
scanFrameRef.value.getreceiveBillScanData({ ...res.data, queryString: state.queryString, scanFrameShowSate: state.shortcutDataFeedback.scanFrameShowSate, stashVerify: true })
|
||||
if (Object.keys(state.shortcutDataFeedback).length) {
|
||||
if (state.shortcutDataFeedback.scanFrameShowSate) {
|
||||
@ -217,7 +222,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PUR_ReceiveBill", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
|
@ -21,15 +21,13 @@
|
||||
</view>
|
||||
<view class="timebox">
|
||||
<view>{{ t('index.kshbsj') }}:</view>
|
||||
<!-- <uni-datetime-picker hasInput :show="state.FProReportTimeShow" v-model="state.FProReportTimes"
|
||||
:visibleItemCount="3" disabled mode="datetime"></uni-datetime-picker> -->
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ state.FProReportTimes }}</view>
|
||||
</view>
|
||||
<view class="timebox">
|
||||
<view>{{ t('index.scsl') }}:</view>
|
||||
<up-input :placeholder="t('index.scsl')" clearable inputmode="numeric" v-model="state.qty"
|
||||
:disabled="state.type !== '2'"></up-input>
|
||||
:disabled="state.type !== '3'"></up-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btnList">
|
||||
@ -74,32 +72,32 @@
|
||||
state.FBillNo = pageData.FBillNo
|
||||
state.type = pageData.type
|
||||
if (state.type === '1') state.qty = pageData.Entry[0].Qty
|
||||
if (state.type === '3') state.qty = pageData.Entry[0].TestQty
|
||||
if (state.type === '2') state.qty = pageData.Entry[0].ReportQty
|
||||
|
||||
if (state.type === '2') state.qty = pageData.Entry[0].TestQty
|
||||
if (state.type === '3') state.qty = pageData.Entry[0].ReportQty
|
||||
|
||||
if (state.type === '1' && state.FStartProTimes == '') {
|
||||
state.FStartProTimes = timeFormat(pageData.time, 'yyyy-mm-dd hh:MM:ss')
|
||||
}
|
||||
if (pageData.FStartProTimes !== '') {
|
||||
state.FStartProTimes = pageData.FStartProTimes.replace("T", " ")
|
||||
}
|
||||
if (state.type === '2' && state.FProReportTimes == '') {
|
||||
if (state.type === '2' && state.FProTestTimes == '') {
|
||||
state.FProTestTimes = timeFormat(pageData.time, 'yyyy-mm-dd hh:MM:ss')
|
||||
}
|
||||
if (state.type === '3' && state.FProReportTimes == '') {
|
||||
state.FProReportTimes = timeFormat(pageData.time, 'yyyy-mm-dd hh:MM:ss')
|
||||
}
|
||||
if (pageData.FProReportTimes !== '') {
|
||||
state.FProReportTimes = pageData.FProReportTimes.replace("T", " ")
|
||||
}
|
||||
if (state.type === '3' && state.FProTestTimes == '') {
|
||||
state.FProTestTimes = timeFormat(pageData.time, 'yyyy-mm-dd hh:MM:ss')
|
||||
}
|
||||
if (pageData.FProTestTimes !== '') {
|
||||
state.FProTestTimes = pageData.FProTestTimes.replace("T", " ")
|
||||
}
|
||||
})
|
||||
const titleText = () => {
|
||||
if (state.type === '1') return t('index.kssc')
|
||||
if (state.type === '3') return t('index.kscs')
|
||||
if (state.type === '2') return t('index.kshb')
|
||||
if (state.type === '2') return t('index.kscs')
|
||||
if (state.type === '3') return t('index.kshb')
|
||||
}
|
||||
const PRD_MORPTSaveFun = () => {
|
||||
PRD_MOViewIntoPro({
|
||||
@ -123,12 +121,12 @@
|
||||
FEntity: [{ FEntryID: res.data.Entry[0].FRPFENTRYID, FQuaQty: Number(state.qty) }]
|
||||
})
|
||||
}
|
||||
PRD_MORPTSave(state.type === '3' ? obj1 : obj2).then((resItem : any) => {
|
||||
PRD_MORPTSave(state.type === '3' ? obj2 : obj1).then((resItem : any) => {
|
||||
if (resItem.code === 200) {
|
||||
// uni.$u.toast(t('public.cg'))
|
||||
if(state.type === '2'){
|
||||
toPages('/pages/putInProd/print',state.EnterIntoProData)
|
||||
}
|
||||
uni.$u.toast(t('public.cg'))
|
||||
// if(state.type === '3'){
|
||||
// toPages('/pages/putInProd/print',state.EnterIntoProData)
|
||||
// }
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
@ -55,8 +55,8 @@
|
||||
type: '1',
|
||||
tabsList: [
|
||||
{ name: computed(() => t('home.kssc')), type: '1' },
|
||||
{ name: computed(() => t('home.kscs')), type: '3' },
|
||||
{ name: computed(() => t('home.kshb')), type: '2' },
|
||||
{ name: computed(() => t('home.kscs')), type: '2' },
|
||||
{ name: computed(() => t('home.kshb')), type: '3' },
|
||||
]
|
||||
})
|
||||
onShow(() => {
|
||||
@ -73,7 +73,7 @@
|
||||
state.queryString = e
|
||||
state.page.pageIndex = 1
|
||||
state.dataList = []
|
||||
fnDataList()
|
||||
fnDataList(true)
|
||||
architectureRef.value.closeFun()
|
||||
}
|
||||
const setScrollableTabStateFun = (item : any) => {
|
||||
@ -103,6 +103,7 @@
|
||||
PRD_MOViewIntoPro({
|
||||
Number: state.queryString
|
||||
}).then((res : any) => {
|
||||
console.log('断点2');
|
||||
if (res.code === 200) {
|
||||
if (typeVertical === 'details') {
|
||||
pageDataInfoCom.putInProdPageData({ ...res.data, ...item, time: new Date().getTime(), type: state.type })
|
||||
|
@ -27,11 +27,11 @@
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.Lot }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<!-- <view class="itemBox">
|
||||
<view>{{ t('index.ck') }}</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.MultiLanguageText }}</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="itemBox">
|
||||
<view>{{ t('index.hgrksl') }}</view>
|
||||
<view class="zongjian"></view>
|
||||
|
@ -188,7 +188,6 @@
|
||||
command.setSize(100, 50)
|
||||
command.setGap(2)
|
||||
command.setCls()
|
||||
|
||||
command.setQR(15, 15, "L", 3, "A", item.FBarCode)
|
||||
command.setText(120, 15, "TSS24.BF2", 1, 1, `Date:${item.FDate.split('T')[0]}`)
|
||||
command.setText(120, 40, "TSS24.BF2", 1, 1, `MO#:${item.FSrcBillNo}`)
|
||||
|
@ -107,6 +107,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -147,6 +148,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
@ -195,7 +197,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PUR_PurchaseOrder", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
|
@ -103,12 +103,14 @@
|
||||
navIndex: 0,
|
||||
FormId: '',
|
||||
FbillNo: '',
|
||||
userId: ''
|
||||
userId: '',
|
||||
apiData:{}
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
state.FormId = pageData.FormId
|
||||
state.FbillNo = pageData.FbillNo
|
||||
state.userId = uni.getStorageSync('userInfo').Context.UserId
|
||||
state.apiData = pageData.apiData
|
||||
fnDataList()
|
||||
})
|
||||
onMounted(() => {
|
||||
@ -130,9 +132,10 @@
|
||||
|
||||
const navClick = (index : any) => { state.navIndex = index }
|
||||
const onClick = (e : any) => { }
|
||||
const swipeChange = (e : any, index : any) => { }
|
||||
const swipeChange = (e : any, index : any) => {}
|
||||
|
||||
const fStockFlexDetailDeleteFun = (item : any) => {
|
||||
|
||||
uni.showModal({
|
||||
title: t('index.ts'), content: t('index.qdysc'), cancelText: t('public.cancel'), confirmText: t('public.confirm'),
|
||||
success(res) {
|
||||
@ -188,7 +191,8 @@
|
||||
pageIndex: state.page.pageIndex,
|
||||
FormId: state.FormId,
|
||||
UserId: state.userId,
|
||||
FbillNo: state.FbillNo
|
||||
FbillNo: state.FbillNo,
|
||||
...state.apiData
|
||||
};
|
||||
uni.showLoading({ mask: true });
|
||||
temporaryScanList(param).then(res => {
|
||||
|
@ -109,6 +109,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -130,7 +131,8 @@
|
||||
// scanFrameRef.value.stateShow(true)
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val:boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -158,6 +160,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
@ -207,9 +210,10 @@
|
||||
const str = JSON.stringify(obj);
|
||||
console.log(item);
|
||||
temporaryScanDraftSave({
|
||||
FType : "Return",
|
||||
FVHUBFormId: "PRD_PPBOM", //数据类型
|
||||
FVHUBFBillNo: state.BillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
@ -220,7 +224,6 @@
|
||||
FVHUBMaterial: {
|
||||
FNUMBER: item.articlesStr
|
||||
},
|
||||
FType: "Return",
|
||||
...JSON.parse(str),
|
||||
}).then((res : any) => {
|
||||
console.log(res);
|
||||
@ -245,7 +248,8 @@
|
||||
const scanRecordFun = () => {
|
||||
toPages('/pages/records/index', {
|
||||
FormId: 'PRD_PPBOM',
|
||||
FbillNo: state.BillNo
|
||||
FbillNo: state.BillNo,
|
||||
apiData:{FType : "Return"}
|
||||
})
|
||||
}
|
||||
/**
|
||||
@ -262,7 +266,8 @@
|
||||
let param = {
|
||||
FormId: 'PRD_PPBOM',
|
||||
UserId: uni.getStorageSync('userInfo').Context.UserId,
|
||||
FbillNo: state.BillNo
|
||||
FbillNo: state.BillNo,
|
||||
FType : "Return",
|
||||
};
|
||||
uni.showLoading({ mask: true });
|
||||
//获取扫描数据里的所有数据
|
||||
@ -289,12 +294,13 @@
|
||||
AutoAudit: 'true',
|
||||
ScanEntry: ScanEntry
|
||||
}
|
||||
}).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
}).then((resA : any) => {
|
||||
if (resA.code === 200) {
|
||||
fStockFlexDetailDelete({ Ids: ids.toString() }).then((res : any) => {
|
||||
if (res.code === 200) {
|
||||
fnDataList(state.materialId);
|
||||
uni.$u.toast(t('public.cg'))
|
||||
toPages('/pages/returnMaterials/print',{fBillNo:resA.data.SuccessEntitys[0].Number})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -133,7 +133,6 @@
|
||||
<style lang="scss">
|
||||
.app {
|
||||
background-color: #F5F5F5;
|
||||
|
||||
.page {
|
||||
padding: 18px 32rpx;
|
||||
display: flex;
|
||||
|
@ -113,6 +113,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -134,7 +135,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -163,6 +165,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
@ -207,9 +210,9 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PRD_PickMtrl", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr, //扫描数量
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: item.id, //行ID
|
||||
FVHUBFlot: item.batchNumberStr, //批号
|
||||
FVHUBStock: {
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="app status-bar-gap">
|
||||
<view class="page">
|
||||
<l-header title="Split" sticky #right>
|
||||
<l-header :title="t('home.wlbzcf')" sticky #right>
|
||||
<view style="margin-right: 32rpx;">{{ t('receive.tj') }}</view>
|
||||
</l-header>
|
||||
<architecture ref="architectureRef" :dataType="t('home.scfl')" icon="scan" :placeholder="t('verify.tm')"
|
||||
@ -113,7 +113,8 @@
|
||||
})
|
||||
}
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const toPrint = () => {
|
||||
if(state.qty === 0){
|
||||
|
@ -151,10 +151,11 @@
|
||||
const createLabel = (item : any) => {
|
||||
var command = tsc.default.createNew()
|
||||
command.setSize(100, 50)
|
||||
|
||||
command.setGap(2)
|
||||
command.setCls()
|
||||
command.setQR(30, 100, "L", 7, "A", item.FBarCode)
|
||||
command.setText(280, 40, "TSS24.BF2", 1, 1, `Supplier Name:${item.FSupplierId}`)
|
||||
command.setText(280, 40, "TSS24.BF2", 1, 1, `Supplier Name:${state.pageData.FSupplierId}`)
|
||||
command.setText(280, 80, "TSS24.BF2", 1, 1, `P/N:${item.FMaterialId}`)
|
||||
command.setText(280, 120, "TSS24.BF2", 1, 1, `Qty:${item.FQty}`)
|
||||
command.setText(280, 160, "TSS24.BF2", 1, 1, `Batch No:${item.FLot}`)
|
||||
@ -165,47 +166,59 @@
|
||||
command.setPagePrint()
|
||||
state.sendData = command.getData();
|
||||
}
|
||||
const sendHexStr = () => {
|
||||
let arr = []
|
||||
let data1 = {
|
||||
FBarCodeRule: "01",
|
||||
FBarCode: `${state.pageData.FBillCode}*${state.pageData.FMaterialId}*${state.pageData.FLotText}*${Number(state.pageData.FQty) - Number(state.pageData.splitQty)}`,
|
||||
FBillCode:state.pageData.FBillCode,
|
||||
FMaterialId: state.pageData.FMaterialId,
|
||||
FSupplierLot: state.pageData.FSupplierLot,
|
||||
FLot: state.pageData.FLotText,
|
||||
FQty: (Number(state.pageData.FQty) - Number(state.pageData.splitQty)) + ''
|
||||
}
|
||||
let data2 = {
|
||||
FBarCodeRule: "01",
|
||||
FBarCode: `${state.pageData.FBillCode}*${state.pageData.FMaterialId}*${state.pageData.FLotText}*${Number(state.pageData.splitQty)}`,
|
||||
FBillCode:state.pageData.FBillCode,
|
||||
FMaterialId: state.pageData.FMaterialId,
|
||||
FSupplierLot: state.pageData.FSupplierLot,
|
||||
FLot: state.pageData.FLotText,
|
||||
FQty: Number(state.pageData.splitQty) + ''
|
||||
}
|
||||
arr = [data1,data2]
|
||||
UHIK_BD_BarCodeMainFileSave({
|
||||
Key: 'qwe123!@#',
|
||||
Items: arr
|
||||
},true).then((res : any) => {
|
||||
console.log(res);
|
||||
if (res.code == 200) {
|
||||
|
||||
setTimeout(()=>{
|
||||
createLabel(arr[0])
|
||||
initPrint()
|
||||
},2000)
|
||||
setTimeout(()=>{
|
||||
createLabel(arr[1])
|
||||
initPrint()
|
||||
},4000)
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
}
|
||||
})
|
||||
|
||||
const sendHexStr = async () => {
|
||||
try {
|
||||
// 1. 提取通用数据创建逻辑
|
||||
const createItem = (qty:any) => ({
|
||||
FBarCodeRule: "01",
|
||||
FBarCode: `${state.pageData.FBillCode}*${state.pageData.FMaterialId}*${state.pageData.FLotText}*${qty}`,
|
||||
FBillCode: state.pageData.FBillCode,
|
||||
FMaterialId: state.pageData.FMaterialId,
|
||||
FSupplierLot: state.pageData.FSupplierLot,
|
||||
FLot: state.pageData.FLotText,
|
||||
FQty: String(qty)
|
||||
});
|
||||
|
||||
// 2. 数值计算只执行一次
|
||||
const originalQty = Number(state.pageData.FQty);
|
||||
const splitQty = Number(state.pageData.splitQty);
|
||||
const remainingQty = originalQty - splitQty;
|
||||
|
||||
// 3. 创建数据项数组
|
||||
const items = [
|
||||
createItem(remainingQty),
|
||||
createItem(splitQty)
|
||||
];
|
||||
|
||||
// 4. 密钥应该从安全配置获取,避免硬编码
|
||||
const API_KEY = process.env.BARCODE_API_KEY || 'qwe123!@#';
|
||||
|
||||
// 5. 使用async/await处理异步
|
||||
const res = await UHIK_BD_BarCodeMainFileSave({
|
||||
Key: API_KEY,
|
||||
Items: items
|
||||
}, true);
|
||||
|
||||
if (res.code !== 200) {
|
||||
uni.$u.toast(res.msg);
|
||||
return;
|
||||
}
|
||||
|
||||
// 6. 顺序打印(避免使用固定延迟)
|
||||
for (const [index, item] of items.entries()) {
|
||||
// 第一个立即执行,后续延迟执行
|
||||
if (index > 0) {
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
}
|
||||
|
||||
createLabel(item);
|
||||
initPrint();
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('标签打印失败:', error);
|
||||
uni.$u.toast('操作失败,请重试');
|
||||
}
|
||||
}
|
||||
const initPrint = () => {
|
||||
if (state.sendData == null) {
|
||||
|
@ -111,6 +111,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {},
|
||||
shortcutDataFeedback: {},
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -133,7 +134,8 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -161,11 +163,13 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
const confirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
//查询录入
|
||||
const getReceiveBillScanData = (val : string) => {
|
||||
@ -220,7 +224,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PRD_PPBOM", //数据类型
|
||||
FVHUBFBillNo: state.BillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //物料ID
|
||||
|
@ -100,6 +100,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {}, //传回的扫描弹框数据
|
||||
shortcutDataFeedback: {}, //传回的默认值数据
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -119,7 +120,8 @@
|
||||
}).exec();
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
@ -147,6 +149,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
}, 500)
|
||||
}
|
||||
@ -180,7 +183,7 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PUR_ReceiveBill", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.MaterialNumber, //物料编码
|
||||
FVHUBScanQty: item.BarCodeQty + '', //扫描数量
|
||||
FVHUBEntryId: item.Id, //行ID
|
||||
|
@ -103,6 +103,7 @@
|
||||
inputFocus: true,
|
||||
scanFrameDataFeedback: {}, //传回的扫描弹框数据
|
||||
shortcutDataFeedback: {}, //传回的默认值数据
|
||||
code:''
|
||||
})
|
||||
onLoad((pageData : any) => {
|
||||
console.log(pageData);
|
||||
@ -123,15 +124,16 @@
|
||||
|
||||
})
|
||||
const scanConfirmFun = (e : any) => {
|
||||
getReceiveBillScanData(e)
|
||||
if(e != '') state.code = e
|
||||
getReceiveBillScanData(state.code)
|
||||
}
|
||||
const shortcutBoxShowShow = (val : boolean) => {
|
||||
state.shortcutRefShow = val
|
||||
console.log('=============================================',state.shortcutRefShow);
|
||||
console.log(state.shortcutRefShow);
|
||||
}
|
||||
const scanFrameBoxShowShow = (val : boolean) => {
|
||||
state.scanFrameRefShow = val
|
||||
console.log('=============================================',state.scanFrameRefShow);
|
||||
console.log(state.scanFrameRefShow);
|
||||
}
|
||||
/**
|
||||
* 数据逻辑
|
||||
@ -153,6 +155,7 @@
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
if(e != '') state.code = e
|
||||
if (state.queryString !== '') getReceiveBillScanData(e)
|
||||
})
|
||||
}
|
||||
@ -165,6 +168,8 @@
|
||||
}).then((res : any) => {
|
||||
if (res.code == 200) {
|
||||
console.log(res);
|
||||
const scanData = res.data
|
||||
if( scanData.UnScanQty > scanData.BarCodeQty ) scanData.UnScanQty = scanData.BarCodeQty
|
||||
scanFrameRef.value.getreceiveBillScanData({ ...res.data, queryString: state.queryString, scanFrameShowSate: state.shortcutDataFeedback.scanFrameShowSate, stashVerify: true })
|
||||
if (Object.keys(state.shortcutDataFeedback).length) {
|
||||
if (state.shortcutDataFeedback.scanFrameShowSate) {
|
||||
@ -203,8 +208,8 @@
|
||||
temporaryScanDraftSave({
|
||||
FVHUBFormId: "PUR_ReceiveBill", //数据类型
|
||||
FVHUBFBillNo: state.FBillNo, //单据编号
|
||||
FVHUBScanNumber: state.queryString, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanNumber: state.code, //条码
|
||||
FVHUBMaterialNumber: item.articlesStr, //物料编码
|
||||
FVHUBScanQty: item.quantityStr + '', //扫描数量
|
||||
FVHUBEntryId: scanFrameRef.value.state.receiveBillScanData.Id, //行ID
|
||||
FVHUBFlot: item.batchNumberStr, //批号
|
||||
|
@ -104,7 +104,6 @@ function jumpTo(url : string, query = {}, type : number) {
|
||||
quertStr += item + '=' + values[index];
|
||||
}
|
||||
})
|
||||
debugger
|
||||
}
|
||||
if (url.indexOf('/pages/main/') > -1) {
|
||||
uni.switchTab({
|
||||
|
@ -27,7 +27,7 @@
|
||||
}, 500)
|
||||
},
|
||||
onEvent(event) {
|
||||
console.log(event);
|
||||
// console.log(event);
|
||||
if (event.key != 'Enter' && event.key != 'PrintScreen' && event.key != 'Shift' && event.key != 'Unidentified') { // 拼接输入的值,Enter与PrintScreen是物理按钮要排除
|
||||
this.inputVal = this.inputVal + event.key
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
10
unpackage/dist/build/app-plus/app-service.js
vendored
10
unpackage/dist/build/app-plus/app-service.js
vendored
File diff suppressed because one or more lines are too long
4
unpackage/dist/build/app-plus/manifest.json
vendored
4
unpackage/dist/build/app-plus/manifest.json
vendored
@ -238,13 +238,13 @@
|
||||
"pagePath": "pages/main/home",
|
||||
"iconPath": "/static/tabbar/home.png",
|
||||
"selectedIconPath": "/static/tabbar/homea.png",
|
||||
"text": "首页"
|
||||
"text": "Main Screen"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/main/mine",
|
||||
"iconPath": "/static/tabbar/me.png",
|
||||
"selectedIconPath": "/static/tabbar/mea.png",
|
||||
"text": "我的"
|
||||
"text": "My"
|
||||
}
|
||||
],
|
||||
"backgroundColor": "#FFF",
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/build/app-plus/pages/split/index.css
vendored
Normal file
1
unpackage/dist/build/app-plus/pages/split/index.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/build/app-plus/pages/split/print.css
vendored
Normal file
1
unpackage/dist/build/app-plus/pages/split/print.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2235
unpackage/dist/dev/app-plus/app-service.js
vendored
2235
unpackage/dist/dev/app-plus/app-service.js
vendored
File diff suppressed because one or more lines are too long
4
unpackage/dist/dev/app-plus/manifest.json
vendored
4
unpackage/dist/dev/app-plus/manifest.json
vendored
@ -239,13 +239,13 @@
|
||||
"pagePath": "pages/main/home",
|
||||
"iconPath": "/static/tabbar/home.png",
|
||||
"selectedIconPath": "/static/tabbar/homea.png",
|
||||
"text": "首页"
|
||||
"text": "Main Screen"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/main/mine",
|
||||
"iconPath": "/static/tabbar/me.png",
|
||||
"selectedIconPath": "/static/tabbar/mea.png",
|
||||
"text": "我的"
|
||||
"text": "My"
|
||||
}
|
||||
],
|
||||
"backgroundColor": "#FFF",
|
||||
|
Loading…
x
Reference in New Issue
Block a user