Compare commits

...

62 Commits

Author SHA1 Message Date
李俊城 19d5a73376 1.直接退库,增加半成品库位类型2.非生产领料增加半成品库位类型 1 year ago
李俊城 2113f0ab07 生产退料增加成品库 1 year ago
李俊城 06c5d5606b 非生产领料刷新 1 year ago
李俊城 8e05072441 非生产领料和退料下拉加载 1 year ago
李俊城 90fa922ae3 非生产出库、非生产入库 1 year ago
李俊城 35471f201d 修改非生产领料、非生产退料 1 year ago
李俊城 b9d6c09fd6 修改采购收货时间赋值 1 year ago
李俊城 71438834a8 修改采购上架数据不对 1 year ago
李俊城 ebb4c19a05 修改盘点已经扫描提示 1 year ago
李俊城 bcc6792640 采购上架添加字段 2 years ago
李俊城 dca5f418dc 修改采购上架分页加载 2 years ago
李俊城 719e8f8610 修改配置文件更新 2 years ago
李俊城 e34c215530 修改盘点 2 years ago
李俊城 4dfc8ccec9 添加虚拟列表控件 2 years ago
李俊城 1204be4271 修改盘点数据量大加载卡顿 2 years ago
李俊城 e19e5b48e8 修改原料上架查询采购订单明细 2 years ago
李俊城 7bc799a181 修改采购上架只能上架同一个采购订单 2 years ago
李俊城 506b7821cc 修改时间赋值 2 years ago
李俊城 09251c39dd 任务提交添加完成id和name,date 2 years ago
李俊城 e383b6cc09 直接退库添加半成品库 2 years ago
李俊城 3da4f049bf 直接 退库 目标库位添加成品库 2 years ago
李俊城 a398fdbf89 修改盘点任务数量刷新 2 years ago
聂喜婷 0b3208e327 修改盘点 2 years ago
聂喜婷 2c0b29427a 修改刷新字体的大小 2 years ago
聂喜婷 d8f34bfb42 修改盘点明细加载功能 2 years ago
李俊城 2793c8f2c1 worker 赋值为中文登录名字 2 years ago
李俊城 e001141e66 add 页面刷新 2 years ago
李俊城 f152b00e92 添加打包配置 2 years ago
李俊城 201df55a1b 直接发料 检验同一个erp储位 2 years ago
李俊城 46cd8a9cae 直接发料 去掉校验同一个Erp储位 2 years ago
李俊城 6a91ce592c 直接退库 添加目标库位半成品库 2 years ago
李俊城 282cfef2ef 修改发料任务匹配规则 2 years ago
李俊城 502f67926e 发料修改匹配结果错误 2 years ago
李俊城 08a3a0ad4d 直接发料 来源库位与目标库位的erp储位必须相同才让发料 2 years ago
李俊城 54cfa5bc64 原料直发修改数量用num自定义组件 2 years ago
李俊城 5e03b8473c 原料直发客户修改发货数量 2 years ago
李俊城 e02bd0fe1c 直接发料修改为非生产调拨 2 years ago
李俊城 76ff242b63 原料直发 数量等于库存余额 2 years ago
李俊城 69a02eb854 添加采购收货,储位调拨 主页面快捷方式, 2 years ago
李俊城 9e01ab5c86 原料直发添加客户代码 2 years ago
李俊城 8c981e7a90 采购收货,不合格判断通过是否有不合格原因判断 2 years ago
李俊城 8bbe00da88 修改提交之后不显示扫描框 2 years ago
李俊城 30b4ab8bbc 修改样式 2 years ago
李俊城 db8be367bf 发料 可以修改发料数量, 直接发料点击取消修改关闭状态 2 years ago
李俊城 192b294ae5 修改访问请求地址 2 years ago
李俊城 9416024f7e 修改获取任务数量接口 2 years ago
李俊城 d065ea50c2 修改主页面返回菜单选中 2 years ago
李俊城 4ad3b37b3b 直接退库修改参数,盘点显示库存单位 2 years ago
李俊城 e05290311e 修改密码限制输入长度 2 years ago
李俊城 bf1f8c866e 修改消息详细,跳转到主页面 回收料收货 2 years ago
李俊城 783059eacd 半成品上架 2 years ago
李俊城 1dc505dc31 提交代码 2 years ago
李俊城 d2d9669986 采购上架修改上传字段 2 years ago
李俊城 c68231a498 上架后退货 2 years ago
李俊城 af7db6a417 采购收货 2 years ago
李俊城 9b5812aca1 直接发料 2 years ago
李俊城 498ef365ba 原料直发 2 years ago
李俊城 deb623fa3f 添加采购上架功能 2 years ago
李俊城 3aa416edd9 储位内移库,储位调拨 2 years ago
李俊城 385d869157 修改网络请求地址,修改获取主页面菜单 2 years ago
李俊城 b1cb070ce6 修改扫描框样式 2 years ago
李俊城 57db857418 修改网络访问地址 2 years ago
  1. 84
      fe/PDA/api/index.js
  2. 5
      fe/PDA/common/basic.js
  3. 4
      fe/PDA/common/modelConfig.js
  4. 26
      fe/PDA/common/new_style.css
  5. 4
      fe/PDA/common/pdabasic.css
  6. 249
      fe/PDA/components/virtual-list-test-cell/virtual-list-test-cell.vue
  7. 41
      fe/PDA/components/zp-public-virtual-cell/zp-public-virtual-cell.vue
  8. 4
      fe/PDA/main.js
  9. 6
      fe/PDA/mycomponents/comItem/comBalanceItem.vue
  10. 14
      fe/PDA/mycomponents/comItem/comItemBottom.vue
  11. 38
      fe/PDA/mycomponents/comItem/comItemTop.vue
  12. 2
      fe/PDA/mycomponents/comItem/comJobScanDetail.vue
  13. 105
      fe/PDA/mycomponents/common/comEasyInputCount.vue
  14. 62
      fe/PDA/mycomponents/common/comList.vue
  15. 1
      fe/PDA/mycomponents/common/comMessage.vue
  16. 3
      fe/PDA/mycomponents/common/comNumberBox.vue
  17. 2
      fe/PDA/mycomponents/coms/task/comReceipt.vue
  18. 2
      fe/PDA/mycomponents/coms/task/comScanPutaway.vue
  19. 91
      fe/PDA/mycomponents/coms/task/comUnProduce.vue
  20. 2
      fe/PDA/mycomponents/scan/comScanReplen.vue
  21. 4
      fe/PDA/mycomponents/wincom/winComScan.vue
  22. 12
      fe/PDA/mycomponents/wincom/winScanByCode.vue
  23. 6
      fe/PDA/mycomponents/wincom/winScanByPack.vue
  24. 40
      fe/PDA/pages.js
  25. 50
      fe/PDA/pages.json
  26. 32
      fe/PDA/pages/index/index.vue
  27. 12
      fe/PDA/pages/inventory/comTransfer.vue
  28. 6
      fe/PDA/pages/inventory/createTP.vue
  29. 8
      fe/PDA/pages/inventory/hold.vue
  30. 6
      fe/PDA/pages/inventory/merge.vue
  31. 2
      fe/PDA/pages/inventory/productionReturn.vue
  32. 4
      fe/PDA/pages/inventory/productionReturn_detail.vue
  33. 9
      fe/PDA/pages/inventory/scrap.vue
  34. 4
      fe/PDA/pages/inventory/transferByLocation.vue
  35. 4
      fe/PDA/pages/inventory/transferDiffLocation.vue
  36. 2
      fe/PDA/pages/inventory/transferIssue.vue
  37. 4
      fe/PDA/pages/inventory/transferIssue_detail.vue
  38. 2
      fe/PDA/pages/inventory/transferNoLocation.vue
  39. 2
      fe/PDA/pages/inventory/transferReceipt.vue
  40. 4
      fe/PDA/pages/inventory/transferReceipt_detail.vue
  41. 6
      fe/PDA/pages/inventory/unissue.vue
  42. 6
      fe/PDA/pages/inventory/unpick.vue
  43. 6
      fe/PDA/pages/inventory/unreceipt.vue
  44. 14
      fe/PDA/pages/login/index.vue
  45. 10
      fe/PDA/pages/message/details.vue
  46. 7
      fe/PDA/pages/message/index.vue
  47. 4
      fe/PDA/pages/note.js
  48. 4
      fe/PDA/pages/putaway/dyPutaway.vue
  49. 221
      fe/PDA/pages/putaway/purchasePutaway.vue
  50. 4
      fe/PDA/pages/putaway/putaway.vue
  51. 8
      fe/PDA/pages/putaway/rapReceipt.vue
  52. 2
      fe/PDA/pages/putaway/rapTansfer.vue
  53. 43
      fe/PDA/pages/putaway/semiPutaway.vue
  54. 2
      fe/PDA/pages/query/item.vue
  55. 2
      fe/PDA/pages/query/location.vue
  56. 2
      fe/PDA/pages/return/productionReturn.vue
  57. 14
      fe/PDA/pages/return/productionReturn_detail.vue
  58. 2
      fe/PDA/pages/return/purchaseReturn.vue
  59. 8
      fe/PDA/pages/return/purchaseReturn_detail.vue
  60. 2
      fe/PDA/pages/return/returnBeforPutaway.vue
  61. 72
      fe/PDA/pages/return/returnToWarehouse.vue
  62. 26
      fe/PDA/pages/setter/passwordpage.vue
  63. 2
      fe/PDA/pages/setter/setterDetail.vue
  64. 2
      fe/PDA/pages/store/deliverAll.vue
  65. 6
      fe/PDA/pages/store/deliverFG.vue
  66. 2
      fe/PDA/pages/store/deliverMany.vue
  67. 124
      fe/PDA/pages/store/deliverRaw.vue
  68. 6
      fe/PDA/pages/store/deliverTF.vue
  69. 70
      fe/PDA/pages/store/issueDirect.vue
  70. 11
      fe/PDA/pages/store/receipt.vue
  71. 2
      fe/PDA/pages/store/receiptOrder.vue
  72. 2
      fe/PDA/pages/store/receiptRandom.vue
  73. 13
      fe/PDA/pages/store/recycle.vue
  74. 4
      fe/PDA/pages/store/tjDeliver_detail.vue
  75. 11
      fe/PDA/pages/store/tjReceipt.vue
  76. 13
      fe/PDA/pages/store/tjRecycle.vue
  77. 2
      fe/PDA/pages/task/Inspect.vue
  78. 4
      fe/PDA/pages/task/Inspect_detail.vue
  79. 4
      fe/PDA/pages/task/Inspect_summary.vue
  80. 2
      fe/PDA/pages/task/count.vue
  81. 4
      fe/PDA/pages/task/countByItem.vue
  82. 4
      fe/PDA/pages/task/countByLocation.vue
  83. 443
      fe/PDA/pages/task/count_detail.vue
  84. 2
      fe/PDA/pages/task/deliveFg.vue
  85. 2
      fe/PDA/pages/task/deliver.vue
  86. 60
      fe/PDA/pages/task/deliver_detail.vue
  87. 2
      fe/PDA/pages/task/issueByFIFO.vue
  88. 2
      fe/PDA/pages/task/issueNoFIFO.vue
  89. 252
      fe/PDA/pages/task/issue_detail.vue
  90. 2
      fe/PDA/pages/task/putaway.vue
  91. 2
      fe/PDA/pages/task/putawayByLocation.vue
  92. 2
      fe/PDA/pages/task/putawayNoLocation.vue
  93. 4
      fe/PDA/pages/task/putaway_detail.vue
  94. 2
      fe/PDA/pages/task/putawayjob.vue
  95. 4
      fe/PDA/pages/task/receipt.vue
  96. 93
      fe/PDA/pages/task/receipt_check.vue
  97. 11
      fe/PDA/pages/task/receipt_detail.vue
  98. 28
      fe/PDA/pages/task/receipt_result.vue
  99. 4
      fe/PDA/pages/task/replen.vue
  100. 176
      fe/PDA/pages/task/unProducePick.vue

84
fe/PDA/api/index.js

@ -14,8 +14,8 @@ export function getlogin(params) { //
})
}
export function getMenus() { //
return promise(devUrl + "/api/pda/account/menus", { //
export function getMenus(params) { //
return promise(devUrl + "/api/pda/account/menus/"+params, { //
data: {},
method: "get"
})
@ -76,9 +76,9 @@ export function getJobCount() {
}
//获取任务数量
export function getJobCountAsync(isToday) {
export function getJobCountAsync(isToday,userId) {
return promise(
devUrl + "/api/pda/job/count?isToday=" + isToday, {
devUrl + "/api/pda/job/count/get-job-count/" + isToday+"?userId="+userId, {
method: 'get',
data: {}
})
@ -253,9 +253,9 @@ export const getReceiptJobByNumber = (params) => request(
//根据Asn Number 获取收货任务列表
export const getReceiptJobByAsnNumber = (params) => request(
devUrl + "/api/pda/job/purchase-receipt/list/by-asn/asnNumber=" + params.number + "&isToday=" + params
.isToday, {
data: {},
devUrl + "/api/pda/job/purchase-receipt/list/by-asn"
, {
data: params,
method: "get"
});
@ -662,9 +662,53 @@ export const finshIssueJob = (id, params) => request(
data: params,
method: "post"
})
//非生产领料任务
export const getUnProducePickList = (params) => request(
devUrl + "/api/pda/job/unplanned-issue/list", {
method: 'get',
data: params
});
//非生产领料任务详情
export const getUnProducePickDetail = (params) => request(
devUrl + "/api/pda/job/unplanned-issue/" + params.id, { //
data: {},
method: "get"
});
//完成非生产领料任务
export const finshUnProducePickJob = (id, params) => request(
devUrl + "/api/pda/job/unplanned-issue/finish/" + id, { //
data: params,
method: "post"
})
//非生产退料任务
export const getUnProduceReturnList = (params) => request(
devUrl + "/api/pda/job/unplanned-receipt/list", {
method: 'get',
data: params
});
//非生产退料 任务详情
export const getUnProduceReturnDetail = (params) => request(
devUrl + "/api/pda/job/unplanned-receipt/" + params.id, { //
data: {},
method: "get"
});
//完成非生产退料任务
export const finshUnProduceReturnJob = (id, params) => request(
devUrl + "/api/pda/job/unplanned-receipt/finish/" + id, { //
data: params,
method: "post"
})
//发货任务列表
export const getDeliverList = (params) => request(
'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/list", {
devUrl + "/api/pda/job/deliver/list", {
method: 'get',
data: params
});
@ -685,20 +729,20 @@ export const getDeliverCount = (params) => request(
//发货任务详情
export const getDeliverDetail = (params) => request(
'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/" + params.id, { //
devUrl + "/api/pda/job/deliver/" + params.id, { //
data: {},
method: "get"
});
//承接发货任务
export const takeDeliverJob = (params) => request(
'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/take/" + params.id, { //
devUrl + "/api/pda/job/deliver/take/" + params.id, { //
data: {},
method: "post"
});
//取消承接发货任务
export const cancelTakeDeliverJob = (id) => request(
'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/cancel-take/" + id, { //
devUrl + "/api/pda/job/deliver/cancel-take/" + id, { //
data: {},
method: "post"
});
@ -1190,6 +1234,15 @@ export const purchasePutaway = (params) => request(
method: "post"
});
//采购上架 ,通过采购订单号获取详细
export const getPurchasePutawayAsyncDetail = (poNumber) => promise(
devUrl + "/api/pda/store/purchase-receipt/get-packing-by-purchase-recepit-note?poNumber="+poNumber, { //
data: {},
method: "post"
});
//半成品上架
export const semiPutaway = (params) => request(
devUrl + "/api/pda/note/put-away/by-semi", { //
@ -1199,11 +1252,20 @@ export const semiPutaway = (params) => request(
//
export const getPurchaseDetailAsync = (itemCode, packingCode) => promise(
devUrl + "/api/pda/store/purchase-receipt-request/detail-by-item-and-packing?itemCode=" + itemCode + '&packingCode=' +
packingCode, { //
data: {},
method: "get"
});
export const getPurchaseDetailAsync_old = (itemCode, packingCode) => promise(
devUrl + "/api/pda/store/purchase-receipt/detail-by-item-and-packing?itemCode=" + itemCode + '&packingCode=' +
packingCode, { //
data: {},
method: "get"
});
export const getFileByCode = (fileCode) => request(
devUrl + "/api/pda/file/filestore/by-code/" + fileCode, { //

5
fe/PDA/common/basic.js

@ -222,6 +222,11 @@ export function getCurrDateTime() {
return getDate(date) + " " + getTime(date);
}
export function getCurrDateTimeAndT() {
var date = new Date();
return getDate(date) + "T" + getTime(date);
}
export function getISODateTime() {
var date = new Date();
return getDate(date) + "T" + getTime(date) + "Z";

4
fe/PDA/common/modelConfig.js

@ -1,5 +1,7 @@
let maxPageSize = 10;
let version ="1.0"
export default{
maxPageSize
maxPageSize,
version
}

26
fe/PDA/common/new_style.css

@ -279,7 +279,7 @@ uni-page-head .uni-page-head__title {
.bot_card_item {
width: 50%;
text-align: left;
text-align:left;
height: 60rpx;
overflow: hidden;
white-space: nowrap;
@ -405,16 +405,20 @@ uni-page-head .uni-page-head__title {
}
.popup_box .pop_title {
font-size: 1rem;
font-size: 0.9rem;
font-weight: bold;
color: #fff;
padding: 30rpx 20rpx;
padding: 20rpx 30rpx 15rpx 20rpx;
align-items: center;
/* position: absolute; */
/* transform: translateY(-50%); */
}
.popup_box .pop_title text {
font-size: .825rem;
font-weight: normal;
margin-top: 10rpx;
margin-top: 5rpx;
}
.popup_box .uni-steps {
@ -455,6 +459,7 @@ uni-page-head .uni-page-head__title {
position: relative;
margin-bottom: 20rpx;
background-color: #fff;
border-top-left-radius: 8rpx;
border-top-right-radius: 8rpx;
border-bottom-left-radius: 8rpx;
border-bottom-right-radius: 8rpx;
@ -505,7 +510,7 @@ uni-page-head .uni-page-head__title {
}
.popup_box .pop_tab .tab_info textarea {
padding-top: 20rpx;
padding-top: 10rpx;
}
.list_wrap {
@ -660,6 +665,17 @@ uni-page-head .uni-page-head__title {
z-index: 2;
}
.choose_marked_count {
position: absolute;
width: 100%;
/* height: 100%; */
top: 0;
left: 0;
border-top: 6rpx solid #5FCB94;
border-top-left-radius: 16rpx;
border-top-right-radius: 16rpx;
}
.choose_marked {
position: absolute;
width: 100%;

4
fe/PDA/common/pdabasic.css

@ -167,7 +167,7 @@
.scroll-detail {
overflow: hidden;
padding-bottom: 60px;
height: 480px;
height: 100%;
/* 没有高度不可以回到顶部 */
/* background-color: #ffffff; */
}
@ -600,7 +600,7 @@ export function getItemTypeStyle(val) {
} */
.conbox {
padding: 10rpx 0;
/* padding: 10rpx 0; */
}
.myinput {

249
fe/PDA/components/virtual-list-test-cell/virtual-list-test-cell.vue

@ -0,0 +1,249 @@
<!-- 这个文件是虚拟列表中的实际cell -->
<template>
<view class="item">
<uni-swipe-action>
<uni-swipe-action-item :right-options="options" :auto-close="false" @click="swipeClick($event,item)">
<view class="detail-content common_card">
<view class="choose_main">
<view class="ljh_box">
<view class="ljh_info">
<view class="tit_ljh">{{index+1+'.'+item.itemCode }}</view>
<view class="label_xm font_sm fr">{{ item.packingCode }}</view>
</view>
<view class="desc_card uni-flex space-between">
<view class="desc_ljh">
<view class="font_xs text_lightblue"> {{ item.itemName }}</view>
<view class="font_xs text_lightblue">{{ item.itemDesc1 }}
</view>
</view>
</view>
</view>
<view class="list_form">
<view>
<uni-table style="overflow-x: hidden; ">
<uni-tr>
<uni-th width="100"></uni-th>
<uni-th width="100" align="center">库存</uni-th>
<uni-th width="100" align="center">盘点</uni-th>
</uni-tr>
<uni-tr>
<uni-th width="100">数量({{item.uom}})</uni-th>
<uni-th width="100" align="center">
<text class="text_black">{{item.inventoryQty}}</text>
</uni-th>
<uni-th width="100" align="center">
<view class="flex" style="align-items: center;justify-content: center;"
v-if="item.scaned && item.packingCode">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="flex" style=" align-items: center;justify-content: center;"
v-if="item.packingCode==''">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="" v-else-if="!item.scaned">
<text class="text_black">{{item.countQty}}</text>
</view>
</uni-th>
</uni-tr>
</uni-table>
</view>
</view>
<view style="margin:0 20rpx 20rpx;">
<view class="uni-flex uni-row bot_card">
<view class="bot_card_item">
<label class="icon_bg icon_bg_kw" style="text-align: center;">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;"></text>
</label>
<text>{{ item.locationCode }}</text>
</view>
<view class="bot_card_item">
<label class="icon_bg icon_bg_pc">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;"></text>
</label>
<text>{{item.lot}}</text>
</view>
<view class="bot_card_item" style="width: 25%;">
<view class="uni-flex" v-if="item.isNew ">
<!-- picker的index默认是0 -->
<picker picker @change="bindPickerChange($event,item)" :value="item.status-1"
:range="statusArray">
<view class="uni-flex " style="padding:5px 0px;">
<text class="state_point"
:class="statusStyle(item.status)">{{statusArray[item.status-1]}}</text>
<image class="icon_normal" src="@/static/icons_ui/icon_down.svg">
</image>
</view>
</picker>
</view>
<text v-else class="state_point" :class=" statusStyle(item.status)">
{{ statusColor(item.status )}}
</text>
</view>
</view>
</view>
</view>
<view class="uni-flex space-between" style="margin:0 20rpx 20rpx;"
v-if="item.scaned || item.packingCode==''">
<text class="font_xs"
style="padding: 5px 2px; text-overflow: ellipsis; overflow: hidden;">{{item.countDescription}}</text>
<view class="photo_btn fr" @click="openEditCountDesc(item)">
<text class="fl font_xs" style="width:65px;">盘点描述</text>
</view>
</view>
<view v-if="item.scaned" class="choose_marked_count"
style="background-color: #5FCB94; opacity: 0.65">
<view class="" style="background-color: #5FCB94; width: 200rpx;height: 300rpx;">
</view>
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</template>
<script>
import {
getInventoryStatusDesc,
getInventoryTypeStyle
} from '@/common/basic.js';
import {
getInventoryStatusArray
} from '@/common/array.js'
export default {
name: "virtual-list-test-cell",
props: {
item: null,
index: 0,
extraData: null
},
data() {
return {
type: '',
id: '',
datacontent: {},
details: [],
allDetails: [], //
currentItem: {},
editDescItem: {},
editCountItem: {},
scrollTop: 0,
old: {
scrollTop: 0
},
scanResult: {},
allCount: 0,
newCount: 0,
scanCount: 0,
options: [{
text: '移除',
style: {
backgroundColor: '#F56C6C'
}
}],
location: null,
topItem: '',
isShowScanPopup: false,
statusArray: [],
allStatusArray: [],
ipage: 1,
iSize: 20,
testList: [],
};
},
methods: {
titleClick(title) {
//extraData
//props使uni.$emituni.$on
// if (this.extraData.titleClickedCallback) {
// this.extraData.titleClickedCallback(title);
// }
},
openEditCount(item) {
this.$emit("openEditCount")
},
openEditCountDesc(item) {
this.$emit("openEditCountDesc")
},
openEditCountDesc(item) {
this.$emit("bindPickerChange")
},
statusColor(val) {
return getInventoryStatusDesc(val);
},
statusStyle(val) {
return getInventoryTypeStyle(val);
},
}
}
</script>
<style scoped>
.item {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 30rpx;
}
.item-content {
flex: 1;
margin-left: 20rpx;
}
.header {
background-color: red;
font-size: 24rpx;
text-align: center;
padding: 20rpx 0rpx;
color: white;
}
.item-image {
height: 150rpx;
width: 150rpx;
background-color: #eeeeee;
border-radius: 10rpx;
}
.item-title {
background-color: red;
color: white;
font-size: 26rpx;
border-radius: 5rpx;
padding: 5rpx 10rpx;
}
.item-detail {
margin-top: 10rpx;
border-radius: 10rpx;
font-size: 28rpx;
color: #aaaaaa;
word-break: break-all;
}
.item-line {
position: absolute;
bottom: 0rpx;
left: 0rpx;
height: 1px;
width: 100%;
background-color: #eeeeee;
}
</style>

41
fe/PDA/components/zp-public-virtual-cell/zp-public-virtual-cell.vue

@ -0,0 +1,41 @@
<!-- 当虚拟列表兼容模式渲染的时候列表中实际上渲染的是这个组件并且会把当前的itemindex和extraData(附加数据)通过props传给这个组件 -->
<!-- 如果有多个不同的虚拟列表它们会共用这个组件这时候可以通过extraData来区分不同的页面 -->
<template>
<view>
<!-- 数组qwq{{index}} -->
<!-- 这里的extraData.id在virtual-list-compatibility-demo设置的是test1 -->
<virtual-list-test-cell :item="item" :index="index" :extraData="extraData" @openEditCount="openEditCount" @openEditCountDesc="<!-- #ifdef APP -->
<!-- #endif -->openEditCountDesc"/>
</view>
</template>
<script>
export default {
name: "zp-public-virtual-cell",
props: {
item: null,
index: 0,
// extraData:extraDataz-paging
extraData: null
},
data() {
return {
};
},
methods: {
openEditCount(item) {
this.$emit("openEditCount")
},
openEditCountDesc(item) {
this.$emit("openEditCountDesc")
},
},
}
</script>
<style>
</style>

4
fe/PDA/main.js

@ -10,10 +10,11 @@ import axios from 'axios';
let startApp = function() {
console.log('startApp', 'startApp')
uni.request({
url: './static/config.json'
url: `./static/config.json?t=${new Date().getTime()}`
}).then(res => {
//在配置中读url,company等信息
Vue.prototype.$dev_url = res[1].data.params.dev;
console.log("请求地址",Vue.prototype.$dev_url)
Vue.prototype.$companyCode = res[1].data.params.companyCode;
Vue.prototype.$warehouseCode = res[1].data.params.warehouseCode;
Vue.prototype.$putawayLocationTypes = res[1].data.params.putawayLocationTypes; //创建上架任务的库存类型
@ -47,6 +48,7 @@ Vue.use(VueAxios, axios)
Vue.prototype.$request = request
Vue.prototype.$url = url.url_config
Vue.prototype.modelConfig = modelConfig.maxPageSize
Vue.prototype.versionCode = modelConfig.version
Vue.prototype.utils = utils;
Vue.config.productionTip = false

6
fe/PDA/mycomponents/comItem/comBalanceItem.vue

@ -1,6 +1,6 @@
<template>
<view class="choose_main common_card">
<com-item-top :dataContent="dataContent"></com-item-top>
<com-item-top :dataContent="dataContent" :isEditCount="isEditCount"></com-item-top>
<com-erp-location :erpLocationCode="dataContent.locationErpCode"></com-erp-location>
<com-item-bottom :dataContent="dataContent"></com-item-bottom>
</view>
@ -26,6 +26,10 @@
type: Object,
default: {}
},
isEditCount: {
type: Boolean,
default: false
}
},
data() {
return {

14
fe/PDA/mycomponents/comItem/comItemBottom.vue

@ -2,17 +2,23 @@
<view class="uni-flex uni-row bot_card">
<!-- 库位 -->
<view class="bot_card_item">
<label class="icon_bg icon_bg_kw">
<image class="icon_normal" src="@/static/icons_ui/icon_kw.svg">
<!-- <text class="icon_bg icon_bg_kw" style="color: white;font-size: 28rpx ;padding: 8rpx; "></text> -->
<label class="icon_bg icon_bg_kw" >
<!-- 库位 -->
<text style="display: block; color: white; text-align: center;font-size: 28rpx; "></text>
<!-- <image class="icon_normal" src="@/static/icons_ui/icon_kw.svg">
</image>
-->
</label>
<text>{{ dataContent.locationCode }}</text>
</view>
<!-- 批次 -->
<view class="bot_card_item">
<label class="icon_bg icon_bg_pc">
<image class="icon_normal" src="@/static/icons_ui/icon_pc.svg">
</image>
<text style=" display: block; color: white;text-align: center;font-size: 28rpx;"></text>
<!-- <image class="icon_normal" src="@/static/icons_ui/icon_pc.svg">
</image> -->
</label>
<text >{{dataContent.lot}}</text>
</view>

38
fe/PDA/mycomponents/comItem/comItemTop.vue

@ -13,9 +13,14 @@
<view class="text_lightblue font_xs">{{dataContent.itemName }}</view>
<view class="text_lightblue font_xs">{{dataContent.itemDesc1}}</view>
</view>
<view class="ljh_right">
<text class="tnum">{{dataContent.qty}}</text>
<view class="ljh_right uni-row uni-flex u-col-center" style="
align-items: center;">
<text class="tnum" v-if="!isEditCount">{{dataContent.qty}}</text>
<com-number-box v-if="isEditCount" ref="comNumberBox" v-model="dataContent.qty" :max="99999" :min="0"
style='width: 100px;' @change="qtyChanged($event)">
</com-number-box>
<text class="tunit">{{dataContent.uom}}</text>
</view>
</view>
</view>
@ -26,18 +31,26 @@
getInventoryTypeStyle,
getInventoryStatusDesc,
} from '@/common/basic.js';
import comNumberBox from '@/mycomponents/common/comNumberBox.vue';
export default {
name: 'comItemTop',
components: {},
components: {comNumberBox},
props: {
dataContent: {
type: Object,
default: {}
},
isEditCount: {
type: Boolean,
default: false
}
},
data() {
return {}
return {
}
},
filters: {
statusStyle: function(val) {
@ -51,7 +64,22 @@
},
methods: {
qtyChanged(value) {
if (value <= 0) {
uni.showToast({
title: "输入数量不能小于或等于0"
})
this.dataContent.qty = this.dataContent.recommendQty
this.$refs.comNumberBox.setValue(this.dataContent.qty);
}else if(value>this.dataContent.recommendQty){
uni.showToast({
title: "输入数量不能大于库存数量"+this.dataContent.recommendQty
})
this.dataContent.qty = this.dataContent.recommendQty
this.$refs.comNumberBox.setValue(this.dataContent.qty);
}
},
}
}
</script>

2
fe/PDA/mycomponents/comItem/comJobScanDetail.vue

@ -164,6 +164,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//

105
fe/PDA/mycomponents/common/comEasyInputCount.vue

@ -0,0 +1,105 @@
<template>
<view>
<uni-popup ref="popup">
<view class="popup_box">
<view class="pop_title">
数量
<text class="fr" @click="closeScanPopup()">关闭</text>
</view>
<view class="pop_tab">
<view class="tab_info">
<view class="conbox">
<textarea v-model="content" trim="all" style="margin-left: 5px;" :focus="true" type="number"></textarea>
<!-- <uni-easyinput v-model="content" type="number" ></uni-easyinput> -->
</view>
<view class="uni-flex">
<button class="clean_scan_btn" @click="clear()">清空</button>
<button class="scan_btn" @click="confirm()">确定</button>
</view>
</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import {
showErrorMsg,
} from '@/common/basic.js';
export default {
data() {
return {
content: '',
}
},
created() {
},
methods: {
openPopup(content) {
this.content = content;
this.$refs['popup'].open("bottom");
},
closeScanPopup(content) {
this.$refs.popup.close();
},
cancel() {
this.$refs['popup'].close();
},
confirm() {
if(!/^[0-9]+.?[0-9]*$/.test(this.content)){
uni.showToast({
title:"请输入数字"
})
this.content=""
return
}
this.$emit("confirm", this.content);
this.$refs['popup'].close();
},
clear() {
this.content = '';
},
maskClick() {
this.$emit("confirm", true);
}
}
}
</script>
<!-- background-color: #fff; -->
<style scoped lang="scss">
.center {
flex: auto;
display: flex;
flex-direction: column;
justify-content: center;
// align-items: center;
}
.flex-item {
width: 50%;
text-align: center;
}
.messageButton {
border-color: #F8F8F8;
}
.messagePopup {
background-color: #fff;
border-radius: 5px;
}
/deep/ .uni-input-input {
font-size: 20px;
height: 46px;
}
</style>

62
fe/PDA/mycomponents/common/comList.vue

@ -0,0 +1,62 @@
<template>
<view class="">
<uni-popup ref="popupItems" >
<scroll-view scroll-y="true" class="scroll" style="">
<view class="uni-flex uni-column">
<view class=" uni-center" style="margin: 15rpx;">
采购订单: {{poNumber}}
</view>
<view class="" style=" margin: 10rpx;background-color:#EBEEF0;width: 100%;"
v-for="(item, index) in showList" :key="index">
<view class="text-wrap">
({{index+1}})箱码 : {{item}}
</view>
</view>
</view>
</scroll-view>
</uni-popup>
</view>
</template>
<script>
export default {
components: {},
data() {
return {
showList: [],
poNumber: ''
};
},
//
props: {},
filters: {},
methods: {
openPopup(data, poNumber) {
this.showList = data;
this.poNumber = poNumber
this.$refs.popupItems.open('center');
}
}
}
</script>
<style lang="scss">
.text-wrap {
word-wrap: break-word;
word-break: break-all;
white-space: pre-line;
}
.scroll {
border-radius: 20rpx;
background-color: #fff;
height: 80vh;
width:80vw;
}
</style>

1
fe/PDA/mycomponents/common/comMessage.vue

@ -103,6 +103,7 @@
},
closeMessage() {
this.confirmResult = false;
clearInterval(this.timer) //timer
this.$refs['popupMessage'].close();
this.afterClose();

3
fe/PDA/mycomponents/common/comNumberBox.vue

@ -138,6 +138,9 @@
},
_onFocus(event) {
this.$emit('focus', event)
},
setValue(value){
this.inputValue =value;
}
}
};

2
fe/PDA/mycomponents/coms/task/comReceipt.vue

@ -12,7 +12,7 @@
</view>
<view class="label_order">
<image class="icon_normal" src="@/static/icons_ui/icon_avn.svg"></image>
<text>{{receiptItem.arriveNoticeNumber}}</text>
<text>{{receiptItem.purchaseReceiptRequestNumber}}</text>
<!-- <text>到货单{{receiptItem.arriveNoticeNumber}}</text> -->
</view>
</view>

2
fe/PDA/mycomponents/coms/task/comScanPutaway.vue

@ -253,7 +253,7 @@
};
r.qty.uom = r.basicUom,
r.toLocationCode = that.locationCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
})
this.$emit('confirm', this.itemList, this.locationCode)
}

91
fe/PDA/mycomponents/coms/task/comUnProduce.vue

@ -0,0 +1,91 @@
<!--非生产领料任务卡片-->
<template>
<view class="device-detail issuelist">
<!-- <view class="card_task issuecard nopad uni-flex space-between"> -->
<view class="card_task nopad space-between">
<com-job-top-info :jobContent="dataContent"></com-job-top-info>
<image v-if="dataContent.useOnTheWayLocation" class="tag_icon" src="@/static/icons_ui/icon_kw_use.svg">
</image>
</view>
<view class="margin_xs_bottom" style="clear: both;">
<view class="label_order">
<image class="icon_normal" src="@/static/icons_ui/icon_apply_num.svg"></image>
<text v-if="fromType=='pick'">{{dataContent.unplannedIssueRequestNumber}}</text>
<!-- <text>申请单{{dataContent.materialRequestNumber}}</text> -->
<text v-else>{{dataContent.unplannedReceiptRequestNumber}}</text>
</view>
<!-- <view class="label_order">
<image class="icon_normal" src="@/static/icons_ui/icon_prod_line.svg"></image>
<text>{{dataContent.prodLine}}</text>
<text>生产线{{dataContent.prodLine}}</text>
</view> -->
</view>
<view class="uni-flex uni-row receipt_bot">
<view class="label_order">
<image class="icon_normal" src="@/static/icons_ui/icon_date.svg">
</image>
<text
class="text_darkblue">{{dataContent.creationTime===null?'无':dataContent.creationTime| formatDate}}</text>
</view>
</view>
</view>
</template>
<script>
import {
getJobStatuStyle,
getJobStatuDesc,
getInventoryTypeStyle,
getInventoryStatusDesc,
dateFormat
} from '@/common/basic.js';
import comItemTop from '@/mycomponents/comItem/comItemTop.vue'
import comItemBottom from '@/mycomponents/comItem/comItemBottom.vue'
import comJobTopInfo from '@/mycomponents/comjob/comJobTopInfo.vue'
export default {
name: "comissue",
components: {
comItemTop,
comItemBottom,
comJobTopInfo
},
data() {
return {};
},
computed: {},
//
props: {
dataContent: {
type: Object,
value: null
},
fromType:{
type: String,
value: "pick"
}
},
filters: {
jobStatusStyle: function(val) {
return getJobStatuStyle(val);
},
jobStatusColor: function(val) {
return getJobStatuDesc(val);
},
statusStyle: function(val) {
return getInventoryTypeStyle(val);
},
statusColor: function(val) {
return getInventoryStatusDesc(val);
},
formatDate: function(val) {
return dateFormat(val)
}
},
}
</script>
<style scoped lang="scss">
</style>

2
fe/PDA/mycomponents/scan/comScanReplen.vue

@ -264,7 +264,7 @@
};
r.qty.uom = r.basicUom,
r.toLocationCode = that.locationCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
})
this.closeScanPopup();
this.$emit('confirm', this.prodLine, this.itemList)

4
fe/PDA/mycomponents/wincom/winComScan.vue

@ -2,8 +2,8 @@
<template>
<page-meta root-font-size="18px"></page-meta>
<view>
<view class="conbox">
<textarea v-model="scanMsg" trim="all" maxlength="1000" style="margin-left: 5px;" :focus="boxfocus"
<view class="conbox" >
<textarea v-model="scanMsg" trim="all" maxlength="1000" style="margin-left: 5px;width: 100%;" :focus="boxfocus"
:placeholder="placeholderValue" :auto-focus='true' @keydown.enter="handelScanMsg" @focus="getfocus"
@blur="losefocus"></textarea>
<!-- <input v-model="scanMsg" type="search" @keydown.enter="doSearch" style="{height:100px}"/> -->

12
fe/PDA/mycomponents/wincom/winScanByCode.vue

@ -1,14 +1,14 @@
<template>
<uni-popup ref="popup" @change="change">
<view class="popup_box">
<view class="pop_title">
扫描信息
<view class="pop_title" >
扫描{{title}}
<text class="fr" @click="closeScanPopup()">关闭</text>
</view>
<view class="pop_tab">
<view class="uni-flex uni-row">
<view class="tab_tit tab_tit_active">{{title}}</view>
</view>
<view class="pop_tab" >
<!-- <view class="uni-flex uni-row">
<view class="tab_tit tab_tit_active">扫描{{title}}</view>
</view> -->
<view class="tab_info">
<win-com-scan ref="scan" @getScanResult="getScanResult" :placeholder='title' :clearResult="false">
</win-com-scan>

6
fe/PDA/mycomponents/wincom/winScanByPack.vue

@ -3,13 +3,13 @@
<uni-popup ref="popup" @change="change" @maskClick="closeScanPopup()">
<view class="popup_box">
<view class="pop_title">
扫描信息
扫描箱标签
<text class="fr" @click="closeScanPopup()">关闭</text>
</view>
<view class="pop_tab">
<view class="uni-flex uni-row">
<!-- <view class="uni-flex uni-row">
<view class="tab_tit tab_tit_active">箱标签</view>
</view>
</view> -->
<view class="tab_info">
<win-com-scan ref="comscan" @getScanResult="getScanResult" placeholder="箱标签"
:clearResult="true"></win-com-scan>

40
fe/PDA/pages.js

@ -38,7 +38,7 @@ module.exports = () => ({
"path": "pages/message/index",
"style": {
"navigationBarTitleText": "消息",
"enablePullDownRefresh": true
"enablePullDownRefresh": false
}
},
@ -378,7 +378,7 @@ module.exports = () => ({
"path": "pages/task/count_detail",
"style": {
"navigationBarTitleText": "盘点任务详情",
"enablePullDownRefresh": true
"enablePullDownRefresh": false
}
},
{
@ -484,10 +484,38 @@ module.exports = () => ({
{
"path": "pages/store/issueDirect",
"style": {
"navigationBarTitleText": "直接发料",
"navigationBarTitleText": "非生产调拨",
"enablePullDownRefresh": false
}
},
{
"path": "pages/task/unProducePick",
"style": {
"navigationBarTitleText": "非生产领料",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProduceReturn",
"style": {
"navigationBarTitleText": "非生产退料",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProducePickDetail",
"style": {
"navigationBarTitleText": "非生产领料详情",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProduceReturnDetail",
"style": {
"navigationBarTitleText": "非生产退料详情",
"enablePullDownRefresh": true
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
@ -507,6 +535,12 @@ module.exports = () => ({
"text": "\ue7c6",
"fontSrc": "/static/icon/iconfont.ttf",
"fontSize": "22px"
},
{
"float": "right",
"text": "刷新",
// "fontSrc": "/static/icon/iconfont.ttf",
"fontSize": "16px"
}]
},
"softinputMode": "adjustPan" //adjustResize

50
fe/PDA/pages.json

@ -359,7 +359,7 @@
"path": "pages/task/count_detail",
"style": {
"navigationBarTitleText": "盘点任务详情",
"enablePullDownRefresh": true
"enablePullDownRefresh": false
}
},
{
@ -463,10 +463,40 @@
{
"path": "pages/store/issueDirect",
"style": {
"navigationBarTitleText": "直接发料",
"navigationBarTitleText": "非生产调拨", //
"enablePullDownRefresh": false
}
},
{
"path": "pages/task/unProducePick",
"style": {
"navigationBarTitleText": "非生产领料",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProduceReturn",
"style": {
"navigationBarTitleText": "非生产退料",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProducePickDetail",
"style": {
"navigationBarTitleText": "非生产领料详情",
"enablePullDownRefresh": true
}
},
{
"path": "pages/task/unProduceReturnDetail",
"style": {
"navigationBarTitleText": "非生产退料详情",
"enablePullDownRefresh": true
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
@ -478,6 +508,22 @@
"navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#F1F1F1"
},
//
"titleNView": {
"autoBackButton": "true",
"buttons": [{
"float": "right",
"text": "\ue7c6",
"fontSrc": "/static/icon/iconfont.ttf",
"fontSize": "22px"
},
{
"float": "right",
"text": "刷新",
// "fontSrc": "/static/icon/iconfont.ttf",
"fontSize": "16px"
}]
},
"softinputMode": "adjustPan" //adjustResize
},

32
fe/PDA/pages/index/index.vue

@ -14,12 +14,25 @@
<view class="common_info">
<view class="common_title">常用菜单</view>
<view class="uni-flex uni-row">
<view class="common_cell" @click="taskReceiptClick">
<view class="cell_icon">
<image src="../../static/icons_ui/icon_main_receipt.svg"></image>
</view>
<text class="font_xs">采购收货</text>
</view>
<view class="common_cell" @click="purchasePutawayClick">
<view class="cell_icon">
<image src="../../static/icons_ui/icons_common_sjadd.svg"></image>
</view>
<text class="font_xs">采购上架</text>
</view>
<view class="common_cell" @click="transferDiffLocationClick">
<view class="cell_icon">
<image src="../../static/icons_ui/icon_main_trans.svg"></image>
</view>
<text class="font_xs">储位调拨</text>
</view>
<!-- <view class="common_cell" @click="test">
<view class="cell_icon">
@ -190,10 +203,12 @@
});
let that = this;
// let userWorkgroups = await getWorkgroups();
let menus = await getMenus();
let param =localStorage.getItem('userId')
let menus = await getMenus(param);
if (menus.length > 0) {
that.userMenus = menus;
that.selectedMenus = menus[0].list;
that.selectedMenus = menus[this.menuIndex].list;
// that.menu = menus
await that.refreshJobMenu(menus);
} else {
@ -209,7 +224,7 @@
// menus[1].list[2].JobCount = this.rand;
let that = this;
let isToday = this.$isReceiptToday;
let jobItems = await getJobCountAsync(isToday);
let jobItems = await getJobCountAsync(isToday,localStorage.getItem('userId'));
let jobTypes = jobItems.items; //
if (menus != null && jobTypes != null) {
for (var g = 0; g < menus.length; g++) {
@ -285,12 +300,23 @@
localStorage.setItem('selectMenuIndex', index); //
this.selectedMenus = item.list;
},
taskReceiptClick(){
uni.navigateTo({
url: '/pages/task/receipt'
});
},
// ,
purchasePutawayClick() {
uni.navigateTo({
url: '/pages/putaway/purchasePutaway'
});
},
transferDiffLocationClick() {
uni.navigateTo({
url: '/pages/inventory/transferDiffLocation'
});
},
timerRefresh() {
let that = this;

12
fe/PDA/pages/inventory/comTransfer.vue

@ -98,7 +98,7 @@
},
transferType: {
type: String,
value: '3101' //3101: 3102:
value: 'Transfer_Inside' //Transfer_Inside: Transfer_Area:
}
},
@ -196,7 +196,7 @@
this.locationErpCode = balanceItem.locationErpCode;
this.itemList.unshift(item);
} else {
if (this.transferType == '3101') //
if (this.transferType == 'Transfer_Inside') //
{
if (this.locationErpCode != balanceItem.locationErpCode) {
this.showMessage('箱码【' + balanceItem.packingCode + '】的ERP储位【' + balanceItem.locationErpCode +
@ -206,7 +206,7 @@
} else {
this.itemList.unshift(item);
}
} else if (this.transferType == '3102') //
} else if (this.transferType == 'Transfer_Area') //
{
this.itemList.unshift(item);
}
@ -284,7 +284,7 @@
this.$refs.location.clearLocation()
this.locationGotFocus = true;
} else {
if (that.transferType == '3101') //
if (that.transferType == 'Transfer_Inside') //
{
if (that.locationErpCode != res.erpLocationCode) {
that.showMessage('目标库位的ERP储位【' + res.erpLocationCode + '】与【' + this
@ -349,7 +349,7 @@
mask: true
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -363,7 +363,7 @@
r.toLocationCode = that.toLocationCode;
r.toLocationErpCode = this.toLocationErpCode
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
item.details.push(r);
})

6
fe/PDA/pages/inventory/createTP.vue

@ -81,6 +81,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -162,7 +164,7 @@
mask: true
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: "",
jobNumber: "",
supplierCode: "",
@ -173,7 +175,7 @@
that.itemList.forEach(r => {
r.toContainerCode = that.toContainerCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
item.details.push(r);
})

8
fe/PDA/pages/inventory/hold.vue

@ -111,6 +111,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {},
@ -246,7 +248,7 @@
mask: true
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -272,7 +274,7 @@
status: 2,
locationCode: that.toLocationCode,
reasonCode: '0',
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
}
item.details.push(detail);
})
@ -299,7 +301,7 @@
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",

6
fe/PDA/pages/inventory/merge.vue

@ -80,6 +80,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -270,7 +272,7 @@
handleInventoryTransfer() {
let that = this;
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: "",
jobNumber: "",
supplierCode: "",
@ -282,7 +284,7 @@
that.itemList.forEach(r => {
r.toContainerCode = that.toContainerCode;
r.containerCode = that.toContainerCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
item.details.push(r);
})
let params = JSON.stringify(item);

2
fe/PDA/pages/inventory/productionReturn.vue

@ -69,6 +69,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

4
fe/PDA/pages/inventory/productionReturn_detail.vue

@ -145,6 +145,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -334,7 +336,7 @@
r.handledBatch = r.recommendBatch;
r.handledLot = r.recommendLot;
r.handledLocationCode = r.recommendLocationCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
let params = JSON.stringify(this.dataContent);

9
fe/PDA/pages/inventory/scrap.vue

@ -105,6 +105,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -197,6 +199,7 @@
selectedBalanceItem(balanceItem) {
let item = this.createItem(balanceItem);
this.itemList.unshift(item)
this.getLocationInfo();
},
createItem(item) {
@ -351,7 +354,7 @@
});
let that = this;
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
company: localStorage.company,
jobNumber: "",
@ -364,7 +367,7 @@
that.itemList.forEach(r => {
r.toLocationCode = that.toLocationCode
r.toLocationErpCode = that.toLocationErpCode
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
r.reasonCode = this.scrapReason
item.details.push(r);
})
@ -456,7 +459,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
}
},
}

4
fe/PDA/pages/inventory/transferByLocation.vue

@ -2,7 +2,7 @@
<page-meta root-font-size="16px"></page-meta>
<view class="">
<!-- 区域内调拨(储位内移库) -->
<com-transfer transferType='3101'></com-transfer>
<com-transfer transferType='Transfer_Inside'></com-transfer>
</view>
</template>
@ -24,6 +24,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {

4
fe/PDA/pages/inventory/transferDiffLocation.vue

@ -2,7 +2,7 @@
<page-meta root-font-size="16px"></page-meta>
<view class="">
<!-- 区域间调拨(储位调拨) -->
<comTransfer transferType = '3102'></comTransfer>
<comTransfer transferType = 'Transfer_Area'></comTransfer>
</view>
</template>
@ -24,6 +24,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {

2
fe/PDA/pages/inventory/transferIssue.vue

@ -70,6 +70,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

4
fe/PDA/pages/inventory/transferIssue_detail.vue

@ -137,6 +137,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -297,7 +299,7 @@
r.handledBatch = r.recommendBatch;
r.handledLot = r.recommendLot;
r.handledLocationCode = r.recommendLocationCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
let params = JSON.stringify(this.detail);

2
fe/PDA/pages/inventory/transferNoLocation.vue

@ -23,6 +23,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {

2
fe/PDA/pages/inventory/transferReceipt.vue

@ -70,6 +70,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

4
fe/PDA/pages/inventory/transferReceipt_detail.vue

@ -137,6 +137,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -291,7 +293,7 @@
r.handledBatch = r.recommendBatch;
r.handledLot = r.recommendLot;
r.handledLocationCode = r.recommendLocationCode;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
let params = JSON.stringify(this.detail);

6
fe/PDA/pages/inventory/unissue.vue

@ -98,6 +98,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {},
@ -240,7 +242,7 @@
mask: true
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -262,7 +264,7 @@
status: r.status,
locationCode: r.locationCode,
reasonCode: that.issueReason,
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
}
item.details.push(detail);
})

6
fe/PDA/pages/inventory/unpick.vue

@ -65,6 +65,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -118,7 +120,7 @@
mask: true
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -129,7 +131,7 @@
items.forEach(r => {
r.toContainerCode = '';
r.worker = localStorage.userName;
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN;
item.details.push(r);
})

6
fe/PDA/pages/inventory/unreceipt.vue

@ -111,6 +111,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -204,7 +206,7 @@
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN == "" ?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -229,7 +231,7 @@
locationCode: that.toLocationCode,
reasonCode: that.receiptReason,
inventoryStatus: 2,
worker: localStorage.userName
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
}
item.details.push(detail);
})

14
fe/PDA/pages/login/index.vue

@ -2,6 +2,7 @@
<view class="content">
<!-- <image mode="widthFix" class="loginimg" src="../../static/login.png"></image> -->
<image mode="widthFix" class="loginimg" src="../../static/icons_ui/login_bg.png"></image>
<view class="login_title">
<text>您好欢迎使用</text><br>
WMS仓库管理系统
@ -57,6 +58,7 @@
</form>
</view>
</view>
version : {{version}}
</view>
</template>
@ -82,7 +84,8 @@
password: "",
tapstyle: 2,
loading: false,
showPassword: true
showPassword: true,
version:"0"
}
},
computed: mapState(['forcedLogin', 'hasLogin']),
@ -90,12 +93,13 @@
uni.clearStorage(); //
if (process.env.NODE_ENV === 'development') {
this.username = "admin"
this.password = "1234qwer!@#$QWER";
this.password = "1q2w3E*";
}
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: "#476DF5 !important"
})
this.version = this.versionCode;
},
onLoad() {},
methods: {
@ -183,7 +187,11 @@
localStorage.setItem('company', this.$companyCode);
localStorage.setItem('warehouseCode', this.$warehouseCode);
var decode = jwtDecode(localStorage.getItem('token_type'))
localStorage.setItem('userId', decode.sub);
if(decode){
var userName_CN = decode['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'];
localStorage.setItem('userId', decode.sub);
localStorage.setItem('userName_CN', userName_CN);
}
},
clearStorage(res) {
sessionStorage.setItem('isLogin', 0); //

10
fe/PDA/pages/message/details.vue

@ -18,7 +18,17 @@
import {
messages
} from '@/api/index.js';
import {
goHome
} from '@/common/basic.js';
export default {
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
data() {
return {
id: '',

7
fe/PDA/pages/message/index.vue

@ -61,11 +61,6 @@
} from '@/common/basic.js';
export default {
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}
},
data() {
return {
allMessageList: [],
@ -95,6 +90,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},

4
fe/PDA/pages/note.js

@ -20,5 +20,5 @@
Mes缴库: Mes缴库, 从线边到成品库或者半成品库
采购收货
待检 = 1,
合格 = 2,
不合格 = 3
合格 = 2,
不合格 = 3

4
fe/PDA/pages/putaway/dyPutaway.vue

@ -85,6 +85,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -125,7 +127,7 @@
mask: true
})
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
company: localStorage.company,
warehouseCode: localStorage.warehouseCode,
details: that.itemList

221
fe/PDA/pages/putaway/purchasePutaway.vue

@ -11,8 +11,23 @@
</view>
</view>
</view>
<view class="uni-flex space-between u-col-center"
style="font-size: 33rpx;align-items: center;margin-top: 5rpx;margin-bottom: 5rpx;">
<view class="">
<text>采购订单 : {{poNumber}}</text>
</view>
<view @click="showPopListPopup" class=""
style="font-size: 33rpx;background-color: #3399FF; padding:10rpx ;border-radius:10rpx;color: #FFFFFF;">
查看箱码
</view>
</view>
<view class="" style="background-color: black; width: 100%; height: 1rpx;">
</view>
</view>
<scroll-view scroll-y="true" class="scroll-Y" @scrolltoupper="upper" @scrolltolower="lower" @scroll="scroll"
style="padding-bottom:150px">
<uni-collapse v-if="itemList.length>0">
@ -24,8 +39,12 @@
<uni-swipe-action-item :right-options="options" :auto-close="false"
@click="swipeClick($event,item,index)" style='background-color: #ffffff;'>
<com-base-item :dataContent="label" style='margin-left: 10px;'></com-base-item>
<view class="choose_marked">
<!-- <view class="choose_marked">
<image src="@/static/image_marked.svg"></image>
</view> -->
<view class="choose_marked_count" style="background-color: #5FCB94; opacity: 0.15">
<view class="" style="background-color: #5FCB94; width: 200rpx;height: 300rpx;">
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
@ -47,6 +66,7 @@
<win-scan-button @goScan='openScanPopup' v-if="itemList.length>0"></win-scan-button>
<win-scan-by-pack ref="scanPopup" @getScanResult='getScanResult'></win-scan-by-pack>
<com-balance ref="balanceItems" @selectedItem='selectedBalanceItem'></com-balance>
<comList ref="comList"> </comList>
<com-message ref="comMessage" @afterCloseScanMessage='closeScanMessage' @afterRescanMessage='afterRescan'
@afterCloseCommitMessage='closeCommitMessage'>
</com-message>
@ -59,6 +79,7 @@
getBalancesByFilterAsync,
getPurchaseDetailAsync,
purchasePutaway,
getPurchasePutawayAsyncDetail
} from '@/api/index.js';
import {
@ -73,6 +94,7 @@
import winScanByPack from '@/mycomponents/wincom/winScanByPack.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
import comBalance from '@/mycomponents/common/comBalance.vue'
import comList from '@/mycomponents/common/comList.vue'
import winCollapseLocation from '@/mycomponents/wincom/winCollapseLocation.vue'
import comCollapseItem from '@/mycomponents/common/comCollapseItem.vue'
@ -86,7 +108,8 @@
winScanByPack,
comBalance,
winCollapseLocation,
comCollapseItem
comCollapseItem,
comList
},
data() {
return {
@ -96,6 +119,8 @@
recommendErpLocationCode: '',
currentLabel: null,
reScanItem: null, //
poNumber: "",
showPopList: []
};
},
props: {
@ -108,6 +133,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
} else if (e.index === 1) {
window.location.reload();
}
},
mounted: function() {
@ -147,42 +174,36 @@
})
this.itemList.splice(itemIndex, 1)
}
if (this.itemList == 0) {
this.poNumber = ""
this.showPopList = []
}
},
getScanResult(result) {
let that = this;
that.currentLabel = result.data;
let code = result.data.packingCode;
let itemInfo = that.itemList.find(r => {
let itemInfo = this.itemList.find(r => {
return r.itemCode == result.data.itemCode
})
if (itemInfo == undefined) {
that.getBalance();
this.getBalance();
} else {
let data = itemInfo.labelList.find(r => {
return r.packingCode == code
})
if (data == undefined) {
that.getBalance();
this.getBalance();
} else {
this.reScanItem = itemInfo;
this.showRescanMessage('箱码【' + code + '】已经存在,是否要重新扫描?');
// showConfirmMsg('' + code + ',?', confirm => {
// if (confirm) {
// itemInfo.labelList.forEach((r, i) => {
// if (r.packingCode == code) {
// itemInfo.labelList.splice(i, 1);
// return;
// }
// });
// that.getBalance();
// } else {
// this.scanPopupGetFocus();
// }
// });
}
}
},
//
afterRescan(val) {
let that = this;
@ -235,17 +256,54 @@
},
createBalanceItem(balanceItem, purchaseDetail) {
let locationErpCode = purchaseDetail.recommendErpCode;
if (this.itemList.length == 0) {
this.recommendErpLocationCode = locationErpCode;
this.createItem(balanceItem, purchaseDetail);
this.checkData(balanceItem, purchaseDetail)
} else {
if (this.recommendErpLocationCode != locationErpCode) {
this.showScanMessage('当前零件的ERP储位是【' + locationErpCode + '】与【' + this
.recommendErpLocationCode +
'】不是同一ERP储位,请重新扫描');
} else {
this.createItem(balanceItem, purchaseDetail);
this.checkData(balanceItem, purchaseDetail)
}
}
},
checkData(balanceItem, purchaseDetail) {
var that = this;
var poNumber = purchaseDetail.poNumber;
var packingCode = purchaseDetail.packingCode
if (that.poNumber == "" && that.showPopList.length == 0) {
uni.showLoading({
title: "获取采购订单箱码...",
mask: true
});
getPurchasePutawayAsyncDetail(poNumber).then(res => {
uni.hideLoading()
if (res.length > 0) {
that.poNumber = poNumber
that.showPopList = res;
that.createItem(balanceItem, purchaseDetail);
}
}).catch(error => {
uni.hideLoading()
that.poNumber = "";
that.showPopList = [];
that.showMessage(error.message);
})
} else {
let item = that.showPopList.find(r => {
return r == packingCode
})
if (item == undefined) {
//
that.showMessage("扫描的箱码[" + packingCode + "]不在当前采购订单[" + this.poNumber + "]中");
return
} else {
that.createItem(balanceItem, purchaseDetail);
}
}
},
@ -276,29 +334,88 @@
createLabel(balanceItem, purchaseDetail) {
let label = this.currentLabel;
label.putawayType = 0;
label.qty = balanceItem.qty;
label.uom = balanceItem.uom;
label.status = balanceItem.status;
// label.putawayType = 0;
// label.qty = balanceItem.qty;
// label.uom = balanceItem.uom;
// label.status = balanceItem.status;
// label.locationCode = balanceItem.locationCode;
// label.fromContainerCode = balanceItem.containerCode;
// label.fromStatus = balanceItem.status;
// label.fromPackingCode = balanceItem.packingCode;
// label.fromLocationCode = balanceItem.locationCode;
// label.fromLocationGroup = balanceItem.locationGroup;
// label.fromLocationArea = balanceItem.locationArea;
// label.fromLocationErpCode = balanceItem.locationErpCode;
// label.fromWarehouseCode = balanceItem.warehouseCode;
// label.fromLot = balanceItem.lot;
// label.poNumber = purchaseDetail.poNumber;
// label.poLine = purchaseDetail.poLine;
// label.supplierPackUom = purchaseDetail.supplierPackUom;
// label.supplierPackQty = purchaseDetail.supplierPackQty;
// label.stdPackUom = purchaseDetail.stdPackUom;
// label.stdPackQty = purchaseDetail.stdPackQty;
// label.worker = localStorage.userName;
//============================================
label.locationCode = balanceItem.locationCode;
label.fromContainerCode = balanceItem.containerCode;
label.fromStatus = balanceItem.status;
label.qty = balanceItem.qty;
label.stdPackQty = purchaseDetail.stdPackQty;
label.fromPackingCode = balanceItem.packingCode;
label.toPackingCode = label.fromPackingCode;
label.fromContainerCode = balanceItem.containerCode;
label.toContainerCode = balanceItem.containerCode;
label.fromLot = balanceItem.lot;
label.toLot = balanceItem.lot;
label.supplierBatch = balanceItem.supplierBatch;
label.arriveDate = balanceItem.arriveDate;
label.produceDate = balanceItem.produceDate;
label.expireDate = balanceItem.expireDate;
label.fromLocationCode = balanceItem.locationCode;
label.fromLocationGroup = balanceItem.locationGroup;
label.fromLocationArea = balanceItem.locationArea;
label.fromLocationGroup = balanceItem.locationGroup;
label.fromLocationErpCode = balanceItem.locationErpCode;
label.fromWarehouseCode = balanceItem.warehouseCode;
label.fromLot = balanceItem.lot;
label.toWarehouseCode = balanceItem.warehouseCode;
label.fromStatus = balanceItem.status;
label.toStatus = balanceItem.status;
label.recommendContainerCode = balanceItem.containerCode;
label.recommendPackingCode = balanceItem.packingCode;
label.recommendSupplierBatch = balanceItem.supplierBatch;
label.recommendArriveDate = balanceItem.arriveDate;
label.recommendProduceDate = balanceItem.produceDate;
label.recommendExpireDate = balanceItem.expireDate;
label.recommendLot = balanceItem.lot;
label.recommendToLocationCode = balanceItem.locationCode;
label.recommendToLocationArea = balanceItem.locationArea;
label.recommendToLocationGroup = balanceItem.locationGroup;
label.recommendToLocationErpCode = balanceItem.locationErpCode;
label.recommendToWarehouseCode = balanceItem.warehouseCode;
label.uom = balanceItem.uom;
label.recommendQty = balanceItem.qty;
label.handledContainerCode = balanceItem.containerCode;
label.handledPackingCode = balanceItem.packingCode;
label.handledSupplierBatch = balanceItem.supplierBatch;
label.handledArriveDate = balanceItem.arriveDate;
label.handledProduceDate = balanceItem.produceDate;
label.handledExpireDate = balanceItem.expireDate;
label.handledLot = balanceItem.lot;
label.handledToLocationCode = balanceItem.locationCode;
label.handledToLocationArea = balanceItem.locationArea;
label.handledToLocationGroup = balanceItem.locationGroup;
label.handledToLocationErpCode = balanceItem.locationErpCode;
label.handledToWarehouseCode = balanceItem.warehouseCode;
label.handledQty = balanceItem.qty;
label.poNumber = purchaseDetail.poNumber;
label.poLine = purchaseDetail.poLine;
label.supplierPackUom = purchaseDetail.supplierPackUom;
label.supplierPackQty = purchaseDetail.supplierPackQty;
label.stdPackUom = purchaseDetail.stdPackUom;
label.stdPackQty = purchaseDetail.stdPackQty;
label.status = balanceItem.status;
label.worker = localStorage.userName;
return label;
},
@ -310,8 +427,9 @@
async selectedBalanceItem(balanceItem) {
let purchaseDetail = await getPurchaseDetailAsync(balanceItem.itemCode, balanceItem
.packingCode);
if (purchaseDetail != null) {
this.createBalanceItem(purchaseDetail);
this.createBalanceItem(balanceItem, purchaseDetail);
} else {
this.showScanMessage('未查到零件【' + balanceItem.itemCode + '】的采购信息');
}
@ -358,6 +476,10 @@
this.location = null;
},
showPopListPopup() {
this.$refs.comList.openPopup(this.showPopList, this.poNumber);
},
submit() {
let that = this;
if (that.itemList.length === 0) {
@ -375,30 +497,25 @@
});
let item = {
company: localStorage.company,
number: "",
worker: localStorage.userName,
warehouseCode: localStorage.warehouseCode,
jobNumber: "validation errors",
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
jobNumber: "",
supplierCode:"",
asnNumber:"",
details: []
}
that.itemList.forEach(i => {
i.labelList.forEach(r => {
r.toContainerCode = r.fromContainerCode,
r.toStatus = r.fromStatus,
r.toPackingCode = r.fromPackingCode,
r.toWarehouseCode = r.fromWarehouseCode,
r.toLot = r.fromLot,
r.toLocationCode = that.location.code,
r.toLocationGroup = that.location.locationGroupCode,
r.toLocationArea = that.location.areaCode,
r.toLocationErpCode = that.location.erpLocationCode,
r.worker = localStorage.userName,
item.details.push(r);
r.toLocationCode = this.location.code;
r.toLocationGroup = this.location.locationGroupCode;
r.toLocationArea = this.location.areaCode;
r.toLocationErpCode = this.location.erpLocationCode;
item.details.push(r);
})
})
item.supplierCode = item.details[0].supplierCode
item.asnNumber = item.details[0].asnNumber
let params = JSON.stringify(item);
purchasePutaway(params)
.then(res => {
@ -426,6 +543,8 @@
that.itemList = [];
that.location = null;
that.recommendErpLocationCode = '';
that.poNumber = "";
that.showPopList = [];
},
clearPackCode() {
@ -472,7 +591,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
},
scanPopupGetFocus() {

4
fe/PDA/pages/putaway/putaway.vue

@ -84,6 +84,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -124,7 +126,7 @@
mask: true
})
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
company: localStorage.company,
warehouseCode: localStorage.warehouseCode,
details: that.itemList

8
fe/PDA/pages/putaway/rapReceipt.vue

@ -91,6 +91,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {
@ -274,9 +276,7 @@
mask: true
})
let item = {
worker: localStorage.userName,
company: localStorage.company,
warehouseCode: localStorage.warehouseCode,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
// details: that.itemList
};
that.itemList.forEach(r => {
@ -325,7 +325,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
},
closeScanMessage() {

2
fe/PDA/pages/putaway/rapTansfer.vue

@ -27,6 +27,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {},

43
fe/PDA/pages/putaway/semiPutaway.vue

@ -108,6 +108,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {
@ -205,7 +207,7 @@
})
})
if (datas.length > 0) {
this.showRescanMessage('箱码【' + code + '】已经存在,是否要重新扫描?');
this.showScanMessage('箱码【' + code + '】已经存在,是否要重新扫描?');
// showConfirmMsg('' + code + ',?', confirm => {
// if (confirm) {
// that.itemList.forEach(l => {
@ -390,16 +392,13 @@
});
let item = {
company: localStorage.company,
number: "",
worker: localStorage.userName,
warehouseCode: localStorage.warehouseCode,
jobNumber: "validation errors",
worker: localStorage.userName_CN,
jobNumber: "",
putawayType: 2,
details: []
}
that.itemList.forEach(i => {
i.labelList.forEach(r => {
r.fromLot = '',
@ -420,7 +419,35 @@
r.toLocationGroup = this.toLocation.locationGroupCode,
r.toStatus = i.status,
r.toWarehouseCode = i.balanceItem.warehouseCode,
r.worker = localStorage.userName,
// ========================================
r.recommendContainerCode = i.balanceItem.containerCode,
r.recommendPackingCode = r.packingCode,
r.recommendSupplierBatch = i.balanceItem.supplierBatch,
r.recommendArriveDate = r.arriveDate,
r.recommendProduceDate = i.balanceItem.produceDate,
r.recommendExpireDate = i.balanceItem.expireDate;
r.recommendLot = r.lot,
r.recommendToLocationCode = this.toLocation.code,
r.recommendToLocationArea = this.toLocation.areaCode,
r.recommendToLocationGroup = this.toLocation.locationGroupCode,
r.recommendToLocationErpCode = this.toLocation.erpLocationCode,
r.recommendToWarehouseCode = i.balanceItem.warehouseCode,
r.recommendQty = r.qty,
r.handledContainerCode = i.balanceItem.containerCode,
r.handledPackingCode = r.packingCode,
r.handledSupplierBatch = i.balanceItem.supplierBatch,
r.handledArriveDate = r.arriveDate,
r.handledProduceDate = i.balanceItem.produceDate,
r.handledExpireDate = i.balanceItem.expireDate;
r.handledLot = r.lot,
r.handledToLocationCode = this.toLocation.code,
r.handledToLocationArea = this.toLocation.areaCode,
r.handledToLocationGroup = this.toLocation.locationGroupCode,
r.handledToLocationErpCode = this.toLocation.erpLocationCode,
r.handledToWarehouseCode = i.balanceItem.warehouseCode,
r.handledQty = r.qty,
item.details.push(r);
})
})
@ -497,7 +524,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
},
scanPopupGetFocus(message) {

2
fe/PDA/pages/query/item.vue

@ -123,6 +123,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted() {

2
fe/PDA/pages/query/location.vue

@ -99,6 +99,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

2
fe/PDA/pages/return/productionReturn.vue

@ -84,6 +84,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

14
fe/PDA/pages/return/productionReturn_detail.vue

@ -23,7 +23,7 @@
</view>
<view class="ljh_right">
<text class="tnum">{{item.recommendQty}}</text>
<text class="tunit">{{item.recommendUom}}</text>
<text class="tunit">{{item.uom}}</text>
</view>
</view>
</view>
@ -135,6 +135,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -258,13 +260,13 @@
data.handledPackingCode = result.data.packingCode;
data.handledLot = result.data.lot;
data.handledQty = result.data.qty;
data.handledUom = result.data.uom ? '无' : result.data.uom;
data.uom = result.data.uom ? '无' : result.data.uom;
data.handledBatch = data.recommendBatch;
data.handledLocationCode = data.recommendLocationCode;
data.handledLocationArea = data.recommendLocationArea
data.handledLocationGroup = data.recommendLocationGroup
data.handledLocationErpCode = data.recommendLocationErpCode
data.handledToLocationCode = data.recommendLocationCode;
data.handledToLocationArea = data.recommendLocationArea
data.handledToLocationGroup = data.recommendLocationGroup
data.handledToLocationErpCode = data.recommendLocationErpCode
this.scanPopupGetFocus();
},

2
fe/PDA/pages/return/purchaseReturn.vue

@ -85,6 +85,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

8
fe/PDA/pages/return/purchaseReturn_detail.vue

@ -121,6 +121,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -196,9 +198,9 @@
v.packingCode = v.recommendPackingCode
v.qty = v.recommendQty
v.uom = v.recommendUom
v.locationCode = v.recommendLocationCode,
v.lot = v.recommendLot
v.uom = v.uom
v.locationCode = v.recommendFromLocationCode
v.lot = v.recommendLot
});
this.$forceUpdate();
},

2
fe/PDA/pages/return/returnBeforPutaway.vue

@ -87,6 +87,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {

72
fe/PDA/pages/return/returnToWarehouse.vue

@ -137,6 +137,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
mounted: function() {
@ -156,12 +158,12 @@
});
locations(code).then(res => {
if (res != null) {
if (res.type == 5) {
if (res.type == 3||res.type == 4||res.type == 5) {
that.fromLocation = res;
this.openPackLabel();
this.closeScanFromLocationPopup();
} else {
that.showMessage('扫描的库位【' + code + '】不是线边库位');
that.showMessage('扫描的库位【' + code + '】不是【半成品库】或【线边库位】或【成品库位】');
}
} else {
that.showMessage('未查询到库位【' + code + '】');
@ -258,9 +260,7 @@
}
});
that.getLabel();
}
else
{
} else {
this.scanPopupGetFocus();
}
},
@ -373,7 +373,7 @@
if (res == null) {
that.showMessage('目标库位【' + locationCode + '】不存在');
} else {
if (res.type == 2 || res.type == 6) {
if (res.type == 2 || res.type == 3||res.type == 4 ||res.type == 6) {
showConfirmMsg('是否要将所有未扫描目标库位的零件,指定目标库位【' + locationCode + '】',
confirm => {
@ -390,7 +390,7 @@
}
});
} else {
that.showMessage('目标库位的库位类型必须是【原料库】或【隔离库】')
that.showMessage('目标库位的库位类型必须是【原料库】或【半成品库】或【成品库】或【隔离库】')
}
}
uni.hideLoading();
@ -420,10 +420,10 @@
that.showMessage('目标库位【' + code + '】不存在');
} else {
if (res.type == 2 || res.type == 6) {
if (res.type == 2 || res.type == 3||res.type == 4||res.type == 6) {
this.handledToLocation(this.currentItem, res);
} else {
this.showMessage('目标库位必须是原料库或者隔离库')
this.showMessage('目标库位的库位类型必须是【原料库】或【半成品库】或【成品库】或【隔离库】')
}
}
uni.hideLoading();
@ -491,14 +491,12 @@
getSubmitParam() {
let that = this;
let item = {
company: localStorage.company,
number: "",
worker: localStorage.userName,
warehouseCode: localStorage.warehouseCode,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
putawayType: 2,
details: []
}
that.itemList.forEach(i => {
let balanceItem = i.balanceItem;
i.labelList.forEach(l => {
@ -509,12 +507,11 @@
detail.itemDesc2 = balanceItem.itemDesc2;
detail.uom = l.uom;
detail.qty = l.qty;
detail.stdPackUom = balanceItem.stdPackUom;
detail.stdPackQty = balanceItem.stdPackQty;
detail.fromPackingCode = '';
detail.fromPackingCode = balanceItem.packingCode;
detail.toPackingCode = l.packingCode;
detail.fromLot = '';
detail.fromLot = balanceItem.lot;
detail.toLot = l.lot;
detail.fromLocationCode = that.fromLocation.code;
@ -530,17 +527,48 @@
.erpLocationCode;
detail.fromStatus = balanceItem.status;
detail.toStatus = balanceItem.status;
detail.toStatus = l.status;
detail.fromWarehouseCode = balanceItem.warehouseCode;
detail.toWarehouseCode = balanceItem.warehouseCode;
detail.fromWarehouseCode = localStorage.warehouseCode;
detail.toWarehouseCode = localStorage.warehouseCode;
detail.supplierBatch = balanceItem.supplierBatch;
detail.arriveDate = balanceItem.arriveDate;
detail.produceDate = balanceItem.produceDate;
detail.expireDate = balanceItem.expireDate;
detail.poNumber = l.poNumber;
//===========================================
detail.recommendContainerCode = that.fromLocation.code;
detail.recommendPackingCode = balanceItem.packingCode;
detail.recommendSupplierBatch = l.supplierBatch;
detail.recommendArriveDate = l.arriveDate;
detail.recommendProduceDate = l.produceDate;
detail.recommendExpireDate = l.expireDate;
detail.recommendLot = balanceItem.lot;;
detail.recommendToLocationCode = l.toLocationCode ?? that.defaultToLocation.code;
detail.recommendToLocationArea = l.toLocationArea ?? that.defaultToLocation.areaCode;
detail.recommendToLocationGroup = l.toLocationGroup ?? that.defaultToLocation
.locationGroupCode;
detail.recommendToLocationErpCode = l.toLocationErpCode ?? that.defaultToLocation
.erpLocationCode;
detail.recommendToWarehouseCode = localStorage.warehouseCode;
detail.recommendQty = balanceItem.qty;
detail.handledContainerCode = l.containerCode;
detail.handledPackingCode = l.packingCode;
detail.handledSupplierBatch = l.supplierBatch;
detail.handledArriveDate = l.arriveDate;
detail.handledProduceDate = l.produceDate;
detail.handledExpireDate = l.expireDate;
detail.handledLot = l.lot;
detail.handledToLocationCode = l.toLocationCode ?? that.defaultToLocation.code;
detail.handledToLocationArea = l.toLocationArea ?? that.defaultToLocation.areaCode;
detail.handledToLocationGroup = l.toLocationGroup ?? that.defaultToLocation
.locationGroupCode;
detail.handledToLocationErpCode = l.toLocationErpCode ?? that.defaultToLocation
.erpLocationCode;
detail.handledToWarehouseCode = localStorage.warehouseCode;
detail.handledQty = l.qty;
item.details.push(detail);
});
})
@ -588,7 +616,7 @@
this.$refs.comMessage.showScanMessage(message);
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
},
closeScanMessage() {
this.scanPopupGetFocus();

26
fe/PDA/pages/setter/passwordpage.vue

@ -35,8 +35,8 @@
errorMessage: '请输入密码',
},
{
minLength: 3,
maxLength: 5,
minLength: 6,
maxLength: 16,
errorMessage: '密码长度在 {minLength} 到 {maxLength} 个字符',
}
]
@ -48,8 +48,8 @@
errorMessage: '请输入密码',
},
{
minLength: 3,
maxLength: 5,
minLength: 6,
maxLength: 16,
errorMessage: '密码长度在 {minLength} 到 {maxLength} 个字符',
}
]
@ -61,8 +61,8 @@
errorMessage: '请输入密码',
},
{
minLength: 3,
maxLength: 5,
minLength: 6,
maxLength: 16,
errorMessage: '密码长度在 {minLength} 到 {maxLength} 个字符',
},
{
@ -91,15 +91,27 @@
// },
//
submit() {
if(localStorage.userName=="admin"){
uni.showToast({
title:"admin 用户密码不能修改"
})
return;
}
this.$refs.form.validate().then(res=>{
console.log(res)
let params = {
newPassword:res.newpassword,
currentPassword:res.oldpassword
}
changePassword(params).then((ress)=>{
console.log('返回结果:', ress);
uni.showToast({
title:"密码修改成功"
})
}).catch(error=>{
uni.showToast({
title:error.message
})
})
}).catch(err =>{
console.log('表单错误信息:', err);

2
fe/PDA/pages/setter/setterDetail.vue

@ -23,6 +23,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

2
fe/PDA/pages/store/deliverAll.vue

@ -34,6 +34,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {}

6
fe/PDA/pages/store/deliverFG.vue

@ -102,6 +102,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -183,7 +185,7 @@
title: "提交中..."
});
let deliverItem = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
Company: localStorage.company,
company: localStorage.company,
@ -215,7 +217,7 @@
fromStatus: data.status,
toStatus: data.status,
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
};
deliverItem.details[i] = detail;

2
fe/PDA/pages/store/deliverMany.vue

@ -33,6 +33,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

124
fe/PDA/pages/store/deliverRaw.vue

@ -11,7 +11,9 @@
<uni-swipe-action>
<uni-swipe-action-item :right-options="options" :auto-close="false"
@click="swipeClick($event,item,index)" style='background-color: #ffffff;'>
<com-balance-item :dataContent="label" style='margin-left: 10px;'>
<com-balance-item :dataContent="label" style='margin-left: 10px;'
:isEditCount="true"
>
</com-balance-item>
<view class="choose_marked">
<image src="@/static/image_marked.svg"></image>
@ -48,8 +50,8 @@
<win-scan-by-pack ref="scanPopup" @getScanResult='getScanResult'>
</win-scan-by-pack>
<com-balance ref="balanceItems" @selectedItem='selectedBalanceItem'></com-balance>
<com-message ref="comMessage" @afterCloseScanMessage='closeScanMessage'
@afterRescanMessage='afterRescan' @afterCloseCommitMessage='closeCommitMessage'></com-message>
<com-message ref="comMessage" @afterCloseScanMessage='closeScanMessage' @afterRescanMessage='afterRescan'
@afterCloseCommitMessage='closeCommitMessage'></com-message>
</view>
</view>
</template>
@ -112,6 +114,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
watch: {
@ -162,6 +166,7 @@
let itemInfo = that.itemList.find(r => {
return r.itemCode == result.data.itemCode
})
if (itemInfo == undefined) {
that.getBalance(result);
} else {
@ -252,34 +257,80 @@
addLabel(item, balanceItem) {
let label = this.currentLabel;
label.qty = balanceItem.qty;
label.uom = balanceItem.uom;
label.locationCode = balanceItem.locationCode;
label.locationGroup = balanceItem.locationGroup;
label.locationArea = balanceItem.locationArea;
label.locationErpCode = balanceItem.locationErpCode;
label.warehouseCode = balanceItem.warehouseCode;
// label.uom = balanceItem.uom;
// label.locationCode = balanceItem.locationCode;
// label.locationGroup = balanceItem.locationGroup;
// label.locationArea = balanceItem.locationArea;
// label.locationErpCode = balanceItem.locationErpCode;
// label.warehouseCode = balanceItem.warehouseCode;
// label.status = balanceItem.status;
// label.fromPackingCode = balanceItem.packingCode;
// label.fromContainerCode = balanceItem.containerCode;
// label.fromLot = balanceItem.lot;
// label.fromLocationCode = balanceItem.locationCode;
// label.fromLocationGroup = balanceItem.locationGroup;
// label.fromLocationArea = balanceItem.locationArea;
// label.fromLocationErpCode = balanceItem.locationErpCode;
// label.fromWarehouseCode = balanceItem.warehouseCode;
// label.fromStatus = balanceItem.status;
// label.toContainerCode = this.currentLabel.containerCode;
// label.toPackingCode = this.currentLabel.packingCode;
// label.toLot = this.currentLabel.lot;
// label.toWarehouseCode = localStorage.warehouseCode;
// label.toStatus = balanceItem.status;
// item.supplierBatch = balanceItem.supplierBatch;
// item.arriveDate = balanceItem.arriveDate;
// item.produceDate = balanceItem.produceDate;
// item.expireDate = balanceItem.expireDate;
//================================================
label.status = balanceItem.status;
label.stdPackQty = balanceItem.stdPackQty;
label.fromPackingCode = balanceItem.packingCode;
label.toPackingCode = this.currentLabel.packingCode;
label.fromContainerCode = balanceItem.containerCode;
label.toContainerCode = this.currentLabel.containerCode;
label.fromLot = balanceItem.lot;
label.toLot = this.currentLabel.lot;
label.supplierBatch = balanceItem.supplierBatch;
label.arriveDate = balanceItem.arriveDate;
label.produceDate = balanceItem.produceDate;
label.expireDate = balanceItem.expireDate;
label.fromLocationCode = balanceItem.locationCode;
label.fromLocationGroup = balanceItem.locationGroup;
label.fromLocationArea = balanceItem.locationArea;
label.fromLocationGroup = balanceItem.locationGroup;
label.fromLocationErpCode = balanceItem.locationErpCode;
label.fromWarehouseCode = balanceItem.warehouseCode;
label.fromStatus = balanceItem.status;
label.toContainerCode = this.currentLabel.containerCode;
label.toPackingCode = this.currentLabel.packingCode;
label.toLot = this.currentLabel.lot;
label.toWarehouseCode = localStorage.warehouseCode;
label.toStatus = balanceItem.status;
// item.supplierBatch = balanceItem.supplierBatch;
// item.arriveDate = balanceItem.arriveDate;
// item.produceDate = balanceItem.produceDate;
// item.expireDate = balanceItem.expireDate;
label.toWarehouseCode = localStorage.warehouseCode;
label.locationCode =balanceItem.locationCode;
label.recommendContainerCode = balanceItem.containerCode;
label.recommendPackingCode = balanceItem.packingCode;
label.recommendSupplierBatch = balanceItem.supplierBatch;
label.recommendArriveDate = balanceItem.arriveDate;
label.recommendProduceDate = balanceItem.produceDate;
label.recommendExpireDate = balanceItem.expireDate;
label.recommendLot = balanceItem.lot;
label.recommendFromLocationCode = balanceItem.locationCode;
label.recommendFromLocationArea = balanceItem.locationArea;
label.recommendFromLocationGroup = balanceItem.locationGroup;
label.recommendFromLocationErpCode = balanceItem.locationErpCode;
label.recommendFromWarehouseCode = localStorage.warehouseCode;
label.uom = balanceItem.uom;
label.recommendQty = balanceItem.qty;
label.handledContainerCode = this.currentLabel.containerCode;
label.handledPackingCode = this.currentLabel.packingCode;
label.handledSupplierBatch = balanceItem.supplierBatch,
label.handledArriveDate = balanceItem.arriveDate;
label.handledProduceDate = balanceItem.produceDate;
label.handledExpireDate = balanceItem.expireDate;
label.handledLot = this.currentLabel.lot;
label.handledFromWarehouseCode = localStorage.warehouseCode,
label.handledQty = balanceItem.qty,
item.labelList.unshift(label)
},
@ -360,21 +411,21 @@
title: "提交中....",
mask: true
});
let item = {
customerCode: that.customerAddress.customerCode,
customerAddressCode: that.customerAddress.customerAddressCode,
customerAddressCode: that.customerAddressCode,
deliverTime: getISODateTime(),
deliverRequestType: 3,
toLocationCode: that.toLocation.code,
toLocationArea: that.toLocation.areaCode,
toLocationGroup: that.toLocation.locationGroupCode,
toLocationErpCode: that.toLocation.erpLocationCode,
// toLocationCode: that.toLocation.code,
// toLocationArea: that.toLocation.areaCode,
// toLocationGroup: that.toLocation.locationGroupCode,
// toLocationErpCode: that.toLocation.erpLocationCode,
jobNumber: '',
deliverPlanNumber: '',
deliverRequestNumber: '',
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
company: localStorage.company,
details: []
}
@ -384,7 +435,14 @@
r.toLocationGroup = that.toLocation.locationGroupCode;
r.toLocationArea = that.toLocation.areaCode;
r.toLocationErpCode = that.toLocation.erpLocationCode;
r.worker = localStorage.userName
// =======================================
r.handledFromLocationCode = that.toLocation.code;
r.handledFromLocationArea = that.toLocation.areaCode;
r.handledFromLocationGroup = that.toLocation.locationGroupCode;
r.handledFromLocationErpCode = that.toLocation.erpLocationCode;
r.handledQty =r.qty;
r.recommendQty =r.handledQty;
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
item.details.push(r);
})
})
@ -418,15 +476,15 @@
this.customerCode = '';
that.clearCustomerAddress();
},
openScanPopup() {
this.$refs.scanPopup.openScanPopup()
},
scanPopupGetFocus() {
this.$refs.scanPopup.getfocus();
},
showMessage(message) {
this.$refs.comMessage.showMessage(message);
},
@ -448,7 +506,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
}
}
};

6
fe/PDA/pages/store/deliverTF.vue

@ -91,6 +91,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -138,7 +140,7 @@
});
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "",
supplierCode: "",
@ -160,7 +162,7 @@
r.toContainerCode = r.containerCode;
r.fromWarehouseCode = r.warehouseCode;
r.toWarehouseCode = that.location.warehouseCode;
r.worker = localStorage.userName;
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN;
item.details.push(r);
})

70
fe/PDA/pages/store/issueDirect.vue

@ -115,6 +115,7 @@
toLocation: null,
currentLabel: null,
reScanItem: null, //
formlocationErpCode:""
};
},
props: {
@ -124,6 +125,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
watch: {
@ -238,7 +241,8 @@
this.showScanMessage('箱码【' + that.currentLabel.packingCode + '】在【原料库】【半成品库】未查询到库存信息');
} else if (res.totalCount === 1) {
let balanceItem = res.items[0];
this.createItem(balanceItem);
this.checkItem(balanceItem);
// this.createItem(balanceItem);
} else {
this.$refs.balanceItems.openPopup(res.items);
}
@ -254,8 +258,25 @@
uni.hideLoading();
});
},
checkItem(balanceItem){
if(this.itemList.length==0){
this.formlocationErpCode = balanceItem.locationErpCode;
this.createItem(balanceItem)
}else {
// this.createItem(balanceItem);
if(this.formlocationErpCode==balanceItem.locationErpCode){
this.createItem(balanceItem);
}else {
this.showMessage('箱码【' + balanceItem.packingCode + '】的ERP储位【' + balanceItem.locationErpCode +
'】与默认的ERP储位[' + this
.formlocationErpCode +
'】不是同一ERP储位');
}
}
},
createItem(balanceItem) {
let that = this;
let label = that.currentLabel;
let itemInfo = that.itemList.find(r => {
@ -311,6 +332,37 @@
// item.produceDate = balanceItem.produceDate;
// item.expireDate = balanceItem.expireDate;
// ====================================
label.recommendContainerCode = balanceItem.containerCode;
label.recommendPackingCode = balanceItem.packingCode;
label.recommendSupplierBatch = balanceItem.supplierBatch;;
label.recommendArriveDate = balanceItem.arriveDate;
label.recommendProduceDate = balanceItem.produceDate;
label.recommendExpireDate = balanceItem.expireDate;
label.recommendLot = balanceItem.lot;;
label.recommendFromLocationCode = balanceItem.locationCode;
label.recommendFromLocationArea = balanceItem.locationArea;
label.recommendFromLocationGroup = balanceItem.locationGroup;
label.recommendFromLocationErpCode = balanceItem.locationErpCode;
label.recommendFromWarehouseCode = localStorage.warehouseCode;;
label.recommendQty = balanceItem.qty;
label.handledContainerCode = balanceItem.containerCode;
label.handledPackingCode = balanceItem.packingCode;;
label.handledSupplierBatch = balanceItem.supplierBatch;
label.handledArriveDate = balanceItem.arriveDate;
label.handledProduceDate = balanceItem.produceDate;
label.handledExpireDate = balanceItem.expireDate;
label.handledLot = balanceItem.lot;
label.handledToLocationCode = balanceItem.locationCode;
label.handledToLocationArea = balanceItem.locationArea;
label.handledToLocationGroup = balanceItem.locationGroup;
label.handledToLocationErpCode = balanceItem.locationErpCode;
label.handledToWarehouseCode = balanceItem.warehouseCode;
label.handledQty = balanceItem.qty;
item.labelList.unshift(label)
},
@ -321,7 +373,8 @@
},
selectedBalanceItem(balanceItem) {
this.createItem(balanceItem);
// this.createItem(balanceItem);
this.checkItem(balanceItem);
},
getToLocation(code) {
@ -342,7 +395,13 @@
if (res.type != 5) {
this.showMessage('目标库位必须是【线边库】')
} else {
this.toLocation = res;
// this.toLocation = res;
if(res.erpLocationCode!=this.formlocationErpCode){
this.showMessage('来源库位的ERP储位【'+this.formlocationErpCode+'】与目标库位ERP储位【'+res.erpLocationCode+'】不相等')
}else{
this.toLocation = res;
}
}
}
uni.hideLoading();
@ -395,7 +454,7 @@
let item = {
company: localStorage.company,
number: "",
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
jobNumber: "abc",
useOnTheWayLocation: false,
@ -425,6 +484,7 @@
});
}
},
cancel() {
let that = this;
@ -471,7 +531,7 @@
},
closeCommitMessage() {
this.openScanPopup();
// this.openScanPopup();
},
showScanMessage(message) {

11
fe/PDA/pages/store/receipt.vue

@ -46,7 +46,8 @@
import {
showConfirmMsg,
goHome,
getRemoveOption
getRemoveOption,
getCurrDateTime
} from '@/common/basic.js';
import winBlankView from '@/mycomponents/wincom/winBlankView.vue'
@ -93,6 +94,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -374,12 +377,12 @@
});
let receiptItem = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
number: "",
productionPlanNumber: "",
jobNumber: "",
completeTime: new Date(),
completeTime: getCurrDateTime(),
Company: localStorage.company,
WorkShop: 'Assemble', //
details: [] //
@ -403,7 +406,7 @@
shift: r.shift,
prodLine: r.prodLine,
status: 2,
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
// bomVersion: r.bomVersion
};
receiptItem.details[i] = detail;

2
fe/PDA/pages/store/receiptOrder.vue

@ -26,6 +26,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {}

2
fe/PDA/pages/store/receiptRandom.vue

@ -24,6 +24,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {}

13
fe/PDA/pages/store/recycle.vue

@ -49,7 +49,8 @@
import {
showConfirmMsg,
goHome,
getRemoveOption
getRemoveOption,
getCurrDateTime
} from '@/common/basic.js';
import winBlankView from '@/mycomponents/wincom/winBlankView.vue'
@ -98,6 +99,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -316,12 +319,12 @@
});
let receiptItem = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: "",
number: localStorage.userName,
number: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
productionPlanNumber: "",
jobNumber: "",
completeTime: new Date(),
completeTime: getCurrDateTime(),
Company: localStorage.company,
WorkShop: 'Assemble', //
details: [] //
@ -345,7 +348,7 @@
shift: r.shift,
prodLine: r.prodLine,
status: 2,
worker: localStorage.userName
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
// bomVersion: r.bomVersion
};
receiptItem.details[i] = detail;

4
fe/PDA/pages/store/tjDeliver_detail.vue

@ -98,6 +98,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -144,6 +146,8 @@
} else {
goHome();
}
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

11
fe/PDA/pages/store/tjReceipt.vue

@ -73,7 +73,8 @@
} from '@/api/index.js';
import {
showConfirmMsg,
goHome
goHome,
getCurrDateTime
} from '@/common/basic.js';
import winBlankView from '@/mycomponents/wincom/winBlankView.vue'
@ -133,6 +134,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -183,12 +186,12 @@
})
let receiptItem = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
number: "",
productionPlanNumber: "",
jobNumber: "",
completeTime: new Date(),
completeTime: getCurrDateTime(),
Company: localStorage.company,
// WorkShop: 'a', //
WorkShop: that.prodLine.workShop, //
@ -249,7 +252,7 @@
bomVersion: '',
locationCode: this.prodLine.productLocation,
rawLocation: this.prodLine.rawLocation, //线
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
status: 2 //
// locationCode: that.prodLine.value,
// rawLocation: that.prodLine.value1,

13
fe/PDA/pages/store/tjRecycle.vue

@ -36,7 +36,8 @@
import {
showConfirmMsg,
goHome,
getRemoveOption
getRemoveOption,
getCurrDateTime
} from '@/common/basic.js';
import winBlankView from '@/mycomponents/wincom/winBlankView.vue'
@ -82,6 +83,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -296,12 +299,12 @@
});
let receiptItem = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
warehouseCode: localStorage.warehouseCode,
number: localStorage.userName,
number: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
productionPlanNumber: "",
jobNumber: "",
completeTime: new Date(),
completeTime: getCurrDateTime(),
Company: localStorage.company,
WorkShop: 'Assemble', //
details: [] //
@ -324,7 +327,7 @@
rawLocation: r.rawLocation,
shift: r.shift,
prodLine: r.prodLine,
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
// bomVersion: r.bomVersion
};
receiptItem.details[i] = detail;

2
fe/PDA/pages/task/Inspect.vue

@ -90,6 +90,8 @@
uni.reLaunch({
url: '../index/index'
})
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

4
fe/PDA/pages/task/Inspect_detail.vue

@ -192,6 +192,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -373,7 +375,7 @@
r.notPassedQty = r.failedQty;
}
r.nextAction = that.summaryDetail.nextAction;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
let params = JSON.stringify(that.datacontent);

4
fe/PDA/pages/task/Inspect_summary.vue

@ -230,6 +230,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -545,7 +547,7 @@
r.notPassedQty = that.nextStep === "整批不合格" ? r.receiveQty.qty : 0; //;
r.nextAction = that.summaryDetail.nextAction;
// sumGoodQty = sumGoodQty + r.receiveQty.qty;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
// that.summaryDetail.goodQty = sumGoodQty;

2
fe/PDA/pages/task/count.vue

@ -56,6 +56,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
data() {

4
fe/PDA/pages/task/countByItem.vue

@ -92,6 +92,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
onLoad() {
@ -205,7 +207,7 @@
"partCondition": itemList,
"locCondition": lList,
"statusList": sList,
"worker": localStorage.userName,
"worker": localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
"warehouseCode": localStorage.warehouseCode,
}

4
fe/PDA/pages/task/countByLocation.vue

@ -103,6 +103,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
onLoad() {
@ -222,7 +224,7 @@
"partCondition": iList,
"locCondition": lList,
"statusList": sList,
"worker": localStorage.userName,
"worker": localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
"warehouseCode": localStorage.warehouseCode,
}

443
fe/PDA/pages/task/count_detail.vue

@ -1,128 +1,167 @@
<!-- 盘点任务详情 -->
<template>
<page-meta root-font-size="18px" :page-style="'overflow:'+(isShowScanPopup?'hidden':'visible')"></page-meta>
<view class="">
<scroll-view scroll-y="true" class="scroll-detail" :scroll-top="scrollTop" @scrolltoupper="upper"
@scrolltolower="lower" @scroll="scroll">
<view class="" style="display:flex;flex-direction: column;">
<view class="">
<view class="top_card">
<com-count-scan-detail :jobContent="datacontent" :allCount="allCount" :scanCount="scanCount"
:newCount="newCount" :location="location">
</com-count-scan-detail>
</view>
<view class="detail-list" v-for="(item, index) in details" :key="item.id">
<uni-swipe-action>
<uni-swipe-action-item :right-options="options" :auto-close="false"
@click="swipeClick($event,item,index)">
<view class="detail-content common_card">
<view class="choose_main">
<view class="ljh_box">
<view class="ljh_info">
<view class="tit_ljh">{{ item.itemCode }}</view>
<view class="label_xm font_sm fr">{{ item.packingCode }}</view>
</view>
<view class="desc_card uni-flex space-between">
<view class="desc_ljh">
<view class="font_xs text_lightblue"> {{ item.itemName }}</view>
<view class="font_xs text_lightblue">{{ item.itemDesc1 }}
</view>
<view class="" v-if="allDetails.length>0">
<z-paging ref="paging" use-virtual-list @query="queryList">
<template #top>
<com-count-scan-detail :jobContent="datacontent" :allCount="allCount" :scanCount="scanCount"
:newCount="newCount" :location="location">
</com-count-scan-detail>
</template>
<template #cell="{item,index}">
<view>
<uni-swipe-action>
<uni-swipe-action-item :right-options="options" :auto-close="false"
@click="swipeClick($event,item,index)">
<view class="detail-content common_card">
<view class="choose_main">
<view class="ljh_box">
<view class="ljh_info">
<view class="tit_ljh">{{index+1+'.'+item.itemCode }}</view>
<view class="label_xm font_sm fr">{{ item.packingCode }}</view>
</view>
<view class="desc_card uni-flex space-between">
<view class="desc_ljh">
<view class="font_xs text_lightblue"> {{ item.itemName }}</view>
<view class="font_xs text_lightblue">{{ item.itemDesc1 }}
</view>
</view>
</view>
</view>
</view>
</view>
<view class="list_form">
<view>
<uni-table style="overflow-x: hidden;">
<uni-tr>
<uni-th width="100"></uni-th>
<uni-th width="100" align="center">库存</uni-th>
<uni-th width="100" align="center">盘点</uni-th>
</uni-tr>
<uni-tr>
<uni-th width="100">数量({{item.inventoryUom}})</uni-th>
<uni-th width="100" align="center">
<text class="text_black">{{item.inventoryQty}}</text>
</uni-th>
<uni-th width="100" align="center">
<com-number-box v-if="item.scaned && item.packingCode"
v-model="item.countQty" :max="99999" :min="0"
@change="qtyChanged($event,item)"
style='margin-right: 10px;padding: 2px;'>
</com-number-box>
<com-number-box v-if="item.packingCode==''" v-model="item.countQty"
@change="qtyChanged($event,item)" :max="99999" :min="0"
style='margin-right: 10px;padding: 2px;'>
</com-number-box>
<text class="text_black"
v-else-if="!item.scaned">{{item.countQty}}</text>
<!-- <text class="text_black" v-if="item.packingCode"
style="font-size: 1rem;">{{item.countQty}}</text>
<com-number-box v-else v-model="item.countQty" :max="99999" :min="0"
style='margin-right: 10px;padding: 2px;'>
</com-number-box> -->
<!--<uni-easyinput v-model="item.countQty" type="digit"
@input="qtyInput($event,item)">
</uni-easyinput> -->
</uni-th>
</uni-tr>
</uni-table>
</view>
</view>
<view style="margin:0 20rpx 20rpx;">
<view class="uni-flex uni-row bot_card">
<view class="bot_card_item">
<label class="icon_bg icon_bg_kw">
<image class="icon_normal" src="@/static/icons_ui/icon_kw.svg">
</image>
</label>
<text>{{ item.locationCode }}</text>
</view>
<view class="bot_card_item">
<label class="icon_bg icon_bg_pc">
<image class="icon_normal" src="@/static/icons_ui/icon_pc.svg">
</image>
</label>
<text>{{item.lot}}</text>
<view class="list_form">
<view>
<uni-table style="overflow-x: hidden;">
<uni-tr>
<uni-th width="100"></uni-th>
<uni-th width="100" align="center">库存</uni-th>
<uni-th width="100" align="center">盘点</uni-th>
</uni-tr>
<uni-tr>
<uni-th width="100">数量({{item.uom}})</uni-th>
<uni-th width="100" align="center">
<text class="text_black">{{item.inventoryQty}}</text>
</uni-th>
<uni-th width="100" align="center">
<!-- <com-number-box v-if="item.scaned && item.packingCode"
v-model="item.countQty" :max="99999" :min="0"
@change="qtyChanged($event,item)"
style='margin-right: 10px;padding: 2px;'>
</com-number-box>
<com-number-box v-if="item.packingCode==''"
v-model="item.countQty"
@change="qtyChanged($event,item)" :max="99999"
:min="0" style='margin-right: 10px;padding: 2px;'>
</com-number-box> -->
<view class="flex"
style="align-items: center;justify-content: center;"
v-if="item.scaned && item.packingCode">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="flex"
style="align-items: center;justify-content: center;"
v-if="item.packingCode==''">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="" v-else-if="!item.scaned">
<text class="text_black">{{item.countQty}}</text>
</view>
<!-- <text class="text_black" v-if="item.packingCode"
style="font-size: 1rem;">{{item.countQty}}</text> -->
<!-- <com-number-box v-else v-model="item.countQty"
:max="99999" :min="0"
style='margin-right: 10px;padding: 2px;'>
</com-number-box> -->
</uni-th>
</uni-tr>
</uni-table>
</view>
</view>
<view class="bot_card_item" style="width: 25%;">
<view class="uni-flex" v-if="item.isNew ">
<!-- picker的index默认是0 -->
<picker @change="bindPickerChange($event,item)" :value="item.status-1"
:range="statusArray">
<view class="uni-flex " style="padding:5px 0px;">
<text class="state_point"
:class="item.status | statusStyle">{{statusArray[item.status-1]}}</text>
<image class="icon_normal"
src="@/static/icons_ui/icon_down.svg">
<view style="margin:0 20rpx 20rpx;">
<view class="uni-flex uni-row bot_card">
<view class="bot_card_item">
<label class="icon_bg icon_bg_kw" style="text-align: center;">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;"></text>
<!-- <image class="icon_normal"
src="@/static/icons_ui/icon_kw.svg"> -->
</image>
</label>
<text>{{ item.locationCode }}</text>
</view>
<view class="bot_card_item">
<label class="icon_bg icon_bg_pc">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;"></text>
<!-- <image class="icon_normal"
src="@/static/icons_ui/icon_pc.svg">
</image> -->
</label>
<text>{{item.lot}}</text>
</view>
<view class="bot_card_item" style="width: 25%;">
<view class="uni-flex" v-if="item.isNew ">
<!-- picker的index默认是0 -->
<picker @change="bindPickerChange($event,item)"
:value="item.status-1" :range="statusArray">
<view class="uni-flex " style="padding:5px 0px;">
<text class="state_point"
:class="item.status | statusStyle">{{statusArray[item.status-1]}}</text>
<image class="icon_normal"
src="@/static/icons_ui/icon_down.svg">
</image>
</view>
</picker>
</view>
</picker>
<text v-else class="state_point" :class="item.status | statusStyle">
{{ item.status | statusColor}}
</text>
</view>
</view>
<text v-else class="state_point" :class="item.status | statusStyle">
{{ item.status | statusColor}}
</text>
</view>
</view>
<view class="uni-flex space-between" style="margin:0 20rpx 20rpx;"
v-if="item.scaned || item.packingCode==''">
<text class="font_xs"
style="padding: 5px 2px; text-overflow: ellipsis; overflow: hidden;">{{item.countDescription}}</text>
<view class="photo_btn fr" @click="openEditCountDesc(item)">
<text class="fl font_xs" style="width:65px;">盘点描述</text>
</view>
</view>
<view v-if="item.scaned" class="choose_marked_count"
style="background-color: #5FCB94; opacity: 0.65">
<view class="" style="background-color: #5FCB94; width: 200rpx;height: 300rpx;">
</view>
<!-- <image src="@/static/image_marked.svg"></image> -->
</view>
</view>
</view>
<view class="uni-flex space-between" style="margin:0 20rpx 20rpx;"
v-if="item.scaned || item.packingCode==''">
<text class="font_xs"
style="padding: 5px 2px; text-overflow: ellipsis; overflow: hidden;">{{item.countDescription}}</text>
<view class="photo_btn fr" @click="openEditCountDesc(item)">
<text class="fl font_xs" style="width:65px;">盘点描述</text>
</view>
</view>
<view v-if="item.scaned" class="choose_marked">
<image src="@/static/image_marked.svg"></image>
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</scroll-view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</template>
</z-paging>
</view>
<view class="new_btn_bot">
<button class="new_save_btn" @click="submit()">提交</button>
@ -131,9 +170,11 @@
<win-scan-button @goScan='openScanPopup'></win-scan-button>
<win-scan-by-pack ref="scanPopup" @getScanResult='getScanResult' @close='closeScanPopup()'></win-scan-by-pack>
<com-easy-input ref="descPopup" @confirm='closeEditCountDesc'></com-easy-input>
<com-easy-input-count ref="countPopup" @confirm='closeEditCount'></com-easy-input-count>
<win-inventory-status ref="statusPopup"></win-inventory-status>
<!-- com-message必须放在最下层 -->
<com-message ref="comMessage" @afterCloseCommitMessage='closeCommitMessage()'></com-message>
<!-- <uni-load-more :status="loadingType" v-if="details.length>0"></uni-load-more> -->
</view>
</template>
@ -159,7 +200,8 @@
goHome,
getISODateTime,
compare,
getRemoveOption
getRemoveOption,
getCurrDateTime
} from '@/common/basic.js';
import {
@ -174,8 +216,11 @@
import comCountScanDetail from '@/mycomponents/coms/task/comCountScanDetail.vue';
import comNumberBox from '@/mycomponents/common/comNumberBox.vue';
import comEasyInput from '@/mycomponents/common/comEasyInput.vue';
import comEasyInputCount from '@/mycomponents/common/comEasyInputCount.vue';
import winInventoryStatus from '@/mycomponents/wincom/winInventoryStatus.vue';
export default {
components: {
// comCountItems,
@ -185,6 +230,7 @@
comCountScanDetail,
comNumberBox,
comEasyInput,
comEasyInputCount,
winInventoryStatus
},
data() {
@ -192,9 +238,11 @@
type: '',
id: '',
datacontent: {},
details: {},
details: [],
allDetails: [], //
currentItem: {},
editDescItem: {},
editCountItem: {},
scrollTop: 0,
old: {
scrollTop: 0
@ -208,7 +256,14 @@
topItem: '',
isShowScanPopup: false,
statusArray: [],
allStatusArray: []
allStatusArray: [],
ipage: 1,
iSize: 20,
testList: [],
isload: true,
loadingType: "",
currentPage: 0,
pageSize: 20,
// array: [{
// text: '',
// value: 1
@ -246,6 +301,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
} else if (e.index === 1) {
window.location.reload();
}
},
//
@ -259,13 +316,15 @@
});
}
},
onReachBottom() {},
filters: {
statusStyle: function(val) {
return getJobStatuStyle(val);
},
statusColor: function(val) {
return getJobStatuDesc(val);
},
// statusColor: function(val) {
// return getJobStatuDesc(val);
// },
statusStyle: function(val) {
return getInventoryTypeStyle(val);
},
@ -312,7 +371,14 @@
getCountJobDetail(params)
.then(async res => {
that.datacontent = res;
that.allCount = res.details.length
// var test = res.details[0]
// for (var i = 0; i < 10000; i++) {
// var detail = {}
// var detail = Object.assign(detail, test)
// detail.id = i;
// res.details.push(detail)
// }
if (res.details != null) {
res.details.forEach(r => {
r.scaned = false
@ -321,7 +387,9 @@
r.countQty = 0;
})
}
that.details = res.details;
that.allDetails = res.details;
that.allCount = res.details.length
//
let locationCode = that.datacontent.locationCode;
let location = await locationsAsync(locationCode);
@ -334,6 +402,16 @@
uni.hideLoading();
},
getDataPage(pageNo, pageSize) {
//
var totalPages = Math.ceil(this.allCount / pageSize);
//
const start = (pageNo - 1) * pageSize;
const end = start + pageSize; //
return this.allDetails.slice(start, end)
},
getScanResult(result) {
let that = this;
this.scanResult = result;
@ -343,12 +421,12 @@
let lot = result.data.lot === null ? '' : result.data.lot;
// let items = this.details.filter(r => r.itemCode === itemCode &&
// r.packingCode === packingCode && r.lot === lot)
let items = this.details.filter(r =>
let items = this.allDetails.filter(r =>
r.packingCode === packingCode)
if (items.length === 0) {
//
if (this.datacontent.countMethod === 2) {
if (this.details[0].itemCode === itemCode) {
if (this.allDetails[0].itemCode === itemCode) {
this.addNewDetail(result);
} else {
this.showMessage('扫描的库存不在列表中');
@ -360,40 +438,62 @@
let item = items[0];
this.currentItem = item;
if (item.scaned) {
this.setQty(item, item.countQty);
// this.showMessage(',');
// this.setQty(item, item.countQty);
this.$refs.comMessage.showMessage('箱码【' + packingCode + '】已经完成盘点,请扫描下一标签')
} else {
this.setQty(item, item.inventoryQty);
}
} else {
this.showMessage('盘点数量异常,箱码【' + packingCode + '】的出现多条数据');
}
this.scrollToTop();
// this.scrollToTop();
this.calcScanCount();
},
addNewDetail(result) {
async addNewDetail(result) {
if (this.location == null) {
this.showMessage('未查找到库位信息,不可以添加为任务明细');
return;
}
showConfirmMsg('扫描的库存在任务中不存在,是否要添加为任务明细?', async confirm => {
if (confirm) {
let balanceItem = await this.getBalanceAsync(result);
let detail = this.creatDetail(result);
if (balanceItem != null) {
this.setDetailByBalance(detail, balanceItem);
} else {
this.setDetailNoBalance(detail, result)
}
this.details.unshift(detail);
this.calcAllCount();
this.calcScanCount();
this.$forceUpdate();
let balanceItem = await this.getBalanceAsync(result);
let detail = this.creatDetail(result);
if (balanceItem == null || balanceItem == undefined) {
setTimeout(res => {
showConfirmMsg('扫描的库存在任务中不存在,是否要添加为任务明细?', async confirm => {
if (confirm) {
this.setDetailNoBalance(detail, result)
this.allDetails.unshift(detail);
// this.details.unshift(detail);
this.calcAllCount();
this.calcScanCount();
this.$forceUpdate();
} else {
this.scanPopupGetfocus();
}
});
}, 100)
} else {
if (balanceItem.locationCode != this.location.code) {
this.showMessage("箱码【" + result.data.code + "】在库位【" + balanceItem.locationCode + "】不在库位【" +
this.location.code + "】不可以添加为任务明细");
} else {
this.scanPopupGetfocus();
setTimeout(res => {
showConfirmMsg('扫描的库存在任务中不存在,是否要添加为任务明细?', async confirm => {
if (confirm) {
this.setDetailByBalance(detail, balanceItem);
this.allDetails.unshift(detail);
// this.details.unshift(detail);
this.calcAllCount();
this.calcScanCount();
this.$forceUpdate();
} else {
this.scanPopupGetfocus();
}
});
}, 100)
}
});
}
},
async getBalanceAsync(result) {
@ -430,7 +530,7 @@
number: this.datacontent.number,
inventoryQty: 0,
inventoryUom: result.data.uom,
uom: result.data.uom,
packingCode: result.data.packingCode,
lot: result.data.lot,
@ -460,6 +560,7 @@
setDetailByBalance(detail, balanceItem) {
detail.InventoryLocationCode = balanceItem.locationCode;
detail.inventoryQty = balanceItem.qty;
detail.countQty = balanceItem.qty;
detail.status = balanceItem.status;
return detail;
@ -467,6 +568,7 @@
setDetailNoBalance(detail, result) {
detail.InventoryLocationCode = "";
detail.inventoryQty = 0;
detail.countQty = result.data.qty;
detail.status = 2;
return detail;
@ -477,7 +579,10 @@
item.countQty = Number(qty);
item.countTime = new Date();
item.countOperator = localStorage.userId;
this.details.sort(compare('countTime')); //
this.allDetails.sort(compare('countTime')); //
this.$refs.paging.reload();
this.scanPopupGetfocus();
this.$forceUpdate();
},
@ -495,7 +600,7 @@
content: '是否移除选择的行?',
success: res => {
if (res.confirm) {
that.details.splice(index, 1);
that.allDetails.splice(index, 1);
}
}
});
@ -536,8 +641,10 @@
},
submit() {
// let params = JSON.stringify(this.allDetails);
// console.log('params', params);
let that = this;
let unCheckedItems = that.details.filter(r => {
let unCheckedItems = that.allDetails.filter(r => {
return r.scaned === false
})
if (unCheckedItems.length > 0) {
@ -556,24 +663,28 @@
},
finish() {
if (this.details.length == 0) {
showConfirmMsg('还没有要盘点的任务详情,是否要继续提交?', confirm => {
if (confirm) {
this.finishJob();
}
});
} else {
this.finishJob();
}
this.finishJob();
// if (this.details.length == 0) {
// showConfirmMsg(',?', confirm => {
// if (confirm) {
// this.finishJob();
// }
// });
// } else {
// this.finishJob();
// }
},
finishJob() {
let that=this;
let that = this;
uni.showLoading({
title: "提交中...",
mask: true
});
this.datacontent.details = this.details;
this.datacontent.details = this.allDetails;
that.datacontent.completeUserId = localStorage.getItem('userId')
that.datacontent.completeUserName = localStorage.getItem('userName_CN')
that.datacontent.completeTime = getCurrDateTime()
let params = JSON.stringify(this.datacontent);
finishCountJob(this.id, params)
.then(res => {
@ -608,12 +719,12 @@
},
calcAllCount() {
this.allCount = this.details.length;
this.newCount = this.details.filter(r => r.isNew).length;
this.allCount = this.allDetails.length;
this.newCount = this.allDetails.filter(r => r.isNew).length;
},
calcScanCount() {
this.scanCount = this.details.filter(r => r.scaned === true).length;
this.scanCount = this.allDetails.filter(r => r.scaned === true).length;
},
bindPickerChange(e, item) {
@ -628,8 +739,10 @@
},
openScanPopup() {
this.isShowScanPopup = true;
this.$refs.scanPopup.openScanPopup();
setTimeout(r => {
this.isShowScanPopup = true;
this.$refs.scanPopup.openScanPopup();
}, 0)
},
closeScanPopup() {
@ -649,6 +762,16 @@
this.editDescItem.countDescription = content;
this.$forceUpdate();
},
openEditCount(item) {
this.editCountItem = item;
this.$refs.countPopup.openPopup(item.countQty);
},
closeEditCount(content) {
this.editCountItem.countQty = content;
this.$forceUpdate();
},
showCommitSuccessMessage() {
this.$refs.comMessage.showCommitSuccess();
@ -686,6 +809,12 @@
console.log(e)
this.old.scrollTop = e.detail.scrollTop
},
queryList(pageNo, pageSize) {
var list = []
this.currentPage = pageNo
list = this.getDataPage(pageNo, pageSize)
this.$refs.paging.complete(list)
}
},
}

2
fe/PDA/pages/task/deliveFg.vue

@ -78,6 +78,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

2
fe/PDA/pages/task/deliver.vue

@ -87,6 +87,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

60
fe/PDA/pages/task/deliver_detail.vue

@ -33,13 +33,13 @@
<uni-tr>
<uni-th width="50">数量</uni-th>
<uni-th width="120" align="center">
<view class="text_black">{{item.recommendQty}}({{item.recommendUom}})</text>
<view class="text_black">{{item.recommendQty}}({{item.uom}})</text>
</view>
</uni-th>
<!-- -->
<uni-th width="120" align="center">
<view v-if="item.scaned" class="text_black">
{{item.handledQty}}({{item.recommendUom}})
{{item.handledQty}}({{item.uom}})
</view>
</uni-th>
</uni-tr>
@ -72,7 +72,8 @@
<view class="text_black">{{ item.recommendLocationCode }}</view>
</uni-th>
<uni-th width="120" align="center">
<view v-if="item.scaned" class="text_black">{{ item.handledLocationCode }}
<view v-if="item.scaned" class="text_black">
{{ item.handledFromLocationCode }}
</view>
</uni-th>
</uni-tr>
@ -172,6 +173,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -272,8 +275,32 @@
item.handledPackingCode = that.balancesItem.packingCode;
item.handledBatch = that.balancesItem.batch;
item.handledLot = that.balancesItem.lot;
item.handledLocationCode = that.balancesItem.locationCode;
item.handledFromLocationArea = that.balancesItem.locationCode;
item.handledQty = that.balancesItem.qty;
// ==================================
// item.recommendFromLocationCode = string;
// item.recommendFromLocationArea = string;
// item.recommendFromLocationGroup = string;
// item.recommendFromLocationErpCode = string;
// item.recommendFromWarehouseCode = string;
// item.uom = string;
// item.recommendQty = 0;
// item.handledFromLocationCode = string;
// item.handledFromLocationArea = string;
// item.handledFromLocationGroup = string;
// item.handledFromLocationErpCode = string;
// item.handledFromWarehouseCode = string;
// item.handledQty = that.balancesItem.qty;
// item.toLocationCode = string;
// item.toLocationArea = string;
// item.toLocationGroup = string;
// item.toLocationErpCode = string;
// item.toWarehouseCode = string;
// item.onTheWayLocationCode = string;
this.getScanCount();
this.closeScanPopup();
that.$forceUpdate();
@ -336,21 +363,20 @@
title: "提交中..."
});
that.datacontent.company = localStorage.company;
let params = JSON.stringify(that.datacontent);
console.log(params);
finshDeliverJob(that.id, params)
.then(res => {
uni.hideLoading();
if (res != null) {
that.showCommitSuccessMessage();
that.backJobList(1000);
}
})
.catch(err => {
this.showMessage(err.message);
uni.hideLoading();
});
// finshDeliverJob(that.id, params)
// .then(res => {
// uni.hideLoading();
// if (res != null) {
// that.showCommitSuccessMessage();
// that.backJobList(1000);
// }
// })
// .catch(err => {
// this.showMessage(err.message);
// uni.hideLoading();
// });
},
//

2
fe/PDA/pages/task/issueByFIFO.vue

@ -42,6 +42,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {}

2
fe/PDA/pages/task/issueNoFIFO.vue

@ -30,6 +30,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {}

252
fe/PDA/pages/task/issue_detail.vue

@ -2,12 +2,13 @@
<template>
<page-meta root-font-size="16px"></page-meta>
<view class="">
<view class="top_card">
<com-job-scan-detail :jobContent="datacontent" :allCount="allCount" :scanCount="scanCount">
</com-job-scan-detail>
</view>
<scroll-view :scroll-top="scrollTop" scroll-y="true" @scrolltoupper="upper" @scrolltolower="lower"
@scroll="scroll" class="scroll-detail">
<view class="top_card">
<com-job-scan-detail :jobContent="datacontent" :allCount="allCount" :scanCount="scanCount">
</com-job-scan-detail>
</view>
<view class="detail-list margin_top" v-for="(item, index) in details" :key="item.id">
<view class="detail-content">
<view class="choose_main">
@ -32,12 +33,17 @@
<uni-tr>
<uni-th width="50">数量</text></uni-th>
<uni-th width="120" align="center">
<text class="text_black">{{item.recommendQty}}({{item.recommendUom}})</text>
<text class="text_black">{{item.recommendQty}}({{item.uom}})</text>
</uni-th>
<uni-th width="120" align="center">
<view v-if="item.scaned">
<text
class="text_black">{{item.handledQty}}({{item.recommendUom}})</text>
<view v-if="item.scaned"
style="display: flex;flex-direction: row;justify-content:center;align-items: center;">
<com-number-box :ref="'comNumberBox_'+index" v-model="item.handledQty"
:max="99999" :min="0" style='width: 100px;'
@change="qtyChanged($event,item,index)">
</com-number-box>
<text class="text_black">({{item.uom}})</text>
</view>
</uni-th>
</uni-tr>
@ -66,10 +72,11 @@
<uni-tr>
<uni-th width="60">库位</uni-th>
<uni-th width="100" align="center">
<view class="text_black">{{ item.recommendLocationCode }}</view>
<view class="text_black">{{ item.recommendFromLocationCode }}</view>
</uni-th>
<uni-th width="100" align="center">
<view class="text_black" v-if="item.scaned">{{ item.handledLocationCode }}
<view class="text_black" v-if="item.scaned">
{{ item.handledFromLocationCode }}
</view>
</uni-th>
</uni-tr>
@ -92,7 +99,8 @@
<win-scan-by-pack ref="scanPopup" @getScanResult='getScanResult'></win-scan-by-pack>
<com-balance ref="balanceItems" @selectedItem='selectedBalanceItem'></com-balance>
<com-message ref="comMessage" @afterCloseCommitMessage='closeCommitMessage()' @afterCloseScanMessage='closeScanMessage'></com-message>
<com-message ref="comMessage" @afterCloseCommitMessage='closeCommitMessage()'
@afterCloseScanMessage='closeScanMessage'></com-message>
</view>
</template>
@ -110,7 +118,8 @@
showConfirmMsg,
goHome,
compareDesc,
compareStr
compareStr,
getCurrDateTime
} from '@/common/basic.js';
import comMessage from '@/mycomponents/common/comMessage.vue'
import winScanButton from '@/mycomponents/wincom/winScanButton.vue'
@ -118,6 +127,7 @@
import comBalance from '@/mycomponents/common/comBalance.vue'
import comJobScanDetail from '@/mycomponents/comjob/comJobScanDetail.vue'
import winScanByPack from '@/mycomponents/wincom/winScanByPack.vue'
import comNumberBox from '@/mycomponents/common/comNumberBox.vue';
export default {
components: {
@ -126,7 +136,8 @@
winMulitScan,
comBalance,
comJobScanDetail,
winScanByPack
winScanByPack,
comNumberBox
},
data() {
return {
@ -188,6 +199,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -246,6 +259,7 @@
// }
this.allCount = that.details.length;
this.scanCount = 0;
}
uni.hideLoading();
})
@ -299,57 +313,140 @@
dyIssue(result, scaned) {
let that = this;
that.currentItem = that.details.find(r => {
return r.itemCode === result.data.itemCode &&
r.recommendPackingCode === result.data.code &&
r.recommendLot === result.data.lot &&
var itemCode = that.details.find(r => {
return r.itemCode === result.data.itemCode&&
r.scaned === scaned
})
if (itemCode == undefined) {
that.showScanMessage('所扫描的箱码【' + result.data.code + '】对应的物料【' + result.data.itemCode + '】不在任务中');
}else {
//
var itemCode1 = that.details.find(r => {
return r.itemCode === result.data.itemCode&&
r.recommendPackingCode === result.data.code
r.scaned === scaned
});
if (that.currentItem === undefined) {
that.currentItem = that.details.find(r => {
return r.itemCode === result.data.itemCode &&
r.recommendLot === result.data.lot &&
r.scaned === scaned
});
if (that.currentItem === undefined) {
showConfirmMsg('按零件号【' + result.data.itemCode + '】和批次【' + result.data.lot +
'】,在任务中未找到零件,是否按照零件号继续查找?',
confirm => {
if (confirm) {
let items = that.details.filter(r => {
return r.itemCode === result.data.itemCode && r.scaned == scaned
});
if (items.length === 0) {
that.showScanMessage('按零件号【' + result.data.itemCode + '】,在任务中未匹配到零件,请扫描其他标签');
})
//
if(itemCode1 == undefined){
var itemCode2 = that.details.find(r => {
return r.itemCode === result.data.itemCode&&
r.recommendLot === result.data.lot
&&r.scaned === scaned
})
//
if(itemCode2==undefined){
//
console.log("零件号相同、箱码不相同、批次不相同")
setTimeout(res => {
showConfirmMsg(itemCode.recommendPackingCode+'未执行先进先出或不是最先批次,是否继续?', confirm => {
if (confirm) {
that.currentItem = itemCode;
that.afterScanPackLabel(result);
} else {
that.currentItem = items[0]; //
that.scanPopupGetFocus();
}
});
}, 100)
}else {
console.log("零件号相同、箱码不相同、批次相同")
//
that.currentItem = itemCode2;
that.afterScanPackLabel(result);
}
}else {
//
var itemCode3 = that.details.find(r => {
return r.itemCode === result.data.itemCode&&
r.recommendPackingCode === result.data.code&&
r.recommendLot === result.data.lot
&&r.scaned === scaned
})
if(itemCode3==undefined){
//
console.log("零件号相同、箱码相同、批次不同")
setTimeout(res => {
showConfirmMsg(itemCode1.recommendPackingCode+'未执行先进先出或不是最先批次,是否继续?', confirm => {
if (confirm) {
that.currentItem = itemCode1;
that.afterScanPackLabel(result);
} else {
that.scanPopupGetFocus();
}
}
else
{
that.scanPopupGetFocus();
}
})
} else {
showConfirmMsg('按零件号【' + result.data.itemCode + '】和批次【' + result.data.lot + '】,匹配到任务中的【' + that
.currentItem
.recommendPackingCode + '】箱,是否确认匹配?',
confirm => {
if (confirm) {
that.afterScanPackLabel(result);
}
else
{
that.scanPopupGetFocus();
}
});
});
}, 100)
}else {
console.log("零件号相同、箱码相同、批次相同")
//
that.currentItem = itemCode3;
that.afterScanPackLabel(result);
}
}
} else {
that.afterScanPackLabel(result);
}
// that.currentItem = that.details.find(r => {
// return r.itemCode === result.data.itemCode &&
// r.recommendPackingCode === result.data.code &&
// r.recommendLot === result.data.lot &&
// r.scaned === scaned
// });
// //
// if (that.currentItem === undefined) {
// var itemCode = that.details.find(res => {
// return res.itemCode === result.data.itemCode &&
// res.scaned === scaned
// })
// //
// if (itemCode != undefined) {
// var lot = that.details.find(res => {
// return res.itemCode === result.data.itemCode &&
// res.recommendLot === result.data.lot &&
// res.scaned === scaned
// })
// if (lot != undefined) {
// //
// that.currentItem = lot;
// that.afterScanPackLabel(result);
// } else {
// //
// //
// setTimeout(res => {
// showConfirmMsg(',?', confirm => {
// if (confirm) {
// that.currentItem = itemCode;
// that.afterScanPackLabel(result);
// } else {
// that.scanPopupGetFocus();
// }
// });
// }, 100)
// }
// } else {
// //
// var lot = that.details.find(res => {
// return res.recommendLot === result.data.lot &&
// res.scaned === scaned
// })
// //
// if (lot != undefined) {
// //
// that.showScanMessage('');
// } else {
// //,
// that.showScanMessage('');
// }
// }
// } else {
// that.afterScanPackLabel(result);
// }
},
afterScanPackLabel(result) {
@ -414,20 +511,24 @@
item.handledBatch = balanceItem.batch;
item.handledLot = balanceItem.lot;
item.defaultHandleQty = balanceItem.qty;
item.handledQty = balanceItem.qty;
item.handledUom = balanceItem.uom;
item.handledFromLocationCode = balanceItem.locationCode;
item.handledFromLocationArea = balanceItem.locationArea;
item.handledFromLocationGroup = balanceItem.locationErpCode;
item.handledFromLocationErpCode = balanceItem.locationGroup;
item.handledFromWarehouseCode = balanceItem.warehouseCode;
item.handledLocationCode = balanceItem.locationCode;
item.handledLocationArea = balanceItem.locationArea;
item.handledLocationErpCode = balanceItem.locationErpCode;
item.handledLocationGroup = balanceItem.locationGroup;
item.toLocationArea = balanceItem.locationArea;
item.toLocationGroup = balanceItem.locationGroup;
item.toLocationErpCode = balanceItem.locationErpCode;
//
item.scanItemCode = this.currentScanLebel.data.itemCode;
item.scanPackingCode = this.currentScanLebel.data.code;
item.scanLot = this.currentScanLebel.data.lot;
item.worker = localStorage.userName;
item.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN;
item.uom = balanceItem.uom;
this.details.sort(compareDesc('scanDate')); //
@ -523,8 +624,10 @@
title: "提交中...",
mask: true
});
that.datacontent.company = localStorage.company;
that.datacontent.worker = localStorage.userName;
that.datacontent.completeUserId = localStorage.getItem('userId')
that.datacontent.completeUserName = localStorage.getItem('userName_CN')
that.datacontent.completeTime = getCurrDateTime();
that.datacontent.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN;
that.datacontent.details = that.details;
let params = JSON.stringify(that.datacontent);
finshIssueJob(that.id, params)
@ -597,15 +700,15 @@
this.$refs.scanPopup.closeScanPopup();
}
},
closeScanMessage() {
this.scanPopupGetFocus();
},
scanPopupGetFocus() {
this.$refs.scanPopup.getfocus();
},
scrollToTop() {
let that = this;
// view
@ -625,6 +728,17 @@
// console.log(e)
this.old.scrollTop = e.detail.scrollTop;
},
qtyChanged(value, item, index) {
if (value <= 0) {
this.showMessage('发料数量不能小于或等于0')
item.handledQty = item.defaultHandleQty
this.$refs['comNumberBox_' + index][0].setValue(item.handledQty);
} else if (value > item.defaultHandleQty) {
item.handledQty = item.defaultHandleQty
this.showMessage('发料数量不能大于库存数量:' + item.handledQty)
this.$refs['comNumberBox_' + index][0].setValue(item.handledQty);
}
},
}
}
</script>

2
fe/PDA/pages/task/putaway.vue

@ -81,6 +81,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

2
fe/PDA/pages/task/putawayByLocation.vue

@ -31,6 +31,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

2
fe/PDA/pages/task/putawayNoLocation.vue

@ -31,6 +31,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {

4
fe/PDA/pages/task/putaway_detail.vue

@ -180,6 +180,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -326,7 +328,7 @@
r.handledBatch = r.recommendBatch;
r.handledLot = r.recommendLot;
r.handledQty = r.recommendQty;
r.worker = localStorage.userName
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
});
let params = JSON.stringify(that.datacontent);
console.log(params);

2
fe/PDA/pages/task/putawayjob.vue

@ -90,6 +90,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
onLoad() {

4
fe/PDA/pages/task/receipt.vue

@ -107,6 +107,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
filters: {
@ -225,7 +227,7 @@
mask: true
});
let params = {
number: code,
asnNumber: code,
isToday: that.isToday
}
getReceiptJobByAsnNumber(params).then(res => {

93
fe/PDA/pages/task/receipt_check.vue

@ -99,8 +99,7 @@
this.getUnFildReason();
},
onLoad() {
},
onLoad() {},
created() {
@ -134,6 +133,7 @@
let fileKey = file.FileKey;
let fileName = file.FileName;
getFileByCode(fileKey).then(res => {
let result = res;
var byteString = atob(res.bytes)
var arrayBuffer = new ArrayBuffer(byteString.length) //
@ -187,38 +187,34 @@
//
save() {
let files = this.$refs.uploadImage.getFiles();
if (files.length > 0) {
// this.readImageBuffer(files);
if (this.dataContent.failedReason || this.dataContent.failedReason.length > 0) {
showConfirmMsg('是否将【' + this.dataContent.recommendPackingCode + '】箱,标记为不合格?', confirm => {
if (confirm) {
this.saveResultNotPass(files)
} else {
this.$refs.uploadImage.clearFiles()
}
});
} else {
this.showMessage('请选择不合格原因')
}
} else //
{
if (this.dataContent.purchaseReceiptInspectStatus == 3) {
if (this.dataContent.failedReason == ""||this.dataContent.failedReason == null) {
if (this.dataContent.purchaseReceiptInspectStatus == 2 || this.dataContent
.purchaseReceiptInspectStatus == 3) {
showConfirmMsg('是否要将零件的状态改为合格?', confirm => {
if (confirm) {
this.saveResultPass();
this.saveResultPass(files);
}
})
} else {
this.$refs['receiptCheckPopup'].close();
}
} else //
{
showConfirmMsg('是否将【' + this.dataContent.recommendPackingCode + '】箱,标记为不合格?', confirm => {
if (confirm) {
this.saveResultNotPass(files)
} else {
// this.$refs.uploadImage.clearFiles()
}
});
}
},
//
saveResultNotPass(files) {
uni.showLoading({
title: '扫描中...',
title: '保存中...',
mask: true
})
// let imgFiles = this.getFileBlob(files);
@ -232,11 +228,12 @@
filesList: imgFiles
};
let param = JSON.stringify(item);
console.log('param', param);
// console.log('param', param);
//
saveReceiptResult(this.dataContent.masterID, param).then(res => {
console.log("保存", res)
if (res != null) {
console.log('param', param);
// console.log('param', param);
this.afterSave();
}
uni.hideLoading();
@ -248,31 +245,36 @@
},
//
saveResultPass() {
saveResultPass(files) {
uni.showLoading({
title: '保存中...',
mask: true
})
let item = {
id: this.dataContent.masterID,
detailId: this.dataContent.id,
failedReason: '',
massDefect: '',
purchaseReceiptInspectStatus: 2,
fileList: []
};
let param = JSON.stringify(item);
//
saveReceiptResult(this.dataContent.masterID, param).then(res => {
if (res != null) {
this.afterSave();
}
uni.hideLoading();
}).catch(err => {
this.showMessage(err.message)
uni.hideLoading();
})
this.getFileBlob(files, imgFiles => {
let item = {
id: this.dataContent.masterID,
detailId: this.dataContent.id,
failedReason: this.dataContent.failedReason,
massDefect: this.dataContent.massDefect,
purchaseReceiptInspectStatus: 2,
filesList: imgFiles
};
let param = JSON.stringify(item);
// console.log('param', param);
//
saveReceiptResult(this.dataContent.masterID, param).then(res => {
console.log("保存", res)
if (res != null) {
// console.log('param', param);
this.afterSave();
}
uni.hideLoading();
}).catch(err => {
this.showMessage(err.message)
uni.hideLoading();
})
});
},
afterSave() {
@ -282,6 +284,9 @@
getFileBlob(files, callBack) {
let fileParam = [];
if(files.length==0){
callBack(fileParam)
}
for (var i = 0; i < files.length; i++) {
let r = files[i];
let filePath = r.path;

11
fe/PDA/pages/task/receipt_detail.vue

@ -33,7 +33,7 @@
<uni-th width="100" align="center">实际</uni-th>
</uni-tr>
<uni-tr>
<uni-th width="100">数量({{item.recommendUom}})</uni-th>
<uni-th width="100">数量({{item.uom}})</uni-th>
<uni-th width="100" align="center">
<text class="text_black"
style="font-size: 1rem;">{{item.recommendQty}}</text>
@ -152,6 +152,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
//
@ -242,9 +244,9 @@
afterPurchase() {
let that = this;
//
that.getJoDetail(() => {
this.calcScanCount();
})
that.getJoDetail(() => {
this.calcScanCount();
})
},
//
@ -403,6 +405,7 @@
details.push(r.id);
})
let param = JSON.stringify(details);
resetReceiptResult(that.id, param).then(res => {
if (res != null) {
that.getJoDetail(() => {

28
fe/PDA/pages/task/receipt_result.vue

@ -43,7 +43,7 @@
<view class="cen_card margin_xs_bottom">
<view class="label_box uni-flex uni-row space-between">
<view class="label_info">
<text>不合格数量:{{ item.recommendQty}}({{ item.recommendUom}})</text>
<text>不合格数量:{{ item.recommendQty}}({{ item.uom}})</text>
</view>
<view v-if="item.purchaseReceiptInspectStatus==3?true:false" @click="seePhoto(item)">
<!-- <label class="">
@ -81,6 +81,8 @@
import {
showConfirmMsg,
goHome,
getCurrDateTime,
getCurrDateTimeAndT
} from '@/common/basic.js';
import {
@ -136,6 +138,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
onLoad: function(e) {
@ -146,7 +150,6 @@
that.itemList = that.receiptJob.details.filter(r => {
return r.purchaseReceiptInspectStatus == 3
})
that.receiptJob.details.forEach(r => {
that.allCount += r.recommendQty;
switch (r.purchaseReceiptInspectStatus) {
@ -201,26 +204,31 @@
mask: true
})
//
that.receiptJob.completeUserId = localStorage.getItem('userId')
that.receiptJob.completeUserName = localStorage.getItem('userName_CN')
that.receiptJob.completeTime = getCurrDateTimeAndT()
that.receiptJob.details.forEach(r => {
r.handledLocationCode = r.recommendLocationCode;
r.worker = localStorage.userName
r.handledToLocationCode = r.recommendToLocationCode;
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
if (r.purchaseReceiptInspectStatus == 1) {
r.handledArriveDate = new Date(); //
r.handledArriveDate = getCurrDateTimeAndT(); //
r.purchaseReceiptInspectStatus = 4; //
r.handledQty = 0;
r.handledUom = r.recommendUom;
// r.handledUom = r.recommendUom;
r.handledContainerCode = r.recommendContainerCode;
r.handledPackingCode = r.recommendPackingCode;
r.handledSupplierBatch = r.recommendSupplierBatch;
r.handledProduceDate = r.recommendProduceDate;
r.handledExpireDate = r.recommendExpireDate;
r.handledLot = r.recommendLot;
r.handledLocationCode = r.recommendLocationCode;
r.handledLocationArea = r.recommendLocationArea;
r.handledLocationGroup = r.recommendLocationGroup;
r.handledLocationErpCode = r.recommendLocationErpCode;
r.handledToLocationCode = r.recommendToLocationCode;
r.handledToLocationArea = r.recommendToLocationArea;
r.handledToLocationGroup = r.recommendToLocationGroup;
r.handledToLocationErpCode = r.recommendToLocationErpCode;
}
});
let param = JSON.stringify(that.receiptJob);
console.log(param);

4
fe/PDA/pages/task/replen.vue

@ -75,6 +75,8 @@
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
@ -116,7 +118,7 @@
mask: true
})
let item = {
worker: localStorage.userName,
worker: localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN,
company: localStorage.company,
details: that.itemList
};

176
fe/PDA/pages/task/unProducePick.vue

@ -0,0 +1,176 @@
<template>
<page-meta root-font-size="18px"></page-meta>
<view class="">
<win-empty-view v-if="dataList.length==0"></win-empty-view>
<view hover-class="uni-list-cell-hover" v-for="(item, index) in dataList" :key="item.id"
@click="openDetail(item)">
<comUnProduce :dataContent="item" fromType ="pick"></comUnProduce>
</view>
<uni-load-more :status="loadingType" v-if="dataList.length>0" />
<win-scan-button @goScan='openScanPopup'></win-scan-button>
<win-mulit-scan ref="scanPopup" :titleArray="titleArray" @getScanResult='getScanResult'>
</win-mulit-scan>
<com-scan-issue-list ref="scanList" @selectedItem="selectedItem"></com-scan-issue-list>
<!-- com-message必须放在最下层 -->
<com-message ref="comMessage"></com-message>
</view>
</template>
<script>
import {
getUnProducePickList,
} from '@/api/index.js';
import {
goHome
} from '@/common/basic.js';
import winEmptyView from '@/mycomponents/wincom/winEmptyView.vue'
import comUnProduce from '@/mycomponents/coms/task/comUnProduce.vue';
import comMessage from '@/mycomponents/common/comMessage.vue'
import winScanButton from '@/mycomponents/wincom/winScanButton.vue'
import winMulitScan from '@/mycomponents/wincom/winMulitScan.vue'
import comScanIssueList from '@/mycomponents/scan/comScanIssueList.vue'
export default {
name: 'issue',
components: {
winEmptyView,
comUnProduce,
comMessage,
winScanButton,
winMulitScan,
comScanIssueList
},
data() {
return {
//popup
type: '',
dataList: [],
reload: false,
status: '',
contentText: {
contentdown: '上拉加载更多',
contentrefresh: '加载中',
contentnomore: '没有更多'
},
pageSize: this.modelConfig,
pageIndex: 1,
isIssueTimeChange: false,
isToday: false,
titleArray: ['任务编号'],
loadingType: "nomore"
};
},
onShow() {
this.getList('refresh');
},
mounted() {
},
//
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
methods: {
openScanPopup() {
this.$refs.scanPopup.openScanPopup();
},
//
timeSortingChange() {
this.isIssueTimeChange = !this.isIssueTimeChange;
this.getList()
},
//
isTodayChange() {
this.isToday = !this.isToday
this.getList()
},
//
getList(type) {
let that = this;
uni.showLoading({
title: "加载中....",
mask: true
});
this.loadingType = "loading";
if (type === "refresh") {
this.pageIndex = 1;
this.dataList = [];
}
let params = {
pageSize: that.pageSize,
pageIndex: that.pageIndex,
isCreationTimeSorting: that.isIssueTimeChange,
isToday: that.isToday
};
getUnProducePickList(params)
.then(res => {
uni.hideLoading();
if (type === "refresh") {
uni.stopPullDownRefresh();
}
var list = res.items;
this.loadingType = "loadmore";
if (list == null || list.length == 0) {
//
this.loadingType = "nomore";
return;
}
that.dataList = type === "refresh" ? list : this.dataList.concat(list);
that.pageIndex++;
})
.catch(err => {
this.showMessage(err.message);
uni.hideLoading();
});
},
getScanResult(type, result) {
let code = result.data.code;
if (code == '') {
this.showMessage('扫描的内容不能为空')
return;
}
},
openDetail(item) {
uni.navigateTo({
url: './unProducePickDetail?id=' + item.id
});
},
showMessage(message) {
this.$refs.comMessage.showMessage(message);
},
onPull() {
this.getList('refresh');
},
onReachBottom() {
//
if (this.loadingType == 'loading' || this.loadingType == 'nomore') {
return;
}
this.getList('more');
},
showItemList(itemList) {
this.$refs.scanList.openPopup(itemList);
},
selectedItem(item) {
this.openDetail(item);
}
}
};
</script>
<style scoped lang="scss">
</style>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save