Browse Source

Merge branch 'dev_web'

# Conflicts:
#	fe/PC/public/config.js
集成Redis
陈薪名 2 years ago
parent
commit
b3ed74072a
  1. 37
      fe/PC/src/api/wms-api.js
  2. 8
      fe/PC/src/api/wms-core.js
  3. 11
      fe/PC/src/api/wms-job.js
  4. 9
      fe/PC/src/components/StepsCountPlanForm/index.vue
  5. 17
      fe/PC/src/components/commonTabel-drawer/index.vue
  6. 5
      fe/PC/src/components/commonTabel-drawer/style/index.scss
  7. 3
      fe/PC/src/components/currenForm/index.vue
  8. 35
      fe/PC/src/components/currenTable/index.vue
  9. 11
      fe/PC/src/components/importFile/index.vue
  10. 6
      fe/PC/src/components/umyTable/index.vue
  11. 7
      fe/PC/src/filters/index.js
  12. 2
      fe/PC/src/filters/options.js
  13. 15
      fe/PC/src/filters/status.js
  14. 6
      fe/PC/src/mixins/TableHeaderMixins.js
  15. 18
      fe/PC/src/mixins/TableMixins.js
  16. 14
      fe/PC/src/mixins/mixins.js
  17. 106
      fe/PC/src/mixins/printMixin.js
  18. 1
      fe/PC/src/styles/basicData.scss
  19. 2303
      fe/PC/src/utils/detailsTableColumns/index.js
  20. 11
      fe/PC/src/utils/index.js
  21. 2
      fe/PC/src/utils/quicklySearchOption/index.js
  22. 2
      fe/PC/src/utils/request.js
  23. 61
      fe/PC/src/utils/summaryTableColumns/index.js
  24. 1256
      fe/PC/src/utils/tableColumns/index.js
  25. 1512
      fe/PC/src/utils/tabsDesTions/index.js
  26. 23
      fe/PC/src/views/basicData/ItemsManage/ItemPack.vue
  27. 2
      fe/PC/src/views/finishedProductManage/deliver/DeliverJob-msQuery.vue
  28. 2
      fe/PC/src/views/finishedProductManage/deliver/DeliverNote-Query.vue
  29. 2
      fe/PC/src/views/finishedProductManage/deliver/FISDeliverNote-Query.vue
  30. 7
      fe/PC/src/views/finishedProductManage/dismantle/customerDismantleNote.vue
  31. 4
      fe/PC/src/views/finishedProductManage/dismantle/customerDismantleRequest.vue
  32. 2
      fe/PC/src/views/finishedProductManage/partiallyPreparedProducts/partiallyPreparedProductsNote.vue
  33. 2
      fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptRequest.vue
  34. 19
      fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptScrapNote.vue
  35. 19
      fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptScrapRequest.vue
  36. 2
      fe/PC/src/views/finishedProductManage/productionReturn/returnJob.vue
  37. 2
      fe/PC/src/views/inventoryManage/Count/CountJob-msQuery.vue
  38. 178
      fe/PC/src/views/inventoryManage/InventoryQuery/InventoryBalance.vue
  39. 17
      fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransferLog-Query.vue
  40. 2
      fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationConfirm.vue
  41. 2
      fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationNote.vue
  42. 2
      fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationRequest.vue
  43. 2
      fe/PC/src/views/inventoryManage/interStorageAllocation/interStorageAllocationNote.vue
  44. 2
      fe/PC/src/views/inventoryManage/intraStorageTransfer/intraStorageTransferNote.vue
  45. 9
      fe/PC/src/views/inventoryManage/lineSideWarehouseAdjustmentSheet/lineSideWarehouseAdjustmentSheetNote.vue
  46. 2
      fe/PC/src/views/inventoryManage/lineSideWarehouseAdjustmentSheet/lineSideWarehouseAdjustmentSheetRequest.vue
  47. 2
      fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationConfirm.vue
  48. 2
      fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationNote.vue
  49. 2
      fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationRequest.vue
  50. 2
      fe/PC/src/views/inventoryManage/lineSideWarehousePayment/lineSideWarehousePaymentNote.vue
  51. 2
      fe/PC/src/views/inventoryManage/lineSideWarehousePayment/lineSideWarehousePaymentRequest.vue
  52. 4
      fe/PC/src/views/inventoryManage/lineSideWarehouseScrapping/lineSideWarehouseScrappingNote.vue
  53. 4
      fe/PC/src/views/inventoryManage/lineSideWarehouseScrapping/lineSideWarehouseScrappingRequest.vue
  54. 2
      fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustment.vue
  55. 2
      fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustmentApply.vue
  56. 255
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/PartiallyPreparedProducts.vue
  57. 271
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/RecycledMaterialsLabel.vue
  58. 297
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/__PartiallyPreparedProducts.vue
  59. 424
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/__RecycledMaterialsLabel.vue
  60. 352
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/__productionReturnLabel.vue
  61. 90
      fe/PC/src/views/labelManage/PartiallyPreparedProducts/productionReturnLabel.vue
  62. 6
      fe/PC/src/views/labelManage/RepairLabels.vue
  63. 2
      fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallApply.vue
  64. 6
      fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallJob-msQuery.vue
  65. 35
      fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallNote.vue
  66. 13
      fe/PC/src/views/rawMaterialManage/beforeGroundingReturn/beforeGroundingReturnNote.vue
  67. 6
      fe/PC/src/views/rawMaterialManage/directIssue/directIssueNote.vue
  68. 12
      fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueJob.vue
  69. 4
      fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueNote.vue
  70. 2
      fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueRequest.vue
  71. 19
      fe/PC/src/views/rawMaterialManage/materialDirectSend/materialDirectSendNote.vue
  72. 36
      fe/PC/src/views/rawMaterialManage/purchaseOnShelves/PutawayNote.vue
  73. 40
      fe/PC/src/views/rawMaterialManage/purchaseReceipt/PurchaseOrder-ms.vue
  74. 70
      fe/PC/src/views/rawMaterialManage/purchaseReceipt/PurchaseReceiptNote-msQuery.vue
  75. 2
      fe/PC/src/views/rawMaterialManage/purchaseReturn/returnJob.vue
  76. 16
      fe/PC/src/views/rawMaterialManage/purchaseReturn/returnNote.vue
  77. 106
      fe/PC/src/views/rawMaterialManage/quality/InspectRequest.vue
  78. 16
      fe/PC/src/views/rawMaterialManage/quality/unqualifiedToQualified.vue
  79. 4
      fe/PC/src/views/rawMaterialManage/scrap/ScrapNote.vue
  80. 4
      fe/PC/src/views/systemManage/Department.vue
  81. 4
      fe/PC/vue.config.js

37
fe/PC/src/api/wms-api.js

@ -2,6 +2,7 @@ import request from '@/utils/request'
import store from '@/store'
// let baseURL = process.env.VUE_APP_BASE_API + '/'
let baseURL = localStorage.getItem('base') + '/api/'
let printURL = localStorage.getItem('print') + '/api/'
//新建
export function postCreate(data, url) {
if (Object.keys(data).includes('company')) {
@ -242,7 +243,7 @@ export function getPage(data, url) {
//打印标签
export function PrintServices(data) {
return request({
url: baseURL + 'reporting/PrintServices',
url: printURL + 'reporting/PrintServices',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
@ -409,10 +410,19 @@ export function notifyMessage(params, id) {
}
// 库存-启用 | 库存余额
export function inventoryBalanceActive(id) {
// export function inventoryBalanceActive(id) {
// return request({
// url: baseURL + 'wms/inventory/inventory-balance/active?id=' + id,
// method: 'post',
// })
// }
// 库存-启用 | 库存余额 改
export function inventoryBalanceActive(params) {
return request({
url: baseURL + 'wms/inventory/inventory-balance/active?id=' + id,
url: baseURL + 'wms/inventory/inventory-balance/' + params.id + '/active',
method: 'post',
params: params,
})
}
@ -456,8 +466,9 @@ export function createAndHandle(data) {
// 人工叫料申请 | 人工发料任务 | 人工发料记录 | 自动叫料申请 | 自动发料任务 | 自动发料记录 | 直接发料记录
// 完工收货缴库申请 | 线边仓缴库申请 | 线边仓缴库记录 | 线边仓报废申请 | 线边仓报废记录 | 原料报废记录
export function materialRequestByType(data, url, params) {
let _type = params.type?params.type:params.requestType
return request({
url: baseURL + url + '/' + params.type,
url: baseURL + url + '/' + _type,
method: 'post',
params: params,
data
@ -499,7 +510,7 @@ export function getPageListWip(data, url) {
})
}
// 线边仓调拨确认按钮 | 客户调拨确认按钮
// 线边仓调拨确认按钮 | 客户调拨确认按钮 | 自动发料记录
export function confirm(id, url) {
return request({
url: baseURL + url + '/confirm/' + id,
@ -530,6 +541,22 @@ export function allSupplierByCodes(data) {
data
})
}
// 根据code获取当前供应商信息 打印需要获取供应商信息(供应商简称等)相关位置
export function getOneSupplierInfoByCode(code) {
return request({
url: baseURL + 'basedata/supplier/by-code/' + code,
method: 'get'
})
}
// 根据code获取当前客户信息 打印需要获取供应商信息(客户地址等)相关位置
export function getOneCustomerInfoByCode(code) {
return request({
url: baseURL + 'basedata/customer/by-code/' + code,
method: 'get'
})
}
// 根据编号获取字典信息
// export function getDictByCode(code) {
// return request({

8
fe/PC/src/api/wms-core.js

@ -2,6 +2,14 @@ import request from '@/utils/request'
// let baseURL = localStorage.getItem('print') + '/api/'
let baseURL = localStorage.getItem('base') + '/api/'
// 根据箱码获取标签相关信息 | 补打标签
export function getOneInventoryLabelByCode(code) {
return request({
url: baseURL + 'label/inventory-label/by-code/' + code,
method: 'get'
})
}
// 批量获取箱标签信息 | 到货请求
export function getInventoryLabelByCodes(data) {
return request({

11
fe/PC/src/api/wms-job.js

@ -168,8 +168,9 @@ export function InspectJobHandle(data, params, url) {
//人工发料任务 | 自动发料任务
export function materialRequestByType(data, url, params) {
let _type = params.type?params.type:params.requestType
return request({
url: baseURL + url + '/' + params.type,
url: baseURL + url + '/' + _type,
method: 'post',
params: params,
data
@ -198,7 +199,7 @@ export function preparationPlanByNumber(params) {
//质检——完成质检
export function completeSummaryDetailStatus(params, data) {
return request({
url: baseURL + 'wms/job/inspect-job/complete-summary-detail-status/' + params.id,
url: baseURL + 'wms/store/inspect-job/complete-summary-detail-status/' + params.id,
method: 'post',
params: params,
data
@ -208,7 +209,7 @@ export function completeSummaryDetailStatus(params, data) {
//质检——设置默认状态(清除质检)
export function setDetailDefaultOkStatus(params, id, data) {
return request({
url: baseURL + 'wms/job/inspect-job/set-detail-default-ok-status/' + id,
url: baseURL + 'wms/store/inspect-job/set-detail-default-ok-status/' + id,
method: 'post',
params: params,
data
@ -218,7 +219,7 @@ export function setDetailDefaultOkStatus(params, id, data) {
//质检——设置详情为合格
export function setDetailOkStatus(params, id, data) {
return request({
url: baseURL + 'wms/job/inspect-job/set-detail-ok-status/' + id,
url: baseURL + 'wms/store/inspect-job/set-detail-ok-status/' + id,
method: 'post',
params: params,
data
@ -228,7 +229,7 @@ export function setDetailOkStatus(params, id, data) {
//质检——设置详情为不合格
export function setDetailNookStatus(params, id, data) {
return request({
url: baseURL + 'wms/job/inspect-job/set-detail-nook-status/' + id,
url: baseURL + 'wms/store/inspect-job/set-detail-nook-status/' + id,
method: 'post',
params: params,
data

9
fe/PC/src/components/StepsCountPlanForm/index.vue

@ -412,6 +412,15 @@ export default {
//
advancedFilter(url, list, TotalCount, data, oldSkipCount) {
return () => {
// 线 20230417
if (data == 'locationData') {
list.condition.filters.push({
action: "!=",
column: "type",
logic: "And",
value: "5"
})
}
list.SkipCount = (oldSkipCount - 1) * list.MaxResultCount;
this.tableLoading = true;
getPageList(list, url)

17
fe/PC/src/components/commonTabel-drawer/index.vue

@ -8,7 +8,6 @@
:with-header="false"
:modal="false"
size="100%"
style="height:calc(100% - 28px);top: 14px;right:14px"
>
<div class="drawer-heder">
<div class="heder-left">
@ -70,6 +69,7 @@
<!-- currenTableDetails 组件 明细中带分页功能 -->
<umyTable
v-if="scope.value == 'mx'"
:tableBorder="true"
:tableData="propsData.details"
:propsData="propsData"
:tableColumns="tableColumns"
@ -96,6 +96,7 @@
<!-- 新增汇总 表头 区分明细表头使用 summaryTableColumns -->
<umyTable
v-if="scope.value == 'hz'"
:tableBorder="true"
:tableData="propsData.summaryDetails"
:tableColumns="summaryTableColumns.length == 0 ? tableColumns : summaryTableColumns"
:selectionTable="selectionTable"
@ -104,7 +105,7 @@
@handleSelectionChange="handleSelectionChange"
@inlineDialog="inlineDialog"
@buttonClick="buttonClick"
:setUTableHeight="200"
:setUTableHeight="210"
>
<template>
<slot></slot>
@ -119,6 +120,7 @@
scope.value != 'hz' &&
scope.value != 'zwlcj'
"
:tableBorder="true"
:tableLoading="tableLoading"
:tableData="otherData"
:tableColumns="zdyTableColumns"
@ -181,17 +183,6 @@ export default {
currenTabs,
currenTable,
},
watch: {
propsData(newVal, oldVal){
// newValoldVal
// if (newVal != oldVal) {
// this.$parent.firstTabs = 'xq'
// }
// this.firstTabs = 'xq'
},
},
props: {
title: {
type: Array,

5
fe/PC/src/components/commonTabel-drawer/style/index.scss

@ -3,6 +3,9 @@
position: absolute;
left: 32%;
overflow: visible;
// height:calc(100% - 28px);
// top: 14px;
// right:14px
::v-deep .el-drawer {
height: 100%;
@ -67,7 +70,7 @@
display: flex;
flex-direction: column;
.el-tabs__header{
padding-bottom: 5px ;
// padding-bottom: 5px ;
.el-tabs__nav{
z-index: auto !important;
}

3
fe/PC/src/components/currenForm/index.vue

@ -10,6 +10,7 @@
:rules="rules"
:model="searchData"
@submit.native.prevent
v-if="!hide ? true : false"
>
<el-row :gutter="40">
<el-col
@ -20,7 +21,7 @@
<el-form-item
:label="item.label"
:prop="item.showProp ? item.prop + '.' + item.showProp : item.prop"
v-if="!hide ? true : false"
v-if="!item.hide ? true : false"
>
<!-- 输入框 onkeyup: 正则表达式用于前端输入校验工作-->
<!-- :onkeyup="item.onkeyup" -->

35
fe/PC/src/components/currenTable/index.vue

@ -36,7 +36,7 @@
<el-form>
<el-form-item
v-if="item.type == 'input'"
:onkeyup="itemOnKeyUp(item,searchData[item.prop])"
:onkeyup="itemOnKeyUp(item,item.prop,scope.$index)"
:prop="'details.' + scope.$index + '.' + item.prop"
:rules="item.rules"
>
@ -59,18 +59,17 @@
:rules="item.rules"
>
<el-input
v-model="searchData[item.prop]"
v-model="scope.row[item.prop]"
:maxlength="item.maxlength"
:onkeyup="typeNumberOnkeyup(item,searchData[item.prop])"
:onkeyup="typeNumberOnkeyup(item,item.prop,scope.$index)"
clearable
:disabled="Boolean(item.disabled)"
:placeholder="'请输入' + item.label"
:prefix-icon="item.icon"
:show-password="item.showPassword"
@change="changeInput(item.prop,$event)"
@clear="clearInput(item.prop,$event)"
@blur="
inputPlaceholder($event, item, 'blur',searchData)
inputPlaceholder($event, item, 'blur',scope.row)
"
@focus="inputPlaceholder($event, item, 'focus')"
></el-input>
@ -436,26 +435,26 @@ export default {
},
methods: {
// type=input
itemOnKeyUp(item,value){
itemOnKeyUp(item,value,index){
if(item.onkeyup){
return item.onkeyup()
}else{
if(value && item.validType){
this.searchData[item.prop]=getMatchRegConformValue(item.validType,value,item.pointNumberFixed)
if(this.tableData[index][value] && item.validType){
this.tableData[index][value]=getMatchRegConformValue(item.validType,this.tableData[index][value],item.pointNumberFixed)
}
}
},
// inputonkeyup
typeNumberOnkeyup(item,value){
if(value){
let _match = String(value).match(/\d+/)//
this.searchData[item.prop] = _match?_match[0]:_match
typeNumberOnkeyup(item,value,index){
if(this.tableData[index][value]){
let _match = String(this.tableData[index][value]).match(/\d+/)//
this.tableData[index][value] = _match?_match[0]:_match
}
if(this.searchData[item.prop] > item.max){
this.searchData[item.prop] = item.max
if(this.tableData[index][value] > item.max){
this.tableData[index][value] = item.max
}
if(this.searchData[item.prop] && this.searchData[item.prop] < item.min){
this.searchData[item.prop] = item.min
if(this.tableData[index][value] && this.tableData[index][value] < item.min){
this.tableData[index][value] = item.min
}
if(item.onkeyup)item.onkeyup()
},
@ -509,8 +508,8 @@ export default {
func[item.prop]= Number(val.target.value)
}
// item.valueType
// ? (this.searchData[item.prop] = item.valueType(
// this.searchData[item.prop]
// ? (this.tableData[index][value] = item.valueType(
// this.tableData[index][value]
// ))
// : () => {
// return;

11
fe/PC/src/components/importFile/index.vue

@ -7,7 +7,7 @@
:visible.sync="show"
:append-to-body="true"
:modal-append-to-body="false"
width="85%"
width="800px"
:show-close="false"
>
<div class="body_header">
@ -54,7 +54,7 @@
:append-to-body="true"
:modal-append-to-body="false"
:show-close="false"
width="85%"
width="70%"
>
<div >
<el-table
@ -178,6 +178,7 @@ export default {
// this.$emit("isAllowPartImportChange", this.isAllowPartImportValue); // $emit
// },
readerData(rawFile) {
if (rawFile) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onload = e => {
@ -203,6 +204,7 @@ export default {
}
reader.readAsArrayBuffer(rawFile)
})
}
},
getHeaderRow(sheet) {
const headers = []
@ -238,10 +240,15 @@ export default {
this.submiData(val)
} else {
//
//
if (val[1].fields[0].fieldValue[0]) {
this.previewShow = true
this.submitDataLS = val
//
this.readerData(val[1].fields[0].fieldValue[0])
} else {
this.$message.error('请上传文件!');
}
}
},
//

6
fe/PC/src/components/umyTable/index.vue

@ -702,9 +702,9 @@ export default {
background: #f6f7fb !important;
border: none !important;
&:last-child{
background: unset !important;
}
// &:last-child{
// background: unset !important;
// }
}
::v-deep .el-form-item__error{
position: relative;

7
fe/PC/src/filters/index.js

@ -114,8 +114,15 @@ export function isTableColumns(data) {
return isData
}
/**
* @param {*} index 枚举值
* @param {*} text 枚举函数名称
* @param {*} prop 返回字段
* @param {*} type dictType
*/
export function trigger(index, text, prop, type) {
let Function = statusType.default[text]
if(!Function)return '无'
return Function(index, prop, type)
}
// 多数据源,集合

2
fe/PC/src/filters/options.js

@ -196,7 +196,7 @@ export function Roles(val){
// "CountPlan": "盘点计划",
// "CountNote": "盘点记录",
// "CountAdjustNote": "盘点差异调整记录",
// "InspectNotice": "报检单",
// "InspectRequest": "报检单",
// "InspectNote": "检验记录",
// "InspectAbnormalNote": "质量异常记录",
// "ProductRecycleNote": "成品回收记录",

15
fe/PC/src/filters/status.js

@ -2135,6 +2135,21 @@ export function SupplierAsnCtypeStaBack(name){
}
return Enum(type, index, prop)
}
// 标签类型 下拉选择 使用位置 创建标签
export function labelTypeSelectOption(index, prop) {
let filter = {
1: {
label: "采购标签",
value: 1,
},
2: {
label: '生产标签',
value: 2,
},
}
return Enum(filter, index, prop)
}
// 菜单维护
/**

6
fe/PC/src/mixins/TableHeaderMixins.js

@ -151,8 +151,7 @@ export const TableHeaderMixins = {
this.totalCount = res.totalCount
this.httpOverallSearchData = null //清空全面筛选的回显数据
if(searchOverallRef)searchOverallRef.changeMoreListShow(false)//关闭高级筛选
// todo:getSupplierByCodes
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -212,8 +211,7 @@ export const TableHeaderMixins = {
this.httpOverallSearchData = {}
this.httpOverallSearchData.params = JSON.parse(JSON.stringify(_data_primary))
this.httpOverallSearchData.moreList = JSON.parse(JSON.stringify(_data_moreList))
console.log(this.httpOverallSearchData)
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

18
fe/PC/src/mixins/TableMixins.js

@ -47,7 +47,7 @@ export const tableMixins = {
getPageList(this.PageListParams, this.URL).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -101,7 +101,7 @@ export const tableMixins = {
} else {
this.propsData = res
}
this.getSupplierByCodesHandle_props()
this.inlineDialogCallback()
}).catch(err => {
this.Loading.DrawerLoading = false
})
@ -136,8 +136,6 @@ export const tableMixins = {
},
// 获取供应商信息过滤tableData
getSupplierByCodesHandle_table() {
this.Loading.tableLoading = false
return
for(let i=0;i<this.tableColumns.length;i++){
if(this.tableColumns[i].prop == 'supplierName' || this.tableColumns[i].prop == "supplierAddress"){
let _allSuCode = []
@ -175,8 +173,6 @@ export const tableMixins = {
},
// 获取供应商信息过滤propsData
getSupplierByCodesHandle_props() {
this.Loading.DrawerLoading = false
return
for(let i=0;i<this.tabsDesTions.length;i++){
if(!this.propsData.supplierCode){
this.Loading.DrawerLoading = false
@ -248,6 +244,16 @@ export const tableMixins = {
this.Loading.appMainLoading = false
});
}
},
// 主列表更新后全局通用操作
pagingCallback(){
this.Loading.tableLoading = false
// this.getSupplierByCodesHandle_table()
},
// 点击抽屉,获取明细后全局通用操作
inlineDialogCallback(){
this.Loading.DrawerLoading = false
// this.getSupplierByCodesHandle_props()
}
}
}

14
fe/PC/src/mixins/mixins.js

@ -54,9 +54,10 @@ export const mixins = {
methods: {
// 结合默认及缓存中的列表tableColumns数据做初始化
initTableColumns(){
let _list_defalut = this.$isTableColumns[this.$route.name]
if(!_list_defalut)return
let _local = localStorage.getItem('tableColumns_' + this.$store.getters.name.userName + '_' + this.$route.name)
let _list_local = JSON.parse(localStorage.getItem('tableColumns_' + this.$store.getters.name.userName + '_' + this.$route.name))
let _list_defalut = this.$isTableColumns[this.$route.name]
let _new_list = [] //格式化后的数据
// 如果没有缓存则直接为默认值
if(!_local){
@ -165,6 +166,11 @@ export const mixins = {
},
//打印标签
Print(val) {
let that = this
if(!val){
that.$warningMsg('暂无可打印数据')
return
}
const loading = this.$loading({
lock: true,
text: 'Loading',
@ -175,8 +181,10 @@ export const mixins = {
// window.open(process.env.VUE_APP_PRINT_API + '/' + res)
// window.open('http://10.74.150.81:9082' + '/' + res)
//杭州
const BaseURL = localStorage.getItem('base') + '/' + res
window.open(BaseURL)
// const BaseURL = localStorage.getItem('base') + '/' + res
// window.open(BaseURL)
const PrintURL = localStorage.getItem('print') + '/' + res
window.open(PrintURL)
loading.close()
resolve()
}).catch(err => {

106
fe/PC/src/mixins/printMixin.js

@ -20,14 +20,15 @@ export function initPrintPackingCodeData(propsData,options,name,url){
propsData.details.forEach((item,key) => {
_printData["boxlabel"].push({
"title":propsData[_options.title] || propsData.title || "FATY 物品发运单",//title
"contacts": propsData[_options.contacts] || propsData.contacts,//客户名称
"customerAddressCode":propsData[_options.customerAddressCode] || propsData.customerAddressCode,//客户地址
"supplierSimpleName": propsData[_options.supplierSimpleName] || propsData.supplierSimpleName,//供应商名称
"supplierCode": propsData[_options.supplierCode] || propsData.supplierCode,//供应商代码
"supplierName": propsData[_options.supplierName] || propsData.supplierName,//供应商名称
"poNumber": propsData[_options.poNumber] || propsData.poNumber,//订单号
"asnNumber": propsData[_options.asnNumber] || propsData.asnNumber,//发货单号
"remark": propsData[_options.remark] || propsData.remark,//备注
"planArriveDate":propsData[_options.planArriveDate] || propsData.planArriveDate,//要求到货时间
"poNumber": propsData[_options.poNumber] || propsData.poNumber,//订单号?
"asnNumber": propsData[_options.asnNumber] || propsData.asnNumber,//发货单号?
// "contacts": propsData[_options.contacts] || propsData.contacts,//客户名称 暂未使用
// "customerAddressCode":propsData[_options.customerAddressCode] || propsData.customerAddressCode,//客户地址 暂未使用
// "supplierName": propsData[_options.supplierName] || propsData.supplierName,//供应商名称 暂未使用
"details": [
{
"supplierItemName": item[_options.supplierItemName] || item.supplierItemName,//零件名(供应商零件名)
@ -36,53 +37,16 @@ export function initPrintPackingCodeData(propsData,options,name,url){
"produceDate": item[_options.produceDate] || item.produceDate,//生产时间
"lot": item[_options.lot] || item.lot,//生产批次
"locationErpCode": item[_options.locationErpCode] || item.locationErpCode,//储位
"itemName": item[_options.itemName] || item.itemName,//物品名称
"itemCode": item[_options.itemCode] || item.itemCode,//物品代码(ERP号)
"stdPackQty": item[_options.stdPackQty] || item.stdPackQty,//整包数量
"qty": item[_options.qty] || item.qty,//要货数量
"qty": item[_options.qty] || item.qty,//要货数量 + 整包数量
"packingCode": item[_options.packingCode] || item.packingCode,//条形码
"printIndex":item[_options.printIndex] || Number(key)+1,//打印序列
// "itemName": item[_options.itemName] || item.itemName,//物品名称 暂未使用
// "stdPackQty": item[_options.stdPackQty] || item.stdPackQty,//整包数量 暂未使用
}
],
// "asnNumber": propsData[_options.number] || propsData.number,
// "supplierCode": propsData[_options.supplierCode] || propsData.supplierCode,
// "supplierName": propsData[_options.supplierName] || propsData.supplierName,
// "timeWindow": propsData[_options.timeWindow] || propsData.timeWindow,
// "arriveTime": item[_options.arriveDate] || item.arriveDate,
// "details": [
// {
// "poNumber": item[_options.poNumber] || item.poNumber,
// "poLine":item[_options.poLine] || item.poLine,
// "qty": {
// "uom":item[_options.uom] || item.uom,//必填
// "qty": item[_options.qty] || item.qty,//必填
// },
// "packingCode": item[_options.packingCode] || item.packingCode,
// "containerCode": item[_options.containerCode] || item.containerCode,
// "lot": item[_options.lot] || item.lot,//必填
// "batch": {
// "supplierBatch": item[_options.supplierBatch] || item.supplierBatch,
// "produceDate": item[_options.produceDate] || item.produceDate,
// "expireDate": item[_options.expireDate] || item.expireDate,
// },
// "itemCode": item[_options.itemCode] || item.itemCode,//必填
// "item": {
// "id": item[_options.itemId] || item.itemId,
// "name": item[_options.itemName] || item.itemName,
// "desc1": item[_options.itemDesc1] || item.itemDesc1,
// "desc2": item[_options.itemDesc2] || item.itemDesc2,
// },
// "Elevel": null
// }
// ]
})
});
// let paramName = ''
// if (name) {
// paramName = localStorage.getItem('print') + '/' + name
// } else {
// paramName = localStorage.getItem('print') + '/' + 'xiangbq.rdlx'
// }
let data = {
reportName: name || 'xiangbq.rdlx',
dataUrl: url || 'ccc',
@ -93,7 +57,7 @@ export function initPrintPackingCodeData(propsData,options,name,url){
// 打印【箱标签-单页4个】 (xiangbq_many.rdlx)
// 使用位置:半成品上架标签 (PartiallyPreparedProducts.vue) | 生产退库标签 (productionReturnLabel.vue)
// | 创建标签 (RecycledMaterialsLabel.vue) | 到货请求详情 (PurchaseReceiptRequest.vue)
// | 创建标签 (RecycledMaterialsLabel.vue) | 到货请求 (PurchaseReceiptRequest.vue)
/**
* @param {*} propsData 必填 详情数据 示例this.propsData
* @param {*} options 自定义特殊配置值 示例{'number':'poNumber'} (number值将传为poNumber)
@ -135,8 +99,8 @@ export function initPrintPackingCodeData(propsData,options,name,url){
_label['supplierSimpleName'+Number(key2 + 1)]= propsData[_options.supplierSimpleName] || propsData.supplierSimpleName,//供应商名称(简称)
_label['remark'+Number(key2 + 1)]= propsData[_options.remark] || propsData.remark,//备注
_label['planArriveDate'+Number(key2 + 1)]=propsData[_options.planArriveDate] || propsData.planArriveDate,//要求到货时间
_label['poNumber'+Number(key2 + 1)]= propsData[_options.poNumber] || propsData.poNumber,//订单号
_label['asnNumber'+Number(key2 + 1)]= propsData[_options.asnNumber] || propsData.asnNumber,//发货单号
_label['poNumber'+Number(key2 + 1)]= propsData[_options.poNumber] || propsData.poNumber,//订单号
_label['asnNumber'+Number(key2 + 1)]= propsData[_options.asnNumber] || propsData.asnNumber,//发货单号
_label['supplierItemName'+Number(key2 + 1)] = item[_options.supplierItemName] || item2.supplierItemName;//零件名(供应商零件名)
_label['supplierItemCode'+Number(key2 + 1)] = item[_options.supplierItemCode] || item2.supplierItemCode;//零件号(供应商零件号)
@ -145,20 +109,14 @@ export function initPrintPackingCodeData(propsData,options,name,url){
_label['lot'+Number(key2 + 1)] = item[_options.lot] || item2.lot;//生产批次
_label['locationErpCode'+Number(key2 + 1)] = item[_options.locationErpCode] || item2.locationErpCode;//储位
_label['itemCode'+Number(key2 + 1)] = item[_options.itemCode] || item2.itemCode;//物品代码(ERP号)
_label['stdPackQty'+Number(key2 + 1)] = item[_options.stdPackQty] || item2.stdPackQty;//整包数量
_label['qty'+Number(key2 + 1)] = item[_options.qty] || item2.qty;//要货数量
// _label['stdPackQty'+Number(key2 + 1)] = item[_options.stdPackQty] || item2.stdPackQty;//整包数量 暂未使用
_label['qty'+Number(key2 + 1)] = item[_options.qty] || item2.qty;//要货数量 + 整包数量
_label['packingCode'+Number(key2 + 1)] = item[_options.packingCode] || item2.packingCode;//条形码
_label['printIndex'+Number(key2 + 1)] = item[_options.printIndex] || item2.printIndex;//序号
_printData.boxlabel[_index] = _label
})
})
// let paramName = ''
// if (name) {
// paramName = localStorage.getItem('print') + '/' + name
// } else {
// paramName = localStorage.getItem('print') + '/' + 'xiangbq_many.rdlx'
// }
let data = {
reportName: name || 'xiangbq_many.rdlx',
dataUrl: url || 'ccc',
@ -188,7 +146,7 @@ const printEnumOption = {
*/
//
export function initPrintAllData(propsData,name,enumOption,options,url){
if(!propsData || propsData.details.length <= 0)return {}
if(!propsData || propsData.details.length <= 0)return false
let _printData = {details:[]}
let _outData = {}
for(var key in propsData){
@ -203,17 +161,17 @@ const printEnumOption = {
propsData.details.forEach((item,key) => {
// 序号
item.xh = Number(key) + 1;
// 转义字典
if(enumOption){
let _enumOption = (typeof enumOption == 'string') ? printEnumOption[enumOption] : enumOption
item[_enumOption.reportStr] = Enum(store.getters.dictionaries[_enumOption.staName], item[_enumOption.value] , _enumOption.label || 'label')
}
// 特殊配置
if(options && options.details){
for(var op in options.details){
item[op] = item[options.details[op]]
}
}
// 转义字典
if(enumOption){
let _enumOption = (typeof enumOption == 'string') ? printEnumOption[enumOption] : enumOption
item[_enumOption.reportStr] = Enum(store.getters.dictionaries[_enumOption.staName], item[_enumOption.value] , _enumOption.label || 'label')
}
let _item = Object.assign({},item, _outData);
_printData.details.push(_item)
});
@ -228,26 +186,26 @@ const printEnumOption = {
// 当前模板数据
/**todo:储位,预计量,字段确定 */
// cgshd.rdlx 使用参数
// 使用位置:采购收货记录 (PurchaseReceiptNote-msQuery.vue)
// 使用位置:采购收货记录-合格品收货明细tab页 (PurchaseReceiptNote-msQuery.vue)
// 发货单号:asnNumber; 制表日:creationTime; 供应商:supplierCode; 供应商简称:supplierShortName
// 物品代码:itemCode; 物品名称:itemName; 箱码:packingCode; 单位:uom; 数量:qty; 状态:statusStr; 不合格原因:reasonStr;
// thd.rdlx 使用参数
// 使用位置:上架前退货记录 (beforeGroundingReturnNote.vue) | 上架后退货记录 (purchaseReturn => returnNote.vue)
// 使用位置:上架前退货记录 (beforeGroundingReturnNote.vue) | 上架后退货记录 (purchaseReturn => returnNote.vue PurchaseReturnNote)
// 使用位置:采购收货记录-不合格品收货明细tab页 (PurchaseReceiptNote-msQuery.vue)
// 退货单号:number; 发货单号:asnNumber; 制表日:creationTime; 供应商:supplierCode; 供应商简称:supplierShortName
// 物品代码:itemCode; 物品名称:itemName; 箱码:packingCode; 单位:uom; 数量:qty; 退货原因:reasonStr;
// lineSideWarehouse.rdlx 使用参数
// 使用位置:线边仓调拨记录 (lineSideWarehouseAllocationNote.vue)
// 调拨单号:number; 参考单据:requestNumber; 制表日:creationTime; 调拨部门:deptCode; 部门名称:deptName
// 调拨单号:number; 参考单据:poNumber; 制表日:creationTime; 调拨部门:deptCode; 部门名称:deptName
// 物品代码:itemCode; 单位:uom; 预计调拨量:preQty; 调入储位:toLocationCode; 实际调拨量:qty; 调出储位:fromLocationCode;
// fscll.rdlx | fsctl.rdlx 使用参数
// 使用位置:非生产领料申请 (lineSideWarehouseAllocationNote.vue - fscll.rdlx)
// 使用位置:非生产领料申请 (pickingRequest.vue - fscll.rdlx)
// 使用位置:非生产退料申请 (materialReturnRequest.vue - fsctl.rdlx)
// 单号:number; 制表日:creationTime; 部门代码:deptCode; 部门名称:deptName
// 物品代码:itemCode; 物品名称:itemName; 预计量:preQty; 实际量:qty; 单位:uom; 储位:locationCode;
// 项目分类代码:projCapacityCode; 项目分类名称:projCapacityName; 专案代码:caseCode; 专案名称:caseName; 说明:remark
// 单号:number; 参考单据:?; 制表日:creationTime; 部门代码:deptCode; 部门名称:deptName; 项目分类名称:projCapacityName; 专案代码:caseCode; 说明:remark
// 料品编号:itemCode; 品名:itemName; 单位:uom; 预计量:preQty; 实际量:qty; 储位:locationCode;
// cwdbd.rdlx 使用参数
// 使用位置:储位调拨记录 (interStorageAllocationNote.vue)
@ -270,14 +228,14 @@ const printEnumOption = {
// 物品代码:itemCode; 物品名称:itemName; 储位:locationCode; 数量:adjustQty; 原因说明:reasonStr; 参考单据:requestNumber;
// xbcll.rdlx 使用参数
// 使用位置:自动发料任务 (automaticCallJob-msQuery.vue) | 自动发料记录 (automaticCallNote.vue)
// 使用位置:?自动发料任务 (automaticCallJob-msQuery.vue) | 自动发料记录 (automaticCallNote.vue)
// 使用位置:人工发料任务 (IssueJob.vue) | 人工发料记录 (IssueNote.vue)
// 单号:number; 制表日:creationTime; 部门名称:deptName;
// 物品代码:itemCode; 物品名称:itemName; 物品描述:itemDesc1; 零件号:itemCode; 来源库位:fromLocationCode;
// 实际数量:qty; 单位:uom; 批次:fromLot; 调入储位:toLocationErpCode; 调出储位:fromLocationErpCode;
// xbctl.rdlx 使用参数 xbctl.rdlx报表 和 xbcll.rdlx报表 目前字段相同,除了领/退字段
// 使用位置:生产退库记录 (productionReturn => returnNote.vue)
// 使用位置:生产退库记录 (productionReturn => returnNote.vue productionReturnNote)
// zjfl.rdlx 使用参数
// 使用位置:直接发料记录 (directIssueNote.vue)
@ -286,14 +244,14 @@ const printEnumOption = {
// 实际数量:qty; 单位:uom; 批次:fromLot; 调入储位:toLocationErpCode; 调出储位:fromLocationErpCode;
// hslrkd.rdlx 使用参数
// 使用位置:回收料收货记录 (materialsReceipt.vue)
// 使用位置:回收料收货记录 (materialsReceipt.vue recycledMaterialsReceipt)
// 入库单号:number; 制表日:creationTime; 入库日期:activeDate; 部门代码:deptCode; 部门名称:deptName;
// 物品代码:itemCode; 物品名称:itemName; 物品描述1:itemDesc1; 物品描述2:itemDesc2; 数量:qty; 储位:locationErpCode;
// chdmxb.rdlx 使用参数
// 使用位置:原料直发记录 (materialDirectSendNote.vue)
// 使用位置:原料直发客户记录 (materialDirectSendNote.vue)
// 出货单号:number; 出货日期:deliverTime; 制表日:creationTime; 客户名称:customerCode; 客户地址:customerAddressCode;
// 序号:xh, 物品代码:itemCode; 物品名称:itemName; 单位:uom; 箱标签:packingCode, 出货数量:qty; 正厂编号:itemDesc2;
// 序号:xh, 物品代码:itemCode; 物品名称:itemName; 单位:uom; 箱标签:packingCode, 出货数量:qty;
// ysd.rdlx 使用参数
// 使用位置:采购上架记录 (PutawayNote.vue)

1
fe/PC/src/styles/basicData.scss

@ -2,6 +2,7 @@
.page-box {
@include appMainPage;
padding-top:20px;
position: relative;
::v-deep .v-modal {
z-index: 20 !important;

2303
fe/PC/src/utils/detailsTableColumns/index.js

File diff suppressed because it is too large

11
fe/PC/src/utils/index.js

@ -386,12 +386,14 @@ export function removeClass(ele, cls) {
//返回
export function Enum(status, index, prop) {
let _no_text = '无'
if(!status)return _no_text
if (index != undefined) { //如果传入的是index
if (prop === 'color') {
const domColor = status[index] ? status[index][prop] : ""
return 'color:' + domColor
} else {
const dom = status[index] ? status[index][prop] : "无"
const dom = status[index] ? status[index][prop] : _no_text
return dom
}
} else {
@ -492,7 +494,7 @@ export function getMatchRegConformValue(type,defaultValue,fixedNum){
// 字典格式化数据结构
export function dictFormatData() {
return new Promise(resolve => {
return new Promise((resolve,reject) => {
let rs = []
let childRs = {}
let param = {
@ -540,4 +542,7 @@ export function dictFormatData() {
// })
// }
// 像接口传参时候需要补充.0000000 否则会报错情况下转义
export function initDataToHttpFormat (date) {
return date ? date + '.0000000' : undefined
}

2
fe/PC/src/utils/quicklySearchOption/index.js

@ -9,7 +9,7 @@
// 原料管理
/**/
// 报检单
export const InspectNotice = {
export const InspectRequest = {
// action:"==",//默认等于
prop:'asnNumber',
placeholder:'请输入发货单号',

2
fe/PC/src/utils/request.js

@ -91,7 +91,7 @@ service.interceptors.response.use(
},
error => {
let err = error.response.data.error // for debug
if (err.validationErrors) {
if (err && err.validationErrors) {
for (let item in err.validationErrors) {
Message({
message: err.validationErrors[item].message,

61
fe/PC/src/utils/summaryTableColumns/index.js

@ -3,25 +3,28 @@
const orderWidth = 180
// 原料管理
/**/
// 报检单 已调整
export const InspectNotice = [
// { label: "检验详情", fixed: "left", type: "button" },
// 报检单 20230410
export const InspectRequest = [
{ label: "物品代码", prop: "itemCode" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述", prop: "itemDesc1" },
{ label: "物品单位", prop: "receiveUom" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "生产批次", prop: "lot" },
{ label: "收货数量", prop: 'receiveQty' },
{ label: "检验数量", prop: 'inspectQty' },
{ label: "合格数量", prop: 'goodQty' },
{ label: "不合格数量", prop: 'failedQty' },
// -----------------------------------------------------------------------
{ label: "检验人", prop: 'inspectUser' },
{ label: "检验单号", prop: "number" },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "状态", prop: "summaryInspectStatus", type: "filter", filters: "summaryInspectStatus" },
{ label: "ABC类", prop: 'abcClass', type: "filter", filters: "abcClass" },
{ label: "完成时间", prop: "completeTime",type: "dateTime" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: "lastModifierId" },
{ label: "备注", prop: 'remark' },
{ label: "标包计量单位", prop: 'stdPackUom' },
{ label: "计量单位", prop: 'uom' },
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "到货时间", prop: 'arriveDate', type: "dateTime" },
@ -30,39 +33,35 @@ export const InspectNotice = [
{ label: "订单号", prop: 'poNumber',width: orderWidth },
{ label: "订单行", prop: 'poLine' },
{ label: "样品率", prop: 'samplePercent' },
{ label: "不合格原因代码", prop: 'failedReason' },
{ label: "不合格原因", prop: 'failedReason', type: "filter", filters: "getDict" , dictType:"UnqualifiedReason" },
{ label: "破坏数量", prop: 'crackQty' },
{ label: "检验人姓名", prop: 'inspectUserName' },
{ label: "检验人电话", prop: 'inspectUserPhone' },
{ label: "检验人邮件", prop: 'inspectUserEmail' },
{ label: "最终不合格数量", prop: 'notPassedQty' },
{ label: "供应商包装计量单位", prop: 'supplierPackUom' },
{ label: "供应商包装数量", prop: 'supplierPackQty' },
{ label: "检验报告", prop: 'inspectReport' },
{ label: "inspectType", prop: 'inspectType' },
// -----------------------------------------------------------------------
{ label: "事务ID", prop: "tenantId" },
{ label: "检验类型", prop: "inspectType", type: "filter", filters: "inspectType" },
{ label: "不合格原因代码", prop: 'failedReason' },
{ label: "不合格原因", prop: 'failedReason', type: "filter", filters: "getDict" , dictType:"UnqualifiedReason" },
// ************** 确定隐藏 ************************
// { label: "ID", prop: 'id' },
// { label: "主表ID", prop: "masterID" },
// ************** 确定隐藏 ************************
]
// 检验记录 字段需要确定
export const InspectNote = [
{ label: "物品代码", prop: "itemCode", fixed: "left" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述", prop: "itemDesc1" },
{ label: "物品单位", prop: 'receiveUom' },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "生产批次", prop: "lot" },
{ label: "计量单位", prop: 'uom' },
{ label: "收货数量", prop: 'receiveQty' },
{ label: "检验数量", prop: 'inspectQty' },
{ label: "合格数量", prop: 'goodQty' },
{ label: "不合格数量", prop: 'failedQty' },
{ label: "外观", prop: 'appearance' },
{ label: "尺寸", prop: 'volume' },
{ label: "重量", prop: 'weight' },
// { label: "不合格原因代码", prop: 'failedReason' },
// { label: "不合格原因", prop: 'failedReason', type: "filter", filters: "getDict", dictType: "UnqualifiedReason" },
{ label: "检验人", prop: 'inspectUser' },
{ label: "不合格原因代码", prop: 'failedReason' },
{ label: "不合格原因", prop: 'failedReason', type: "filter", filters: "getDict", dictType: "UnqualifiedReason" },
// -----------------------------------------------------------------------
{ label: "单据号", prop: "number" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "创建时间", prop: "completeTime",type: "dateTime" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
@ -74,16 +73,14 @@ export const InspectNote = [
{ label: "过期时间", prop: 'expireDate', type: "dateTime" },
{ label: "订单号", prop: 'poNumber' },
{ label: "订单行", prop: 'poLine' },
{ label: "标包计量单位", prop: 'stdPackUom' },
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "样品率", prop: 'samplePercent' },
{ label: "破坏数量", prop: 'crackQty' },
{ label: "最终不合格数量", prop: 'notPassedQty' },
{ label: "事务ID", prop: "tenantId" },
{ label: "检验人邮件", prop: 'inspectUserEmail' },
{ label: "检验人姓名", prop: 'inspectUserName' },
{ label: "检验人电话", prop: 'inspectUserPhone' },
{ label: "inspectType", prop: 'inspectType' },
{ label: "masterID", prop: "masterID" },
// -----------------------------------------------------------------------
{ label: "检验类型", prop: "inspectType", type: "filter", filters: "inspectType" },
// ************** 确定隐藏 ************************
// { label: "masterID", prop: "masterID" },
// { label: "ID", prop: "id" },
// ************** 确定隐藏 ************************
]

1256
fe/PC/src/utils/tableColumns/index.js

File diff suppressed because it is too large

1512
fe/PC/src/utils/tabsDesTions/index.js

File diff suppressed because it is too large

23
fe/PC/src/views/basicData/ItemsManage/ItemPack.vue

@ -114,6 +114,13 @@ export default {
},
},
data () {
const validateQty = (rule, value, callback) => {
if (value <= 0) {
callback(new Error('最小值为1'))
} else {
callback()
}
}
return {
URL: 'basedata/item-pack',
//
@ -131,7 +138,7 @@ export default {
packName: null,
packType: "EA",
basicUom: null,
qty: 0,
qty: null,
packCode: null,
itemCode: null,
},
@ -143,7 +150,7 @@ export default {
packName: null,
packType: "EA",
basicUom: null,
qty: 0,
qty: null,
concurrencyStamp: null,
},
editOptions: {},
@ -154,7 +161,7 @@ export default {
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/Item-Basic")},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品选择', this.CreateFormData) }, colSpan: 12 },
{ type: "input", label: "包装数量", prop: "qty", colSpan: 12, validType:'number' },
{ type: "inputNumber", label: "包装数量", prop: "qty", colSpan: 12, min:1 },
{ type: "input", label: "包装计量单位", prop: "basicUom", colSpan: 12, validType:'letter' },
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 },
],
@ -163,7 +170,7 @@ export default {
{ type: "input", label: "包装名称", prop: "packName", colSpan: 12 },
{ type: "select", label: "包装类型", prop: "packType", options: "qtyUomType", clearable: true, filterable: true, allowCreate: true, colSpan: 12 },
{ type: "input", label: "物品代码", prop: "itemCode", disabled:true, colSpan: 12 },
{ type: "input", label: "包装数量", prop: "qty", colSpan: 12, validType:'number' },
{ type: "inputNumber", label: "包装数量", prop: "qty", colSpan: 12, min:1 },
{ type: "input", label: "包装计量单位", prop: "basicUom", colSpan: 12, validType:'letter' },
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 },
],
@ -173,6 +180,10 @@ export default {
itemCode: [{ required: true, trigger: "change", message: "不可为空" }],
packQty: [{ required: true, trigger: "blur", message: "不可为空" }],
packUom: [{ required: true, trigger: "blur", message: "不可为空" }],
qty: [
{ required: true, trigger: "blur", message: "不可为空且最小值为1" },
{ required: true, trigger: 'blur', validator: validateQty }
],
conversionRate: [{ required: true, trigger: "blur", message: "不可为空" }],
},
editRule: {
@ -180,6 +191,10 @@ export default {
itemCode: [{ required: true, trigger: "change", message: "不可为空" }],
packQty: [{ required: true, trigger: "blur", message: "不可为空" }],
packUom: [{ required: true, trigger: "blur", message: "不可为空" }],
qty: [
{ required: true, trigger: "blur", message: "不可为空且最小值为1" },
{ required: true, trigger: 'blur', validator: validateQty }
],
conversionRate: [{ required: true, trigger: "blur", message: "不可为空" }],
}
},

2
fe/PC/src/views/finishedProductManage/deliver/DeliverJob-msQuery.vue

@ -105,7 +105,7 @@ export default {
},
data () {
return {
URL: 'wms/job/deliver-job',
URL: 'wms/store/deliver-job',
//
currenButtonData: [
this.defaultFieldSettingBtn(),//

2
fe/PC/src/views/finishedProductManage/deliver/DeliverNote-Query.vue

@ -87,7 +87,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false

2
fe/PC/src/views/finishedProductManage/deliver/FISDeliverNote-Query.vue

@ -86,7 +86,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false

7
fe/PC/src/views/finishedProductManage/dismantle/customerDismantleNote.vue

@ -109,7 +109,7 @@ export default {
item.preStartTime = item.noteAndBackFlushDetails[0].preStartTime
item.workHour = item.noteAndBackFlushDetails[0].workHour
})
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false
@ -117,6 +117,7 @@ export default {
},
//Table
inlineDialog(val) {
this.firstTabs = 'xq'
//
this.Loading.DrawerLoading = true
this.displayDialog.detailsDialog = true;
@ -133,13 +134,15 @@ export default {
} else {
this.propsData = res
}
if (this.propsData.noteAndBackFlushDetails.length > 0) {
this.propsData.itemCode = this.propsData.noteAndBackFlushDetails[0].itemCode
this.propsData.locationCode = this.propsData.noteAndBackFlushDetails[0].locationCode
this.propsData.qty = this.propsData.noteAndBackFlushDetails[0].qty
this.propsData.rawLocationCode = this.propsData.noteAndBackFlushDetails[0].rawLocationCode
this.propsData.preStartTime = this.propsData.noteAndBackFlushDetails[0].preStartTime
this.propsData.workHour = this.propsData.noteAndBackFlushDetails[0].workHour
this.getSupplierByCodesHandle_props()
}
this.inlineDialogCallback()
})
.catch(err => {
this.Loading.DrawerLoading = false

4
fe/PC/src/views/finishedProductManage/dismantle/customerDismantleRequest.vue

@ -123,7 +123,7 @@ export default {
item.preStartTime = item.details[0].preStartTime
item.workHour = item.details[0].workHour
})
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false
@ -151,7 +151,7 @@ export default {
this.propsData.rawLocationCode = this.propsData.details[0].rawLocationCode
this.propsData.preStartTime = this.propsData.details[0].preStartTime
this.propsData.workHour = this.propsData.details[0].workHour
this.getSupplierByCodesHandle_props()
this.inlineDialogCallback()
}).catch(err => {
this.Loading.DrawerLoading = false
})

2
fe/PC/src/views/finishedProductManage/partiallyPreparedProducts/partiallyPreparedProductsNote.vue

@ -90,7 +90,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptRequest.vue

@ -124,7 +124,7 @@ export default {
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

19
fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptScrapNote.vue

@ -46,6 +46,7 @@
</div>
</template>
<script>
import { materialRequestByType } from '@/api/wms-api'
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -75,6 +76,24 @@ export default {
mounted () {
this.paging();
},
methods: {
//
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Scrap_Manual; 线:Scrap_WIP; :Scrap_Product
let params = {
type: 'Scrap_Product'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
}
},
};
</script>
<style lang="scss" scoped>

19
fe/PC/src/views/finishedProductManage/productReceipt/ProductReceiptScrapRequest.vue

@ -60,6 +60,7 @@
</div>
</template>
<script>
import { materialRequestByType } from '@/api/wms-api'
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -112,6 +113,24 @@ export default {
mounted () {
this.paging();
},
methods: {
//
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Scrap_Manual; 线:Scrap_WIP; :Scrap_Product
let params = {
type: 'Scrap_Product'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
}
},
};
</script>
<style lang="scss" scoped>

2
fe/PC/src/views/finishedProductManage/productionReturn/returnJob.vue

@ -83,7 +83,7 @@ export default {
},
data () {
return {
URL: 'wms/job/production-return-job',
URL: 'wms/store/production-return-job',
//
currenButtonData: [
this.defaultFieldSettingBtn(),//

2
fe/PC/src/views/inventoryManage/Count/CountJob-msQuery.vue

@ -90,7 +90,7 @@ export default {
},
data () {
return {
URL: 'wms/job/count-job',
URL: 'wms/store/count-job',
//
currenButtonData: [
this.defaultExportBtn(),//

178
fe/PC/src/views/inventoryManage/InventoryQuery/InventoryBalance.vue

@ -25,7 +25,7 @@
>
</tablePagination>
<!-- 新增与编辑 -->
<newAndEdiDialog
<!-- <newAndEdiDialog
:loading="Loading.newAndEdiLoading"
:active="active"
:pageStatus="pageStatus"
@ -40,7 +40,7 @@
@FormSubmit="FormClick(arguments)"
@close="FormClose"
@goBack="goBack"
></newAndEdiDialog>
></newAndEdiDialog> -->
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
@ -121,51 +121,51 @@ export default {
},
],
//
editFormData: {
id: null,
itemCode: null,
itemName: null,
itemDesc1: null,
itemDesc2: null,
produceDate: null,
expireDate: null,
locationCode: null,
status: 1,
lot: true,
packingCode: true,
containerCode: null,
qty: null,
locationArea: null,
locationGroup: null,
locationErpCode: null,
putInTime: null,
},
editOptions: {},
CreateForm: [
{ type: "input", label: "箱标签", prop: 'packingCode', colSpan: 12 },
{ type: "input", label: "排序依次", prop: 'sortingBase', colSpan: 12 },
{ type: "input", label: "序号", prop: 'serialNumber', colSpan: 12 },
{ type: "input", label: "最后盘点计划", prop: 'lastCountPlanNumber', colSpan: 12 },
{ type: "input", label: "最后盘点标签", prop: 'lastCountLabel', colSpan: 12 },
{ type: "input", label: "物品代码", prop: 'itemCode', colSpan: 12 },
{ type: "input", label: "批次编号", prop: 'batchCode', colSpan: 12 },
{ type: "input", label: "备注", prop: 'remark', colSpan: 12 },
],
editForm: [
{ type: "input", label: "物品代码", prop: "itemCode", disabled:true, colSpan: 12 },
{ type: "input", label: "物品名称", prop: "itemName", disabled:true, colSpan: 12 },
{ type: "input", label: "库位代码", prop: "locationCode", disabled:true, colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", disabled:true, colSpan: 12 },
{ type: "input", label: "箱标签", prop: "packingCode", disabled:true, colSpan: 12 },
{ type: "input", label: "库区", prop: "locationArea", disabled:true, colSpan: 12 },
{ type: "input", label: "库位组", prop: "locationGroup", disabled:true, colSpan: 12 },
{ type: "dateTime", label: "入库时间", prop: "putInTime", disabled:true, colSpan: 12 },
{ type: "dateTime", label: "生产日期", prop: "produceDate", disabled:true, colSpan: 12 },
{ type: "dateTime", label: "过期日期", prop: "expireDate", colSpan: 12 },
],
editRules: {
expireDate: [{ required: true, trigger: "blur", message: "不可为空" }],
},
// editFormData: {
// id: null,
// itemCode: null,
// itemName: null,
// itemDesc1: null,
// itemDesc2: null,
// produceDate: null,
// expireDate: null,
// locationCode: null,
// status: 1,
// lot: true,
// packingCode: true,
// containerCode: null,
// qty: null,
// locationArea: null,
// locationGroup: null,
// locationErpCode: null,
// putInTime: null,
// },
// editOptions: {},
// CreateForm: [
// { type: "input", label: "", prop: 'packingCode', colSpan: 12 },
// { type: "input", label: "", prop: 'sortingBase', colSpan: 12 },
// { type: "input", label: "", prop: 'serialNumber', colSpan: 12 },
// { type: "input", label: "", prop: 'lastCountPlanNumber', colSpan: 12 },
// { type: "input", label: "", prop: 'lastCountLabel', colSpan: 12 },
// { type: "input", label: "", prop: 'itemCode', colSpan: 12 },
// { type: "input", label: "", prop: 'batchCode', colSpan: 12 },
// { type: "input", label: "", prop: 'remark', colSpan: 12 },
// ],
// editForm: [
// { type: "input", label: "", prop: "itemCode", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "itemName", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "locationCode", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "lot", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "packingCode", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "locationArea", disabled:true, colSpan: 12 },
// { type: "input", label: "", prop: "locationGroup", disabled:true, colSpan: 12 },
// { type: "dateTime", label: "", prop: "putInTime", disabled:true, colSpan: 12 },
// { type: "dateTime", label: "", prop: "produceDate", disabled:true, colSpan: 12 },
// { type: "dateTime", label: "", prop: "expireDate", colSpan: 12 },
// ],
// editRules: {
// expireDate: [{ required: true, trigger: "blur", message: "" }],
// },
};
},
mounted () {
@ -181,7 +181,7 @@ export default {
type: 'warning'
}).then(() => {
this.Loading.appMainLoading = true
inventoryBalanceActive(this.propsData.id).then(res => {
inventoryBalanceActive({id: this.propsData.id}).then(res => {
this.$successMsg('启用成功!')
this.Loading.appMainLoading = false
this.displayDialog.detailsDialog = false
@ -199,48 +199,48 @@ export default {
}
},
// 0
drawerHandle(val) {
if (val == 'delete') {
if (this.propsData.qty == '0') {
this.$confirm('此操作将永久删除该消息, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.Loading.appMainLoading = true
this.displayDialog.detailsDialog = false
postDelete(this.propsData.id, this.URL).then(res => {
this.$successMsg('删除成功!')
this.Loading.appMainLoading = false
this.paging()
}).catch(err => {
this.Loading.appMainLoading = false
})
}).catch(() => {
});
} else {
this.$message({
message: "只能删除库存数量为 0 的记录!!",
type: "warning",
});
}
}
},
// drawerHandle(val) {
// if (val == 'delete') {
// if (this.propsData.qty == '0') {
// this.$confirm(', ?', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() => {
// this.Loading.appMainLoading = true
// this.displayDialog.detailsDialog = false
// postDelete(this.propsData.id, this.URL).then(res => {
// this.$successMsg('!')
// this.Loading.appMainLoading = false
// this.paging()
// }).catch(err => {
// this.Loading.appMainLoading = false
// })
// }).catch(() => {
// });
// } else {
// this.$message({
// message: " 0 ",
// type: "warning",
// });
// }
// }
// },
//()
FormClick (val) {
let params = {
id: this.editFormData.id,
expireDate: this.editFormData.expireDate
}
updateExpireDate(params, this.URL).then( res => {
this.displayDialog.editDialog = false
this.$message.success("修改成功!");
this.paging();
}).catch( err => {
this.$message.success("修改失败!");
console.log(err)
})
}
// FormClick (val) {
// let params = {
// id: this.editFormData.id,
// expireDate: this.editFormData.expireDate
// }
// updateExpireDate(params, this.URL).then( res => {
// this.displayDialog.editDialog = false
// this.$message.success("");
// this.paging();
// }).catch( err => {
// this.$message.success("");
// console.log(err)
// })
// }
},
};
</script>

17
fe/PC/src/views/inventoryManage/InventoryQuery/InventoryTransferLog-Query.vue

@ -192,7 +192,9 @@ export default {
{label: "批次", prop: "lot", width:'110px'},
{type: "filter", filters: "inventoryStage", label: "状态", prop: "status", width:'80px'},
{label: "单位", prop: "uom", width:'80px'},
{type: "input", valueType: Number, label: "数量", prop: "qty" },
// {type: "input", label: "", prop: "qty", validType:'number' },
{type: "inputNumber", label: "数量", prop: "qty" },
],
editRules: {
cerateRule: {
@ -254,6 +256,7 @@ export default {
}
},
FormClick(val) {
//
if (val[0] == 0) {
this.CreateFormData = {
clearPackCode: null,
@ -269,7 +272,9 @@ export default {
toLocationCode: null,
details:[]
}
} else if (val[0] == 1) {
}
//
else if (val[0] == 1) {
this.editRules.cerateRule.toLocationCode[0].required = false
val[1].validate((valid) => {
if (valid) {
@ -327,7 +332,9 @@ export default {
this.$errorMsg('请检查表单')
}
})
} else {
}
//
else {
this.editRules.cerateRule.toLocationCode[0].required = true
val[1].validate((valid) => {
if (valid) {
@ -366,6 +373,9 @@ export default {
item.fromStatus = item.status
item.toStatus = item.status
item.checked = true
// 20230410
item.toLocationErpCode = item.locationErpCode
item.fromLocationErpCode = item.locationErpCode
})
let params = {
worker: store.getters.name.userName,
@ -404,7 +414,6 @@ export default {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
.el-form {
flex: 1;
display: flex;

2
fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationConfirm.vue

@ -150,7 +150,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-custom-loc-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationNote.vue

@ -113,7 +113,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-custom-loc-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/customerStorageAllocation/customerStorageAllocationRequest.vue

@ -115,7 +115,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-request/get-custom-loc-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/interStorageAllocation/interStorageAllocationNote.vue

@ -113,7 +113,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-erp-loc-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/intraStorageTransfer/intraStorageTransferNote.vue

@ -109,7 +109,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-inside-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

9
fe/PC/src/views/inventoryManage/lineSideWarehouseAdjustmentSheet/lineSideWarehouseAdjustmentSheetNote.vue

@ -62,7 +62,7 @@ export default {
data () {
return {
// URL: 'wms/store/count-adjust-note',
URL: 'wms/store/wipwarehouse-adjust-note',
URL: 'wms/store/wip-warehouse-adjust-note',
//
currenButtonData: [
this.defaultExportBtn(),//
@ -90,7 +90,12 @@ export default {
drawerbutton (val) {
//
if(val == 'print'){
let data = initPrintAllData(this.propsData,'tzd.rdlx','AdjustmentReason');
let _option = {
details:{
locationCode:"toLocationCode",
}
}
let data = initPrintAllData(this.propsData,'tzd.rdlx','AdjustmentReason',_option);
this.Print(data)
}
},

2
fe/PC/src/views/inventoryManage/lineSideWarehouseAdjustmentSheet/lineSideWarehouseAdjustmentSheetRequest.vue

@ -75,7 +75,7 @@ export default {
data () {
return {
// URL: 'wms/store/count-adjust-request',
URL: 'wms/store/wipwarehouse-adjust-request',
URL: 'wms/store/wip-warehouse-adjust-request',
//
currenButtonData: [
this.defaultImportBtn(),//

2
fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationConfirm.vue

@ -150,7 +150,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-wip-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationNote.vue

@ -113,7 +113,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-note/get-wip-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/lineSideWarehouseAllocation/lineSideWarehouseAllocationRequest.vue

@ -112,7 +112,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/transfer-request/get-wip-list').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/lineSideWarehousePayment/lineSideWarehousePaymentNote.vue

@ -86,7 +86,7 @@ export default {
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/lineSideWarehousePayment/lineSideWarehousePaymentRequest.vue

@ -103,7 +103,7 @@ export default {
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

4
fe/PC/src/views/inventoryManage/lineSideWarehouseScrapping/lineSideWarehouseScrappingNote.vue

@ -98,14 +98,14 @@ export default {
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Scrap_Manual; 线:Scrap_WIP;
// : :Scrap_Manual; 线:Scrap_WIP; :Scrap_Product
let params = {
type: 'Scrap_WIP'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

4
fe/PC/src/views/inventoryManage/lineSideWarehouseScrapping/lineSideWarehouseScrappingRequest.vue

@ -97,14 +97,14 @@ export default {
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Scrap_Manual; 线:Scrap_WIP;
// : :Scrap_Manual; 线:Scrap_WIP; :Scrap_Product
let params = {
type: 'Scrap_WIP'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustment.vue

@ -60,7 +60,7 @@ export default {
],
data() {
return {
URL: "wms/store/item-transfrom-note",
URL: "wms/store/item-transform-note",
//
currenButtonData: [
this.defaultExportBtn(),//

2
fe/PC/src/views/inventoryManage/recycledMaterials/materialsAdjustmentApply.vue

@ -73,7 +73,7 @@ export default {
],
data () {
return {
URL: 'wms/store/item-transfrom-request',
URL: 'wms/store/item-transform-request',
//
currenButtonData: [
this.defaultImportBtn(),//

255
fe/PC/src/views/labelManage/PartiallyPreparedProducts/PartiallyPreparedProducts.vue

@ -57,18 +57,20 @@
</div>
</template>
<script>
import { initDataToHttpFormat } from "@/utils/index"
import { getPageList } from "@/api/wms-api"
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeManyData} from "@/mixins/printMixin"
import { getPageList,getDetailed} from "@/api/wms-api"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "PartiallyPreparedProductsLabel",
mixins: [
mixins,
LoadingMixins,
@ -80,7 +82,12 @@ export default {
currenTableFlex,
resultStatus,
},
name: "PartiallyPreparedProductsLabel",
watch:{
"selectData.labelType"(val){
console.log("watch",val)
this.changeFormItemShow(val)
}
},
data () {
let _this = this
return {
@ -88,128 +95,238 @@ export default {
// options
stepArray:[
{title:"信息筛选",next:()=>{return _this.firstNext()}},
{title:"预览信息"},
{title:"预览信息",cancle:()=>{return _this.sencondPre()}},
{title:"打印"},
],
selectItemInfo:{},//
//
selectData:{
itemCode:"",
itemName:"",
itemPackInfo:{},//
selectSupplierItemInfo:{},//
selectSupplierInfo:{},//
selectPoNumberInfo:{},//
//
defaultSelectData:{
itemCode:"",//
itemName:"",//
canMake:null,//
packQty:"",
canBuy:null,//
labelType:null,//1 2
// isRecycled:null,//
// canOutsourcing:null,//
qty:"",
lot:"",
labelQty:"",
supplierCode:"",
poNumber:"",
arriveDate:undefined,
produceDate:undefined,
// remark:"",
},
//
selectData:{},
//
selectForm:[
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/item-basic", [
{logic:"And",column:"canMake",action:"==",value:"true"},
// {logic:"And",column:"canMake",action:"==",value:"true"},
{logic:"And",column:"type",action:"==",value:"半成品"}
])},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品代码', this.selectData,[
{logic:"And",column:"canMake",action:"==",value:"true"},
// {logic:"And",column:"canMake",action:"==",value:"true"},
{logic:"And",column:"type",action:"==",value:"半成品"}
]) },
colSpan: 12,
},
{ type: "input",disabled:true,label: "物品名称", prop: "itemName", colSpan: 12 },
{ type: "select",disabled:true, label: "制造件", prop: "canMake", options: "whetherOrNot", colSpan: 12 },
{ type: "input",disabled:true,label: "标包数量", prop: "packQty", colSpan: 12 },
{ type: "select", disabled:true,label: "采购件", prop: "canBuy", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "标签类型", prop: "labelType", options: "labelTypeSelectOption", colSpan: 12 },
// { type: "select", disabled:true,label: "", prop: "isRecycled", options: "whetherOrNot", colSpan: 12 },
// { type: "select", disabled:true,label: "", prop: "canOutsourcing", options: "whetherOrNot", colSpan: 12 },
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
// { type: "input", label: "", prop: "remark", colSpan: 12 },
{ type: "dateTime", label: "生产时间", prop: "produceDate", colSpan: 12 },
{ type: "dateTime", label: "到货时间", prop: "arriveDate", colSpan: 12 },
{
hide:false,type: "filterSelect", label: "供应商代码", prop: "supplierCode", optionsLabel: "supplierSimpleName", optionsValue: "supplierCode", clearable:true,
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, val, "basedata/supplier-item",this.isFilter("itemCode", this.selectData.itemCode))},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/supplier-item', 'SupplierItem', '供应商代码', this.selectData,
this.isFilter("itemCode", this.selectData.itemCode)
) },
colSpan: 12,
},
{
hide:false,type: "filterSelect", label: "采购订单号", prop: "poNumber",optionsValue: "poNumber", clearable:true,getType:"getPage",
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, {itemCode:this.selectData.itemCode}, "wms/store/supplier-asn/get-list-by-item-code")},
colSpan: 12,
},
],
// Rules
selectRules:{
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" }],
lot: [{ required: true, trigger: "change", message: "批次不能为空" }],
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" },],
labelType:[{ required: true, trigger: "change", message: "标签类型不能为空" }],
qty: [{ required: true, trigger: "change", message: "实际数量不能为空" }],
labelQty: [{ required: true, trigger: "change", message: "标签个数不能为空" }],
lot: [{ required: true, trigger: "change", message: "批次不能为空" }],
supplierCode: [{ required: false, trigger: "change", message: "当前为采购标签,供应商代码为必填项" }],
poNumber: [{ required: false, trigger: "change", message: "当前为采购标签,采购订单为必填项" }],
},
//
//
flexTableColumns:[
{ width:"auto",label: "物品代码", prop: "itemCode", },
{ width:"auto",label: "物品名称", prop: "itemName", },
{ width:"auto",label: "批次", prop: "lot", },
{ width:"auto",label: "标包数量", prop: "packQty", },
{ width:"auto",label: "标包单位", prop: "packUom", },
{ width:"auto",label: "实际数量", prop: "qty", },
{ label: "物品代码", prop: "itemCode", },
{ label: "物品名称", prop: "itemName", },
{ label: "批次", prop: "lot", },
{ label: "实际数量", prop: "qty", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ label: "供应商代码", prop: "supplierCode", },
{ label: "供应商简称", prop: "supplierSimpleName", },
{ width:"auto",label: "供应商零件号", prop: "supplierItemCode", },
{ width:"auto",label: "供应商零件名", prop: "supplierItemName", },
{ width:"auto",label: "采购订单号", prop: "poNumber",type: "dateTime" },
// { width:"auto",label: "", prop: "remark", },
{ width:"auto",label: "箱标签", prop: "packingCode",fixed:"right" },
],
//
flexSelectTableData:[]
flexSelectTableData:[],
};
},
created(){
this.selectData = this.defaultSelectData
},
methods: {
consoleLog(){
console.log('selectItemInfo',this.selectItemInfo)//basedata/item-basic/list
console.log('selectData',this.selectData)
console.log('selectSupplierItemInfo',this.selectSupplierItemInfo)//basedata/supplier-item/list
console.log('selectSupplierInfo',this.selectSupplierInfo)//basedata/supplier/{id}
console.log('selectPoNumberInfo',this.selectPoNumberInfo)
},
//
rest(){
this.selectItemInfo={};
this.selectData={
itemCode:"",
itemName:"",
canMake:null,//
packQty:"",
qty:"",
lot:"",
labelQty:"",
};
this.selectSupplierItemInfo = {}
this.selectPoNumberInfo = {}
this.selectSupplierInfo = {}
this.selectData = this.defaultSelectData
this.flexSelectTableData = [];
this.$refs.steps_bcpsj.returnFirstActive()
this.$refs.form_bcpsj.getDom().resetFields();
},
// prop
getFormPropIndex(prop){
let _index = null
this.selectForm.forEach((item,key)=>{
if(item.prop == prop)_index = key
})
return _index
},
//
detailsDataPush (val) {
//
if(val[1].prop == "itemCode"){
this.pageLoading = true
this.rest()
this.selectItemInfo = val[0];
this.selectData.itemCode = this.selectItemInfo.code
this.selectData.itemName = this.selectItemInfo.name
this.selectData.canBuy=this.selectItemInfo.canBuy;
this.selectData.canMake=this.selectItemInfo.canMake;
// this.selectData.isRecycled=this.selectItemInfo.isRecycled;
// this.selectData.canOutsourcing=this.selectItemInfo.canOutsourcing;
// true
let _labelType_index = this.getFormPropIndex('labelType')
if((this.selectItemInfo.canBuy && !this.selectItemInfo.canMake) || (!this.selectItemInfo.canBuy && this.selectItemInfo.canMake)){
this.selectData.labelType = this.selectItemInfo.canBuy ? 1 : 2;
this.selectForm[_labelType_index].disabled = true
}else{
this.selectData.labelType = null
this.selectForm[_labelType_index].disabled = false
}
}
//
if(val[1].prop == "supplierCode"){
this.selectSupplierItemInfo = val[0];
this.selectData.supplierCode = this.selectSupplierItemInfo.supplierCode
let params = {
condition: {
filters: []
}
}
params.condition.filters.push(...this.isFilter("itemCode", this.selectData.itemCode))
getPageList(params, "basedata/item-pack")
.then(res => {
if (res.items.length > 0) {
this.selectItemInfo = res.items[0];
}
getDetailed(val[0].id, "basedata/item-basic").then(res => {
this.pageLoading = false
this.selectItemInfo = Object.assign(this.selectItemInfo,res);
this.selectData.itemName=this.selectItemInfo.name;
this.selectData.canMake=this.selectItemInfo.canMake;
this.selectData.packQty=this.selectItemInfo.packQty || "";
})
.catch(err => {
this.pageLoading = false
})
})
.catch(err => {
this.pageLoading = false
params.condition.filters.push(...this.isFilter("code", this.selectData.supplierCode))
getPageList(params, "basedata/supplier").then(res => {
this.selectSupplierInfo = res.items[0]
})
}
//
if(val[1].prop == "poNumber"){
this.selectPoNumberInfo = val[0];
}
},
//
changeFormItemShow(val){
this.selectData.labelType = val
let _poNumber_index = this.getFormPropIndex('poNumber')
let _supplierCode_index = this.getFormPropIndex('supplierCode')
//
if(this.selectData.labelType == 1){
this.selectForm[_poNumber_index].hide = false
this.selectForm[_supplierCode_index].hide = false
this.selectRules.poNumber[0].required = true
this.selectRules.supplierCode[0].required = true
}
//
else{
this.selectForm[_poNumber_index].hide = true
this.selectForm[_supplierCode_index].hide = true
this.selectRules.poNumber[0].required = false
this.selectRules.supplierCode[0].required = false
}
},
//
firstNext(){
return new Promise((resolve,reject) => {
this.$refs['form_bcpsj'].getDom().validate(valid=>{
if(valid){
let _data = this.selectItemInfo
_data.itemCode=this.selectData.itemCode,
_data.itemName= this.selectData.itemName,
_data.stdPackQty= Number(this.selectData.packQty) || 0,
_data.lot=this.selectData.lot,
_data.qty=Number(this.selectData.qty),
_data.uom= this.selectItemInfo.basicUom || "",
_data.itemDesc1= this.selectItemInfo.desc1 || "",
_data.itemDesc2= this.selectItemInfo.desc2 || "",
_data.labelType= 2,
_data.company= localStorage.getItem("company"),
// this.consoleLog()
let _data = {
// fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
// supplierBatch: undefined,//
arriveDate: initDataToHttpFormat(this.selectData.arriveDate),
produceDate: initDataToHttpFormat(this.selectData.produceDate),
// expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: 1,//
// recommendLocationCode: undefined,//
// locationErpCode: undefined,//
// containerCode: undefined,//
supplierCode: this.selectData.supplierCode,
poNumber: this.selectData.poNumber,
rpNumber: this.selectPoNumberInfo.rpNumber,
asnNumber: this.selectPoNumberInfo.number,
// qLevel: this.selectItemInfo.qLevel || undefined,//
// qualityFile: undefined,//
// prodLine: undefined,//
// team: undefined,//
// shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierName: this.selectSupplierItemInfo.supplierName,
supplierSimpleName: this.selectSupplierItemInfo.supplierSimpleName,
supplierItemCode: this.selectSupplierItemInfo.supplierItemCode,
supplierItemName: this.selectSupplierItemInfo.itemName,
labelType: this.selectData.labelType,
planArriveDate: initDataToHttpFormat(this.selectPoNumberInfo.planArriveDate)
// remark:this.selectData.remark,//
}
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
@ -218,9 +335,6 @@ export default {
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
item.itemName=this.selectData.itemName
item.packQty=this.selectData.packQty
item.packUom=this.selectItemInfo.basicUom
})
resolve()
})
@ -232,9 +346,16 @@ export default {
})
})
},
//
sencondPre(){
return new Promise((resolve,reject) => {
resolve()
})
},
//
printHandle(){
let _printData = {details:[]}
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(item)
})

271
fe/PC/src/views/labelManage/PartiallyPreparedProducts/RecycledMaterialsLabel.vue

@ -54,26 +54,11 @@
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
<!-- 制造件/采购件选择 -->
<el-dialog
:title="canTypeTitle"
:visible.sync="canTypeShow"
>
<el-form :model="canForm" :rules="canRules" ref="form_canType" >
<el-form-item prop="canType">
<el-radio v-model="canForm.canType" label="1">采购标签</el-radio>
<el-radio v-model="canForm.canType" label="2">生产标签</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="canSelectHandle('0')"> </el-button>
<el-button type="primary" @click="canSelectHandle('1')"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getPageList } from "@/api/wms-api"
import { initDataToHttpFormat } from "@/utils/index"
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
@ -85,6 +70,7 @@ import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "RecycledMaterialsLabel",
mixins: [
mixins,
LoadingMixins,
@ -96,7 +82,12 @@ export default {
currenTableFlex,
resultStatus,
},
name: "createNewLabel",
watch:{
"selectData.labelType"(val){
console.log("watch",val)
this.changeFormItemShow(val)
}
},
data () {
let _this = this
return {
@ -108,22 +99,26 @@ export default {
{title:"打印"},
],
selectItemInfo:{},//
selectSupplierInfo:{},//
selectSupplierItemInfo:{},//
selectSupplierInfo:{},//
selectPoNumberInfo:{},//
//
defaultSelectData:{
itemCode:"",
itemName:"",
// packQty:"",
itemCode:"",//
itemName:"",//
canMake:null,//
canBuy:null,//
labelType:null,//1 2
isRecycled:null,//
canOutsourcing:null,//
qty:"",
lot:"",
labelQty:"",
supplierCode:"",
poNumber:"",
remark:"",
canBuy:null,//
canMake:null,//
isRecycled:null,//
canOutsourcing:null,//
labelType:null,// /
arriveDate:undefined,
produceDate:undefined,
},
//
selectData:{},
@ -142,13 +137,17 @@ export default {
{ type: "input",disabled:true,label: "物品名称", prop: "itemName", colSpan: 12 },
{ type: "select",disabled:true, label: "制造件", prop: "canMake", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "采购件", prop: "canBuy", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "标签类型", prop: "labelType", options: "labelTypeSelectOption", colSpan: 12 },
{ type: "select", disabled:true,label: "回收件", prop: "isRecycled", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "外包件", prop: "canOutsourcing", options: "whetherOrNot", colSpan: 12 },
// { type: "input",disabled:true,label: "", prop: "packQty", colSpan: 12 },
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
{ type: "filterSelect", label: "供应商代码", prop: "supplierCode", optionsLabel: "supplierSimpleName", optionsValue: "supplierCode", clearable:true,
{ type: "dateTime", label: "生产时间", prop: "produceDate", colSpan: 12 },
{ type: "dateTime", label: "到货时间", prop: "arriveDate", colSpan: 12 },
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },
{
hide:false,type: "filterSelect", label: "供应商代码", prop: "supplierCode", optionsLabel: "supplierSimpleName", optionsValue: "supplierCode", clearable:true,
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, val, "basedata/supplier-item",this.isFilter("itemCode", this.selectData.itemCode))},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/supplier-item', 'SupplierItem', '供应商代码', this.selectData,
@ -156,118 +155,131 @@ export default {
) },
colSpan: 12,
},
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },
{
hide:false,type: "filterSelect", label: "采购订单号", prop: "poNumber",optionsValue: "poNumber", clearable:true,getType:"getPage",
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, {itemCode:this.selectData.itemCode}, "wms/store/supplier-asn/get-list-by-item-code")},
colSpan: 12,
},
],
// Rules
selectRules:{
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" },],
// lot: [{ required: true, trigger: "change", message: "" }],
labelType:[{ required: true, trigger: "change", message: "标签类型不能为空" }],
qty: [{ required: true, trigger: "change", message: "实际数量不能为空" }],
labelQty: [{ required: true, trigger: "change", message: "标签个数不能为空" }],
supplierCode: [{ required: false, trigger: "change", message: "当前为采购标签,供应商代码为必填项" }],
poNumber: [{ required: false, trigger: "change", message: "当前为采购标签,采购订单为必填项" }],
},
//
flexTableColumns:[
{ label: "物品代码", prop: "itemCode", },
{ label: "物品名称", prop: "itemName", },
{ label: "批次", prop: "lot", },
// { width:"auto",label: "", prop: "packQty", },
// { width:"auto",label: "", prop: "packUom", },
{ label: "实际数量", prop: "qty", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ label: "供应商代码", prop: "supplierCode", },
{ label: "供应商简称", prop: "supplierSimpleName", },
{ width:"auto",label: "供应商零件号", prop: "supplierItemCode", },
{ width:"auto",label: "供应商零件名", prop: "supplierItemName", },
{ width:"auto",label: "采购订单号", prop: "poNumber",type: "dateTime" },
{ width:"auto",label: "备注", prop: "remark", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ width:"auto",label: "箱标签", prop: "packingCode",fixed:"right" },
],
//
flexSelectTableData:[],
canTypeShow:false,///
canTypeTitle:"",///
canForm:{
canType:null
},///
canRules:{
canType: [{ required: true, trigger: "change", message: "请选择类型" }],
},
};
},
created(){
this.selectData = this.defaultSelectData
},
methods: {
consoleLog(){
console.log('selectItemInfo',this.selectItemInfo)//basedata/item-basic/list
console.log('selectData',this.selectData)
console.log('selectSupplierItemInfo',this.selectSupplierItemInfo)//basedata/supplier-item/list
console.log('selectSupplierInfo',this.selectSupplierInfo)//basedata/supplier/{id}
console.log('selectPoNumberInfo',this.selectPoNumberInfo)
},
//
rest(){
this.selectItemInfo={};
this.selectSupplierItemInfo = {}
this.selectPoNumberInfo = {}
this.selectSupplierInfo = {}
this.selectData = this.defaultSelectData
this.flexSelectTableData = [];
this.$refs.steps_create.returnFirstActive()
this.$refs.form_create.getDom().resetFields();
},
// prop
getFormPropIndex(prop){
let _index = null
this.selectForm.forEach((item,key)=>{
if(item.prop == prop)_index = key
})
return _index
},
//
detailsDataPush (val) {
//
if(val[1].prop == "itemCode"){
this.canForm.canType = null
this.rest()
this.selectItemInfo = val[0];
this.selectData.itemCode = this.selectItemInfo.code
this.selectData.itemName = this.selectItemInfo.name
this.selectData.canBuy=this.selectItemInfo.canBuy;
this.selectData.canMake=this.selectItemInfo.canMake;
this.selectData.isRecycled=this.selectItemInfo.isRecycled;
this.selectData.canOutsourcing=this.selectItemInfo.canOutsourcing;
this.selectData.supplierCode = ""
// this.pageLoading = true
// let params = {
// condition: {
// filters: []
// }
// }
// params.condition.filters.push(...this.isFilter("itemCode", this.selectData.itemCode))
// getPageList(params, "basedata/item-pack")
// .then(res => {
// if (res.items.length > 0) {
// this.selectItemInfo = res.items[0];
// // this.selectItemInfo.itemCode = selectData.itemCode
// // this.selectItemInfo.itemName = val[0].name
// }
// getDetailed(val[0].id, "basedata/item-basic").then(res => {
// this.pageLoading = false
// this.selectItemInfo = Object.assign(this.selectItemInfo,res);
// this.selectData.itemName=this.selectItemInfo.name;
// this.selectData.packQty=this.selectItemInfo.packQty || "";
// })
// .catch(err => {
// this.pageLoading = false
// })
// })
// .catch(err => {
// this.pageLoading = false
// })
// true
let _labelType_index = this.getFormPropIndex('labelType')
if((this.selectItemInfo.canBuy && !this.selectItemInfo.canMake) || (!this.selectItemInfo.canBuy && this.selectItemInfo.canMake)){
this.selectData.labelType = this.selectItemInfo.canBuy ? 1 : 2;
this.selectForm[_labelType_index].disabled = true
}else{
this.selectData.labelType = null
this.selectForm[_labelType_index].disabled = false
}
}
//
if(val[1].prop == "supplierCode"){
this.selectSupplierInfo = val[0];
this.selectData.supplierCode = this.selectSupplierInfo.supplierCode
this.selectSupplierItemInfo = val[0];
this.selectData.supplierCode = this.selectSupplierItemInfo.supplierCode
let params = {
condition: {
filters: []
}
}
params.condition.filters.push(...this.isFilter("code", this.selectData.supplierCode))
getPageList(params, "basedata/supplier").then(res => {
this.selectSupplierInfo = res.items[0]
})
}
//
if(val[1].prop == "poNumber"){
this.selectPoNumberInfo = val[0];
}
},
// /--
canSelectHandle(val){
//
if(val == '0'){
this.canTypeShow = false
this.canForm.canType = null
//
changeFormItemShow(val){
this.selectData.labelType = val
let _poNumber_index = this.getFormPropIndex('poNumber')
let _supplierCode_index = this.getFormPropIndex('supplierCode')
//
if(this.selectData.labelType == 1){
this.selectForm[_poNumber_index].hide = false
this.selectForm[_supplierCode_index].hide = false
this.selectRules.poNumber[0].required = true
this.selectRules.supplierCode[0].required = true
}
//
//
else{
this.$refs['form_canType'].validate(valid=>{
if(valid){
this.canTypeShow = false
document.getElementsByClassName("stepsAloneBtn-next")[0].click()
}
})
this.selectForm[_poNumber_index].hide = true
this.selectForm[_supplierCode_index].hide = true
this.selectRules.poNumber[0].required = false
this.selectRules.supplierCode[0].required = false
}
},
//
@ -275,58 +287,51 @@ export default {
return new Promise((resolve,reject) => {
this.$refs['form_create'].getDom().validate(valid=>{
if(valid){
// /
if(this.selectItemInfo.canBuy && this.selectItemInfo.canMake && this.canForm.canType == null){
this.canForm.canType = null
this.canTypeShow = true
this.canTypeTitle = `${this.selectData.itemCode}】即是采购件,也是制造件,请选择生成标签的类型`
reject()
return
// this.consoleLog()
let _data = {
// fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
// supplierBatch: undefined,//
arriveDate: initDataToHttpFormat(this.selectData.arriveDate),
produceDate: initDataToHttpFormat(this.selectData.produceDate),
// expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: 1,//
// recommendLocationCode: undefined,//
// locationErpCode: undefined,//
// containerCode: undefined,//
supplierCode: this.selectData.supplierCode,
poNumber: this.selectData.poNumber,
rpNumber: this.selectPoNumberInfo.rpNumber,
asnNumber: this.selectPoNumberInfo.number,
// qLevel: this.selectItemInfo.qLevel || undefined,//
// qualityFile: undefined,//
// prodLine: undefined,//
// team: undefined,//
// shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierName: this.selectSupplierItemInfo.supplierName,
supplierSimpleName: this.selectSupplierItemInfo.supplierSimpleName,
supplierItemCode: this.selectSupplierItemInfo.supplierItemCode,
supplierItemName: this.selectSupplierItemInfo.itemName,
labelType: this.selectData.labelType,
planArriveDate: initDataToHttpFormat(this.selectPoNumberInfo.planArriveDate),
remark:this.selectData.remark,//
}
// /
if(!this.selectItemInfo.canBuy && !this.selectItemInfo.canMake && this.canForm.canType == null){
this.canForm.canType = null
this.canTypeShow = true
this.canTypeTitle = `${this.selectData.itemCode}】即不是采购件,也不是制造件,请选择生成标签的类型`
reject()
return
}
// true
if((this.selectItemInfo.canBuy && !this.selectItemInfo.canMake) || (!this.selectItemInfo.canBuy && this.selectItemInfo.canMake)){
this.canForm.canType = this.selectItemInfo.canBuy ? "1" : "2";
}
let _data = this.selectItemInfo
_data.itemCode=this.selectData.itemCode,
_data.itemName= this.selectData.itemName,
_data.stdPackQty= Number(this.selectData.packQty) || 0,
_data.lot=this.selectData.lot || "",
_data.qty=Number(this.selectData.qty),
_data.remark=this.selectData.remark,
// _data.uom= this.selectItemInfo.packUom || "",
_data.uom= this.selectItemInfo.basicUom || "",
_data.itemDesc1= this.selectItemInfo.desc1 || "",
_data.itemDesc2= this.selectItemInfo.desc2 || "",
_data.labelType= Number(this.canForm.canType),
_data.company= localStorage.getItem("company"),
//
_data.supplierCode = this.selectData.supplierCode || "",
_data.supplierSimpleName = this.selectSupplierInfo.supplierSimpleName || "",
_data.supplierItemCode = this.selectSupplierInfo.supplierItemCode || "",
_data.supplierItemName = this.selectSupplierInfo.supplierItemName || this.selectSupplierInfo.itemName || "",
_data.supplierPackQty = this.selectSupplierInfo.supplierPackQty || "",
_data.supplierPackUom = this.selectSupplierInfo.supplierPackUom || "",
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
.then(res => {
this.canForm.canType = null
this.pageLoading = false
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
item.itemName=this.selectData.itemName
// item.packQty=this.selectData.packQty
item.packUom=this.selectItemInfo.basicUom
})
resolve()
})
@ -341,17 +346,13 @@ export default {
//
sencondPre(){
return new Promise((resolve,reject) => {
this.canForm.canType = null
resolve()
})
},
//
printHandle(){
let _printData = {
supplierCode:this.selectData.supplierCode || "",
supplierSimpleName:this.selectSupplierInfo.supplierSimpleName || "",
details:[]
}
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(item)
})

297
fe/PC/src/views/labelManage/PartiallyPreparedProducts/__PartiallyPreparedProducts.vue

@ -0,0 +1,297 @@
<template>
<div class="appMainPage" v-loading="pageLoading">
<!-- 标签管理-业务标签-半成品上架标签 -->
<StepsFormAlone
:stepArray="stepArray"
ref="steps_bcpsj"
:hideLastBtsn="true"
>
<template v-slot:stepSlot1>
<curren-Form
ref="form_bcpsj"
size="medium"
:searchData="selectData"
:searchForm="selectForm"
:rules="selectRules"
:searchOptions="editOptions"
@push="detailsDataPush(arguments)"
></curren-Form>
</template>
<template v-slot:stepSlot2>
<currenTableFlex
:flexTableData="flexSelectTableData"
:flexSearchOptions="editOptions"
:flexTableColumns="flexTableColumns"
:showAddBtn="false"
:showAllDeleteButton="false"
:isShowIndex="true"
></currenTableFlex>
</template>
<template v-slot:stepSlot3>
<!-- 结果 -->
<resultStatus>
<template>
<el-button @click="rest()">返回</el-button>
<el-button type="primary" @click="printHandle()">打印</el-button>
</template>
</resultStatus>
</template>
</StepsFormAlone>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
</div>
</template>
<script>
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeManyData} from "@/mixins/printMixin"
import { getPageList,getDetailed} from "@/api/wms-api"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
name: "PartiallyPreparedProductsLabel",
mixins: [
mixins,
LoadingMixins,
filterSelectMixins
],
components: {
currenForm,
StepsFormAlone,
currenTableFlex,
resultStatus,
},
data () {
let _this = this
return {
pageLoading:false,
// options
stepArray:[
{title:"信息筛选",next:()=>{return _this.firstNext()}},
{title:"预览信息"},
{title:"打印"},
],
itemPackInfo:{},//
selectItemInfo:{},//
//
selectData:{
itemCode:"",
itemName:"",
canMake:null,//
packQty:"",
qty:"",
lot:"",
labelQty:"",
},
//
selectForm:[
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code",
focus: (type,val) => { return this.getFilterList(type, val, "basedata/item-basic", [
{logic:"And",column:"canMake",action:"==",value:"true"},
{logic:"And",column:"type",action:"==",value:"半成品"}
])},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品代码', this.selectData,[
{logic:"And",column:"canMake",action:"==",value:"true"},
{logic:"And",column:"type",action:"==",value:"半成品"}
]) },
colSpan: 12,
},
{ type: "input",disabled:true,label: "物品名称", prop: "itemName", colSpan: 12 },
{ type: "select",disabled:true, label: "制造件", prop: "canMake", options: "whetherOrNot", colSpan: 12 },
{ type: "input",disabled:true,label: "标包数量", prop: "packQty", colSpan: 12 },
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12},
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
],
// Rules
selectRules:{
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" }],
lot: [{ required: true, trigger: "change", message: "批次不能为空" }],
qty: [{ required: true, trigger: "change", message: "实际数量不能为空" }],
labelQty: [{ required: true, trigger: "change", message: "标签个数不能为空" }],
},
//
flexTableColumns:[
{ width:"auto",label: "物品代码", prop: "itemCode", },
{ width:"auto",label: "物品名称", prop: "itemName", },
{ width:"auto",label: "批次", prop: "lot", },
{ width:"auto",label: "标包数量", prop: "packQty", },
{ width:"auto",label: "标包单位", prop: "packUom", },
{ width:"auto",label: "实际数量", prop: "qty", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ width:"auto",label: "箱标签", prop: "packingCode",fixed:"right" },
],
//
flexSelectTableData:[]
};
},
methods: {
//
rest(){
this.itemPackInfo = {}
this.selectItemInfo={};
this.selectData={
itemCode:"",
itemName:"",
canMake:null,//
packQty:"",
qty:"",
lot:"",
labelQty:"",
};
this.flexSelectTableData = [];
this.$refs.steps_bcpsj.returnFirstActive()
this.$refs.form_bcpsj.getDom().resetFields();
},
//
detailsDataPush (val) {
if(val[1].prop == "itemCode"){
this.pageLoading = true
let params = {
condition: {
filters: []
}
}
params.condition.filters.push(...this.isFilter("itemCode", this.selectData.itemCode))
getPageList(params, "basedata/item-pack")
.then(res => {
if (res.items.length > 0) {
this.itemPackInfo = res.items[0]
this.selectData.packQty=res.items[0].qty
// this.selectItemInfo = res.items[0];
}
getDetailed(val[0].id, "basedata/item-basic").then(res => {
this.pageLoading = false
this.selectItemInfo = Object.assign(this.selectItemInfo,res);
this.selectData.itemName=this.selectItemInfo.name;
this.selectData.canMake=this.selectItemInfo.canMake;
})
.catch(err => {
this.pageLoading = false
})
})
.catch(err => {
this.pageLoading = false
})
}
},
//
firstNext(){
return new Promise((resolve,reject) => {
this.$refs['form_bcpsj'].getDom().validate(valid=>{
if(valid){
let _data = {
fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
supplierBatch: undefined,//
arriveDate: undefined,//
produceDate: undefined,//
expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: undefined,//
recommendLocationCode: undefined,//
locationErpCode: undefined,//
containerCode: undefined,//
poNumber: undefined,//
rpNumber: undefined,//
asnNumber: undefined,//
qLevel: undefined,//
qualityFile: undefined,//
prodLine: undefined,//
team: undefined,//
shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierCode: undefined,//
supplierName: undefined,//
supplierSimpleName: undefined,//
supplierItemCode: undefined,//
supplierItemName: undefined,//
labelType: 2,
planArriveDate: undefined,//
}
// let _data = this.selectItemInfo
// _data.itemCode=this.selectData.itemCode,
// _data.itemName= this.selectData.itemName,
// _data.stdPackQty= Number(this.selectData.packQty) || 0,
// _data.lot=this.selectData.lot,
// _data.qty=Number(this.selectData.qty),
// _data.uom= this.selectItemInfo.basicUom || "",
// _data.itemDesc1= this.selectItemInfo.desc1 || "",
// _data.itemDesc2= this.selectItemInfo.desc2 || "",
// _data.labelType= 2,
// _data.company= localStorage.getItem("company"),
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
.then(res => {
this.pageLoading = false
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
item.packQty=this.itemPackInfo.qty
item.packUom=this.itemPackInfo.basicUom
})
resolve()
})
.catch(err => {
this.pageLoading = false
reject()
})
}
})
})
},
//
printHandle(){
// let _printData = {details:[]}
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(item)
})
_printData.title = "半成品上架标签"
this.Print(initPrintPackingCodeManyData(_printData))
},
//
isFilter (val, data) {
let filter = [
{
logic: "And",
column: val,
action: "==",
value: data
}
]
return filter
},
},
}
</script>

424
fe/PC/src/views/labelManage/PartiallyPreparedProducts/__RecycledMaterialsLabel.vue

@ -0,0 +1,424 @@
<template>
<div class="appMainPage" v-loading="pageLoading">
<!-- 标签管理-业务标签-创建标签(原回收料标签) -->
<StepsFormAlone
:stepArray="stepArray"
ref="steps_create"
:hideLastBtsn="true"
>
<template v-slot:stepSlot1>
<curren-Form
ref="form_create"
size="medium"
:searchData="selectData"
:searchForm="selectForm"
:rules="selectRules"
:searchOptions="editOptions"
@push="detailsDataPush(arguments)"
></curren-Form>
</template>
<template v-slot:stepSlot2>
<currenTableFlex
:flexTableData="flexSelectTableData"
:flexSearchOptions="editOptions"
:flexTableColumns="flexTableColumns"
:showAddBtn="false"
:showAllDeleteButton="false"
:isShowIndex="true"
></currenTableFlex>
</template>
<template v-slot:stepSlot3>
<!-- 结果 -->
<resultStatus>
<template>
<el-button @click="rest()">返回</el-button>
<el-button type="primary" @click="printHandle()">打印</el-button>
</template>
</resultStatus>
</template>
</StepsFormAlone>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
<!-- 制造件/采购件选择 -->
<el-dialog
:title="canTypeTitle"
:visible.sync="canTypeShow"
>
<el-form :model="canForm" :rules="canRules" ref="form_canType" >
<el-form-item prop="canType">
<el-radio v-model="canForm.canType" label="1">采购标签</el-radio>
<el-radio v-model="canForm.canType" label="2">生产标签</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="canSelectHandle('0')"> </el-button>
<el-button type="primary" @click="canSelectHandle('1')"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeManyData} from "@/mixins/printMixin"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
mixins: [
mixins,
LoadingMixins,
filterSelectMixins
],
components: {
currenForm,
StepsFormAlone,
currenTableFlex,
resultStatus,
},
name: "RecycledMaterialsLabel",
data () {
let _this = this
return {
pageLoading:false,
// options
stepArray:[
{title:"信息筛选",next:()=>{return _this.firstNext()}},
{title:"预览信息",cancle:()=>{return _this.sencondPre()}},
{title:"打印"},
],
selectItemInfo:{},//
selectSupplierInfo:{},//
//
defaultSelectData:{
itemCode:"",
itemName:"",
// packQty:"",
qty:"",
lot:"",
labelQty:"",
supplierCode:"",
remark:"",
canBuy:null,//
canMake:null,//
isRecycled:null,//
canOutsourcing:null,//
labelType:null,// /
},
//
selectData:{},
//
selectForm:[
{
type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code", clearable:true,
focus: (type,val) => { return this.getFilterList(type, val, "basedata/item-basic",
// [{logic:"And",column:"canMake",action:"!=",value:"true"}] //
)},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品代码', this.selectData,
// [{logic:"And",column:"canMake",action:"!=",value:"true"}] //
)},
colSpan: 12,
},
{ type: "input",disabled:true,label: "物品名称", prop: "itemName", colSpan: 12 },
{ type: "select",disabled:true, label: "制造件", prop: "canMake", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "采购件", prop: "canBuy", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "回收件", prop: "isRecycled", options: "whetherOrNot", colSpan: 12 },
{ type: "select", disabled:true,label: "外包件", prop: "canOutsourcing", options: "whetherOrNot", colSpan: 12 },
// { type: "input",disabled:true,label: "", prop: "packQty", colSpan: 12 },
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
{ type: "filterSelect", label: "供应商代码", prop: "supplierCode", optionsLabel: "supplierSimpleName", optionsValue: "supplierCode", clearable:true,
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, val, "basedata/supplier-item",this.isFilter("itemCode", this.selectData.itemCode))},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/supplier-item', 'SupplierItem', '供应商代码', this.selectData,
this.isFilter("itemCode", this.selectData.itemCode)
) },
colSpan: 12,
},
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },
],
// Rules
selectRules:{
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" },],
// lot: [{ required: true, trigger: "change", message: "" }],
qty: [{ required: true, trigger: "change", message: "实际数量不能为空" }],
labelQty: [{ required: true, trigger: "change", message: "标签个数不能为空" }],
},
//
flexTableColumns:[
{ label: "物品代码", prop: "itemCode", },
{ label: "物品名称", prop: "itemName", },
{ label: "批次", prop: "lot", },
// { width:"auto",label: "", prop: "packQty", },
// { width:"auto",label: "", prop: "packUom", },
{ label: "实际数量", prop: "qty", },
{ label: "供应商代码", prop: "supplierCode", },
{ label: "供应商简称", prop: "supplierSimpleName", },
{ width:"auto",label: "供应商零件号", prop: "supplierItemCode", },
{ width:"auto",label: "供应商零件名", prop: "supplierItemName", },
{ width:"auto",label: "备注", prop: "remark", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ width:"auto",label: "箱标签", prop: "packingCode",fixed:"right" },
],
//
flexSelectTableData:[],
canTypeShow:false,///
canTypeTitle:"",///
canForm:{
canType:null
},///
canRules:{
canType: [{ required: true, trigger: "change", message: "请选择类型" }],
},
};
},
created(){
this.selectData = this.defaultSelectData
},
methods: {
//
rest(){
this.selectItemInfo={};
this.selectSupplierInfo = {}
this.selectData = this.defaultSelectData
this.flexSelectTableData = [];
this.$refs.steps_create.returnFirstActive()
this.$refs.form_create.getDom().resetFields();
},
//
detailsDataPush (val) {
//
if(val[1].prop == "itemCode"){
this.canForm.canType = null
this.selectItemInfo = val[0];
this.selectData.itemName = this.selectItemInfo.name
this.selectData.canBuy=this.selectItemInfo.canBuy;
this.selectData.canMake=this.selectItemInfo.canMake;
this.selectData.isRecycled=this.selectItemInfo.isRecycled;
this.selectData.canOutsourcing=this.selectItemInfo.canOutsourcing;
this.selectData.supplierCode = ""
// this.pageLoading = true
// let params = {
// condition: {
// filters: []
// }
// }
// params.condition.filters.push(...this.isFilter("itemCode", this.selectData.itemCode))
// getPageList(params, "basedata/item-pack")
// .then(res => {
// if (res.items.length > 0) {
// this.selectItemInfo = res.items[0];
// // this.selectItemInfo.itemCode = selectData.itemCode
// // this.selectItemInfo.itemName = val[0].name
// }
// getDetailed(val[0].id, "basedata/item-basic").then(res => {
// this.pageLoading = false
// this.selectItemInfo = Object.assign(this.selectItemInfo,res);
// this.selectData.itemName=this.selectItemInfo.name;
// this.selectData.packQty=this.selectItemInfo.packQty || "";
// })
// .catch(err => {
// this.pageLoading = false
// })
// })
// .catch(err => {
// this.pageLoading = false
// })
}
//
if(val[1].prop == "supplierCode"){
this.selectSupplierInfo = val[0];
this.selectData.supplierCode = this.selectSupplierInfo.supplierCode
}
},
// /--
canSelectHandle(val){
//
if(val == '0'){
this.canTypeShow = false
this.canForm.canType = null
}
//
else{
this.$refs['form_canType'].validate(valid=>{
if(valid){
this.canTypeShow = false
document.getElementsByClassName("stepsAloneBtn-next")[0].click()
}
})
}
},
//
firstNext(){
return new Promise((resolve,reject) => {
this.$refs['form_create'].getDom().validate(valid=>{
if(valid){
// /
if(this.selectItemInfo.canBuy && this.selectItemInfo.canMake && this.canForm.canType == null){
this.canForm.canType = null
this.canTypeShow = true
this.canTypeTitle = `${this.selectData.itemCode}】即是采购件,也是制造件,请选择生成标签的类型`
reject()
return
}
// /
if(!this.selectItemInfo.canBuy && !this.selectItemInfo.canMake && this.canForm.canType == null){
this.canForm.canType = null
this.canTypeShow = true
this.canTypeTitle = `${this.selectData.itemCode}】即不是采购件,也不是制造件,请选择生成标签的类型`
reject()
return
}
// true
if((this.selectItemInfo.canBuy && !this.selectItemInfo.canMake) || (!this.selectItemInfo.canBuy && this.selectItemInfo.canMake)){
this.canForm.canType = this.selectItemInfo.canBuy ? "1" : "2";
}
// console.log(this.selectItemInfo)//basedata/item-basic/list
// console.log(this.selectData)
// console.log(this.selectSupplierInfo)//basedata/supplier-item/list
let _data = {
fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
supplierBatch: undefined,//
arriveDate: undefined,//
produceDate: undefined,//
expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: undefined,//
recommendLocationCode: undefined,//
locationErpCode: undefined,//
containerCode: undefined,//
supplierCode: this.selectData.supplierCode || null,
poNumber: undefined,//
rpNumber: undefined,//
asnNumber: undefined,//
qLevel: undefined,//
qualityFile: undefined,//
prodLine: undefined,//
team: undefined,//
shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierName: this.selectSupplierInfo.supplierName || undefined,//
supplierSimpleName: this.selectSupplierInfo.supplierSimpleName || null,
supplierItemCode: this.selectSupplierInfo.supplierItemCode || null,
supplierItemName: this.selectSupplierInfo.itemName || null,
labelType: Number(this.canForm.canType),
planArriveDate: undefined,//
remark:this.selectData.remark,//
}
// let _data = JSON.parse(JSON.stringify(this.selectItemInfo))
// delete _data.concurrencyStamp;
// delete _data.company;
// delete _data.id;
// delete _data.lastModificationTime;
// delete _data.lastModifierId;
// delete _data.creationTime;
// delete _data.creatorId;
// _data.itemCode=this.selectData.itemCode,
// _data.itemName= this.selectData.itemName,
// _data.stdPackQty= Number(this.selectData.packQty) || 0,
// _data.lot=this.selectData.lot || "",
// _data.qty=Number(this.selectData.qty),
// _data.remark=this.selectData.remark,
// // _data.uom= this.selectItemInfo.packUom || "",
// _data.uom= this.selectItemInfo.basicUom || "",
// _data.itemDesc1= this.selectItemInfo.desc1 || "",
// _data.itemDesc2= this.selectItemInfo.desc2 || "",
// _data.labelType= Number(this.canForm.canType),
// _data.company= localStorage.getItem("company"),
// //
// _data.supplierCode = this.selectData.supplierCode || "",
// _data.supplierName = this.selectSupplierInfo.supplierName || "",
// _data.supplierSimpleName = this.selectSupplierInfo.supplierSimpleName || "",
// _data.supplierItemCode = this.selectSupplierInfo.supplierItemCode || "",
// _data.supplierItemName = this.selectSupplierInfo.supplierItemName || this.selectSupplierInfo.itemName || "",
// _data.supplierPackQty = this.selectSupplierInfo.supplierPackQty || "",
// _data.supplierPackUom = this.selectSupplierInfo.supplierPackUom || "",
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
.then(res => {
this.canForm.canType = null
this.pageLoading = false
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
// item.itemName=this.selectData.itemName
// item.packQty=this.selectData.packQty
// item.packUom=this.selectItemInfo.basicUom
})
resolve()
})
.catch(err => {
this.pageLoading = false
reject()
})
}
})
})
},
//
sencondPre(){
return new Promise((resolve,reject) => {
this.canForm.canType = null
resolve()
})
},
//
printHandle(){
// let _printData = {
// // supplierCode:this.selectData.supplierCode || "",
// // supplierSimpleName:this.selectSupplierInfo.supplierSimpleName || "",
// details:[]
// }
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(item)
})
_printData.title = "标签"
this.Print(initPrintPackingCodeManyData(_printData))
},
//
isFilter (val, data) {
let filter = [
{
logic: "And",
column: val,
action: "==",
value: data
}
]
return filter
},
},
}
</script>

352
fe/PC/src/views/labelManage/PartiallyPreparedProducts/__productionReturnLabel.vue

@ -0,0 +1,352 @@
<template>
<div class="appMainPage" v-loading="pageLoading">
<!-- 标签管理-业务标签-生产退库标签 -->
<StepsFormAlone
:stepArray="stepArray"
ref="steps_sctk"
:hideLastBtsn="true"
>
<template v-slot:stepSlot1>
<curren-Form
ref="form_sctk"
size="medium"
:searchData="selectData"
:searchForm="selectForm"
:rules="selectRules"
:searchOptions="editOptions"
@push="detailsDataPush(arguments)"
@clear="filterClearHandle(arguments)"
></curren-Form>
</template>
<template v-slot:stepSlot2>
<currenTableFlex
:flexTableData="flexSelectTableData"
:flexSearchOptions="editOptions"
:flexTableColumns="flexTableColumns"
:showAddBtn="false"
:showAllDeleteButton="false"
:isShowIndex="true"
></currenTableFlex>
</template>
<template v-slot:stepSlot3>
<!-- 结果 -->
<resultStatus>
<template>
<el-button @click="rest()">返回</el-button>
<el-button type="primary" @click="printHandle()">打印</el-button>
</template>
</resultStatus>
</template>
</StepsFormAlone>
<!-- 搜索按钮窗体组件 -->
<searchPage
ref="searchTable"
:tableLoading="Loading.autoTableLoading"
:advancedFilter="advancedFilter()"
:filterPageListParams="filterPageListParams"
:formTitle="searchTitle"
:displayDialog="displayDialog.AddNewDialog"
:searchTableData="searchData"
:searchTableColumns="searchColumns"
:searchTotalCount="searchTotalCount"
:supplierItemPage="searchPageListParams"
@handleSelectionChange="prepareFormData"
@SizeChange="searchAlterResultCount($event, searchPageListParams)"
@CurrentChange="searchAlertoldSkipCount($event, searchPageListParams)"
@tableButtonClick="searchSubmit(arguments)"
></searchPage>
</div>
</template>
<script>
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeManyData} from "@/mixins/printMixin"
import { getPageList,getDetailed, getPage} from "@/api/wms-api"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { filterSelectMixins } from '@/mixins/filter-Select'
export default {
mixins: [
mixins,
LoadingMixins,
filterSelectMixins
],
components: {
currenForm,
StepsFormAlone,
currenTableFlex,
resultStatus,
},
name: "productionReturnLabel",
data () {
let _this = this
return {
pageLoading:false,
// options
stepArray:[
{title:"信息筛选",next:()=>{return _this.firstNext()}},
{title:"预览信息"},
{title:"打印"},
],
itemPackInfo:{},//
poNumberInfo:{},//
selectItemInfo:{},//
selectSupplierInfo:{},//
//
selectData:{
itemCode:"",
itemName:"",
packQty:"",
qty:"",
lot:"",
labelQty:"",
supplierCode:"",
supplierName:"",
poNumber:"",
},
//
selectForm:[
{ type: "filterSelect", label: "物品代码", prop: "itemCode", optionsLabel: "name", optionsValue: "code", clearable:true,
focus: (type,val) => { return this.getFilterList(type, val, "basedata/item-basic",[
{logic:"And",column:"canMake",action:"!=",value:"true"},
{logic:"And",column:"isRecycled",action:"!=",value:"true"},
])},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/Item-Basic', 'ItemBasic', '物品代码', this.selectData,[
{logic:"And",column:"canMake",action:"!=",value:"true"},
{logic:"And",column:"isRecycled",action:"!=",value:"true"},
]) },
colSpan: 12,
},
{ type: "input",disabled:true,label: "物品名称", prop: "itemName", colSpan: 12 },
{ type: "filterSelect", label: "供应商代码", prop: "supplierCode", optionsLabel: "supplierSimpleName", optionsValue: "supplierCode", clearable:true,
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, val, "basedata/supplier-item",this.isFilter("itemCode", this.selectData.itemCode))},
searchButton: (val) => { this.showSerarchPage(val, 'basedata/supplier-item', 'SupplierItem', '供应商代码', this.selectData,
this.isFilter("itemCode", this.selectData.itemCode)
) },
colSpan: 12,
},
{
type: "filterSelect", label: "采购订单号", prop: "poNumber",optionsValue: "poNumber", clearable:true,getType:"getPage",
beforeFocus:()=>{if(!this.selectData.itemCode || this.selectData.itemCode.length <= 0){this.$message.error('请输入物品代码'); return false}else{return true}},
focus: (type,val) => { return this.getFilterList(type, {itemCode:this.selectData.itemCode}, "wms/store/supplier-asn/get-list-by-item-code")},
colSpan: 12,
},
{ type: "input",disabled:true,label: "标包数量", prop: "packQty", colSpan: 12 },
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
],
// Rules
selectRules:{
itemCode: [{ required: true, trigger: "change", message: "物品代码不能为空" }],
supplierCode: [{ required: true, trigger: "change", message: "供应商代码不能为空" }],
poNumber: [{ required: true, trigger: "change", message: "采购订单号不能为空" }],
lot: [{ required: true, trigger: "change", message: "批次不能为空" }],
qty: [{ required: true, trigger: "change", message: "实际数量不能为空" }],
labelQty: [{ required: true, trigger: "change", message: "标签个数不能为空" }],
},
//
flexTableColumns:[
{ width:"auto",label: "物品代码", prop: "itemCode", },
{ width:"auto",label: "物品名称", prop: "itemName", },
{ width:"auto",label: "批次", prop: "lot", },
{ width:"auto",label: "订单号", prop: "poNumber", },
{ width:"auto",label: "供应商代码", prop: "supplierCode", },
{ width:"auto",label: "供应商名称", prop: "supplierSimpleName", },
{ width:"auto",label: "标包数量", prop: "packQty", },
{ width:"auto",label: "标包单位", prop: "packUom", },
{ width:"auto",label: "实际数量", prop: "qty", },
{ width:"auto",label: "生产日期", prop: "produceDate",type: "dateTime" },
{ width:"auto",label: "箱标签", prop: "packingCode",fixed:"right" },
],
//
flexSelectTableData:[]
};
},
methods: {
//
rest(){
this.selectSupplierInfo = {}
this.selectItemInfo={};
this.itemPackInfo = {}
this.poNumberInfo = {}
this.selectData={
itemCode:"",
itemName:"",
packQty:"",
qty:"",
lot:"",
labelQty:"",
};
this.flexSelectTableData = [];
this.$refs.steps_sctk.returnFirstActive()
this.$refs.form_sctk.getDom().resetFields();
},
//
detailsDataPush (val) {
if(val[1].prop == "itemCode"){
this.pageLoading = true
let params = {
condition: {
filters: []
}
}
params.condition.filters.push(...this.isFilter("itemCode", this.selectData.itemCode))
getPageList(params, "basedata/item-pack")
.then(res => {
if (res.items.length > 0) {
this.itemPackInfo = res.items[0]
this.selectData.packQty=res.items[0].qty
// this.selectItemInfo = res.items[0];
}
getDetailed(val[0].id, "basedata/item-basic").then(res => {
this.pageLoading = false
this.selectItemInfo = Object.assign(this.selectItemInfo,res);
this.selectData.itemName=this.selectItemInfo.name;
// this.selectData.packQty=this.selectItemInfo.packQty || "";
})
.catch(err => {
this.pageLoading = false
})
})
.catch(err => {
this.pageLoading = false
})
}
else if (val[1].prop == "supplierCode"){
this.selectSupplierInfo = val[0]
// this.selectData.supplierName = val[0].supplierName
// this.selectData.supplierSimpleName = val[0].supplierSimpleName
}
//
else if(val[1].prop == "poNumber"){
this.poNumberInfo = val[0]
// this.selectData.poNumber = val[0].poNumber
}
},
//
filterClearHandle(val){
if(val[0].prop == "itemCode"){
this.selectData.supplierCode = ""
this.selectData.poNumber = ""
this.$refs.form_sctk.getDom().resetFields();
}
},
//
firstNext(){
return new Promise((resolve,reject) => {
this.$refs['form_sctk'].getDom().validate(valid=>{
if(valid){
let _data = {
fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
supplierBatch: undefined,//
arriveDate: undefined,//
produceDate: undefined,//
expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: undefined,//
recommendLocationCode: undefined,//
locationErpCode: undefined,//
containerCode: undefined,//
supplierCode: this.selectData.supplierCode || null,
poNumber: this.selectData.poNumber,
rpNumber: undefined,//
asnNumber: undefined,//
qLevel: undefined,//
qualityFile: undefined,//
prodLine: undefined,//
team: undefined,//
shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierName: this.selectSupplierInfo.supplierName || undefined,//
supplierSimpleName: this.selectSupplierInfo.supplierSimpleName || null,
supplierItemCode: this.selectSupplierInfo.supplierItemCode || null,
supplierItemName: this.selectSupplierInfo.itemName || null,
labelType: 1,
planArriveDate: undefined,//
}
// let _data = this.selectItemInfo
// _data.itemCode=this.selectData.itemCode,
// _data.itemName= this.selectData.itemName,
// _data.stdPackQty= Number(this.selectData.packQty) || 0,
// _data.lot=this.selectData.lot,
// _data.qty=Number(this.selectData.qty),
// _data.uom= this.selectItemInfo.packUom || "",
// _data.itemDesc1= this.selectItemInfo.desc1 || "",
// _data.itemDesc2= this.selectItemInfo.desc2 || "",
// _data.poNumber= this.selectData.poNumber,
// _data.labelType= 1,
// _data.company= localStorage.getItem("company"),
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
.then(res => {
this.pageLoading = false
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
// item.itemName=this.selectData.itemName
item.packQty=this.itemPackInfo.qty
item.packUom=this.itemPackInfo.basicUom
// item.packQty=this.selectData.packQty
// item.packUom=this.selectItemInfo.packUom
// item.supplierName=this.selectData.supplierName
// item.supplierCode=this.selectData.supplierCode
// item.poNumber=this.selectData.poNumber
})
resolve()
})
.catch(err => {
this.pageLoading = false
reject()
})
}
})
})
},
//
printHandle(){
// let _printData = {
// poNumber:this.selectData.poNumber,
// asnNumber:this.flexSelectTableData[0].asnNumber,
// supplierCode:this.flexSelectTableData[0].supplierCode,
// supplierName:this.flexSelectTableData[0].supplierName,
// supplierSimpleName:this.flexSelectTableData[0].supplierName,
// details:[]
// }
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(JSON.parse(JSON.stringify(item)))
})
_printData.title = "生产退库标签"
this.Print(initPrintPackingCodeManyData(_printData))
},
//
isFilter (val, data) {
let filter = [
{
logic: "And",
column: val,
action: "==",
value: data
}
]
return filter
},
},
}
</script>

90
fe/PC/src/views/labelManage/PartiallyPreparedProducts/productionReturnLabel.vue

@ -58,13 +58,14 @@
</div>
</template>
<script>
import { initDataToHttpFormat } from "@/utils/index"
import { postInventoryLabelCode_count } from "@/api/wms-core"
import currenForm from "@/components/currenForm"
import StepsFormAlone from "@/components/StepsFormAlone"
import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeManyData} from "@/mixins/printMixin"
import { getPageList,getDetailed, getPage} from "@/api/wms-api"
import { getPageList,getDetailed } from "@/api/wms-api"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
@ -92,7 +93,10 @@ export default {
{title:"预览信息"},
{title:"打印"},
],
itemPackInfo:{},//
poNumberInfo:{},//
selectItemInfo:{},//
selectSupplierInfo:{},//
//
selectData:{
itemCode:"",
@ -104,6 +108,8 @@ export default {
supplierCode:"",
supplierName:"",
poNumber:"",
arriveDate:undefined,
produceDate:undefined,
},
//
selectForm:[
@ -137,6 +143,8 @@ export default {
{ type: "inputNumber", label: "实际数量", prop: "qty",colSpan: 12 },
{ type: "input", label: "批次", prop: "lot", colSpan: 12 },
{ type: "inputNumber", label: "标签个数", prop: "labelQty", min:1,colSpan: 12 },
{ type: "dateTime", label: "生产时间", prop: "produceDate", colSpan: 12 },
{ type: "dateTime", label: "到货时间", prop: "arriveDate", colSpan: 12 },
],
// Rules
selectRules:{
@ -154,7 +162,7 @@ export default {
{ width:"auto",label: "批次", prop: "lot", },
{ width:"auto",label: "订单号", prop: "poNumber", },
{ width:"auto",label: "供应商代码", prop: "supplierCode", },
{ width:"auto",label: "供应商名称", prop: "supplierName", },
{ width:"auto",label: "供应商名称", prop: "supplierSimpleName", },
{ width:"auto",label: "标包数量", prop: "packQty", },
{ width:"auto",label: "标包单位", prop: "packUom", },
{ width:"auto",label: "实际数量", prop: "qty", },
@ -168,7 +176,10 @@ export default {
methods: {
//
rest(){
this.selectSupplierInfo = {}
this.selectItemInfo={};
this.itemPackInfo = {}
this.poNumberInfo = {}
this.selectData={
itemCode:"",
itemName:"",
@ -194,13 +205,13 @@ export default {
getPageList(params, "basedata/item-pack")
.then(res => {
if (res.items.length > 0) {
this.selectItemInfo = res.items[0];
this.itemPackInfo = res.items[0]
this.selectData.packQty=res.items[0].qty
}
getDetailed(val[0].id, "basedata/item-basic").then(res => {
this.pageLoading = false
this.selectItemInfo = Object.assign(this.selectItemInfo,res);
this.selectData.itemName=this.selectItemInfo.name;
this.selectData.packQty=this.selectItemInfo.packQty || "";
})
.catch(err => {
this.pageLoading = false
@ -211,11 +222,11 @@ export default {
})
}
else if (val[1].prop == "supplierCode"){
this.selectData.supplierName = val[0].supplierSimpleName
this.selectSupplierInfo = val[0]
}
//
else if(val[1].prop == "poNumber"){
this.selectData.poNumberInfo = val[0]
this.poNumberInfo = val[0]
}
},
//
@ -231,18 +242,42 @@ export default {
return new Promise((resolve,reject) => {
this.$refs['form_sctk'].getDom().validate(valid=>{
if(valid){
let _data = this.selectItemInfo
_data.itemCode=this.selectData.itemCode,
_data.itemName= this.selectData.itemName,
_data.stdPackQty= Number(this.selectData.packQty) || 0,
_data.lot=this.selectData.lot,
_data.qty=Number(this.selectData.qty),
_data.uom= this.selectItemInfo.packUom || "",
_data.itemDesc1= this.selectItemInfo.desc1 || "",
_data.itemDesc2= this.selectItemInfo.desc2 || "",
_data.poNumber= this.selectData.poNumber,
_data.labelType= 1,
_data.company= localStorage.getItem("company"),
let _data = {
// fullBarcodeString: undefined,//
itemCode: this.selectData.itemCode || null,
itemName: this.selectItemInfo.name || null,
itemDesc1: this.selectItemInfo.desc1 || null,
itemDesc2: this.selectItemInfo.desc2 || null,
lot: this.selectData.lot || "",
// supplierBatch: undefined,//
arriveDate: initDataToHttpFormat(this.selectData.arriveDate),
produceDate: initDataToHttpFormat(this.selectData.produceDate),
// expireDate: undefined,//
stdPackQty: Number(this.selectItemInfo.stdPackQty) || 0,
uom: this.selectItemInfo.basicUom || "",
qty: Number(this.selectData.qty),
labelStatus: 1,//
// recommendLocationCode: undefined,//
// locationErpCode: undefined,//
// containerCode: undefined,//
supplierCode: this.selectData.supplierCode,
poNumber: this.selectData.poNumber,
rpNumber: this.poNumberInfo.rpNumber,
asnNumber: this.poNumberInfo.number,
// qLevel: this.selectItemInfo.qLevel || undefined,//
// qualityFile: undefined,//
// prodLine: undefined,//
// team: undefined,//
// shift: undefined,//
specifications: this.selectItemInfo.color || null,
supplierName: this.selectSupplierInfo.supplierName,
supplierSimpleName: this.selectSupplierInfo.supplierSimpleName,
supplierItemCode: this.selectSupplierInfo.supplierItemCode,
supplierItemName: this.selectSupplierInfo.itemName,
labelType: 1,
planArriveDate: initDataToHttpFormat(this.poNumberInfo.planArriveDate),
remark:this.selectData.remark,//
}
//
this.pageLoading = true;
postInventoryLabelCode_count({count:this.selectData.labelQty}, _data)
@ -251,12 +286,9 @@ export default {
this.flexSelectTableData = res
this.flexSelectTableData.forEach(item=>{
item.packingCode=item.code
item.itemName=this.selectData.itemName
item.packQty=this.selectData.packQty
item.packUom=this.selectItemInfo.packUom
item.supplierName=this.selectData.supplierName
item.supplierCode=this.selectData.supplierCode
item.poNumber=this.selectData.poNumber
item.packQty=this.itemPackInfo.qty
item.packUom=this.itemPackInfo.basicUom
})
resolve()
})
@ -270,14 +302,8 @@ export default {
},
//
printHandle(){
let _printData = {
poNumber:this.selectData.poNumber,
asnNumber:this.flexSelectTableData[0].asnNumber,
supplierCode:this.flexSelectTableData[0].supplierCode,
supplierName:this.flexSelectTableData[0].supplierName,
supplierSimpleName:this.flexSelectTableData[0].supplierName,
details:[]
}
let _printData = this.flexSelectTableData[0]
_printData.details = []
this.flexSelectTableData.forEach(item=>{
_printData.details.push(JSON.parse(JSON.stringify(item)))
})

6
fe/PC/src/views/labelManage/RepairLabels.vue

@ -62,6 +62,7 @@ import resultStatus from "@/components/resultStatus"
import currenTableFlex from "@/components/currenTableFlex"
import {initPrintPackingCodeData} from "@/mixins/printMixin"
import { getDetailed} from "@/api/wms-api"
import { getOneInventoryLabelByCode} from "@/api/wms-core"
import _ from "lodash"
import { mixins } from "@/mixins/mixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
@ -163,7 +164,8 @@ export default {
// params.condition.filters.push(...this.isFilter("packingCode", this.selectData.packingCode))
this.pageLoading = true
// getDetailed(this.selectData.packingCode, "label/purchase-label/by-code")
getDetailed(this.selectData.packingCode, "label/inventory-label/by-code")
// getDetailed(this.selectData.packingCode, "label/inventory-label/by-code")
getOneInventoryLabelByCode(this.selectData.packingCode)
.then(res => {
this.pageLoading = false
this.flexTableData = []
@ -194,7 +196,7 @@ export default {
//
printHandle(){
let _printData = {
supplierSimpleName:this.flexTableData[0].supplierSimpleName || "",
supplierSimpleName:this.flexTableData[0].supplierSimpleName || this.flexTableData[0].supplierName || "",
supplierCode:this.flexTableData[0].supplierCode || "",
title:"补打标签",
contacts:this.flexTableData[0].contacts || "",

2
fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallApply.vue

@ -137,7 +137,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

6
fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallJob-msQuery.vue

@ -98,7 +98,7 @@ export default {
},
data () {
return {
URL: 'wms/job/issue-job',
URL: 'wms/store/issue-job',
tableLoading: false,
handleMultipleSelection: [],
//
@ -246,13 +246,13 @@ export default {
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
type: 'Issue_WIP'
requestType: 'Issue_WIP'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params)
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false

35
fe/PC/src/views/rawMaterialManage/automaticMaterialCall/automaticCallNote.vue

@ -45,7 +45,7 @@
</div>
</template>
<script>
import { materialRequestByType } from "@/api/wms-api"
import { materialRequestByType, confirm, getDetailed } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -61,6 +61,15 @@ export default {
TableHeaderMixins,
mixins,
],
computed: {
hideButton: function () {
return function (val) {
let data = true
if(this.propsData.confirmed == val){data = false}
return data
}
},
},
data () {
return {
URL: 'wms/store/issue-note',
@ -80,6 +89,14 @@ export default {
name: "print",
size: 'mini'
},
{
type: 'primary',
icon: 'el-icon-circle-check',
label: '确认',
hide: () => { return this.hideButton(false) },
name: "confirm",
size: 'mini'
},
]
};
},
@ -93,13 +110,13 @@ export default {
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
type: 'Issue_WIP'
requestType: 'Issue_WIP'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params)
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false
@ -118,6 +135,18 @@ export default {
}
let data = initPrintAllData(_propsData,'xbcll.rdlx',false,_option);
this.Print(data)
} else if(val == 'confirm') {
this.Loading.appMainLoading = true
confirm(this.propsData.id, this.URL).then(rs => {
this.$successMsg('已确认')
getDetailed(this.propsData.id, this.URL).then(res => {
this.propsData = res
})
this.paging()
this.Loading.appMainLoading = false
}).catch(err => {
console.log(err)
})
}else {
drawerMixins.methods.drawerbutton(val, this)
}

13
fe/PC/src/views/rawMaterialManage/beforeGroundingReturn/beforeGroundingReturnNote.vue

@ -44,7 +44,7 @@
</div>
</template>
<script>
import { getPageListWip,allSupplierByCodes } from "@/api/wms-api"
import { getPageListWip,getOneSupplierInfoByCode } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -97,7 +97,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false
@ -107,12 +107,9 @@ export default {
drawerbutton (val) {
//
if(val == 'print'){
if((this.propsData.supplierCode) && (!this.propsData.supplierName || !this.propsData.supplierShortName)){
allSupplierByCodes([this.propsData.supplierCode]).then(res => {
if(res.length > 0){
this.propsData.supplierName = res[0].name
this.propsData.supplierShortName = res[0].shortName
}
if((this.propsData.supplierCode) && (!this.propsData.supplierShortName)){
getOneSupplierInfoByCode(this.propsData.supplierCode).then(res => {
this.propsData.supplierShortName = res.shortName || res.name
let data = initPrintAllData(this.propsData,'thd.rdlx','UnqualifiedReason');
this.Print(data)
}).catch(err => {

6
fe/PC/src/views/rawMaterialManage/directIssue/directIssueNote.vue

@ -90,14 +90,14 @@ export default {
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
// : :Issue_Manual; 线:Issue_WIP; :Issue_Direct
let params = {
type: 'Direct_Issue'
type: 'Issue_Direct'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

12
fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueJob.vue

@ -98,7 +98,7 @@ export default {
},
data () {
return {
URL: 'wms/job/issue-job',
URL: 'wms/store/issue-job',
tableLoading: false,
handleMultipleSelection: [],
//
@ -248,13 +248,13 @@ export default {
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
type: 'Issue_Manual'
requestType: 'Issue_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params)
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -471,12 +471,10 @@ export default {
})
let _option = {
details:{
fromLocationCode:"recommendLocationCode",
fromLocationCode:"recommendFromLocationCode",
qty:"recommendQty",
uom:"recommendUom",
fromLot:"recommendLot",
toLocationErpCode:"locationErpCode",
fromLocationErpCode:"recommendLocationErpCode",
fromLocationErpCode:"recommendFromLocationErpCode",
}
}
let data = initPrintAllData(_propsData,'xbcll.rdlx',false,_option);

4
fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueNote.vue

@ -93,12 +93,12 @@ export default {
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
type: 'Issue_Manual'
requestType: 'Issue_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

2
fe/PC/src/views/rawMaterialManage/manualMaterialRequest/IssueRequest.vue

@ -113,7 +113,7 @@ export default {
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

19
fe/PC/src/views/rawMaterialManage/materialDirectSend/materialDirectSendNote.vue

@ -45,7 +45,7 @@
</div>
</template>
<script>
import { getPageListWip , sumPrint} from '@/api/wms-api'
import { getPageListWip , sumPrint,getOneCustomerInfoByCode} from '@/api/wms-api'
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -96,15 +96,29 @@
getPageListWip(this.PageListParams, 'wms/store/deliver-note/list-for-raw').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
},
beforePrintHandle(callback){
if((this.propsData.customerCode)){
getOneCustomerInfoByCode(this.propsData.customerCode).then(res => {
this.propsData.customerAddressCode = res.address
callback()
}).catch(err => {
console.log(err)
})
}else{
callback()
}
},
//
drawerbutton (val) {
//
if(val == 'print'){
this.beforePrintHandle(()=>{
let _option = {
details:{
packingCode:"toPackingCode",
@ -117,6 +131,7 @@
}).catch(err => {
console.log(err)
})
})
}
},
},

36
fe/PC/src/views/rawMaterialManage/purchaseOnShelves/PutawayNote.vue

@ -45,13 +45,14 @@
</div>
</template>
<script>
import { getPageListWip,allSupplierByCodes } from "@/api/wms-api"
import { getPageListWip } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { initPrintAllData } from '@/mixins/printMixin'
import { getInventoryLabelByCodes} from "@/api/wms-core"
export default {
name: "PutawayNote",
mixins: [
@ -94,7 +95,7 @@ export default {
getPageListWip(this.PageListParams, 'wms/store/putaway-note/get-list-by-purchase').then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -103,24 +104,27 @@ export default {
drawerbutton (val) {
//
if(val == 'print'){
if((this.propsData.supplierCode) && (!this.propsData.supplierName || !this.propsData.supplierShortName)){
this.Loading.tableLoading = true
allSupplierByCodes([this.propsData.supplierCode]).then(res => {
this.Loading.tableLoading = false
if(res.length > 0){
this.propsData.supplierName = res[0].name
this.propsData.supplierShortName = res[0].shortName
let _ids = []
this.propsData.details.forEach(item => {
_ids.push(item.handledPackingCode)
});
getInventoryLabelByCodes(_ids).then(res => {
this.Loading.appMainLoading = false;
let _printData = JSON.parse(JSON.stringify(this.propsData))
_printData.supplierCode = res[0].supplierCode;
_printData.supplierSimpleName = res[0].supplierSimpleName;
res.forEach((item)=>{
_printData.details.forEach((item2)=>{
if(item.itemCode == item2.itemCode){
item2.supplierItemCode = item.supplierItemCode
}
let data = initPrintAllData(this.propsData,'ysd.rdlx');
})
})
let data = initPrintAllData(_printData,'ysd.rdlx');
this.Print(data)
}).catch(err => {
this.Loading.tableLoading = false
console.log(err)
this.Loading.appMainLoading = false;
})
}else{
let data = initPrintAllData(this.propsData,'ysd.rdlx');
this.Print(data)
}
}
},
},

40
fe/PC/src/views/rawMaterialManage/purchaseReceipt/PurchaseOrder-ms.vue

@ -30,9 +30,9 @@
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
:disabledMethod = {method1:true,method2:false,method3:true}
:disabledIsAllowPartImport = {isAllowPartImport1:true,isAllowPartImport2:false}
methodValue="1"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
@ -43,7 +43,7 @@
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
:Butttondata="[]"
:Butttondata="DrawerButtonData"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@handleCommand="drawerHandle"
@ -65,6 +65,7 @@ import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { processRequest, getDetailed } from '@/api/wms-api'
export default {
name: "PurchaseOrder",
mixins: [
@ -77,6 +78,16 @@ export default {
data () {
return {
URL: 'wms/store/purchase-order',
DrawerButtonData: [
{
type: 'danger',
icon: 'el-icon-delete-solid',
label: '作废',
hide: false,
name: "delete",
size: 'mini'
},
],
//
currenButtonData: [
this.defaultImportBtn(),//
@ -90,6 +101,27 @@ export default {
mounted () {
this.paging();
},
methods: {
//
drawerbutton (val) {
//
if (val == 'delete') {
let that = this
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/cancel/').then(res => {
that.$successMsg('已作废')
getDetailed(that.propsData.id, that.URL).then(res => {
that.propsData = res
})
that.paging()
that.Loading.appMainLoading = false
}).catch(err => {
console.log(err)
that.Loading.appMainLoading = false
})
}
},
},
};
</script>
<style lang="scss" scoped>

70
fe/PC/src/views/rawMaterialManage/purchaseReceipt/PurchaseReceiptNote-msQuery.vue

@ -53,7 +53,7 @@
</div>
</template>
<script>
import { getDetailed,purRecNoteCustomInfo } from '@/api/wms-api'
import { getDetailed,purRecNoteCustomInfo,getOneSupplierInfoByCode } from '@/api/wms-api'
import { getImgsDetailPopData,Enum } from "@/utils/index"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
@ -70,6 +70,15 @@ export default {
TableHeaderMixins,
mixins,
],
computed: {
hideButton: function () {
return function (val) {
let data = true
if(this.firstTabs == val){data = false}
return data
}
},
},
data () {
return {
URL: 'wms/store/purchase-receipt-note',
@ -90,7 +99,16 @@ export default {
icon: 'el-icon-printer',
label: '打印收货单',
hide: false,
name: "print",
hide: () => { return this.hideButton('hgpshmx') },
name: "print-shd",
size: 'mini'
},
{
type: 'info',
icon: 'el-icon-printer',
label: '打印退货单',
name: "print-thd",
hide: () => { return this.hideButton('bhgpshmx') },
size: 'mini'
},
],
@ -169,15 +187,28 @@ export default {
} else {
this.propsData = res
}
this.getSupplierByCodesHandle_props()
this.inlineDialogCallback()
}).catch(err => {
this.Loading.DrawerLoading = false
})
})
},
toPrintHttp(callback){
if((this.propsData.supplierCode) && (!this.propsData.supplierShortName)){
getOneSupplierInfoByCode(this.propsData.supplierCode).then(res => {
this.propsData.supplierShortName = res.shortName || res.name
callback()
}).catch(err => {
console.log(err)
})
}else{
callback()
}
},
drawerbutton (val) {
//
if(val == 'print'){
//
if(val == 'print-shd'){
this.toPrintHttp(()=>{
let _printData = JSON.parse(JSON.stringify(this.propsData))
_printData.details = []
let _hg=[],_no=[]
@ -186,15 +217,36 @@ export default {
item.statusStr = "合格"
item.reasonStr = ""
_hg.push(item)
}else if(item.purchaseReceiptInspectStatus == 3){
item.statusStr = "不合格"
item.reasonStr = Enum(this.$store.getters.dictionaries.UnqualifiedReason, item.failedReason , 'label')
_no.push(item)
}
// else if(item.purchaseReceiptInspectStatus == 3){
// item.statusStr = ""
// item.reasonStr = Enum(this.$store.getters.dictionaries.UnqualifiedReason, item.failedReason , 'label')
// _no.push(item)
// }
});
_printData.details = _hg.concat(_no);
let data = initPrintAllData(_printData,'cgshd.rdlx');
this.Print(data)
})
}
// 退
if(val == 'print-thd'){
this.toPrintHttp(()=>{
let _printData = JSON.parse(JSON.stringify(this.propsData))
_printData.details = []
this.propsData.details.forEach(item => {
if(item.purchaseReceiptInspectStatus == 3){
_printData.details.push(item)
}
});
let _option = {
details:{
reason:"failedReason"
}
}
let data = initPrintAllData(_printData,'thd.rdlx','UnqualifiedReason',_option);
this.Print(data)
})
}
},
// table

2
fe/PC/src/views/rawMaterialManage/purchaseReturn/returnJob.vue

@ -91,7 +91,7 @@ export default {
},
data () {
return {
URL: 'wms/job/purchase-return-job',
URL: 'wms/store/purchase-return-job',
//
currenButtonData: [
this.defaultFieldSettingBtn(),//

16
fe/PC/src/views/rawMaterialManage/purchaseReturn/returnNote.vue

@ -44,7 +44,7 @@
</div>
</template>
<script>
import { getPageListWip,allSupplierByCodes } from "@/api/wms-api"
import { getPageListWip,getOneSupplierInfoByCode } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -97,7 +97,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
})
.catch(err => {
this.Loading.tableLoading = false
@ -107,18 +107,12 @@ export default {
drawerbutton (val) {
//
if(val == 'print'){
if((this.propsData.supplierCode) && (!this.propsData.supplierName || !this.propsData.supplierShortName)){
this.Loading.appMainLoading = true
allSupplierByCodes([this.propsData.supplierCode]).then(res => {
this.Loading.appMainLoading = false
if(res.length > 0){
this.propsData.supplierName = res[0].name
this.propsData.supplierShortName = res[0].shortName
}
if((this.propsData.supplierCode) && (!this.propsData.supplierShortName)){
getOneSupplierInfoByCode(this.propsData.supplierCode).then(res => {
this.propsData.supplierShortName = res.shortName || res.name
let data = initPrintAllData(this.propsData,'thd.rdlx','PurReturnReason');
this.Print(data)
}).catch(err => {
this.Loading.appMainLoading = false
console.log(err)
})
}else{

106
fe/PC/src/views/rawMaterialManage/quality/InspectNotice.vue → fe/PC/src/views/rawMaterialManage/quality/InspectRequest.vue

@ -32,7 +32,6 @@
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:Butttondata="[]"
:dropdownData="dropdownData"
:propsData.sync="propsData"
:tabsDesTions="tabsDesTions"
:dropdownTabsData="dropdownTabsData"
@ -232,7 +231,7 @@ import { mixins } from "@/mixins/mixins"
import currenDescriptions from "@/components/currenDescriptions"
import pdf from "@/components/pdf"
export default {
name: "InspectNotice",
name: "InspectRequest",
mixins: [
tableMixins,
LoadingMixins,
@ -246,7 +245,7 @@ export default {
},
data () {
return {
URL: 'wms/job/inspect-job',
URL: 'wms/store/inspect-job',
// tab
currentTagName:'hz',
uploadShow: false,
@ -277,6 +276,8 @@ export default {
inspectNoticeDetailsTableLoading: false,
//
inspectFormData: {
inspectUser: null,
uom: null,
samplePercent: 0,
number: null,
otherPropertyJson: null,
@ -286,55 +287,54 @@ export default {
lot: null,
locationErpCode: null,
failedQty: 0,
inspectUserEmail: null,
supplierBatch: null,
produceDate: null,
lastModificationTime: null,
creationTime: null,
lastModifierId: null,
tenantId: null,
supplierPackUom: null,
receiveQty: 0,
remark: null,
expireDate: null,
poNumber: null,
inspectType: 0,
notPassedQty: 0,
inspectUserName: null,
receiveUom: null,
locationCode: null,
abcClass: null,
locationGroup: null,
containerCode: null,
id: null,
supplierPackQty: 0,
warehouseCode: null,
creatorId: null,
poLine: null,
masterID: null,
inspectUserPhone: "18182874811",
status: 0,
goodQty: 0,
locationArea: null,
failedReason: null,
itemCode: null,
itemName: null,
itemDesc1: null,
itemDesc2: null,
stdPackQty: 0,
stdPackUom: null,
packingCode:null,
inspectQty: 0,
appearance: null,
volume: null,
weight: null,
// otherPropertyJson json,
otherPropertyJson: null,
details: [{
name: '',
value: ''
}],
// supplierPackQty: 0,
// inspectUserPhone: "18182874811",
// stdPackUom: null,
// otherPropertyJson json,
// inspectUserEmail: null,
// tenantId: null,
// supplierPackUom: null,
// inspectUserName: null,
// receiveUom: null,
},
inspectForm: [
{ type: "input", label: "物品代码", prop: "itemCode", disabled: true, colSpan: 12 },
@ -402,28 +402,25 @@ export default {
],
// -form
inspectNoticeDetailsFormData: {
warehouseCode: localStorage.getItem('warehouseCode'),
supplierBatch: null,
inspectUserPhone: null,
creationTime: null,
summaryInspectStatus: 0,
supplierPackUom: null,
inspectUser: null,
uom: null,
receiveQty: 0,
lot: null,
notPassedQty: 0,
remark: null,
itemDesc1: null,
stdPackUom: null,
itemDesc2: null,
receiveUom: null,
poLine: null,
stdPackQty: 0,
arriveDate: null,
goodQty: 0,
inspectUserName: null,
itemCode: null,
samplePercent: 0,
masterID: null,
tenantId: null,
crackQty: 0,
inspectType: 0,
lastModifierId: null,
@ -431,8 +428,6 @@ export default {
expireDate: null,
number: null,
itemName: null,
inspectUserEmail: null,
supplierPackQty: 0,
abcClass: null,
failedReason: null,
failedQty: 0,
@ -442,11 +437,20 @@ export default {
id: null,
inspectReport: null,
lastModificationTime: null,
filesList:[],
sampleQty: 0, //
goodQty: 0,
filesList:[],
formFile: [],
details: []
details: [],
// inspectUserEmail: null,
// supplierPackQty: 0,
// tenantId: null,
// inspectUserName: null,
// receiveUom: null,
// goodQty: 0,
// supplierPackUom: null,
// inspectUserPhone: null,
// stdPackUom: null,
},
// -form
inspectNoticeDetailsForm: [
@ -475,7 +479,7 @@ export default {
{ label: "箱码", prop: "packingCode", width:'100%' },
{ label: "物品代码", prop: "itemCode", width:'100%' },
{ label: "物品名称", prop: "itemName", width:'100%' },
{ label: "单位", prop: "receiveUom", width:'100%' },
// { label: "", prop: "receiveUom", width:'100%' },
{ label: "收货数量", prop: "receiveQty", width:'100%' },
{ label: "状态", prop: "detailInspectStatus", type: "filter", filters: "detailInspectStatus", width:'100%' },
{ type: "button", label: "检验", prop: "buttonHide", width:'100%' },
@ -580,28 +584,25 @@ export default {
}
this.inspectNoticeDetailsFormData.formFile = []
this.inspectNoticeDetailsFormData = {
warehouseCode: localStorage.getItem('warehouseCode'),
supplierBatch: null,
inspectUserPhone: null,
creationTime: null,
summaryInspectStatus: 0,
supplierPackUom: null,
inspectUser: null,
uom: null,
receiveQty: 0,
lot: null,
notPassedQty: 0,
remark: null,
itemDesc1: null,
stdPackUom: null,
itemDesc2: null,
receiveUom: null,
poLine: null,
stdPackQty: 0,
arriveDate: null,
goodQty: 0,
inspectUserName: null,
itemCode: null,
samplePercent: 0,
masterID: null,
tenantId: null,
crackQty: 0,
inspectType: 0,
lastModifierId: null,
@ -609,8 +610,6 @@ export default {
expireDate: null,
number: null,
itemName: null,
inspectUserEmail: null,
supplierPackQty: 0,
abcClass: null,
failedReason: null,
failedQty: 0,
@ -620,11 +619,19 @@ export default {
id: null,
inspectReport: null,
lastModificationTime: null,
filesList:[],
sampleQty: 0, //
goodQty: 0,
filesList:[],
formFile: [],
details: []
// inspectUserEmail: null,
// supplierPackQty: 0,
// tenantId: null,
// inspectUserName: null,
// receiveUom: null,
// goodQty: 0,
// supplierPackUom: null,
// inspectUserPhone: null,
// stdPackUom: null,
}
this.$listAssign(this.inspectNoticeDetailsFormData, row)
let findRs = this.tableDataDetails.details.filter(item => (
@ -729,6 +736,13 @@ export default {
delete item.buttonHide
}
})
// ,
this.loading = false
getDetailed(this.propsData.id, this.URL).then(res => {
this.propsData = res
})
this.paging()
this.loading = false
this.inspectNoticeDetailsTableLoading = false
}).catch(err => {
console.log(err)
@ -856,6 +870,13 @@ export default {
item.buttonHide = false
}
})
// ,
this.loading = false
getDetailed(this.propsData.id, this.URL).then(res => {
this.propsData = res
})
this.paging()
this.loading = false
}).catch(err => {
console.log(err)
})
@ -892,6 +913,13 @@ export default {
item.buttonHide = false
}
})
// ,
this.loading = false
getDetailed(this.propsData.id, this.URL).then(res => {
this.propsData = res
})
this.paging()
this.loading = false
}).catch(err => {
console.log(err)
})
@ -903,6 +931,7 @@ export default {
} else if (val[0] == 2) {
this.inspectShow = false
}
},
// table
inspectAddTable(val) {
@ -962,11 +991,11 @@ export default {
},
//
cellStyle({row, column, rowIndex, columnIndex}){
if (row.detailInspectStatus == 1 && columnIndex === 6) {
if (row.detailInspectStatus == 1 && columnIndex === 5) {
return 'background:#42a9b9;color:#fff' //
} else if (row.detailInspectStatus == 2 && columnIndex === 6) {
} else if (row.detailInspectStatus == 2 && columnIndex === 5) {
return 'background:#42b983;color:#fff'//
} else if (row.detailInspectStatus == 3 && columnIndex === 6) {
} else if (row.detailInspectStatus == 3 && columnIndex === 5) {
return 'background:#c3503e;color:#fff'//
}
return ''
@ -1000,6 +1029,7 @@ export default {
display: flex;
align-items: center;
justify-content: flex-end;
padding-bottom: 15px;
}
}
::v-deep .jyTable{

16
fe/PC/src/views/rawMaterialManage/quality/unqualifiedToQualified.vue

@ -97,7 +97,7 @@ export default {
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -110,22 +110,23 @@ export default {
if (this.selectionData != undefined ) {
if (this.selectionData.length > 0) {
this.Loading.appMainLoading = true
// 20230407
let params = {
tenantId: null,
remark: null,
extraProperties: null,
worker: store.getters.name.userName,
warehouseCode: null,
activeDate: new Date(),
autoSubmit: false,
autoAgree: false,
autoHandle: false,
autoCompleteJob: false,
directCreateNote: false,
requestStatus: 0,
company: localStorage.getItem('company'),
number: null,
details: []
// warehouseCode: null,
// requestStatus: 0,
// company: localStorage.getItem('company'),
}
// company "DongYang"
// concurrencyStamp "187ecf6d642e48f68a86f05ceddcbaea"
@ -147,12 +148,10 @@ export default {
// status 3
// tenantId null
this.selectionData.forEach(item => {
item.stdPackUom = null
// 20230407
item.stdPackQty = 0
item.fromPackingCode = item.packingCode
item.toPackingCode = item.packingCode
item.fromContainerCode = item.containerCode
item.toContainerCode = item.containerCode
item.fromLot = item.lot
item.toLot = item.lot
item.fromLocationCode = item.locationCode
@ -173,6 +172,9 @@ export default {
item.poNumber = null
item.supplierCode = null
params.details.push(item)
// item.fromContainerCode = item.containerCode
// item.toContainerCode = item.containerCode
// item.stdPackUom = null
})
convertOk(params).then(res => {
this.$message.success('已成功转为合格')

4
fe/PC/src/views/rawMaterialManage/scrap/ScrapNote.vue

@ -82,14 +82,14 @@ export default {
paging() {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Scrap_Manual; 线:Scrap_WIP;
// : :Scrap_Manual; 线:Scrap_WIP; :Scrap_Product
let params = {
type: 'Scrap_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})

4
fe/PC/src/views/systemManage/Department.vue

@ -140,7 +140,7 @@ export default {
departmentList(this.PageListParams, this.URL).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.getSupplierByCodesHandle_table()
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
@ -163,7 +163,7 @@ export default {
} else {
this.propsData = res
}
this.getSupplierByCodesHandle_props()
this.inlineDialogCallback()
})
.catch(err => {
this.Loading.DrawerLoading = false

4
fe/PC/vue.config.js

@ -38,7 +38,7 @@ module.exports = {
},
proxy: {
'/base': {
target: 'http://dev.ccwin-in.com:59099',
target: 'http://dev.ccwin-in.com:60099',
changeOrigin: true,
// logLevel: 'debug',
pathRewrite: {
@ -46,7 +46,7 @@ module.exports = {
}
},
'/user': {
target: 'http://dev.ccwin-in.com:59093',
target: 'http://dev.ccwin-in.com:60099/api/auth',
changeOrigin: true,
// logLevel: 'debug',
pathRewrite: {

Loading…
Cancel
Save