Browse Source

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

hella_online_20240829
lijuncheng 5 months ago
parent
commit
fc1127b0c4
  1. 1
      src/api/httpRequest3.js
  2. 63
      src/hybrid/html/pointPutawayJob.html
  3. 15
      src/mycomponents/scan/winScanLocation.vue
  4. 19
      src/mycomponents/scan/winScanPackAndLocation.vue
  5. 18
      src/pages/package/record/overPackageRecord.vue
  6. 125
      src/pages/pointPutawayJob/index.vue
  7. 5
      src/pages/productPutaway/job/productPutawayJob.vue
  8. 5
      src/pages/productReceipt/job/productReceiptJob.vue
  9. 5
      src/pages/purchaseReceipt/job/receiptJob.vue
  10. 5
      src/pages/putaway/job/putawayJob.vue
  11. 1
      src/store/modules/user.js

1
src/api/httpRequest3.js

@ -36,6 +36,7 @@ function service(options = {}) {
}else { }else {
if(res.data.code==401){ if(res.data.code==401){
uni.clearStorageSync() uni.clearStorageSync()
uni.removeStorageSync('overPackageRecord') // 删除直接翻包中缓存的来源库位
removeToken(); removeToken();
uni.reLaunch({ uni.reLaunch({
url: '/pages/login/index' url: '/pages/login/index'

63
src/hybrid/html/pointPutawayJob.html

@ -15,8 +15,8 @@
<style> <style>
.box { .box {
font-size: 13px; font-size: 13px;
/* padding: 10px; /* padding: 10px; */
border: 1px solid #dedede; */ border: 1px solid #dedede;
} }
.left { .left {
@ -70,38 +70,57 @@
.mb-kw { .mb-kw {
border-bottom: 1px solid #dedede; border-bottom: 1px solid #dedede;
padding-bottom: 10px; padding: 10px;
font-size: 15px;
} }
.mb-kw span { .mb-kw div {
font-weight: bold; font-weight: bold;
font-size: 16px; font-size: 23px;
text-align: center;
} }
.mb-text { .mb-bo {
margin-top: 5px; display: flex;
} }
table, th, td {
border: 1px solid rgb(228, 231, 237); .mb-bo .mb-left {
border-collapse: collapse; /* 移除表格内边框间的间隙 */ flex: 1
} }
table{
width: 100%; .mb-bo .mb-left .mb-text {
margin-top: 10px; padding: 10px;
} }
th{
padding: 4px ; .mb-bo .mb-left .mb-text:nth-child(1) {
font-size: 12px; border-bottom: 1px solid #dedede;
}
.mb-bo .mb-left .mb-text div {
font-weight: bold;
font-size: 16px;
text-align: center; text-align: center;
background:rgb(245, 246, 248);
color:rgb(96, 98, 102)
} }
td{
padding: 4px ; .mb-bo .mb-right {
font-size: 12px; padding: 10px;
width: 230px;
border-left: 1px solid #dedede;
display: flex;
align-items: center;
}
.mb-bo .mb-right .mb-text {
width: 100%;
}
.mb-bo .mb-right .mb-text div {
font-weight: bold;
font-size: 20px;
text-align: center; text-align: center;
color:rgb(96, 98, 102) width: 100%;
} }
</style> </style>
</head> </head>

15
src/mycomponents/scan/winScanLocation.vue

@ -19,6 +19,8 @@
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
<!-- 模拟扫描功能 -->
<win-com-scan v-show="false" ref="comscansimulate" @getResult="getScanResult" :clearResult="true" :boxFocus="true" :isShowHistory="false" headerType=""></win-com-scan>
<comMessage ref="comMessage"></comMessage> <comMessage ref="comMessage"></comMessage>
</template> </template>
@ -67,8 +69,15 @@
this.$refs.popup.open('bottom') this.$refs.popup.open('bottom')
}, 500) }, 500)
}, },
openScanPopupSimulate(location) {
this.$refs.comscansimulate.setItemCodeSimulate(location)
this.$refs.comscansimulate.clickScanMsg();
},
closeScanPopup() { closeScanPopup() {
if(this.$refs.popup){
this.$refs.popup.close() this.$refs.popup.close()
}
}, },
scanClick() { scanClick() {
this.$refs.scan.clickScanMsg(); this.$refs.scan.clickScanMsg();
@ -77,6 +86,7 @@
this.$refs.scan.clearScanValue(); this.$refs.scan.clearScanValue();
}, },
getScanResult(result) { getScanResult(result) {
uni.showLoading({ uni.showLoading({
title: '扫描中...', title: '扫描中...',
mask: true mask: true
@ -94,6 +104,7 @@
} }
getBasicLocationByCode(this.code).then(res => { getBasicLocationByCode(this.code).then(res => {
uni.hideLoading(); uni.hideLoading();
if (res.data.total > 0) { if (res.data.total > 0) {
let result = res.data.list[0]; let result = res.data.list[0];
@ -142,10 +153,14 @@
return isPass return isPass
}, },
getfocus() { getfocus() {
if(this.$refs.scan){
this.$refs.scan.getfocus(); this.$refs.scan.getfocus();
}
}, },
losefocus() { losefocus() {
if(this.$refs.scan){
this.$refs.scan.losefocus(); this.$refs.scan.losefocus();
}
}, },
showErrorMessage(message) { showErrorMessage(message) {
setTimeout(r => { setTimeout(r => {

19
src/mycomponents/scan/winScanPackAndLocation.vue

@ -28,7 +28,7 @@
<view v-if='allowModifyLocation'> <view v-if='allowModifyLocation'>
<uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请扫描来源库位" <uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请扫描来源库位"
@confirm="" style='height: 30rpx;border:1px solid #fff ;'></uni-combox> @confirm="handleConfirm" style='height: 30rpx;border:1px solid #fff ;'></uni-combox>
</view> </view>
<view v-else> <view v-else>
<text style="padding: 5px"> <text style="padding: 5px">
@ -47,7 +47,8 @@
</uni-popup> </uni-popup>
<balance-select ref="balanceSelect" @onSelectItem='selectBalanceItem'></balance-select> <balance-select ref="balanceSelect" @onSelectItem='selectBalanceItem'></balance-select>
<!-- 模拟扫描功能 --> <!-- 模拟扫描功能 -->
<win-com-scan v-show="false" ref="comscansimulate" @getResult="getScanResult" :headerType="headerType" :isShowHistory="false" :clearResult="true"></win-com-scan> <win-com-scan v-show="false" ref="comscansimulate" @getResult="getScanResult" :headerType="headerType"
:isShowHistory="false" :clearResult="true"></win-com-scan>
</view> </view>
<comMessage ref="comMessage"></comMessage> <comMessage ref="comMessage"></comMessage>
@ -73,7 +74,7 @@
} from '@/common/directory.js'; } from '@/common/directory.js';
export default { export default {
name: 'winScanPack', name: 'winScanPack',
emits: ["getResult", "close", "getCountScanResult"], emits: ["getResult", "close", "getCountScanResult", "confirm"],
components: { components: {
winComScan, winComScan,
balanceSelect balanceSelect
@ -131,15 +132,20 @@
inventoryStatus: [], inventoryStatus: [],
managementPrecision: '', managementPrecision: '',
fromInventoryStatuses: "", fromInventoryStatuses: "",
isCheck: false isCheck: false,
} }
}, },
created() { created() {
}, },
methods: { methods: {
handleConfirm() {
this.$emit('confirm', this.fromLocationCode)
},
// //
openScanPopupForType(fromLocationCode, businessType) { openScanPopupForType(fromLocationCode, businessType) {
this.businessType = businessType; this.businessType = businessType;
this.fromLocationCode = fromLocationCode; this.fromLocationCode = fromLocationCode;
if (fromLocationCode != '') { if (fromLocationCode != '') {
@ -150,9 +156,11 @@
this.fromInventoryStatuses = getDirectoryItemArray(this.businessType.outInventoryStatuses) this.fromInventoryStatuses = getDirectoryItemArray(this.businessType.outInventoryStatuses)
this.inventoryStatus = getDirectoryItemArray(this.businessType.outInventoryStatuses); // this.inventoryStatus = getDirectoryItemArray(this.businessType.outInventoryStatuses); //
this.fromLocationAreaTypeList = getDirectoryItemArray(this.businessType.fromLocationAreaTypeList); // this.fromLocationAreaTypeList = getDirectoryItemArray(this.businessType.fromLocationAreaTypeList); //
if (!this.show) {
setTimeout(res => { setTimeout(res => {
this.$refs.popup.open('bottom') this.$refs.popup.open('bottom')
}, 500) }, 500)
}
}, },
// //
@ -295,7 +303,8 @@
// mask: true // mask: true
// }) // })
// -- fromInventoryStatuses // -- fromInventoryStatuses
getBalanceByManagementPrecision(result.label, this.fromLocationCode, this.balanceFromInventoryStatuses?this.fromInventoryStatuses:undefined, getBalanceByManagementPrecision(result.label, this.fromLocationCode, this
.balanceFromInventoryStatuses ? this.fromInventoryStatuses : undefined,
res => { res => {
uni.hideLoading(); uni.hideLoading();
if (res.success) { if (res.success) {

18
src/pages/package/record/overPackageRecord.vue

@ -60,7 +60,7 @@
<win-scan-button @goScan='openScanPopup'></win-scan-button> <win-scan-button @goScan='openScanPopup'></win-scan-button>
</view> </view>
<win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult' :allowModifyLocation="false"> <win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult' :allowModifyLocation="true" @confirm="handleConfirm">
</win-scan-pack-and-location > </win-scan-pack-and-location >
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation' <win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation'
:locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location> :locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location>
@ -139,7 +139,7 @@
itemCode: "" itemCode: ""
}; };
}, },
onLoad(option) { onShow(){
var typeCode = "OverPackage" var typeCode = "OverPackage"
getBusinessType(typeCode, res => { getBusinessType(typeCode, res => {
if (res.success) { if (res.success) {
@ -209,7 +209,10 @@
this.toPackQty = pack.packQty; this.toPackQty = pack.packQty;
this.toPackUnitShow = e[0].label this.toPackUnitShow = e[0].label
}, },
//
handleConfirm(fromLocationCode){
this.$refs.scanLocationCode.openScanPopupSimulate(fromLocationCode)
},
getScanResult(result) { getScanResult(result) {
let balance = result.balance; let balance = result.balance;
let label = result.label; let label = result.label;
@ -289,7 +292,13 @@
}, },
showFromLocationPopup() { showFromLocationPopup() {
this.$nextTick(() => { this.$nextTick(() => {
let overPackageRecord = uni.getStorageSync('overPackageRecord')
if(overPackageRecord){
this.$refs.scanLocationCode.openScanPopupSimulate(overPackageRecord)
}else{
this.$refs.scanLocationCode.openScanPopup(); this.$refs.scanLocationCode.openScanPopup();
}
}) })
}, },
@ -429,6 +438,9 @@
this.scanPopupGetFocus(); this.scanPopupGetFocus();
}, },
getLocation(location, code) { getLocation(location, code) {
if(code){
uni.setStorageSync('overPackageRecord', code)
}
this.getFromLocationCode(location, code) this.getFromLocationCode(location, code)
}, },
getFromLocationCode(location, code) { getFromLocationCode(location, code) {

125
src/pages/pointPutawayJob/index.vue

@ -2,22 +2,28 @@
<view class="content" style="padding:30rpx 20rpx 100rpx;min-height: calc(100vh - 120rpx);"> <view class="content" style="padding:30rpx 20rpx 100rpx;min-height: calc(100vh - 120rpx);">
<com-empty-view v-if="data.length==0"></com-empty-view> <com-empty-view v-if="data.length==0"></com-empty-view>
<!-- 只用于展示页面 --> <!-- 只用于展示页面 -->
<view class="box" style="margin-bottom: 20rpx;"> <view class="box" style="margin-bottom: 20rpx;" v-for='(item,index) in data.sublist' :key='index'>
<view class="top"> <view class="top">
<view class="mb-kw"> <view class="mb-kw">
目标库位<text>{{data.toLocationCode}}</text> 目标库位<view>{{item.toLocationCode}}</view>
</view> </view>
<view class="mb-bo">
<view class="mb-left">
<view class="mb-text"> <view class="mb-text">
任务编号<text>{{data.number}}</text> 物料号<view>{{item.itemCode}}</view>
</view> </view>
<view class="mb-text"> <view class="mb-text">
创建人<text>{{data.creator||''}}</text> 托包装号<view>{{item.packingNumber}}</view>
</view> </view>
</view>
<view class="mb-right">
<view class="mb-text"> <view class="mb-text">
创建时间<text>{{formatDate(data.createTime)}}</text> 数量<view>{{item.packQty}}</view>
</view>
</view>
</view> </view>
</view> </view>
<u-table style="margin-top: 20rpx;"> <!-- <u-table style="margin-top: 20rpx;">
<u-tr> <u-tr>
<u-th>物品代码</u-th> <u-th>物品代码</u-th>
<u-th>物品描述</u-th> <u-th>物品描述</u-th>
@ -27,7 +33,7 @@
<u-th>数量</u-th> <u-th>数量</u-th>
<u-th>计量单位</u-th> <u-th>计量单位</u-th>
</u-tr> </u-tr>
<u-tr v-for="(cur,key) in data.sublist" :key='key'> <u-tr v-for="(cur,key) in item.sublist" :key='key'>
<u-td>{{cur.itemCode}}</u-td> <u-td>{{cur.itemCode}}</u-td>
<u-td>{{cur.itemDesc1}}</u-td> <u-td>{{cur.itemDesc1}}</u-td>
<u-td>{{cur.batch}}</u-td> <u-td>{{cur.batch}}</u-td>
@ -36,7 +42,7 @@
<u-td>{{cur.qty}}</u-td> <u-td>{{cur.qty}}</u-td>
<u-td>{{cur.uom}}</u-td> <u-td>{{cur.uom}}</u-td>
</u-tr> </u-tr>
</u-table> </u-table> -->
</view> </view>
<view class="" style="position: fixed;width: 100%;bottom: 0rpx;left: 0px;"> <view class="" style="position: fixed;width: 100%;bottom: 0rpx;left: 0px;">
<button @click="printImage" <button @click="printImage"
@ -132,23 +138,13 @@
// jobNumber: '555555', // jobNumber: '555555',
// creator: '', // creator: '',
// createTime: '2019-12-12 05:00:00', // createTime: '2019-12-12 05:00:00',
// sublist: [{
// itemNumber: '66', // itemNumber: '66',
// itemDes: 'hahah', // itemDes: 'hahah',
// batch: '201450513', // batch: '201450513',
// packingNumber: '201450513', // packingNumber: '201450513',
// packUnit: '201450513', // packUnit: '201450513',
// packQty: '40', // packQty: '40',
// uom: '' // uom: '',
// },{
// itemNumber: '77',
// itemDes: '8888',
// batch: '201450513',
// packingNumber: '201450513',
// packUnit: '201450513',
// packQty: '40',
// uom: ''
// }]
// }, { // }, {
// toLocationCode: 'C13-12-11', // toLocationCode: 'C13-12-11',
// jobNumber: '555555', // jobNumber: '555555',
@ -182,53 +178,30 @@
let str = '' let str = ''
this.readFile(htmlFileUrl, (htmlContent) => { this.readFile(htmlFileUrl, (htmlContent) => {
this.newHtmlContent = htmlContent this.newHtmlContent = htmlContent
// this.data.forEach(item => { this.data.sublist.forEach(item => {
str += `<div class="box" style="page-break-before:always;" ><br /> str += `<div class="box" style="page-break-before:always;" ><br />
<div class="top"> <div class="top">
<div class="mb-kw"> <div class="mb-kw">
目标库位<span>${this.data.toLocationCode}</span> 目标库位<div>${item.toLocationCode}</div>
</div> </div>
<div class="mb-bo">
<div class="mb-left">
<div class="mb-text"> <div class="mb-text">
任务编号<span>${this.data.number}</span> 物料号<div>${item.itemCode}</div>
</div> </div>
<div class="mb-text"> <div class="mb-text">
创建人<span>${this.data.creator}</span> 托包装号<div>${item.packingNumber}</div>
</div>
</div> </div>
<div class="mb-right">
<div class="mb-text"> <div class="mb-text">
创建时间<span>${this.formatDate(this.data.createTime)}</span> 数量<div>${item.packQty}</div>
</div>
</div>
</div> </div>
</div> </div>
<table style="margin-top: 20rpx;" style='border-collapse: collapse;'>
<tr>
<th>物品代码</th>
<th>物品描述</th>
<th>批次</th>
<th>包装号</th>
<th>包装规格</th>
<th>数量</th>
<th>计量单位</th>
<tr>
tableTrTd
</table>
<div>
`
let str1 = ''
this.data.sublist.forEach((cur, key) => {
str1 += `
<tr>
<td>${cur.itemCode}</td>
<td>${cur.itemDesc1}</td>
<td>${cur.batch}</td>
<td>${cur.packingNumber}</td>
<td>${cur.packUnit}</td>
<td>${cur.qty}</td>
<td>${cur.uom}</td>
</tr>
` `
}) })
str = str.replace(
"tableTrTd", str1)
// })
this.newHtmlContent = this.newHtmlContent.replace( this.newHtmlContent = this.newHtmlContent.replace(
"mainBody", str); // "mainBody", str); //
}); });
@ -243,7 +216,7 @@
.box { .box {
font-size: 26rpx; font-size: 26rpx;
/* display: flex; */ /* display: flex; */
padding: 20rpx; /* padding: 20rpx; */
border: 1px solid #dedede; border: 1px solid #dedede;
} }
@ -301,16 +274,52 @@
.mb-kw { .mb-kw {
border-bottom: 1px solid #dedede; border-bottom: 1px solid #dedede;
padding-bottom: 20rpx; padding: 20rpx;
font-size: 30rpx;
}
.mb-kw view {
font-weight: bold;
font-size: 46rpx;
text-align: center;
}
.mb-bo{
display:flex;
} }
.mb-bo .mb-left{
flex:1
.mb-kw text { }
.mb-bo .mb-left .mb-text{
padding: 20rpx;
}
.mb-bo .mb-left .mb-text:nth-child(1){
border-bottom: 1px solid #dedede;
}
.mb-bo .mb-left .mb-text view{
font-weight: bold; font-weight: bold;
font-size: 32rpx; font-size: 32rpx;
text-align: center;
}
.mb-bo .mb-right{
padding: 20rpx;
width: 260rpx;
border-left: 1px solid #dedede;
display: flex;
align-items: center;
} }
.mb-bo .mb-right .mb-text{
.mb-text { width: 100%;
}
.mb-bo .mb-right .mb-text view{
font-weight: bold;
font-size: 40rpx;
text-align: center;
width: 100%;
}
/* .mb-text {
margin-top: 10rpx; margin-top: 10rpx;
} }
@ -323,5 +332,5 @@
font-size: 24rpx !important; font-size: 24rpx !important;
word-break: break-all; word-break: break-all;
} } */
</style> </style>

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

@ -348,6 +348,11 @@
action: "==", action: "==",
value: this.type value: this.type
}, },
{
column: "status",
action: "in",
value: '1,2',
}
// { // {
// column: "fromLocationCode", // column: "fromLocationCode",
// action: "==", // action: "==",

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

@ -372,6 +372,11 @@
column: "type", column: "type",
action: "==", action: "==",
value: this.type value: this.type
},
{
column: "status",
action: "in",
value: '1,2',
} }
// { // {
// column: "fromLocationCode", // column: "fromLocationCode",

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

@ -380,6 +380,11 @@
action: "==", action: "==",
value: result.label.itemCode value: result.label.itemCode
}, },
{
column: "status",
action: "in",
value: '1,2',
}
// { // {
// column: "fromLocationCode", // column: "fromLocationCode",
// action: "==", // action: "==",

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

@ -323,6 +323,11 @@
action: "==", action: "==",
value: result.label.itemCode value: result.label.itemCode
}, },
{
column: "status",
action: "in",
value: '1,2',
}
// { // {
// column: "fromLocationCode", // column: "fromLocationCode",
// action: "==", // action: "==",

1
src/store/modules/user.js

@ -118,6 +118,7 @@ const user = {
commit('SET_ID',[]) commit('SET_ID',[])
storage.removeStorage(storage.constant.token) storage.removeStorage(storage.constant.token)
storage.clearStorage() storage.clearStorage()
uni.removeStorageSync('overPackageRecord') // 删除直接翻包中缓存的来源库位
resolve() resolve()
}).catch(error => { }).catch(error => {
reject(error) reject(error)

Loading…
Cancel
Save