Browse Source

Merge branch 'intex' of http://dev.ccwin-in.com:3000/sfms3.0/sfms3.0-uniapp into intex

intex_online20241111
lijuncheng 3 months ago
parent
commit
31b40469fb
  1. 6
      .env.development
  2. 14
      .env.hella13
  3. 14
      .env.hella14
  4. 14
      .env.hella15
  5. 14
      .env.hella16
  6. 15
      .env.hella8
  7. 14
      .env.hella9
  8. 11
      .env.production
  9. 12
      .env.test
  10. 15
      .env.test-dev
  11. 7
      Dockerfile_prod
  12. 21
      nginx.conf
  13. 57
      nginx_prod.conf
  14. 19
      package.json
  15. 8
      src/common/balance.js
  16. 5
      src/mycomponents/scan/winComScan.vue
  17. 10
      src/mycomponents/scan/winScanLocation.vue
  18. 8
      src/mycomponents/scan/winScanPackAndLocation.vue
  19. 9
      src/pages.json
  20. 2
      src/pages/count/job/countJob.vue
  21. 2
      src/pages/count/job/fuzzyCountJob.vue
  22. 2
      src/pages/customerReturn/job/returnJob.vue
  23. 2
      src/pages/customerReturn/record/recordList.vue
  24. 2
      src/pages/deliver/job/deliverJob.vue
  25. 2
      src/pages/inspect/job/inspectJob.vue
  26. 2
      src/pages/inventoryMove/coms/comMoveJob.vue
  27. 1212
      src/pages/inventoryMove/coms/comMoveRecord.vue
  28. 297
      src/pages/inventoryMove/coms/okToHoldRecordPack.vue
  29. 327
      src/pages/inventoryMove/coms/okToHoldRecordScan.vue
  30. 24
      src/pages/inventoryMove/job/inventoryMoveDetail.vue
  31. 2
      src/pages/inventoryMove/job/inventoryMoveJob.vue
  32. 3
      src/pages/inventoryMove/record/okToHoldRecord.vue
  33. 13
      src/pages/issue/job/issueDetailBatch.vue
  34. 2
      src/pages/issue/job/issueJob.vue
  35. 4
      src/pages/issue/job/issueJob0816.vue
  36. 2
      src/pages/itemHold/record/recordList.vue
  37. 2
      src/pages/package/job/overPackageJob.vue
  38. 2
      src/pages/productDismantle/job/productDismantleJob.vue
  39. 2
      src/pages/productPutaway/job/productPutawayJob.vue
  40. 2
      src/pages/productReceipt/job/ccProductReceiptJob.vue
  41. 2
      src/pages/productReceipt/job/completeReceiveJob.vue
  42. 63
      src/pages/productReceipt/job/productReceiptDetail.vue
  43. 2
      src/pages/productReceipt/job/productReceiptJob.vue
  44. 2
      src/pages/productReceipt/record/recordList.vue
  45. 6
      src/pages/productRecycle/coms/comRecycleJobCard.vue
  46. 7
      src/pages/productRecycle/job/productRecycleJob.vue
  47. 2
      src/pages/productionReceipt/job/productionReceiptJob.vue
  48. 2
      src/pages/productionReturn/job/holdToReturnJob.vue
  49. 2
      src/pages/productionReturn/job/okToReturnJob.vue
  50. 2
      src/pages/productionReturn/job/returnJob.vue
  51. 2
      src/pages/productionReturn/record/returnToHoldRecordList.vue
  52. 143
      src/pages/purchaseReceipt/job/receiptDetail.vue
  53. 2
      src/pages/purchaseReceipt/job/receiptJob.vue
  54. 2
      src/pages/purchaseReturn/job/returnJob.vue
  55. 2
      src/pages/purchaseReturn/job/returnJob_0904.vue
  56. 2
      src/pages/putaway/job/putawayJob.vue
  57. 2
      src/pages/putaway/job/quantityPutawayJob.vue
  58. 2
      src/pages/repleinsh/job/repleinshJob.vue
  59. 2
      src/pages/scrap/job/scrapJob.vue
  60. 2
      src/pages/stockUp/job/stockUpJob.vue
  61. 2
      src/pages/supplierDeliver/record/supplierDeliverRecord.vue
  62. 2
      src/pages/transfer/job/issueJob.vue
  63. 2
      src/pages/transfer/job/receiptJob.vue
  64. 2
      src/pages/unPlanned/job/issueJob.vue
  65. 2
      src/pages/unPlanned/job/receiptJob.vue

6
.env.development

@ -1,6 +1,6 @@
# VITE_BASE_URL=http://localhost:12080/admin-api
VITE_BASE_URL=http://dev.ccwin-in.com:28051/api/admin-api
VITE_BASE_URL_IMAGE=http://172.22.32.9:81/admin-api
VITE_BASE_URL=http://localhost:12080/admin-api
# VITE_BASE_URL=http://dev.ccwin-in.com:28051/api/admin-api
# VITE_BASE_URL_IMAGE=http://172.22.32.9:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"英泰","value":1},{"text":"长春2379","value":3}]'

14
.env.hella13

@ -1,14 +0,0 @@
VITE_BASE_URL=http://172.21.32.13:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.21.32.13:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1}]'
# 是否是测试环境
VITE_isDevelopment=false
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.13:90'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

14
.env.hella14

@ -1,14 +0,0 @@
VITE_BASE_URL=http://172.21.32.14:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.21.32.14:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1}]'
# 是否是测试环境
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.14:90'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

14
.env.hella15

@ -1,14 +0,0 @@
VITE_BASE_URL=https://scp.faway-hella.com:81/api/admin-api
VITE_BASE_URL_IMAGE=https://scp.faway-hella.com:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1}]'
# 是否是测试环境
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='https://scp.faway-hella.com'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

14
.env.hella16

@ -1,14 +0,0 @@
VITE_BASE_URL=https://scptest.faway-hella.com:81/api/admin-api
VITE_BASE_URL_IMAGE=https://scptest.faway-hella.com:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
# 是否是测试环境
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='https://scptest.faway-hella.com'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

15
.env.hella8

@ -1,15 +0,0 @@
VITE_BASE_URL=http://172.22.32.8:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.22.32.8:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
# 是否是测试环境
VITE_isDevelopment=false
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.8:90'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

14
.env.hella9

@ -1,14 +0,0 @@
VITE_BASE_URL=http://172.22.32.9:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.22.32.9:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
# 是否是测试环境
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.9:90'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

11
.env.production

@ -1,15 +1,14 @@
VITE_BASE_URL=http://172.22.32.8:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.22.32.8:81/admin-api
VITE_BASE_URL=http://192.168.120.34:81/api/admin-api
VITE_BASE_URL_IMAGE=http://192.168.120.34:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
VITE_TENANT='[{"text":"英泰","value":1}]'
# 是否是测试环境
VITE_isDevelopment=false
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.8:90'
VITE_JMREPORT_BASE_URL='http://192.168.120.34:81/api'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

12
.env.test

@ -1,12 +1,14 @@
VITE_BASE_URL=http://dev.ccwin-in.com:25300/api/admin-api
VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:25300/admin-api
VITE_BASE_URL=http://192.168.120.35:81/api/admin-api
VITE_BASE_URL_IMAGE=http://192.168.120.35:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
VITE_TENANT='[{"text":"英泰","value":1}]'
# 是否是测试环境
VITE_isDevelopment=true
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25310'
VITE_JMREPORT_BASE_URL='http://192.168.120.35:81/api'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

15
.env.test-dev

@ -0,0 +1,15 @@
VITE_BASE_URL=http://dev.ccwin-in.com:28051/api/admin-api
VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:28051/admin-api
# 租户配置
VITE_TENANT='[{"text":"英泰","value":1}]'
# 是否是测试环境
VITE_isDevelopment=false
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:28051'
# 项目管理模式 批次货/包装
VITE_MANAGE_MODEL="BY_BATCH"

7
Dockerfile_prod

@ -1,7 +0,0 @@
# 设置基础镜像
FROM win-nginx
WORKDIR /opt/sfms3.0-uniapp
COPY nginx_prod.conf /usr/local/nginx/conf/nginx.conf
# 将dist/build/h5/文件中的内容复制到 /opt/sfms3.0-uniapp 这个目录下面
COPY dist/build/h5/ /opt/sfms3.0-uniapp

21
nginx.conf

@ -41,6 +41,27 @@ http {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location ^~ /jmreport/ {
proxy_pass http://localhost:100/jmreport/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location ^~ /magic/ {
proxy_pass http://localhost:100/magic/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
proxy_cache my_zone;
proxy_cache_valid 200 304 12h;
proxy_cache_key $host$uri$is_args$args;
alias /opt/profile/;
index index.html index.htm;
}
location / {
proxy_cache my_zone;
proxy_cache_valid 200 304 12h;

57
nginx_prod.conf

@ -1,57 +0,0 @@
user root;
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
charset utf-8,gbk;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
proxy_cache_path /opt/nginx_cache/ levels=1:2 keys_zone=my_zone:10m inactive=300s max_size=5g;
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 600s;
client_max_body_size 200m;
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_buffers 4 16k;
gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
upstream sfms3.0 {
server localhost:90 weight=10 max_fails=3 fail_timeout=10s;
}
server {
listen 81;
server_name_in_redirect off;
server_name _;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
proxy_cache my_zone;
proxy_cache_valid 200 304 12h;
proxy_cache_key $host$uri$is_args$args;
try_files $uri $uri/ /index.html;
root /opt/sfms3.0-uniapp;
index index.html index.htm;
}
}
}

19
package.json

@ -8,19 +8,14 @@
"dev": "uni",
"dev:h5:ssr": "uni --ssr",
"dev:mp-weixin": "uni -p mp-weixin",
"hella8:app": "uni build -p app --mode hella8",
"hella8:app-android": "uni build -p app-android --mode hella8",
"hella8:app-ios": "uni build -p app-ios --mode hella8",
"hella8:h5:ssr": "uni build --ssr --mode hella8",
"hella8:mp-weixin": "uni build -p mp-weixin --mode hella8",
"prod": "uni build --mode production",
"test:app": "uni build -p app --mode test",
"test:app-android": "uni build -p app-android --mode test",
"test:app-ios": "uni build -p app-ios --mode test",
"test:h5:ssr": "uni build --ssr --mode test",
"test:mp-weixin": "uni build -p mp-weixin --mode test",
"prod": "uni build --mode production",
"test": "uni build --mode test",
"hella8": "uni build --mode hella8",
"hella9": "uni build --mode hella9",
"hella13": "uni build --mode hella13",
"hella14": "uni build --mode hella14",
"hella15": "uni build --mode hella15",
"hella16": "uni build --mode hella16"
"test-dev": "uni build --mode test-dev"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-3090920231225001",

8
src/common/balance.js

@ -397,13 +397,13 @@ export function byQuantity(label, locationCode, fromInventoryStatuses, callback)
})
filters.push({
column: "packingNumber",
action: "==",
value: null
action: "isStr",
value: ''
})
filters.push({
column: "batch",
action: "==",
value: label.batch?label.batch:null
action: "isStr",
value:''
})
filters.push({
column: "locationCode",

5
src/mycomponents/scan/winComScan.vue

@ -155,10 +155,11 @@
// title: '...',
// mask: true
// })
console.log(222)
let that = this;
// if(index==-1){
// that.scanMsg =that.scanMsg + "\n";
// }
// that.sc
console.log(that.scanMsg.includes('\n'))
if (that.scanMsg.includes('\n')) {
// that.scanMsg = 'HPQ;V1.0;ICE115F11161AG;PP20230427000027;B20230427002;Q50';
setTimeout(() => {

10
src/mycomponents/scan/winScanLocation.vue

@ -38,7 +38,7 @@
components: {
winComScan,
},
emits: ["getLocation"],
emits: ["getLocation","clearFromLocation"],
props: {
title: {
type: String,
@ -88,11 +88,11 @@
this.$refs.scan.clearScanValue();
},
getScanResult(result) {
uni.showLoading({
title: '扫描中...',
mask: true
});
console.log(111,result)
let label = result.label;
if (label.barType === 'QRCode') {
this.code = label.locationCode;
@ -101,10 +101,10 @@
}
if(this.code==undefined){
uni.hideLoading();
this.showErrorMessage("扫描库位[" + this.code + "]为空,请输入正确的库位")
this.showErrorMessage("扫描库位为空,请输入正确的库位")
return
}
console.log(888,this.code)
getBasicLocationByCode(this.code).then(res => {
uni.hideLoading();
@ -112,6 +112,7 @@
let result = res.data.list[0];
if(result.code!=this.code){
this.showErrorMessage('未查询到库位[' + this.code + ']')
this.$emit('clearFromLocation',this.code)
return;
}
var type = result.type;
@ -131,6 +132,7 @@
}
} else {
this.showErrorMessage('未查询到库位[' + this.code + ']')
this.$emit('clearFromLocation',this.code)
}
}).catch(error => {

8
src/mycomponents/scan/winScanPackAndLocation.vue

@ -236,6 +236,9 @@
scanLocation(scanResult) {
if(scanResult.fromLocationCode){
this.fromLocationCode = scanResult.fromLocationCode
}
var isCheck = false;
if (this.fromLocationCode == '') {
this.showErrorMessage('来源库位不能为空', callback => {
@ -334,6 +337,11 @@
})
}
this.chooseWhich = '2'
if(!result.label.itemCode){
this.showErrorMessage('扫描标签不对,请重新扫描')
this.$emit('clearItemCode',result.label.code)
return
}
if (res.data && res.data.list && res.data.list.length > 1) {
this.showBalanceSelect(res.data.list);
} else {

9
src/pages.json

@ -2216,7 +2216,7 @@
{
"path": "pages/inventoryMove/record/okToHoldRecord",
"style": {
"navigationBarTitleText": "合格转隔离记录",
"navigationBarTitleText": "物料隔离记录",
"enablePullDownRefresh": false
}
},
@ -2577,6 +2577,13 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/unPlanned/record/receiptRecordByBatch",
"style": {
"navigationBarTitleText": "计划外入库记录",
"enablePullDownRefresh": false
}
},
{
"path": "pages/unPlanned/record/issueRecord",
"style": {

2
src/pages/count/job/countJob.vue

@ -210,7 +210,7 @@
if (this.queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.queryParams.creationTime
})
}

2
src/pages/count/job/fuzzyCountJob.vue

@ -150,7 +150,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/customerReturn/job/returnJob.vue

@ -133,7 +133,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/customerReturn/record/recordList.vue

@ -147,7 +147,7 @@
if (this.queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.queryParams.creationTime
})
}

2
src/pages/deliver/job/deliverJob.vue

@ -139,7 +139,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/inspect/job/inspectJob.vue

@ -126,7 +126,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/inventoryMove/coms/comMoveJob.vue

@ -170,7 +170,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

1212
src/pages/inventoryMove/coms/comMoveRecord.vue

File diff suppressed because it is too large

297
src/pages/inventoryMove/coms/okToHoldRecordPack.vue

@ -0,0 +1,297 @@
<template>
<view class="">
<u-popup v-model="showOne" mode="bottom" border-radius="14" z-index='12'>
<view class="title">
<view class="title-txt">
需求信息
</view>
<u-icon name="close" color="#4f4f4f" size="28" @click="showOne = false"></u-icon>
</view>
<view class="item">
<view class="label">来源库位</view>
<view class="value"><u-input v-model="fromLocationCode" @confirm="fromLocationScanMsg"></u-input></view>
<view class="searchIcon">
<image src="/static/search.svg" mode="" @click="fromLocationClick"/>
</view>
</view>
<view class="item">
<view class="label">零件</view>
<view class="value"><u-input v-model="itemCode" @confirm="itemCodeScanMsg"></u-input></view>
<view class="searchIcon">
<image src="/static/search.svg" mode="" @click="itemCodeClick"/>
</view>
</view>
<view class="item">
<view class="label">批次</view>
<view class="value">
<u-input v-model='batch'></u-input>
</view>
<view class="searchIcon"></view>
</view>
<view class="item">
<view class="label">数量</view>
<view class="value1">
<u-number-box v-model="handleQty" @change="valChange"></u-number-box>
<view class="uom">EA</view>
</view>
</view>
<view class="uni-flex uni-row hide_border">
<button class="btn_edit_big_cancle" hover-class="btn_edit_big_after" @click="showOne = false">取消</button>
<button class="btn_edit_big_confirm" hover-class="btn_edit_big_after" @click="confirm()">确认</button>
</view>
</u-popup>
<!-- <win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getFromLocation'
:locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location> -->
<comMessage ref="comMessage"></comMessage>
</view>
</template>
<script>
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import {
getBusinessType
} from '@/common/record.js';
import {
getLabelInfo
} from '../../../common/label.js';
export default {
components: {
winScanLocation
},
emits: ["showFromLocationPopup",'itemCodeClick','confirm','getInputMsgResult'],
data() {
return {
show:true,
handleQty:0,
fromLocationCode:'',
itemCode:'',
batch:'',
showOne:true
}
},
props: {
fromLocationCodeProps:{
type: String,
default: ''
},
//
showOnePop: {
type: Boolean,
default: false
},
itemCodeProps:{
type: String,
default: ''
},
batchProps:{
type: String,
default: ''
},
isClearFromLocationCode:{
type: Boolean,
default: false
},
isClearItemCode:{
type: Boolean,
default: false
},
},
mounted() {
},
methods: {
//
fromLocationClick(){
// this.$refs.scanLocationCode.openScanPopup()
this.$emit("showFromLocationPopup");
},
//
itemCodeClick(){
// this.$refs.scanLocationCode.openScanPopup()
if(!this.fromLocationCode){
this.$refs.comMessage.showMessage("请先扫描来源库位")
return
}
this.$emit("itemCodeClick");
},
confirm(){
// this.$refs.scanLocationCode.openScanPopup()
let obj = {
fromLocationCode:this.fromLocationCode,
itemCode:this.itemCode,
batch:this.batch,
handleQty:this.handleQty,
}
this.$emit("confirm",obj);
},
fromLocationScanMsg(){
console.log(111,this.fromLocationCode)
this.scanMsg = this.fromLocationCode
this.fromWitch = 'fromLocationScanMsg'
this.handelScanMsg()
},
itemCodeScanMsg(){
if(!this.fromLocationCode){
this.$refs.comMessage.showMessage("请先扫描来源库位")
return
}
this.fromWitch = 'itemCodeScanMsg'
this.scanMsg = this.itemCode
this.handelScanMsg()
},
handelScanMsg() {
//
// uni.showLoading({
// title: '...',
// mask: true
// })
let that = this;
console.log(777,that.scanMsg)
// if(index==-1){
// that.scanMsg =that.scanMsg + "\n";
// }
console.log(that.scanMsg.includes('\n'))
// if (that.scanMsg.includes('\n')) {
// that.scanMsg = 'HPQ;V1.0;ICE115F11161AG;PP20230427000027;B20230427002;Q50';
setTimeout(() => {
that.losefocus();
let content = uni.$u.trim(that.scanMsg)
if (content == "") {
// that.getfocus();
this.$refs.comMessage.showErrorMessage("扫描内容为空,请重新扫描", res => {
if (res) {
that.scanMsg = ""
that.getfocus();
}
})
return;
}
if (that.isShowHistory) {
that.scanList.unshift(content);
}
getLabelInfo(content, this.headerType, callback => {
// uni.hideLoading();
let scanResult = callback;
scanResult.scanMessage = content
if (scanResult.success) {
// that.getfocus();//
console.log(scanResult)
that.$emit("getInputMsgResult", scanResult,this.fromWitch);
} else {
that.losefocus();
this.$refs.comMessage.showErrorMessage(scanResult.message, res => {
if (res) {
that.getfocus();
}
})
}
});
}, 200);
// }
},
losefocus() {
let that = this;
this.$nextTick(r => {
that.boxfocus = false;
});
},
},
watch: {
fromLocationCodeProps:{
handler(newVal, oldVal) {
console.log('wer',this.isClearFromLocationCode)
console.log('wer',newVal)
if(this.isClearFromLocationCode){
this.fromLocationCode=''
}else{
this.fromLocationCode = newVal
}
},
// deep: true,
// immediate: true
},
itemCodeProps: {
handler(newVal, oldVal) {
if(this.isClearItemCode){
this.itemCode=''
this.batch=''
}else{
this.itemCode = newVal
}
},
},
batchProps(newVal) {
this.batch = newVal
console.log(999,this.batch)
},
}
}
</script>
<style lang="scss">
.title{
padding:30rpx 20rpx;
display: flex;
border-bottom:1px solid rgba(230, 230, 230, 1);
.title-txt{
flex:1;
font-weight: bold;
font-size: 32rpx;
}
}
.select{
display: flex;
}
.border{
border:1px solid rgba(230, 230, 230, 1)
}
::v-deep .u-input__right-icon__clear{
display: flex;
align-items: center;
justify-content: center;
color: #a7a7a7;
}
.item{
display: flex;
align-items: center;
padding: 20rpx;
border-bottom: 1px solid #dedede;
.value{
flex:1;
width: 0px;
height: 80rpx;
border: 1px solid #dedede;
display: flex;
align-items: center;
font-size: 32rpx;
padding: 0px 20rpx;
}
.value1{
flex:1;
width: 0px;
height: 80rpx;
display: flex;
align-items: center;
font-size: 32rpx;
}
.searchIcon{
width: 40rpx;
margin-left: 20rpx;
image{
width: 40rpx;
height:40rpx
}
}
.uom{
margin-left: 10rpx;
}
}
</style>

327
src/pages/inventoryMove/coms/okToHoldRecordScan.vue

@ -1,327 +0,0 @@
<!-- 合格转隔离扫码组件 -->
<template>
<u-popup
v-model="show"
:mode="mode"
:mask='mask'
:length='length'
:zoom='zoom'
:safe-area-inset-bottom='safeAreaInsetBottom'
:mask-close-able='maskCloseAble'
:custom-style='customStyle'
:border-radius='borderBadius'
:z-index='zIndex'
:closeable='closeable'
:close-icon='closeIcon'
:close-icon-pos='closeIconPos'
:close-icon-color='closeIconColor'
:close-icon-size='closeIconSize'
:width='width'
:height='height'
:negative-top='negativeTop'
:mask-custom-style='maskCustomStyle'
:duration='duration'
:blur='blur'
@open='open'
@close='close'
>
<view>
<view class="title">
<view class="title-txt">
需求
</view>
<u-icon name="close" color="#4f4f4f" size="28"></u-icon>
</view>
<u-form
class="form"
:model="allData"
ref="formRef"
:rules="rules"
:error-type="errorType"
:border-bottom="borderBottom"
:label-position="labelPosition"
:label-width="labelWidth"
:label-style="labelStyle"
:label-align="labelAlign"
@setRules='setRules'
@resetFields='resetFields'
@validate='validate'
>
<u-form-item
:label="item.label"
:prop="item.field"
v-for="(item,index) in formField"
:key='index'
:border-bottom="item.form.formItemBorderBottom == true || item.form.formItemBorderBottom == false ? item.form.formItemBorderBottom : true"
:label-position="item.form.formItemLabelPosition || 'left'"
:label-width="item.form.formItemLabelWidth || ''"
:label-style="item.form.formItemLabelStyle || {}"
:label-align="item.form.formItemLabelAlign || ''"
:right-icon="item.form.rightIcon || ''"
:left-icon="item.form.leftIcon || ''"
:left-icon-style="item.form.leftIconStyle || ''"
:right-icon-style="item.form.righIconStyle || ''"
:required="item.form.required || false"
>
<view :class="item.form.border ? 'border' : formItemBorder ? 'border' : ''" class="item">
<u-input
v-if="item.form.type == 'text'||item.form.type == 'password'||item.form.type == 'textarea'||item.form.type == 'number'"
v-model="allData[item.field]"
:type='item.form.type'
:clearable='item.form.clearable == true || item.form.clearable == false ? item.form.clearable : true'
:input-align="item.form.inputAlign || 'left'"
:placeholder="item.form.placeholder || `请输入${[item.label]}`"
:disabled='item.form.disabled || false'
:maxlength='item.form.maxlength || 140'
:placeholder-style='item.form.placeholderStyle || "color: #c0c4cc;"'
:confirm-type='item.form.confirmType ||"done"'
:custom-style='item.form.customStyle'
:focus='item.form.focus || false'
:fixed='item.form.fixed || false'
:password-icon='item.form.passwordIcon == true || item.form.passwordIcon == false ? item.form.passwordIcon : true'
:border-color='item.form.borderColor ? item.form.borderColor : formItemBorderColor ? formItemBorderColor : "#dcdfe6"'
:auto-height='item.form.autoHeight == true || item.form.autoHeight == false ? item.form.autoHeight : true'
:height='item.form.height'
:cursor-spacing='item.form.cursorSpacing'
:selection-start='item.form.selectionStart'
:selection-end='item.form.selectionEnd'
:show-confirmbar='item.form.showConfirmbar'
:adjust-position='item.form.adjustPosition'
/>
<!-- <u-input v-model="allData[item.field]" v-if="item.form.type == 'Select'"/> -->
<view class="select" v-if="item.form.type == 'select'">
<u-input
v-model="allData[item.field]"
type='text'
:clearable='item.form.clearable == true || item.form.clearable == false ? item.form.clearable : true'
:input-align="item.form.inputAlign || 'left'"
:placeholder="item.form.placeholder || `请输入${[item.label]}`"
:disabled='item.form.disabled || false'
:maxlength='item.form.maxlength || 140'
:placeholder-style='item.form.placeholderStyle || "color: #c0c4cc;"'
:confirm-type='item.form.confirmType ||"done"'
:custom-style='item.form.customStyle'
:focus='item.form.focus || false'
:fixed='item.form.fixed || false'
:password-icon='item.form.passwordIcon == true || item.form.passwordIcon == false ? item.form.passwordIcon : true'
:border='false'
:border-color='item.form.borderColor ? item.form.borderColor : formItemBorderColor ? formItemBorderColor : "#dcdfe6"'
:auto-height='item.form.autoHeight == true || item.form.autoHeight == false ? item.form.autoHeight : true'
:height='item.form.height'
:cursor-spacing='item.form.cursorSpacing'
:selection-start='item.form.selectionStart'
:selection-end='item.form.selectionEnd'
:show-confirmbar='item.form.showConfirmbar'
:adjust-position='item.form.adjustPosition'
/>
<u-icon name="arrow-down-fill" color="#878787" size="28"></u-icon>
</view>
</view>
</u-form-item>
</u-form>
</view>
</u-popup>
</template>
<script>
export default {
components: {
},
props: {
//
mode:{
type: String,
default: 'bottom',
},
mask:{
type: Boolean,
default: true
},
length:{
type: String,
default: 'auto'
},
zoom:{
type: Boolean,
default: true
},
safeAreaInsetBottom:{
type: Boolean,
default: false
},
maskCloseAble:{
type: Boolean,
default: true
},
customStyle:{
type: Number,
default: ()=>{}
},
borderBadius:{
type: Number,
default: 0
},
zIndex:{
type: Number,
default: 10075
},
closeable:{
type: Boolean,
default: false
},
closeIcon:{
type: String,
default: 'close'
},
closeIconPos:{
type: String,
default: 'top-right'
},
closeIconColor:{
type: String,
default: '#909399'
},
closeIconSize:{
type: Number,
default: 30
},
width:{
type: String,
default: ''
},
height:{
type: String,
default: ''
},
negativeTop:{
type: Number,
default: 0
},
maskCustomStyle:{
type: Object,
default:()=>{}
},
duration:{
type: Number,
default: 250
},
blur:{
type: Number,
default: 0
},
//
//
formField:{
type: Array,
default: ()=>[]
},
//
allData:{
},
rules:{
type: Object,
default: ()=>{}
},
errorType:{
type: Array,
default:()=>['message']
},
borderBottom:{
type: Boolean,
default: true
},
labelPosition:{
type: String,
default: 'left'
},
labelWidth:{
type: Number,
default: 90
},
labelStyle:{
type: Object,
default: ()=>{}
},
labelAlign:{
type: String,
default: 'left'
},
formItemBorder :{
type: Boolean,
default: false
},
formItemBorderColor :{
type: String,
default: ''
},
},
data() {
return {
show:true,
}
},
mounted() {
// this.$refs.form1.setRules(this.rules);
},
methods: {
//
open(){
},
//
close(){
},
//
setRules(){
},
//
resetFields(){
},
//
validate(){
},
}
}
</script>
<style>
.form{
padding: 0px 20rpx;
font-size: 24rpx;
}
.item{
flex:1;padding: 0px 20rpx;
}
.title{
padding:20rpx;
display: flex;
border-bottom:1px solid rgba(230, 230, 230, 1);
.title-txt{
flex:1;
font-weight: bold;
font-size: 32rpx;
}
}
.select{
display: flex;
}
.border{
border:1px solid rgba(230, 230, 230, 1)
}
::v-deep .u-input__right-icon__clear{
display: flex;
align-items: center;
justify-content: center;
color: #a7a7a7;
}
</style>

24
src/pages/inventoryMove/job/inventoryMoveDetail.vue

@ -314,7 +314,8 @@
getScanResult(result,managementPrecision) {
if(managementPrecision == 'BY_BATCH'){
this.managementType = managementPrecision
if(managementPrecision == 'BY_BATCH' || managementPrecision == 'BY_QUANTITY' ){
this.setDataBatch(result,managementPrecision)
}else{
this.setData(result,managementPrecision)
@ -322,6 +323,7 @@
},
setDataBatch(result,managementPrecision){
console.log(877,result.balance.qty)
try {
var packingNumber = result.label.packingNumber;
var batch = result.label.batch;
@ -482,6 +484,7 @@
if (res.success) {
this.managementList = res.list;
this.managementType = this.managementList&& this.managementList[0]&& this.managementList[0].ManagementPrecision ? this.managementList[0].ManagementPrecision : 'BY_PACKAGING'
console.log(11,this.managementType)
} else {
uni.hideLoading();
this.showErrorMessage(res.message);
@ -490,10 +493,10 @@
//
//
if (this.scanCount == this.subList.length) {
if(this.managementType == 'BY_BATCH'){
this.checkCount();
}else{
if(this.managementType == 'BY_BATCH' || this.managementType == 'BY_QUANTITY'){
this.checkCountBatch();
}else{
this.checkCount();
}
} else if (this.scanCount < this.subList.length) {
//
@ -545,6 +548,7 @@
checkCountBatch(){
//
let str = ''
let str1 = ''
this.detailSource.forEach((item) => {
item.subList.forEach(cur => {
if (cur.qty != cur.handleQty) {
@ -555,10 +559,20 @@
tempHandleQty = 0
}
str +=
`提交数量【${tempHandleQty}】与任务物料数量【${cur.qty}】不一致\n`
`批次【${cur.batch}】提交数量【${tempHandleQty}】与任务物料数量【${cur.qty}】不一致\n`
if( cur.handleQty > cur.balance.balanceQty){
console.log(2333,cur.handleQty)
console.log(2333,cur.balance.balanceQty)
str1 +=
`批次【${cur.batch}】提交数量【${ cur.handleQty}】不可以大于库存数量【${cur.balance.balanceQty}`
}
}
})
})
if(str1){
this.$refs.comMessage.showConfirmWarningModal(str1)
return
}
if (str) {
str = '任务明细未全部完成,是否提交?\n' + str
this.$refs.comMessage.showQuestionMessage1(str, 'red', res => {

2
src/pages/inventoryMove/job/inventoryMoveJob.vue

@ -119,7 +119,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

3
src/pages/inventoryMove/record/okToHoldRecord.vue

@ -1,6 +1,7 @@
<template>
<view class="page-wraper">
<comMoveRecord :myTitle="title" businessTypeCode='OkToHold' > </comMoveRecord>
<!-- <comMoveRecord :myTitle="title" businessTypeCode='OkToHold' ></comMoveRecord> -->
<comMoveRecord :myTitle="title" businessTypeCode='OkToHold' :showOnePop='true'> </comMoveRecord>
</view>
</template>

13
src/pages/issue/job/issueDetailBatch.vue

@ -222,13 +222,13 @@
that.subList = res.data.subList;
that.detailSource = getThreeDataSource(that.jobContent)
that.jobContent.detailToLocationCode = res.data.subList[0].toLocationCode
that.toLocationCode= res.data.subList[0].toLocationCode
that.fromLocationCode = that.subList[0].fromLocationCode
//
if (this.scanMessage) {
this.openScanPopupSimulate(this.scanMessage);
}
setTimeout(r => {
that.resizeCollapse();
}, 100)
@ -263,9 +263,7 @@
this.managementType = managementTypeParams
if(managementTypeParams == "BY_BATCH" ||managementTypeParams == "BY_QUANTITY" ){
this.setDataBatch(result)
}else{
this.setData(result)
}
}
},
setDataBatch(result) {
try {
@ -312,10 +310,10 @@
if (isExit == undefined) {
// this.showErrorMessage("" + batch + "" + result
// .fromLocationCode + "")
detail.subList.push({
scaned:true,
fromLocationCode:this.fromLocationCode,
toLocationCode:this.toLocationCode,
batch:result.label.batch,
handleQty:result.label.qty,
qty:result.balance.qty,
@ -400,7 +398,9 @@
itemDetail.balanceQty=result.balance.qty
itemDetail.uom=result.balance.uom
itemDetail.packQty=result.package.packQty
itemDetail.packUnit=result.package.packUnit
itemDetail.packUnit=result.package.packUnit
itemDetail.fromlocationCode=this.fromLocationCode
itemDetail.toLocationCode=this.toLocationCode
// itemDetail.toInventoryStatus = "OK"
// itemDetail.packList.forEach(pac => {
// pac.scaned = true
@ -481,7 +481,6 @@
}
console.log("提交参数", params);
return
issueJobSubmit(params).then(res => {
uni.hideLoading()
if (res.data) {

2
src/pages/issue/job/issueJob.vue

@ -289,7 +289,7 @@
if (queryParams.creationTime ) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: queryParams.creationTime
})
}

4
src/pages/issue/job/issueJob0816.vue

@ -234,7 +234,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}
@ -333,7 +333,7 @@
// if (this.checkedToday) {
// filters.push({
// column: "create_time",
// action: "betweeen",
// action: "between",
// value: this.todayTime
// })
// }

2
src/pages/itemHold/record/recordList.vue

@ -146,7 +146,7 @@
if (this.queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.queryParams.creationTime
})
}

2
src/pages/package/job/overPackageJob.vue

@ -190,7 +190,7 @@
if (queryParams.creationTime ) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: queryParams.creationTime
})
}

2
src/pages/productDismantle/job/productDismantleJob.vue

@ -132,7 +132,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productPutaway/job/productPutawayJob.vue

@ -161,7 +161,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productReceipt/job/ccProductReceiptJob.vue

@ -152,7 +152,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productReceipt/job/completeReceiveJob.vue

@ -131,7 +131,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

63
src/pages/productReceipt/job/productReceiptDetail.vue

@ -361,7 +361,7 @@
});
},
commit() {
async commit() {
this.scanCount = getScanCount(this.subList);
if (this.scanCount == 0) {
this.showErrorMessage("扫描数为0,请先扫描")
@ -376,18 +376,40 @@
}else{
this.toLocationCode = this.jobToLocationCode
}
//
var itemCodes = []
this.detailSource.forEach(item => {
itemCodes.push(item.itemCode)
})
await getManagementPrecisions(itemCodes, this.toLocationCode, res => {
if (res.success) {
this.managementList = res.list;
this.managementType = this.managementList&& this.managementList[0]&& this.managementList[0].ManagementPrecision ? this.managementList[0].ManagementPrecision : 'BY_PACKAGING'
}
})
//
if (this.scanCount == this.subList.length) {
if (this.checkCount()) {
this.submitJob();
if(this.managementType == 'BY_BATCH' || this.managementType == 'BY_QUANTITY'){
if (this.checkCountBatch()) {
this.submitJob();
}
}else{
if (this.checkCount()) {
this.submitJob();
}
}
} else if (this.scanCount < this.subList.length) {
//
if (this.jobContent.allowPartialComplete == "TRUE") {
//
if (this.checkCount()) {
this.submitJob();
if(this.managementType == 'BY_BATCH' || this.managementType == 'BY_QUANTITY'){
if (this.checkCountBatch()) {
this.submitJob();
}
}else{
if (this.checkCount()) {
this.submitJob();
}
}
} else {
//
@ -425,7 +447,34 @@
return isCheck;
},
checkCountBatch(){
var isCheck = true;
var hint = ""
for (var i = 0; i < this.detailSource.length; i++) {
var item = this.detailSource[i];
for (var j = 0; j < item.subList.length; j++) {
var subItem = item.subList[i]
console.log(calc.sub(subItem.handleQty, subItem.qty) )
if (calc.sub(subItem.handleQty, subItem.qty) < 0 || calc.sub(subItem.handleQty, subItem.qty) > 0) {
isCheck = false;
hint = "批次【" + subItem.batch + "】实际收货数量:[" + subItem.handleQty + "]与包装数量[" + subItem.qty +
"]不相等,是否继续收货?"
break
}
}
}
console.log(isCheck)
if (!isCheck) {
this.showQuestMessage(hint, res => {
if (res) {
this.submitJob();
}
})
}
return isCheck;
},
submitJob() {
uni.showLoading({
title: "提交中....",

2
src/pages/productReceipt/job/productReceiptJob.vue

@ -166,7 +166,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productReceipt/record/recordList.vue

@ -146,7 +146,7 @@
if (this.queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.queryParams.creationTime
})
}

6
src/pages/productRecycle/coms/comRecycleJobCard.vue

@ -1,6 +1,6 @@
<template>
<job-com-main-card :dataContent="dataContent">
<jobComMainDetailCard :dataContent="dataContent"></jobComMainDetailCard>
<jobComMainDetailCard :dataContent="dataContent" :isShowToLocation='isShowToLocation'></jobComMainDetailCard>
</job-com-main-card>
</template>
@ -21,6 +21,10 @@
type: Object,
default: {}
},
isShowToLocation: {
type: Boolean,
default: true
},
},
methods: {

7
src/pages/productRecycle/job/productRecycleJob.vue

@ -11,7 +11,7 @@
<uni-swipe-action-item
:right-options="item.status=='2'?detailGiveupOptions:detailOptions"
@click="swipeClick($event,item)">
<comRecycleJobCard :dataContent="item" @click='openJobDetail(item)'></comRecycleJobCard>
<comRecycleJobCard :dataContent="item" @click='openJobDetail(item)' :isShowToLocation='false'></comRecycleJobCard>
</uni-swipe-action-item>
</view>
</uni-swipe-action>
@ -134,7 +134,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}
@ -161,6 +161,9 @@
if (type === "refresh") {
uni.stopPullDownRefresh();
}
res.data.list.forEach(item=>{
item.fromLocationCode = item.toLocationCode
})
var list = res.data.list;
this.totalCount = res.data.total
updateTitle(this.title+"(" + this.totalCount + ")");

2
src/pages/productionReceipt/job/productionReceiptJob.vue

@ -195,7 +195,7 @@
if (queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: queryParams.creationTime
})
}

2
src/pages/productionReturn/job/holdToReturnJob.vue

@ -135,7 +135,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productionReturn/job/okToReturnJob.vue

@ -135,7 +135,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productionReturn/job/returnJob.vue

@ -135,7 +135,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/productionReturn/record/returnToHoldRecordList.vue

@ -145,7 +145,7 @@
if (this.queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.queryParams.creationTime
})
}

143
src/pages/purchaseReceipt/job/receiptDetail.vue

@ -34,7 +34,7 @@
<!-- 管理精度是批次 -->
<comReceiptDetailCardBacth :dataContent="item" :index="index" :settingParam="jobContent"
@remove="updateData" @updateData="updateData" :locationAreaTypeList='toLocationAreaTypeList'
v-if="managementType == 'BY_BATCH'">
v-if="managementType == 'BY_BATCH' || managementType =='BY_QUANTITY'">
</comReceiptDetailCardBacth>
<com-receipt-detail-card :dataContent="item" :index="index" :settingParam="jobContent" @remove="updateData"
@updateData="updateData" :locationAreaTypeList='toLocationAreaTypeList' v-else>
@ -289,8 +289,7 @@
getManagementPrecisions(itemCodes, that.jobToLocationCode, res => {
if (res.success) {
this.managementList = res.list;
this.managementType = this.managementList.some(item => item.ManagementPrecision ==
'BY_BATCH') ? 'BY_BATCH' : ''
this.managementType = this.managementList&& this.managementList[0]&& this.managementList[0].ManagementPrecision ? this.managementList[0].ManagementPrecision : 'BY_PACKAGING'
}
})
// if (uni.getStorageSync('purchaseReceiptDetailPointParams')) {
@ -318,8 +317,11 @@
},
getScanResult(result) {
this.balanceInfo = result.balance
console.log(this.managementType)
if(this.managementType == 'BY_BATCH'){
this.getScanResultAfterBatch(result)
}else if(this.managementType == 'BY_QUANTITY' ){
this.getScanResultAfterQuantity(result)
}else{
this.getScanResultAfter(result)
}
@ -560,6 +562,138 @@
this.showErrorMessage(e.message)
}
},
//
getScanResultAfterQuantity(result){
try {
var itemCode = result.label.itemCode;
var detail = this.detailSource.find(r => r.itemCode == itemCode);
if (detail == undefined) {
this.showErrorMessage("物料号【" + itemCode + "】不在列表中")
return;
}
detail.scaned = true;
if (result.label.labelType == "ContainerLabel") {
var containerNumber = result.label.container;
var itemDetail = detail.subList.filter(r => r.containerNumber == containerNumber);
if (itemDetail.length == 0) {
this.showErrorMessage("物料【" + itemCode + "】、托码【" + containerNumber + "】不在列表中")
} else {
if (itemDetail[0].scaned) {
this.showErrorMessage("物料【" + itemCode + "】、托码【" + containerNumber + "】已经扫描")
} else {
itemDetail.forEach(item => {
item.scaned = true;
itemDetail.scanDate = new Date();
item.handleQty = calc.add(item.handleQty,result.label.qty)
item.toLocationCode = this.toLocationCode;
})
// calcHandleQty(this.detailSource);
this.detailSource[0].subList.sort(compareDesc('scanDate')); //
this.continueScan()
this.$forceUpdate()
}
}
} else if (result.label.labelType == "PurchaseLabel") {
var packingNumber = result.package.number;
var parentpackingNumber = result.package.parentNumber;
var batch = result.label.batch;
var qty = result.label.qty;
var detail = this.detailSource.find(r => r.itemCode == itemCode);
console.log(8989,this.detailSource)
if (detail == undefined) {
this.showMessage("物料号【" + itemCode + "】不在列表中")
} else {
//
// var itemDetail = detail.subList.find(r => r.batch ==
// batch);
// if (itemDetail == undefined) {
// itemDetail = detail.subList.find(r => r.batch ==
// batch);
// if (itemDetail == undefined) {
// this.showMessage("" + batch + "")
// } else {
// var pack = itemDetail.packList.find(p =>
// p.batch == batch)
// if (pack == undefined) {
// this.showMessage("" + batch + "")
// } else {
let isScan = false
const itemDetail = detail.subList[0]
let pack = detail.subList[0] && detail.subList[0].length>0 ?detail.subList[0] : {}
if(packingNumber){
isScan = this.packingNumberList.some(item=>item == packingNumber)
}else{
isScan = false
}
if (isScan) {
detail.subList[0].scanDate = new Date();
// this.showMessage("" + packingNumber + "");
detail.subList[0].handleQty = calc.add(detail.subList[0].handleQty,result.label.qty)
} else {
this.packingNumberList.push(packingNumber)
detail.subList[0].scaned = true
detail.subList[0].scanDate = new Date();
detail.subList[0].handleQty = Number(result.label.qty);
detail.subList[0].toLocationCode = this.toLocationCode;
detail.subList[0].labelQty = Number(result.label.qty);
}
// }
calcHandleQty(this.detailSource);
this.continueScan()
// itemDetail.packList[0] = detail.subList[0]; //
this.$forceUpdate()
// }
// } else {
// //,
// var scanedLength = 0;
// itemDetail.packList.forEach(res => {
// if (res.scaned) {
// scanedLength++;
// }
// })
// debugger
// let isScan = false
// if(packingNumber){
// isScan = this.packingNumberList.some(item=>item == packingNumber)
// }else{
// isScan = false
// }
// if (isScan) {
// itemDetail.scanDate = new Date();
// // this.showMessage("" + packingNumber + "")
// itemDetail.handleQty = calc.add(itemDetail.handleQty,result.label.qty)
// } else {
// this.packingNumberList.push(packingNumber)
// itemDetail.scaned = true;
// itemDetail.scanDate = new Date();
// itemDetail.handleQty =itemDetail.handleQty ?itemDetail.handleQty:0
// itemDetail.handleQty = calc.add(itemDetail.handleQty,result.label.qty)
// console.log(itemDetail.handleQty)
// itemDetail.toLocationCode = this.toLocationCode;
// itemDetail.labelQty = Number(result.label.qty);
// itemDetail.packList.forEach(pac => {
// pac.scaned = true
// pac.scanDate = new Date();
// pac.handleQty = calc.add(pac.handleQty,result.label.qty);
// pac.toLocationCode = this.toLocationCode;
// })
// detail.handleQty = itemDetail.handleQty
// this.detailSource[0].subList.sort(compareDesc('scanDate')); //
// this.continueScan()
// this.$forceUpdate()
// }
// calcHandleQty(this.detailSource);
// }
}
}
} catch (e) {
this.showErrorMessage(e.message)
}
},
//
continueScan() {
this.scanCount = getScanCount(this.subList);
@ -715,7 +849,8 @@
var params = this.setParams();
let that = this
console.log(params)
console.log(877,params)
// return;
purchaseReceiptJobSubmit(params).then(res => {
if (res.data) {
let isCheckPrint = getSwitchInfoByCode(this.switchCode)//

2
src/pages/purchaseReceipt/job/receiptJob.vue

@ -184,7 +184,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/purchaseReturn/job/returnJob.vue

@ -136,7 +136,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/purchaseReturn/job/returnJob_0904.vue

@ -134,7 +134,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/putaway/job/putawayJob.vue

@ -150,7 +150,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/putaway/job/quantityPutawayJob.vue

@ -274,7 +274,7 @@
if (queryParams.creationTime) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: queryParams.creationTime
})
}

2
src/pages/repleinsh/job/repleinshJob.vue

@ -206,7 +206,7 @@
if (queryParams.creationTime ) {
filterParams.push({
column: "create_time",
action: "betweeen",
action: "between",
value: queryParams.creationTime
})
}

2
src/pages/scrap/job/scrapJob.vue

@ -130,7 +130,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/stockUp/job/stockUpJob.vue

@ -135,7 +135,7 @@ import {
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/supplierDeliver/record/supplierDeliverRecord.vue

@ -125,7 +125,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/transfer/job/issueJob.vue

@ -136,7 +136,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/transfer/job/receiptJob.vue

@ -134,7 +134,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/unPlanned/job/issueJob.vue

@ -137,7 +137,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

2
src/pages/unPlanned/job/receiptJob.vue

@ -126,7 +126,7 @@
if (this.checkedToday) {
filters.push({
column: "create_time",
action: "betweeen",
action: "between",
value: this.todayTime
})
}

Loading…
Cancel
Save