Compare commits
189 Commits
master
...
dev_web_on
Author | SHA1 | Date |
---|---|---|
|
72a79d4141 | 2 years ago |
|
09def3bd97 | 2 years ago |
|
69cdef4195 | 2 years ago |
|
0a47417523 | 2 years ago |
|
b19e858f25 | 2 years ago |
|
7dbafb78d4 | 2 years ago |
|
a11872e284 | 2 years ago |
|
3ac6084c42 | 2 years ago |
|
d84b8b4391 | 2 years ago |
|
feb3b36205 | 2 years ago |
|
adea487fb0 | 2 years ago |
|
cd18a07ebc | 2 years ago |
|
eb778a78b5 | 2 years ago |
|
d8a0a19c33 | 2 years ago |
|
23dfa2ddbc | 2 years ago |
|
e26fa07e91 | 2 years ago |
|
5a8aa7f9ae | 2 years ago |
|
41ae78b5d5 | 2 years ago |
|
d458bf0ebe | 2 years ago |
|
1c0a8fdc75 | 2 years ago |
|
5b49aeb0c0 | 2 years ago |
|
5006e5956e | 2 years ago |
|
9b1bfc3ff1 | 2 years ago |
|
4ebab2512c | 2 years ago |
|
eccfe8bc02 | 2 years ago |
|
05f94692a6 | 2 years ago |
|
809414e5a1 | 2 years ago |
|
f530f0c0b0 | 2 years ago |
|
98300f03ae | 2 years ago |
|
af14b13864 | 2 years ago |
|
82f1c38143 | 2 years ago |
|
8f4ad76b62 | 2 years ago |
|
5edf8527a6 | 2 years ago |
|
8fa59f5054 | 2 years ago |
|
604e63ec67 | 2 years ago |
|
5c90110a41 | 2 years ago |
|
4c9ab7c964 | 2 years ago |
|
f804f5b091 | 2 years ago |
|
b5336d2b37 | 2 years ago |
|
84e5edaf88 | 2 years ago |
|
be2138f6b7 | 2 years ago |
|
1896e153fc | 2 years ago |
|
079902fffa | 2 years ago |
|
603396b503 | 2 years ago |
|
16a8a73afe | 2 years ago |
|
29260b6eee | 2 years ago |
|
18b3d436fc | 2 years ago |
|
397b7aba8b | 2 years ago |
|
9ef01ebf46 | 2 years ago |
|
03129c786c | 2 years ago |
|
1d40849732 | 2 years ago |
|
d5d0733dae | 2 years ago |
|
2662b17e8b | 2 years ago |
|
8dff6bc47e | 2 years ago |
|
17ae2302c5 | 2 years ago |
|
c96b55c9cd | 2 years ago |
|
2aef495c6d | 2 years ago |
|
c12c6af440 | 2 years ago |
|
015b3d9e60 | 2 years ago |
|
70041b4155 | 2 years ago |
|
0209d0bda6 | 2 years ago |
|
cd3e23f3f4 | 2 years ago |
|
b1e2edd8f4 | 2 years ago |
|
ee4bec5b4c | 2 years ago |
|
2589a7652c | 2 years ago |
|
968d858c19 | 2 years ago |
|
a6865ced31 | 2 years ago |
|
80c92432f2 | 2 years ago |
|
0c396fa28b | 2 years ago |
|
47d4449aa3 | 2 years ago |
|
3c3244ac3b | 2 years ago |
|
9ef4073c7a | 2 years ago |
|
acc2d660c7 | 2 years ago |
|
38a4167750 | 2 years ago |
|
06e5aa6a14 | 2 years ago |
|
2e0232fefd | 2 years ago |
|
766dbb3dff | 2 years ago |
|
630fefeee3 | 2 years ago |
|
f1059dfc63 | 2 years ago |
|
bde835f158 | 2 years ago |
|
9116ac6818 | 2 years ago |
|
c4d79754fc | 2 years ago |
|
c845856670 | 2 years ago |
|
d73b5785f7 | 2 years ago |
|
03b1acd038 | 2 years ago |
|
b193c11482 | 2 years ago |
|
d86da88547 | 2 years ago |
|
ebd30f75c0 | 2 years ago |
|
0d37e7941b | 2 years ago |
|
6eb8ea49d5 | 2 years ago |
|
d4e8e85fae | 2 years ago |
|
72c5db5148 | 2 years ago |
|
2d5d76645c | 2 years ago |
|
d652f2bced | 2 years ago |
|
363544489d | 2 years ago |
|
5932b38ab6 | 2 years ago |
|
bd4f51d86b | 2 years ago |
|
1762541655 | 2 years ago |
|
35be443085 | 2 years ago |
|
54d7d72e5a | 2 years ago |
|
1a4550b5ce | 2 years ago |
|
6c88c1ee52 | 2 years ago |
|
c441189e90 | 2 years ago |
|
c564a88a17 | 2 years ago |
|
2a615b798d | 2 years ago |
|
770290b018 | 2 years ago |
|
7da73a5e3d | 2 years ago |
|
c81c8fbe99 | 2 years ago |
|
3e4ad04016 | 2 years ago |
|
fae8ad4456 | 2 years ago |
|
6a364259e0 | 2 years ago |
|
fee31880a6 | 2 years ago |
|
f12c15b3e5 | 2 years ago |
|
c90c14a7d8 | 2 years ago |
|
8a1e44de91 | 2 years ago |
|
8696e9c8f1 | 2 years ago |
|
f3d4717a1b | 2 years ago |
|
8b51f09abf | 2 years ago |
|
641982eddf | 2 years ago |
|
66f5d1f37b | 2 years ago |
|
f1cfa0470e | 2 years ago |
|
335ba4924a | 2 years ago |
|
8ae6ddc493 | 2 years ago |
|
5305971298 | 2 years ago |
|
302d697061 | 2 years ago |
|
17fd6fbea4 | 2 years ago |
|
31a7885559 | 2 years ago |
|
f0b9e45ed7 | 2 years ago |
|
0226ec4e81 | 2 years ago |
|
5ca5b1d819 | 2 years ago |
|
affef7f16e | 2 years ago |
|
2e58e8c649 | 2 years ago |
|
c8e19ddbb5 | 2 years ago |
|
a16c1528ce | 2 years ago |
|
47f6e1df73 | 2 years ago |
|
a3d88da2c3 | 2 years ago |
|
6600509f51 | 2 years ago |
|
ac448c83b5 | 2 years ago |
|
d7a9125e72 | 2 years ago |
|
43de60c1fb | 2 years ago |
|
5ab59d68b2 | 2 years ago |
|
c8fc7d9d55 | 2 years ago |
|
6ba9ab7120 | 2 years ago |
|
51eef809dc | 2 years ago |
|
cdc1b72943 | 2 years ago |
|
3c2c785abc | 2 years ago |
|
0acaa03a64 | 2 years ago |
|
6a97af6731 | 2 years ago |
|
0a676de9c0 | 2 years ago |
|
e0663fbaaf | 2 years ago |
|
b946385fda | 2 years ago |
|
ec427dd59d | 2 years ago |
|
68e8868eb3 | 2 years ago |
|
ea5391f709 | 2 years ago |
|
8bbb98430a | 2 years ago |
|
9854499f5a | 2 years ago |
|
bddfc3489d | 2 years ago |
|
b556c39d0e | 2 years ago |
|
8b200e0a4f | 2 years ago |
|
6dd6cc8edc | 2 years ago |
|
8343a97e29 | 2 years ago |
|
c6d2a6b39d | 2 years ago |
|
c79320d7b0 | 2 years ago |
|
21f2362f82 | 2 years ago |
|
27065fa749 | 2 years ago |
|
305f2357a6 | 2 years ago |
|
16f3012301 | 2 years ago |
|
eca7fb7d9f | 2 years ago |
|
8b59ef4f95 | 2 years ago |
|
5939f05ad7 | 2 years ago |
|
eaa8dcf205 | 2 years ago |
|
4ba471d1ec | 2 years ago |
|
1bea9f0159 | 2 years ago |
|
92d44e469b | 2 years ago |
|
0992f0770a | 2 years ago |
|
143d84024b | 2 years ago |
|
5983a6372d | 2 years ago |
|
9176e0554b | 2 years ago |
|
ee7808d9ee | 2 years ago |
|
b4492efb22 | 2 years ago |
|
830431538d | 2 years ago |
|
e25d1b0795 | 2 years ago |
|
06531ee6e1 | 2 years ago |
|
a87a19f7e1 | 2 years ago |
|
f52a77eab6 | 2 years ago |
|
76551bc25b | 2 years ago |
|
a8fd7f483e | 2 years ago |
|
f664b41473 | 2 years ago |
|
78fec36925 | 2 years ago |
191 changed files with 11142 additions and 1360 deletions
@ -0,0 +1,3 @@ |
|||
{ |
|||
"version": "1.0.71" |
|||
} |
@ -0,0 +1,86 @@ |
|||
// 接口监控看板相关api
|
|||
import axios from 'axios' |
|||
import request from '@/utils/request' |
|||
let filter = 'get-page-list-by-filter' |
|||
let base_api = localStorage.getItem('interfaceBoardUrl') |
|||
let interfaceBoard_api = base_api + 'api/app/' |
|||
// 转义传参
|
|||
const initParams = (data) => { |
|||
return { |
|||
skipCount:data.SkipCount, |
|||
maxResultCount:data.MaxResultCount, |
|||
sorting:data.Sorting |
|||
} |
|||
} |
|||
|
|||
//外部数据转换
|
|||
export function dataExchangeFromOut(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'outgoing-to-external', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//归档外部数据转换
|
|||
export function dataExchangeFromOut_file(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'archived-outgoing-to-external', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//wms数据接收
|
|||
export function comingToWms(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'incoming-to-wms', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//归档wms数据接收
|
|||
export function comingToWms_file(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'archived-incoming-to-wms', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//wms数据转换
|
|||
export function dataExchangeFromWms(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'data-exchange_Outgoing-from-wms', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
// 归档wms数据转换
|
|||
export function dataExchangeFromWms_file(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'data-exchange_Archived-outgoing-from-wms', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//外部数据接收
|
|||
export function comingFromOut(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'data-exchange_Incoming-from-external', |
|||
params:initParams(data) |
|||
}) |
|||
} |
|||
|
|||
//归档外部数据接收
|
|||
export function comingFromOut_file(data) { |
|||
return axios({ |
|||
method:'get', |
|||
url: interfaceBoard_api + 'data-exchange_Archived-incoming-from-external', |
|||
params:initParams(data) |
|||
}) |
|||
} |
@ -0,0 +1,56 @@ |
|||
import Vue from 'vue' |
|||
import VueI18n from 'vue-i18n' |
|||
import Cookies from 'js-cookie' |
|||
// import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
|
|||
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
|
|||
// import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
|
|||
// import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang
|
|||
// import enLocale from './en'
|
|||
import zhLocale from './zh' |
|||
// import esLocale from './es'
|
|||
// import jaLocale from './ja'
|
|||
|
|||
Vue.use(VueI18n) |
|||
|
|||
const messages = { |
|||
// en: {
|
|||
// ...enLocale,
|
|||
// ...elementEnLocale
|
|||
// },
|
|||
zh: { |
|||
...zhLocale, |
|||
...elementZhLocale |
|||
}, |
|||
// es: {
|
|||
// ...esLocale,
|
|||
// ...elementEsLocale
|
|||
// },
|
|||
// ja: {
|
|||
// ...jaLocale,
|
|||
// ...elementJaLocale
|
|||
// }
|
|||
} |
|||
export function getLanguage() { |
|||
const chooseLanguage = Cookies.get('language') |
|||
if (chooseLanguage) return chooseLanguage |
|||
|
|||
// if has not choose language
|
|||
const language = (navigator.language || navigator.browserLanguage).toLowerCase() |
|||
const locales = Object.keys(messages) |
|||
for (const locale of locales) { |
|||
if (language.indexOf(locale) > -1) { |
|||
return locale |
|||
} |
|||
} |
|||
//return 'en'
|
|||
return 'zh' |
|||
} |
|||
const i18n = new VueI18n({ |
|||
// set locale
|
|||
// options: en | zh | es
|
|||
locale: getLanguage(), |
|||
// set locale messages
|
|||
messages |
|||
}) |
|||
|
|||
export default i18n |
@ -0,0 +1,117 @@ |
|||
export default { |
|||
// 字段通用
|
|||
ColumsPublic:{ |
|||
id:'ID', |
|||
remark:'备注', |
|||
description:'描述', |
|||
status:'状态', |
|||
type:'类型', |
|||
creationTime:'创建时间', |
|||
creatorId:'创建者ID', |
|||
lastModificationTime:'上次修改时间', |
|||
lastModifierId:'上次修改者ID', |
|||
beginTime:'开始时间', |
|||
endTime:'结束时间', |
|||
operation:'操作', |
|||
}, |
|||
|
|||
// 所有字段(除了接口监控看板)
|
|||
ColumsNames:{ |
|||
itemCode:'物品代码', |
|||
itemName:'物品名称', |
|||
itemDesc1:'物品描述', |
|||
itemDesc2:'物品描述2', |
|||
abcClass:'ABC类', |
|||
canMake:'制造件', |
|||
canBuy:'采购件', |
|||
canOutsourcing:'外包件', |
|||
isRecycled:'回收件', |
|||
isPhantom:'是否虚拟物件', |
|||
productLine:'产品类', |
|||
elevel:'Elevel', |
|||
color:'颜色', |
|||
category:'种类', |
|||
group:'分组', |
|||
configuration:'配置', |
|||
basicUom:'基本计量单位', |
|||
stdPackQty:'标包数', |
|||
project:'项目', |
|||
version:'版本', |
|||
eco:'工程变革', |
|||
validity:'有效期', |
|||
validityUnit:'有效期单位', |
|||
manageType:'管理类型', |
|||
supplierCode:'供应商代码', |
|||
inspectType:'检验类型', |
|||
categoryCode:'分类代码', |
|||
categoryValue:'分类值', |
|||
packCode:'包装代码', |
|||
packName:'包装名称', |
|||
packType:'包装类型', |
|||
packQty:'包装数量', |
|||
packBasicUom:'包装计量单位', |
|||
ceilingQty:'数量上限', |
|||
floorQty:'数量下限', |
|||
isUsePercent:'使用百分比', |
|||
samplePercent:'抽检百分比', |
|||
sampleQty:'抽检数量', |
|||
productCode:'父物品号', |
|||
componentCode:'子物品号', |
|||
componentQty:'子物品用量', |
|||
componentUom:'子物品用量单位', |
|||
erpOp:'ERP工序', |
|||
mfgOp:'制造工序', |
|||
distributionType:'配送方式', |
|||
truncType:'取整方式', |
|||
plannedSplitRule:'计划拆分规则', |
|||
layer:'层级', |
|||
tenantId:'事务ID', |
|||
customerCode:'客户代码', |
|||
customerName:'客户名称', |
|||
customerShortName:'客户简称', |
|||
customerItemCode:'客户物品代码', |
|||
customerPackQty:'客户包装数量', |
|||
customerPackUom:'客户包装数量单位', |
|||
customerAdrName:'客户地址名称', |
|||
customerAdrCode:'客户地址代码', |
|||
contact:'联系人', |
|||
phone:'电话', |
|||
fax:'传真', |
|||
postID:'邮编', |
|||
address:'地址', |
|||
country:'国家', |
|||
city:'城市', |
|||
currency:'货币', |
|||
warehouseCode:'仓库', |
|||
locationCode:'库位代码', |
|||
projectCode:'项目代码', |
|||
projectName:'项目名称', |
|||
}, |
|||
|
|||
// 接口监控看板
|
|||
ColumsDashboard:{ |
|||
number:'编号', |
|||
dataType:'数据类型', |
|||
tableType:'数据表类型', |
|||
dataAction:'数据动作', |
|||
effectiveDate:'生效时间', |
|||
status:'数据状态', |
|||
dataIdentityCode:'数据识别码', |
|||
dataContent:'数据内容', |
|||
sourceSystem:'来源系统', |
|||
sourceDataId:'来源数据ID', |
|||
sourceDataGroupCode:'来源数据组码', |
|||
sourceDataDetailCode:'来源数据明细码', |
|||
sourceDataContent:'来源数据内容', |
|||
writeTime:'写入时间', |
|||
writer:'写入者', |
|||
destinationSystem:'目标系统', |
|||
destinationDataId:'目标数据ID', |
|||
destinationDataContent:'目标数据内容', |
|||
readTime:'读取时间', |
|||
reader:'读取者', |
|||
errorCode:'错误代码', |
|||
errorMessage:'错误信息', |
|||
retryTimes:'重试次数', |
|||
} |
|||
} |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,35 @@ |
|||
/** |
|||
* 检测版本更新 触发机制在 news/index 中 跟随消息定时器一并触发 |
|||
*/ |
|||
import Vue from 'vue' |
|||
import { getVsersion } from '@/api/wms-api' |
|||
export function updateVersion () { |
|||
let versionConfig = '' |
|||
// dev模式不开启更新功能
|
|||
if (window.SITE_CONFIG['versionUrl'] && process.env.NODE_ENV != 'development') { |
|||
getVsersion().then(res => { |
|||
versionConfig = res.version |
|||
if (versionConfig) { |
|||
let version = localStorage.getItem('upDateVersion') |
|||
if (version != versionConfig) { |
|||
localStorage.setItem('upDateVersion', versionConfig) |
|||
setTimeout(() => { |
|||
save() |
|||
}, 1000 * 3) |
|||
} |
|||
} |
|||
}).catch(err => { |
|||
console.log(err) |
|||
}) |
|||
} |
|||
} |
|||
function save () { |
|||
var vm = new Vue() |
|||
vm.$message.warning('新版本发布,自动更新升级中') |
|||
setTimeout(() => { |
|||
vm.$message.success('更新完成') |
|||
}, 1000 * 3) |
|||
setTimeout(() => { |
|||
location.reload() |
|||
}, 1000 * 5) |
|||
} |
@ -1,20 +1,19 @@ |
|||
<template> |
|||
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe> |
|||
<!-- 到货信息指示屏 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
data() { |
|||
return { |
|||
url:null |
|||
} |
|||
}, |
|||
activated () { |
|||
// this.url = localStorage.getItem('largeScreen') + '/#/arrivalBoard' |
|||
this.goto() |
|||
name:"arrivalBoard", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods: { |
|||
goto(){ |
|||
window.open(localStorage.getItem('largeScreen') + "/#/arrivalBoard", "_blank") |
|||
openHandle(){ |
|||
createNewTabs(localStorage.getItem('largeScreen') + "/#/arrivalBoard") |
|||
} |
|||
}, |
|||
} |
|||
|
@ -1,20 +1,19 @@ |
|||
<template> |
|||
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe> |
|||
<!-- 物流时刻目视表 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
data() { |
|||
return { |
|||
url:null |
|||
} |
|||
}, |
|||
activated () { |
|||
// this.url = localStorage.getItem('largeScreen') + '/#/logisticsTimeBoard' |
|||
this.goto() |
|||
name:"logisticsTimeBoard", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods: { |
|||
goto(){ |
|||
window.open(localStorage.getItem('largeScreen') + "/#/logisticsTimeBoard", "_blank") |
|||
openHandle(){ |
|||
createNewTabs(localStorage.getItem('largeScreen') + "/#/logisticsTimeBoard") |
|||
} |
|||
}, |
|||
} |
|||
|
@ -1,20 +1,19 @@ |
|||
<template> |
|||
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe> |
|||
<!-- 纳入计划与实际 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
data() { |
|||
return { |
|||
url:null |
|||
} |
|||
}, |
|||
activated () { |
|||
// this.url = localStorage.getItem('largeScreen') + '/#/planAndActualBoard' |
|||
this.goto() |
|||
name:"planAndActualBoard", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods: { |
|||
goto(){ |
|||
window.open(localStorage.getItem('largeScreen') + "/#/planAndActualBoard", "_blank") |
|||
openHandle(){ |
|||
createNewTabs(localStorage.getItem('largeScreen') + "/#/planAndActualBoard") |
|||
} |
|||
}, |
|||
} |
|||
|
@ -1,20 +1,19 @@ |
|||
<template> |
|||
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe> |
|||
<!-- 库房信息指示屏 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
data() { |
|||
return { |
|||
url:null |
|||
} |
|||
}, |
|||
activated () { |
|||
// this.url = localStorage.getItem('largeScreen') + '/#/warehouseBoard' |
|||
this.goto() |
|||
name:"warehouseBoard", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods: { |
|||
goto(){ |
|||
window.open(localStorage.getItem('largeScreen') + "/#/warehouseBoard", "_blank") |
|||
openHandle(){ |
|||
createNewTabs(localStorage.getItem('largeScreen') + "/#/warehouseBoard") |
|||
} |
|||
}, |
|||
} |
|||
|
@ -0,0 +1,27 @@ |
|||
<template> |
|||
<div class="popUpPage"> |
|||
<span class="tipper">该页面已在外部弹出</span> |
|||
<el-button @click="openHandle" type="primary">重新打开</el-button> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name:"popUpPage", |
|||
props:{ |
|||
openHandle: { |
|||
type: Function, |
|||
default: null |
|||
}, |
|||
}, |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.popUpPage{ |
|||
width: 100%; |
|||
text-align: center; |
|||
padding-top: 20%; |
|||
.tipper{ |
|||
padding-right: 20px; |
|||
} |
|||
} |
|||
</style> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 库存账龄分段汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryAgingSegmentSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventoryAgingSegmentSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryAgingSegmentSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,24 @@ |
|||
<template> |
|||
<!-- 库存流水帐明细 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryBookDetail", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventoryBookDetail, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
let _url = window.location.href.slice(0,window.location.href.indexOf('/#/')) |
|||
let _page = _url + '/#/InventoryBookDetail_innerPage?title=' + this.$route.meta.title |
|||
createNewTabs(_page) |
|||
// createNewTabs(reportsAddress.InventoryBookDetail + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,609 @@ |
|||
<template> |
|||
<div class="InventoryBookDetail_innerPage" v-loading="loading"> |
|||
<!-- 全部展示优化一半 --> |
|||
<!-- 搜索 --> |
|||
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader"> |
|||
<el-form-item label="ERP储位" prop="erpLocatioCode"> |
|||
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="零件" prop="itemCode"> |
|||
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="账期" prop="interfaceCalendar"> |
|||
<el-select |
|||
:loading="calendarLoading" |
|||
@change="calendarChange" |
|||
v-model="searchForm.interfaceCalendar" |
|||
placeholder="请选择账期" |
|||
> |
|||
<el-option |
|||
v-for="item in calendarList" |
|||
:key="item.id" |
|||
:label="item.name" |
|||
:value="item.id" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="开始时间" prop="beginDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.beginDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="结束时间" prop="endDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.endDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="searchHandle">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- table --> |
|||
<div class="tableContent" v-if="tableData"> |
|||
<ul class="tableHeader"> |
|||
<li>{{tableHeader.companyName}}</li> |
|||
<li><span class="tableName">库存流水帐 (料品)</span></li> |
|||
<li class="timeLi"> |
|||
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div> |
|||
<div class="item">制表日期:{{ getNow() }}</div> |
|||
</li> |
|||
</ul> |
|||
<!-- :span-method="verticalMergeCell" --> |
|||
<el-table |
|||
height="calc(100vh - 180px)" |
|||
:data="tableData" |
|||
class="tableEl" |
|||
:row-class-name="tableRowClass" |
|||
> |
|||
<!-- <el-table-column type="index" label="序号"></el-table-column> --> |
|||
<!-- :show-overflow-tooltip="true" --> |
|||
<el-table-column |
|||
v-for="(item,key) in tableTh" |
|||
:prop="item.prop" |
|||
:label="item.label" |
|||
:align="item.prop.toLowerCase().indexOf('qty') >= 0 ? 'right' : 'left'" |
|||
:width="item.width" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.total_erp || scope.row.total_erp2 || scope.row.total_item"> |
|||
<div v-if="scope.row.total_erp2"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: blue;font-weight:bold">库位小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp2[item.prop]}}</span> |
|||
</div> |
|||
<div v-if="scope.row.total_erp"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: #ff6000;font-weight:bold">储位小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp[item.prop]}}</span> |
|||
</div> |
|||
<div v-if="scope.row.total_item"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: #24b924;font-weight:bold">物料小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_item[item.prop]}}</span> |
|||
</div> |
|||
</div> |
|||
<div v-else> |
|||
<div v-if="item.prop == 'itemCode'"> |
|||
<div>物料代码:<br/>【{{ scope.row.level1[item.prop] }}】</div> |
|||
<br/> |
|||
<div>物料名称:<br/>【{{ scope.row.level1.itemName }}】</div> |
|||
<br/> |
|||
<div>物料描述1:<br/>【{{ scope.row.level1.itemDesc1 }}】</div> |
|||
<br/> |
|||
<div v-if="scope.row.level1.configuration">配置码:<br/>【{{ scope.row.level1.configuration }}】</div> |
|||
</div> |
|||
<div v-else-if="item.prop == 'erpLocatioCode'">{{ scope.row.level2[item.prop] }}</div> |
|||
<div v-else> |
|||
<div v-if="scope.row.level4"> |
|||
<div v-if="item.prop == 'sumInQty'">{{ scope.row.level4.inQty }}</div> |
|||
<div v-else-if="item.prop == 'sumOutQty'">{{ scope.row.level4.outQty }}</div> |
|||
<div v-else-if="item.prop == 'createDateTime'">{{ formatTime(scope.row.level4.createDateTime) }}</div> |
|||
<div v-else-if="item.prop == 'locationCode'">{{ scope.row.level4.locatioCode }}</div> |
|||
<div v-else-if="item.prop == 'interFaceName'">{{getInterFaceName(scope.row.level4)}}</div> |
|||
<div v-else-if="item.prop == 'enumTransType' || item.prop == 'enumTransSubType'">{{ scope.row.level4[item.prop] | trigger(item.option, "label") }}</div> |
|||
<div v-else>{{ scope.row.level4[item.prop] }}</div> |
|||
</div> |
|||
<div v-else>{{ scope.row.level3[item.prop] }}</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api' |
|||
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime' |
|||
export default { |
|||
name:"InventoryBookDetail_innerPage", |
|||
data(){ |
|||
return{ |
|||
loading:false,//页面加载 |
|||
calendarLoading:false,//账期下拉加载 |
|||
tableData:null,//table数据 |
|||
calendarList:[],//账期下拉列表 |
|||
// 查询字段 |
|||
searchForm:{ |
|||
interfaceCalendar:null, |
|||
erpLocatioCode:null, |
|||
itemCode:null,//VW316C1A028A,UTT06PP5483 |
|||
beginDate: '',//2021-10-01 |
|||
endDate: '',//2023-11-28T23:59:59 |
|||
}, |
|||
// 查询必填项 |
|||
formRule: { |
|||
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
// itemCode: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
// table账单表头 |
|||
tableHeader:{ |
|||
beginDate: '', |
|||
endDate: '', |
|||
companyName:localStorage.getItem('companyName') |
|||
}, |
|||
// table标头 |
|||
tableTh:[ |
|||
{label:'物料信息',prop:'itemCode',width:180}, |
|||
{label:'ERP储位',prop:'erpLocatioCode',width:80}, |
|||
{label:'库位代码',prop:'locationCode',width:90}, |
|||
{label:'单号',prop:'number',width:170}, |
|||
{label:'创建时间',prop:'createDateTime',width:160}, |
|||
{label:'业务编号',prop:'docNumber',width:140}, |
|||
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase'}, |
|||
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType'}, |
|||
{label:'对应接口',prop:'interFaceName',width:220}, |
|||
{label:'期初库存',prop:'firstQty'}, |
|||
{label:'入库',prop:'sumInQty'}, |
|||
{label:'出库',prop:'sumOutQty'}, |
|||
{label:'结存',prop:'nowQty'}, |
|||
{label:'期末库存',prop:'lastQty'}, |
|||
], |
|||
totalProps:['firstQty','lastQty','nowQty','sumInQty','sumOutQty'],// 小结显示的字段 |
|||
indexArray_item: [], //itemCode 存储所有合并的行号 |
|||
indexArray_erp: [], //erpLocatioCode 存储所有合并的行号 |
|||
indexArray_erp2: [], //locationCode 存储所有合并的行号 |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.getInterfaceCalendarList() |
|||
}, |
|||
methods:{ |
|||
// 格式化时间 |
|||
formatTime(data){ |
|||
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T') |
|||
return formatTimeStrToStr(data) |
|||
}, |
|||
// 获取账期下拉 |
|||
getInterfaceCalendarList(){ |
|||
this.calendarLoading = true |
|||
let _data = { |
|||
condition: { |
|||
filters: [] |
|||
}, |
|||
Sorting: "code DESC", |
|||
SkipCount: 0, |
|||
MaxResultCount: 1000 |
|||
} |
|||
getInterfaceCalendar(_data).then(res => { |
|||
this.calendarList=res.items |
|||
this.calendarLoading = false |
|||
}).catch(err => { |
|||
this.calendarLoading = false |
|||
}) |
|||
}, |
|||
// 账期更改 |
|||
calendarChange(id){ |
|||
let _item = this.calendarList.filter(item=>{ |
|||
return item.id == id |
|||
})[0] |
|||
this.searchForm.beginDate = _item.beginTime |
|||
this.searchForm.endDate = _item.endTime |
|||
}, |
|||
// 时间更改 |
|||
timeChange(data){ |
|||
if(data){ |
|||
this.searchForm.interfaceCalendar = "" |
|||
} |
|||
}, |
|||
// 查询事件 |
|||
searchHandle(){ |
|||
this.$refs.searchForm.validate((valid) => { |
|||
if (valid) { |
|||
this.getTableData() |
|||
} else { |
|||
return false; |
|||
} |
|||
}); |
|||
}, |
|||
// 年月转义 |
|||
getYearMonth(date){ |
|||
return date.replaceAll('-',"").slice(0,8) |
|||
}, |
|||
// 获取当前时间 |
|||
getNow(){ |
|||
return formatTimeStampToNorm(new Date(),'date') |
|||
}, |
|||
// 表格数据转义 |
|||
initTableData(res){ |
|||
let _list = [] |
|||
res.forEach(item1 => { |
|||
// item1.cellLength = 0 |
|||
item1.reportErpLocationSerialDtos.forEach((item2,index2) => { |
|||
item2.reportLocationSerialDtos.forEach((item3,index3)=>{ |
|||
// 如果有第四层 |
|||
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){ |
|||
item3.reportTransactionSerialDtos.forEach((item4,index4)=>{ |
|||
let _item = { |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
level4:item4, |
|||
} |
|||
_list.push(_item) |
|||
// item1.cellLength ++ |
|||
// 如果有第四层添加库位小计 |
|||
if(index4 == item3.reportTransactionSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
level4:item4, |
|||
total_erp2:item3 |
|||
}) |
|||
// item1.cellLength ++ |
|||
} |
|||
}) |
|||
}else{ |
|||
let _item = { |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
} |
|||
_list.push(_item) |
|||
item1.cellLength ++ |
|||
// 如果没有第四层添加库位小计 |
|||
// if(index3 == item2.reportLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
total_erp2:item3 |
|||
}) |
|||
item1.cellLength ++ |
|||
// } |
|||
} |
|||
// 添加储位小计 |
|||
if(index3 == item2.reportLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
// level3:item3, |
|||
level3:{locationCode:null}, |
|||
total_erp:item2, |
|||
}) |
|||
// item1.cellLength ++ |
|||
} |
|||
}) |
|||
// 添加物料小计 |
|||
if(index2 == item1.reportErpLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
// level2:item2, |
|||
// level3:{locationCode:null}, |
|||
level2:{erpLocatioCode:null}, |
|||
level3:{locationCode:null},//此处为了合并单元格做模拟locationCode处理 |
|||
total_item:item1, |
|||
}) |
|||
// item1.cellLength ++ |
|||
} |
|||
}) |
|||
}); |
|||
return _list |
|||
}, |
|||
// 格式化结束时间(格式:T23:59:59) |
|||
initEndTime(data){ |
|||
let _time = "" |
|||
if(data.indexOf('T') >= 0){ |
|||
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59' |
|||
}else{ |
|||
_time = data + 'T23:59:59' |
|||
} |
|||
return _time |
|||
}, |
|||
// 获取表格数据 |
|||
getTableData(){ |
|||
this.loading = true |
|||
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : [] |
|||
|
|||
getInventoryTransactionSerials( |
|||
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`, |
|||
_itemCodes |
|||
).then(res => { |
|||
this.tableData = null |
|||
this.tableHeader.beginDate = this.searchForm.beginDate |
|||
this.tableHeader.endDate = this.searchForm.endDate |
|||
console.log(res) |
|||
this.$nextTick(() => { |
|||
this.tableData = this.initTableData(res) |
|||
// this.getIndexArr() |
|||
this.loading = false |
|||
}) |
|||
}).catch(err => { |
|||
this.loading = false |
|||
}) |
|||
}, |
|||
// 样式class |
|||
tableRowClass(data){ |
|||
if(data.row.total_erp2){ |
|||
return "totalRow" |
|||
} |
|||
if(data.row.total_erp){ |
|||
return "totalRow-red" |
|||
} |
|||
if(data.row.total_item){ |
|||
return "totalRow-green" |
|||
} |
|||
}, |
|||
// 获取合并单元格行 |
|||
getIndexArr(){ |
|||
// 合并 itemCode |
|||
let count_item = 0 |
|||
// console.log(357,this.tableData) |
|||
for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
this.indexArray_item.push(rowIndex) |
|||
count_item = this.getRows(rowIndex, this.tableData[rowIndex].level1.itemCode,'itemCode','level1') |
|||
rowIndex += count_item |
|||
} |
|||
// console.log(362,this.indexArray_item) |
|||
|
|||
// // 合并 erpLocatioCode |
|||
// let count_erp = 0 |
|||
// for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
// this.indexArray_erp.push(rowIndex) |
|||
// count_erp = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2') |
|||
// rowIndex += count_erp |
|||
// } |
|||
|
|||
// // 合并 locationCode |
|||
// let count_erp2 = 0 |
|||
// for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
// this.indexArray_erp2.push(rowIndex) |
|||
// count_erp2 = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3') |
|||
// rowIndex += count_erp2 |
|||
// } |
|||
}, |
|||
// 获取合并单元格行数 |
|||
getRows(rowIndex, name,prop,level) { |
|||
let count = 0 |
|||
for (let i = rowIndex; i < this.tableData.length; i++) { |
|||
if (this.tableData[i][level][prop] == name) { |
|||
count++ |
|||
} else { |
|||
break |
|||
} |
|||
} |
|||
return count |
|||
}, |
|||
// 合并单元格 |
|||
verticalMergeCell({ row, column, rowIndex, columnIndex }) { |
|||
// 合并 itemCode |
|||
if (columnIndex == 0) { |
|||
let rowCount = 0 |
|||
if (this.indexArray_item.includes(rowIndex)) { |
|||
// console.log('length',rowIndex,this.tableData.length) |
|||
// rowCount = this.getRows(rowIndex, row.level1.itemCode, 'itemCode','level1') |
|||
rowCount = row.level1.cellLength |
|||
// console.log(390,rowCount) |
|||
return { |
|||
rowspan: rowCount, |
|||
colspan: 1 |
|||
} |
|||
} else { |
|||
return { |
|||
rowspan: 0, |
|||
colspan: 0 |
|||
} |
|||
} |
|||
} |
|||
// 合并 erpLocatioCode |
|||
// if (columnIndex == 1) { |
|||
// let rowCount = 0 |
|||
// if (this.indexArray_erp.includes(rowIndex)) { |
|||
// rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2') |
|||
// return { |
|||
// rowspan: rowCount, |
|||
// colspan: 1 |
|||
// } |
|||
// } else { |
|||
// return { |
|||
// rowspan: 0, |
|||
// colspan: 0 |
|||
// } |
|||
// } |
|||
// } |
|||
// // 合并 locationCode |
|||
// if (columnIndex == 2) { |
|||
// let rowCount = 0 |
|||
// if (this.indexArray_erp2.includes(rowIndex)) { |
|||
// rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3') |
|||
// return { |
|||
// rowspan: rowCount, |
|||
// colspan: 1 |
|||
// } |
|||
// } else { |
|||
// return { |
|||
// rowspan: 0, |
|||
// colspan: 0 |
|||
// } |
|||
// } |
|||
// } |
|||
}, |
|||
// 转义【对应接口】 |
|||
getInterFaceName(item){ |
|||
let _str = "" |
|||
if (item.enumTransType == 11) { |
|||
_str = '【TYRP】-【采购单】' |
|||
} else if (item.enumTransType == 12) { |
|||
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【验收单】*【EOS】-【验收单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 16) { |
|||
_str = '【TYRP】-【线边仓退料单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 21) { |
|||
_str = '【TYRP】-【缴库单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23) { |
|||
_str = '【TYRP】-【非生产领料单】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【非生产退料】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) { |
|||
_str = '【TYRP】-【回收料入库单】' |
|||
} else if (item.enumTransType == 22) { |
|||
_str = '【TYRP】-【退拆单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【盘点调整单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) { |
|||
_str = '【TYRP】-【线边仓调整单】' |
|||
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) { |
|||
_str = '【TYRP】-【回收料调整单】' |
|||
} else if (item.enumTransType == 36) { |
|||
_str = '【TYRP】-【报废单、线边仓报废单】' |
|||
} else { |
|||
_str = '' |
|||
} |
|||
return _str |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.InventoryBookDetail_innerPage{ |
|||
background: #fff; |
|||
height: 100%; |
|||
|
|||
.searchHeader{ |
|||
background: #f1f1f1; |
|||
padding: 20px 30px 0; |
|||
border-bottom: 1px solid #dbdbdb; |
|||
|
|||
.el-form-item{ |
|||
margin-right: 25px !important; |
|||
} |
|||
.el-button{ |
|||
background: #205f78 !important; |
|||
border-color: #ddd; |
|||
border-radius: 2px; |
|||
} |
|||
|
|||
.el-form-item__label{ |
|||
font-weight: normal; |
|||
} |
|||
|
|||
.el-input__inner{ |
|||
border-radius: 0px !important; |
|||
background: #ddd !important; |
|||
} |
|||
|
|||
.el-input__inner:focus, |
|||
.el-input__inner:hover{ |
|||
border-color: #ddd; |
|||
} |
|||
} |
|||
|
|||
.tableHeader{ |
|||
list-style: none; |
|||
text-align: center; |
|||
height: 80px; |
|||
overflow: hidden; |
|||
margin: 10px 0; |
|||
|
|||
.tableName{ |
|||
letter-spacing: 10px; |
|||
border-bottom: #333 solid 1px; |
|||
padding: 0 15px; |
|||
font-size: 18px; |
|||
} |
|||
|
|||
.timeLi{ |
|||
display: flex; |
|||
justify-content: center; |
|||
|
|||
.item{ |
|||
margin: 0 10px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.tableEl{ |
|||
width: 100%; |
|||
margin: 0px auto; |
|||
// background: transparent !important; |
|||
|
|||
.el-table__cell{ |
|||
vertical-align: initial !important; |
|||
padding: 5px 0 !important; |
|||
background: transparent !important; |
|||
} |
|||
|
|||
tr{ |
|||
background: transparent !important; |
|||
border: none !important; |
|||
} |
|||
|
|||
th.el-table__cell{ |
|||
padding: 0 !important; |
|||
color: #000 !important; |
|||
border: none !important; |
|||
border-bottom: #333 solid 1px !important; |
|||
.cell{ |
|||
vertical-align: bottom !important; |
|||
} |
|||
} |
|||
|
|||
td{ |
|||
border: none !important; |
|||
color: #000 !important; |
|||
} |
|||
|
|||
.totalRow{ |
|||
td{ |
|||
border-top: blue dashed 1px !important; |
|||
} |
|||
} |
|||
|
|||
.totalRow-red{ |
|||
td{ |
|||
border-top: #ff6000 solid 1px !important; |
|||
} |
|||
} |
|||
.totalRow-green{ |
|||
td{ |
|||
border-top: #24b924 solid 1px !important; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,464 @@ |
|||
<template> |
|||
<div class="InventoryBookDetail_innerPage" v-loading="loading"> |
|||
<!-- 搜索 --> |
|||
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader"> |
|||
<el-form-item label="ERP储位" prop="erpLocatioCode"> |
|||
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="零件" prop="itemCode"> |
|||
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="账期" prop="interfaceCalendar"> |
|||
<el-select |
|||
:loading="calendarLoading" |
|||
@change="calendarChange" |
|||
v-model="searchForm.interfaceCalendar" |
|||
placeholder="请选择账期" |
|||
> |
|||
<el-option |
|||
v-for="item in calendarList" |
|||
:key="item.id" |
|||
:label="item.name" |
|||
:value="item.id" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="开始时间" prop="beginDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.beginDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="结束时间" prop="endDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.endDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="searchHandle">查询</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item> |
|||
<el-button type="primary" @click="closeAll">全部收起</el-button> |
|||
</el-form-item> --> |
|||
</el-form> |
|||
<!-- table --> |
|||
<div class="tableContent" v-if="tableData && !loading"> |
|||
<ul class="tableHeader"> |
|||
<li>{{tableHeader.companyName}}</li> |
|||
<li><span class="tableName">库存流水帐 (料品)</span></li> |
|||
<li class="timeLi"> |
|||
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div> |
|||
<div class="item">制表日期:{{ getNow() }}</div> |
|||
</li> |
|||
</ul> |
|||
<el-table |
|||
stripe |
|||
height="calc(100vh - 180px)" |
|||
:data="tableData" |
|||
class="tableEl" |
|||
row-key="id" |
|||
:expand-row-keys="expandRows" |
|||
lazy |
|||
:load="load" |
|||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
|||
> |
|||
<el-table-column |
|||
v-for="(item,key) in tableTh" |
|||
:prop="item.prop" |
|||
:label="item.label" |
|||
:width="item.width" |
|||
:align="(item.prop).toLowerCase().indexOf('qty') >=0 ? 'right' : 'left'" |
|||
></el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api' |
|||
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime' |
|||
export default { |
|||
name:"InventoryBookDetail_innerPage", |
|||
data(){ |
|||
return{ |
|||
expandRows:[], |
|||
loading:false,//页面加载 |
|||
calendarLoading:false,//账期下拉加载 |
|||
tableData:null,//table数据 |
|||
calendarList:[],//账期下拉列表 |
|||
// 查询字段 |
|||
searchForm:{ |
|||
interfaceCalendar:null, |
|||
erpLocatioCode:'', |
|||
itemCode:null,//VW316C1A028A,UTT06PP5483 |
|||
beginDate: '',//2021-10-01 |
|||
endDate: '',//2023-11-28T23:59:59 |
|||
}, |
|||
// 查询必填项 |
|||
formRule: { |
|||
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
// itemCode: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
// table账单表头 |
|||
tableHeader:{ |
|||
beginDate: '', |
|||
endDate: '', |
|||
companyName:localStorage.getItem('companyName') |
|||
}, |
|||
// table标头 |
|||
tableTh:[ |
|||
{label:'物料代码',prop:'itemCode',width:170}, |
|||
{label:'物料名称',prop:'itemName'}, |
|||
{label:'物料描述',prop:'itemDesc1'}, |
|||
{label:'物料配置',prop:'configuration'}, |
|||
{label:'ERP储位',prop:'erpLocatioCode',width:80}, |
|||
{label:'库位代码',prop:'locationCode',width:90}, |
|||
{label:'单号',prop:'number',width:170}, |
|||
{label:'创建时间',prop:'createDateTime',width:160}, |
|||
{label:'业务编号',prop:'docNumber',width:140}, |
|||
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase',width:90}, |
|||
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType',width:90}, |
|||
{label:'对应接口',prop:'interFaceName',width:220}, |
|||
{label:'期初库存',prop:'firstQty'}, |
|||
{label:'入库',prop:'sumInQty'}, |
|||
{label:'出库',prop:'sumOutQty'}, |
|||
{label:'结存',prop:'nowQty'}, |
|||
{label:'期末库存',prop:'lastQty'}, |
|||
], |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.getInterfaceCalendarList() |
|||
}, |
|||
methods:{ |
|||
// closeAll(){ |
|||
// this.loading = true |
|||
// this.expandRows=[] |
|||
// setTimeout(()=>{ |
|||
// this.loading = false |
|||
// },300) |
|||
// }, |
|||
load(tree, treeNode, resolve) { |
|||
// 点击第一层 |
|||
if(tree.reportErpLocationSerialDtos && tree.reportErpLocationSerialDtos.length > 0){ |
|||
tree.reportErpLocationSerialDtos.forEach((item,key)=>{ |
|||
item.id='id2-'+Math.random().toString()+key |
|||
if(item.reportLocationSerialDtos && item.reportLocationSerialDtos.length > 0){ |
|||
item.hasChildren = true |
|||
} |
|||
}) |
|||
resolve(tree.reportErpLocationSerialDtos) |
|||
} |
|||
// 点击第二层 |
|||
if(tree.reportLocationSerialDtos && tree.reportLocationSerialDtos.length > 0){ |
|||
tree.reportLocationSerialDtos.forEach((item,key)=>{ |
|||
item.id='id3-'+Math.random().toString()+key |
|||
if(item.reportTransactionSerialDtos && item.reportTransactionSerialDtos.length > 0){ |
|||
item.hasChildren = true |
|||
} |
|||
}) |
|||
resolve(tree.reportLocationSerialDtos) |
|||
} |
|||
// 点击第三层 |
|||
if(tree.reportTransactionSerialDtos && tree.reportTransactionSerialDtos.length > 0){ |
|||
tree.reportTransactionSerialDtos.forEach((item,key)=>{ |
|||
item.id='id4-'+Math.random().toString()+key; |
|||
item.createDateTime = this.formatTime(item.createDateTime) |
|||
item.interFaceName = this.getInterFaceName(item) |
|||
}) |
|||
resolve(tree.reportTransactionSerialDtos) |
|||
} |
|||
}, |
|||
// 格式化时间 |
|||
formatTime(data){ |
|||
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T') |
|||
return formatTimeStrToStr(data) |
|||
}, |
|||
// 获取账期下拉 |
|||
getInterfaceCalendarList(){ |
|||
this.calendarLoading = true |
|||
let _data = { |
|||
condition: { |
|||
filters: [] |
|||
}, |
|||
Sorting: "code DESC", |
|||
SkipCount: 0, |
|||
MaxResultCount: 1000 |
|||
} |
|||
getInterfaceCalendar(_data).then(res => { |
|||
this.calendarList=res.items |
|||
this.calendarLoading = false |
|||
}).catch(err => { |
|||
this.calendarLoading = false |
|||
}) |
|||
}, |
|||
// 账期更改 |
|||
calendarChange(id){ |
|||
let _item = this.calendarList.filter(item=>{ |
|||
return item.id == id |
|||
})[0] |
|||
this.searchForm.beginDate = _item.beginTime |
|||
this.searchForm.endDate = _item.endTime |
|||
}, |
|||
// 时间更改 |
|||
timeChange(data){ |
|||
if(data){ |
|||
this.searchForm.interfaceCalendar = "" |
|||
} |
|||
}, |
|||
// 查询事件 |
|||
searchHandle(){ |
|||
this.$refs.searchForm.validate((valid) => { |
|||
if (valid) { |
|||
this.getTableData() |
|||
} else { |
|||
return false; |
|||
} |
|||
}); |
|||
}, |
|||
// 年月转义 |
|||
getYearMonth(date){ |
|||
return date.replaceAll('-',"").slice(0,8) |
|||
}, |
|||
// 获取当前时间 |
|||
getNow(){ |
|||
return formatTimeStampToNorm(new Date(),'date') |
|||
}, |
|||
// 格式化结束时间(格式:T23:59:59) |
|||
initEndTime(data){ |
|||
let _time = "" |
|||
if(data.indexOf('T') >= 0){ |
|||
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59' |
|||
}else{ |
|||
_time = data + 'T23:59:59' |
|||
} |
|||
return _time |
|||
}, |
|||
// 表格数据转义 |
|||
initTableData(res){ |
|||
let _list = [] |
|||
res.forEach((item1,key1) => { |
|||
let _item1 = JSON.parse(JSON.stringify(item1)) |
|||
_item1.id='id1-'+key1+'-'+Math.random().toString() |
|||
this.expandRows.push(_item1.id) |
|||
if(item1.reportErpLocationSerialDtos && item1.reportErpLocationSerialDtos.length > 0){ |
|||
// _item1.hasChildren = true |
|||
_item1.children = item1.reportErpLocationSerialDtos |
|||
_list.push(_item1) |
|||
item1.reportErpLocationSerialDtos.forEach((item2,key2)=>{ |
|||
_list[key1].children[key2].id='id2-'+key2+'-'+Math.random().toString() |
|||
this.expandRows.push(_list[key1].children[key2].id) |
|||
if(item2.reportLocationSerialDtos && item2.reportLocationSerialDtos.length > 0){ |
|||
_list[key1].children[key2].children=item2.reportLocationSerialDtos |
|||
item2.reportLocationSerialDtos.forEach((item3,key3)=>{ |
|||
_list[key1].children[key2].children[key3].id='id3-'+key3+'-'+Math.random().toString() |
|||
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){ |
|||
_list[key1].children[key2].children[key3].hasChildren = true |
|||
// item3.reportTransactionSerialDtos.forEach((item4,key4)=>{ |
|||
// _list[key1].children[key2].children[key3].children[key4].id='id4-'+key4+'-'+Math.random().toString() |
|||
// }) |
|||
// _list[key1].children[key2].children[key3].children = item3.reportTransactionSerialDtos |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
else{ |
|||
_list.push(_item1) |
|||
} |
|||
}); |
|||
this.tableData = _list |
|||
}, |
|||
// 获取表格数据 |
|||
getTableData(){ |
|||
this.loading = true |
|||
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : [] |
|||
getInventoryTransactionSerials( |
|||
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`, |
|||
_itemCodes |
|||
).then(res => { |
|||
console.log(res) |
|||
this.tableData = null |
|||
this.tableHeader.beginDate = this.searchForm.beginDate |
|||
this.tableHeader.endDate = this.searchForm.endDate |
|||
this.initTableData(res) |
|||
setTimeout(()=>{ |
|||
this.loading = false |
|||
},0) |
|||
}).catch(err => { |
|||
this.loading = false |
|||
}) |
|||
}, |
|||
// 转义【对应接口】 |
|||
getInterFaceName(item){ |
|||
let _str = "" |
|||
if (item.enumTransType == 11) { |
|||
_str = '【TYRP】-【采购单】' |
|||
} else if (item.enumTransType == 12) { |
|||
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【验收单】*【EOS】-【验收单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 16) { |
|||
_str = '【TYRP】-【线边仓退料单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 21) { |
|||
_str = '【TYRP】-【缴库单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23) { |
|||
_str = '【TYRP】-【非生产领料单】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【非生产退料】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) { |
|||
_str = '【TYRP】-【回收料入库单】' |
|||
} else if (item.enumTransType == 22) { |
|||
_str = '【TYRP】-【退拆单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【盘点调整单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) { |
|||
_str = '【TYRP】-【线边仓调整单】' |
|||
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) { |
|||
_str = '【TYRP】-【回收料调整单】' |
|||
} else if (item.enumTransType == 36) { |
|||
_str = '【TYRP】-【报废单、线边仓报废单】' |
|||
} else { |
|||
_str = '' |
|||
} |
|||
return _str |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.InventoryBookDetail_innerPage{ |
|||
background: #fff; |
|||
height: 100%; |
|||
|
|||
.searchHeader{ |
|||
background: #f1f1f1; |
|||
padding: 20px 30px 0; |
|||
border-bottom: 1px solid #dbdbdb; |
|||
|
|||
.el-form-item{ |
|||
margin-right: 25px !important; |
|||
} |
|||
.el-button{ |
|||
background: #205f78 !important; |
|||
border-color: #ddd; |
|||
border-radius: 2px; |
|||
} |
|||
|
|||
.el-form-item__label{ |
|||
font-weight: normal; |
|||
} |
|||
|
|||
.el-input__inner{ |
|||
border-radius: 0px !important; |
|||
background: #ddd !important; |
|||
} |
|||
|
|||
.el-input__inner:focus, |
|||
.el-input__inner:hover{ |
|||
border-color: #ddd; |
|||
} |
|||
} |
|||
|
|||
.tableHeader{ |
|||
list-style: none; |
|||
text-align: center; |
|||
height: 80px; |
|||
overflow: hidden; |
|||
margin: 10px 0; |
|||
|
|||
.tableName{ |
|||
letter-spacing: 10px; |
|||
border-bottom: #333 solid 1px; |
|||
padding: 0 15px; |
|||
font-size: 18px; |
|||
} |
|||
|
|||
.timeLi{ |
|||
display: flex; |
|||
justify-content: center; |
|||
|
|||
.item{ |
|||
margin: 0 10px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.tableEl{ |
|||
width: 100%; |
|||
margin: 0px auto; |
|||
// background: transparent !important; |
|||
|
|||
.el-table__cell{ |
|||
padding: 5px 0 !important; |
|||
// background: transparent !important; |
|||
} |
|||
|
|||
tr{ |
|||
// background: transparent !important; |
|||
border: none !important; |
|||
} |
|||
|
|||
th.el-table__cell{ |
|||
padding: 0 !important; |
|||
color: #000 !important; |
|||
border: none !important; |
|||
border-bottom: #333 solid 1px !important; |
|||
vertical-align: initial !important; |
|||
|
|||
.cell{ |
|||
vertical-align: bottom !important; |
|||
} |
|||
} |
|||
|
|||
td{ |
|||
border: none !important; |
|||
color: #000 !important; |
|||
} |
|||
|
|||
.totalRow{ |
|||
td{ |
|||
border-top: blue dashed 1px !important; |
|||
} |
|||
} |
|||
|
|||
.totalRow-red{ |
|||
td{ |
|||
border-top: #ff6000 solid 1px !important; |
|||
} |
|||
} |
|||
.totalRow-green{ |
|||
td{ |
|||
border-top: #24b924 solid 1px !important; |
|||
} |
|||
} |
|||
} |
|||
.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{ |
|||
background: #f2f2f2; |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,601 @@ |
|||
<template> |
|||
<div class="InventoryBookDetail_innerPage_old" v-loading="loading"> |
|||
<!-- 修改前 --> |
|||
<!-- 搜索 --> |
|||
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader"> |
|||
<el-form-item label="ERP储位" prop="erpLocatioCode"> |
|||
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="零件" prop="itemCode"> |
|||
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="账期" prop="interfaceCalendar"> |
|||
<el-select |
|||
:loading="calendarLoading" |
|||
@change="calendarChange" |
|||
v-model="searchForm.interfaceCalendar" |
|||
placeholder="请选择账期" |
|||
> |
|||
<el-option |
|||
v-for="item in calendarList" |
|||
:key="item.id" |
|||
:label="item.name" |
|||
:value="item.id" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="开始时间" prop="beginDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.beginDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="结束时间" prop="endDate"> |
|||
<el-date-picker |
|||
@change="timeChange" |
|||
value-format="yyyy-MM-dd" |
|||
v-model="searchForm.endDate" |
|||
type="date" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="searchHandle">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- table --> |
|||
<div class="tableContent" v-if="tableData"> |
|||
<ul class="tableHeader"> |
|||
<li>{{tableHeader.companyName}}</li> |
|||
<li><span class="tableName">库存流水帐 (料品)</span></li> |
|||
<li class="timeLi"> |
|||
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div> |
|||
<div class="item">制表日期:{{ getNow() }}</div> |
|||
</li> |
|||
</ul> |
|||
<el-table |
|||
:data="tableData" |
|||
class="tableEl" |
|||
height="calc(100vh - 180px)" |
|||
:span-method="verticalMergeCell" |
|||
:row-class-name="tableRowClass" |
|||
> |
|||
<!-- <el-table-column type="index" label="序号"></el-table-column> --> |
|||
<el-table-column |
|||
v-for="(item,key) in tableTh" |
|||
:prop="item.prop" |
|||
:label="item.label" |
|||
:align="item.prop.toLowerCase().indexOf('qty') >= 0 ? 'right' : 'left'" |
|||
:width="item.width" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.total_erp || scope.row.total_erp2 || scope.row.total_item"> |
|||
<div v-if="scope.row.total_erp2"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: blue;font-weight:bold">库位小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp2[item.prop]}}</span> |
|||
</div> |
|||
<div v-if="scope.row.total_erp"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: #ff6000;font-weight:bold">储位小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp[item.prop]}}</span> |
|||
</div> |
|||
<div v-if="scope.row.total_item"> |
|||
<span v-if="totalProps[0] == item.prop" style="color: #24b924;font-weight:bold">物料小计:</span> |
|||
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_item[item.prop]}}</span> |
|||
</div> |
|||
</div> |
|||
<div v-else> |
|||
<div v-if="item.prop == 'itemCode'"> |
|||
<div>物料代码:<br/>【{{ scope.row.level1[item.prop] }}】</div> |
|||
<br/> |
|||
<div>物料名称:<br/>【{{ scope.row.level1.itemName }}】</div> |
|||
<br/> |
|||
<div>物料描述1:<br/>【{{ scope.row.level1.itemDesc1 }}】</div> |
|||
<br/> |
|||
<div v-if="scope.row.level1.configuration">配置码:<br/>【{{ scope.row.level1.configuration }}】</div> |
|||
</div> |
|||
<div v-else-if="item.prop == 'erpLocatioCode'">{{ scope.row.level2[item.prop] }}</div> |
|||
<div v-else> |
|||
<div v-if="scope.row.level4"> |
|||
<div v-if="item.prop == 'sumInQty'">{{ scope.row.level4.inQty }}</div> |
|||
<div v-else-if="item.prop == 'sumOutQty'">{{ scope.row.level4.outQty }}</div> |
|||
<div v-else-if="item.prop == 'createDateTime'">{{ formatTime(scope.row.level4.createDateTime) }}</div> |
|||
<div v-else-if="item.prop == 'locationCode'">{{ scope.row.level4.locatioCode }}</div> |
|||
<div v-else-if="item.prop == 'interFaceName'">{{getInterFaceName(scope.row.level4)}}</div> |
|||
<div v-else-if="item.prop == 'enumTransType' || item.prop == 'enumTransSubType'">{{ scope.row.level4[item.prop] | trigger(item.option, "label") }}</div> |
|||
<div v-else>{{ scope.row.level4[item.prop] }}</div> |
|||
</div> |
|||
<div v-else>{{ scope.row.level3[item.prop] }}</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api' |
|||
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime' |
|||
|
|||
export default { |
|||
name:"InventoryBookDetail_innerPage_old", |
|||
data(){ |
|||
return{ |
|||
loading:false,//页面加载 |
|||
calendarLoading:false,//账期下拉加载 |
|||
tableData:null,//table数据 |
|||
calendarList:[],//账期下拉列表 |
|||
// 查询字段 |
|||
searchForm:{ |
|||
interfaceCalendar:null, |
|||
erpLocatioCode:null, |
|||
itemCode:null,//VW316C1A028A,UTT06PP5483 |
|||
beginDate: '',//2021-10-01 |
|||
endDate: '',//2023-11-28T23:59:59 |
|||
}, |
|||
// 查询必填项 |
|||
formRule: { |
|||
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }], |
|||
// itemCode: [{ required: true, trigger: "blur", message: "不可为空" }], |
|||
}, |
|||
// table账单表头 |
|||
tableHeader:{ |
|||
beginDate: '', |
|||
endDate: '', |
|||
companyName:localStorage.getItem('companyName') |
|||
}, |
|||
// table标头 |
|||
tableTh:[ |
|||
{label:'物料信息',prop:'itemCode',width:180}, |
|||
{label:'ERP储位',prop:'erpLocatioCode',width:80}, |
|||
{label:'库位代码',prop:'locationCode',width:90}, |
|||
{label:'单号',prop:'number',width:170}, |
|||
{label:'创建时间',prop:'createDateTime',width:160}, |
|||
{label:'业务编号',prop:'docNumber',width:140}, |
|||
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase'}, |
|||
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType'}, |
|||
{label:'对应接口',prop:'interFaceName',width:220}, |
|||
{label:'期初库存',prop:'firstQty'}, |
|||
{label:'入库',prop:'sumInQty'}, |
|||
{label:'出库',prop:'sumOutQty'}, |
|||
{label:'结存',prop:'nowQty'}, |
|||
{label:'期末库存',prop:'lastQty'}, |
|||
], |
|||
totalProps:['firstQty','lastQty','nowQty','sumInQty','sumOutQty'],// 小结显示的字段 |
|||
indexArray_item: [], //itemCode 存储所有合并的行号 |
|||
indexArray_erp: [], //erpLocatioCode 存储所有合并的行号 |
|||
indexArray_erp2: [], //locationCode 存储所有合并的行号 |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.getInterfaceCalendarList() |
|||
}, |
|||
methods:{ |
|||
// 格式化时间 |
|||
formatTime(data){ |
|||
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T') |
|||
return formatTimeStrToStr(data) |
|||
}, |
|||
// 获取账期下拉 |
|||
getInterfaceCalendarList(){ |
|||
this.calendarLoading = true |
|||
let _data = { |
|||
condition: { |
|||
filters: [] |
|||
}, |
|||
Sorting: "code DESC", |
|||
SkipCount: 0, |
|||
MaxResultCount: 1000 |
|||
} |
|||
getInterfaceCalendar(_data).then(res => { |
|||
this.calendarList=res.items |
|||
this.calendarLoading = false |
|||
}).catch(err => { |
|||
this.calendarLoading = false |
|||
}) |
|||
}, |
|||
// 账期更改 |
|||
calendarChange(id){ |
|||
let _item = this.calendarList.filter(item=>{ |
|||
return item.id == id |
|||
})[0] |
|||
this.searchForm.beginDate = _item.beginTime |
|||
this.searchForm.endDate = _item.endTime |
|||
}, |
|||
// 时间更改 |
|||
timeChange(data){ |
|||
if(data){ |
|||
this.searchForm.interfaceCalendar = "" |
|||
} |
|||
}, |
|||
// 查询事件 |
|||
searchHandle(){ |
|||
this.$refs.searchForm.validate((valid) => { |
|||
if (valid) { |
|||
this.getTableData() |
|||
} else { |
|||
return false; |
|||
} |
|||
}); |
|||
}, |
|||
// 年月转义 |
|||
getYearMonth(date){ |
|||
return date.replaceAll('-',"").slice(0,8) |
|||
}, |
|||
// 获取当前时间 |
|||
getNow(){ |
|||
return formatTimeStampToNorm(new Date(),'date') |
|||
}, |
|||
// 表格数据转义 |
|||
initTableData(res){ |
|||
let _list = [] |
|||
res.forEach(item1 => { |
|||
item1.reportErpLocationSerialDtos.forEach((item2,index2) => { |
|||
item2.reportLocationSerialDtos.forEach((item3,index3)=>{ |
|||
// 如果有第四层 |
|||
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){ |
|||
item3.reportTransactionSerialDtos.forEach((item4,index4)=>{ |
|||
let _item = { |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
level4:item4, |
|||
} |
|||
_list.push(_item) |
|||
// 如果有第四层添加库位小计 |
|||
if(index4 == item3.reportTransactionSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
level4:item4, |
|||
total_erp2:item3 |
|||
}) |
|||
} |
|||
}) |
|||
}else{ |
|||
let _item = { |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
} |
|||
_list.push(_item) |
|||
// 如果没有第四层添加库位小计 |
|||
// if(index3 == item2.reportLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
level3:item3, |
|||
total_erp2:item3 |
|||
}) |
|||
// } |
|||
} |
|||
// 添加储位小计 |
|||
if(index3 == item2.reportLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
level2:item2, |
|||
// level3:item3, |
|||
level3:{locationCode:null}, |
|||
total_erp:item2, |
|||
}) |
|||
} |
|||
}) |
|||
// 添加物料小计 |
|||
if(index2 == item1.reportErpLocationSerialDtos.length - 1){ |
|||
_list.push({ |
|||
level1:item1, |
|||
// level2:item2, |
|||
// level3:{locationCode:null}, |
|||
level2:{erpLocatioCode:null}, |
|||
level3:{locationCode:null},//此处为了合并单元格做模拟locationCode处理 |
|||
total_item:item1, |
|||
}) |
|||
} |
|||
}) |
|||
}); |
|||
return _list |
|||
}, |
|||
// 格式化结束时间(格式:T23:59:59) |
|||
initEndTime(data){ |
|||
let _time = "" |
|||
if(data.indexOf('T') >= 0){ |
|||
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59' |
|||
}else{ |
|||
_time = data + 'T23:59:59' |
|||
} |
|||
return _time |
|||
}, |
|||
// 获取表格数据 |
|||
getTableData(){ |
|||
this.loading = true |
|||
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : [] |
|||
// getInventoryTransactionSerials( |
|||
// _itemCodes,{ |
|||
// startDateTime:this.searchForm.beginDate, |
|||
// endDateTime:this.initEndTime(this.searchForm.endDate), |
|||
// erpLocatioCode:this.searchForm.erpLocatioCode, |
|||
// }).then(res => { |
|||
getInventoryTransactionSerials( |
|||
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`, |
|||
_itemCodes |
|||
).then(res => { |
|||
this.tableData = null |
|||
this.tableHeader.beginDate = this.searchForm.beginDate |
|||
this.tableHeader.endDate = this.searchForm.endDate |
|||
this.$nextTick(() => { |
|||
this.tableData = this.initTableData(res) |
|||
this.getIndexArr() |
|||
this.loading = false |
|||
}) |
|||
}).catch(err => { |
|||
this.loading = false |
|||
}) |
|||
}, |
|||
// 样式class |
|||
tableRowClass(data){ |
|||
if(data.row.total_erp2){ |
|||
return "totalRow" |
|||
} |
|||
if(data.row.total_erp){ |
|||
return "totalRow-red" |
|||
} |
|||
if(data.row.total_item){ |
|||
return "totalRow-green" |
|||
} |
|||
}, |
|||
// 获取合并单元格行 |
|||
getIndexArr(){ |
|||
// 合并 itemCode |
|||
let count_item = 0 |
|||
for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
this.indexArray_item.push(rowIndex) |
|||
count_item = this.getRows(rowIndex, this.tableData[rowIndex].level1.itemCode,'itemCode','level1') |
|||
rowIndex += count_item |
|||
} |
|||
|
|||
// 合并 erpLocatioCode |
|||
let count_erp = 0 |
|||
for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
this.indexArray_erp.push(rowIndex) |
|||
count_erp = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2') |
|||
rowIndex += count_erp |
|||
} |
|||
|
|||
// 合并 locationCode |
|||
let count_erp2 = 0 |
|||
for (let rowIndex = 0; rowIndex < this.tableData.length; ) { |
|||
this.indexArray_erp2.push(rowIndex) |
|||
count_erp2 = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3') |
|||
rowIndex += count_erp2 |
|||
} |
|||
}, |
|||
// 获取合并单元格行数 |
|||
getRows(rowIndex, name,prop,level) { |
|||
let count = 0 |
|||
for (let i = rowIndex; i < this.tableData.length; i++) { |
|||
if (this.tableData[i][level][prop] == name) { |
|||
count++ |
|||
} else { |
|||
break |
|||
} |
|||
} |
|||
return count |
|||
}, |
|||
// 合并单元格 |
|||
verticalMergeCell({ row, column, rowIndex, columnIndex }) { |
|||
// 合并 itemCode |
|||
if (columnIndex == 0) { |
|||
let rowCount = 0 |
|||
if (this.indexArray_item.includes(rowIndex)) { |
|||
rowCount = this.getRows(rowIndex, row.level1.itemCode, 'itemCode','level1') |
|||
return { |
|||
rowspan: rowCount, |
|||
colspan: 1 |
|||
} |
|||
} else { |
|||
return { |
|||
rowspan: 0, |
|||
colspan: 0 |
|||
} |
|||
} |
|||
} |
|||
// 合并 erpLocatioCode |
|||
if (columnIndex == 1) { |
|||
let rowCount = 0 |
|||
if (this.indexArray_erp.includes(rowIndex)) { |
|||
rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2') |
|||
return { |
|||
rowspan: rowCount, |
|||
colspan: 1 |
|||
} |
|||
} else { |
|||
return { |
|||
rowspan: 0, |
|||
colspan: 0 |
|||
} |
|||
} |
|||
} |
|||
// 合并 locationCode |
|||
if (columnIndex == 2) { |
|||
let rowCount = 0 |
|||
if (this.indexArray_erp2.includes(rowIndex)) { |
|||
rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3') |
|||
return { |
|||
rowspan: rowCount, |
|||
colspan: 1 |
|||
} |
|||
} else { |
|||
return { |
|||
rowspan: 0, |
|||
colspan: 0 |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
// 转义【对应接口】 |
|||
getInterFaceName(item){ |
|||
let _str = "" |
|||
if (item.enumTransType == 11) { |
|||
_str = '【TYRP】-【采购单】' |
|||
} else if (item.enumTransType == 12) { |
|||
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【验收单】*【EOS】-【验收单】' |
|||
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) { |
|||
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】' |
|||
} else if (item.enumTransType == 16) { |
|||
_str = '【TYRP】-【线边仓退料单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) { |
|||
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】' |
|||
} else if (item.enumTransType == 21) { |
|||
_str = '【TYRP】-【缴库单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) { |
|||
_str = '【TYRP】-【出货单】' |
|||
} else if (item.enumTransType == 23) { |
|||
_str = '【TYRP】-【非生产领料单】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【非生产退料】' |
|||
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) { |
|||
_str = '【TYRP】-【回收料入库单】' |
|||
} else if (item.enumTransType == 22) { |
|||
_str = '【TYRP】-【退拆单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) { |
|||
_str = '【TYRP】-【盘点调整单】' |
|||
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) { |
|||
_str = '【TYRP】-【线边仓调整单】' |
|||
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) { |
|||
_str = '【TYRP】-【回收料调整单】' |
|||
} else if (item.enumTransType == 36) { |
|||
_str = '【TYRP】-【报废单、线边仓报废单】' |
|||
} else { |
|||
_str = '' |
|||
} |
|||
return _str |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.InventoryBookDetail_innerPage_old{ |
|||
background: #fff; |
|||
height: 100%; |
|||
|
|||
.searchHeader{ |
|||
background: #f1f1f1; |
|||
padding: 20px 30px 0; |
|||
border-bottom: 1px solid #dbdbdb; |
|||
|
|||
.el-form-item{ |
|||
margin-right: 25px !important; |
|||
} |
|||
.el-button{ |
|||
background: #205f78 !important; |
|||
border-color: #ddd; |
|||
border-radius: 2px; |
|||
} |
|||
|
|||
.el-form-item__label{ |
|||
font-weight: normal; |
|||
} |
|||
|
|||
.el-input__inner{ |
|||
border-radius: 0px !important; |
|||
background: #ddd !important; |
|||
} |
|||
|
|||
.el-input__inner:focus, |
|||
.el-input__inner:hover{ |
|||
border-color: #ddd; |
|||
} |
|||
} |
|||
|
|||
.tableHeader{ |
|||
list-style: none; |
|||
text-align: center; |
|||
height: 80px; |
|||
overflow: hidden; |
|||
margin: 10px 0; |
|||
|
|||
.tableName{ |
|||
letter-spacing: 10px; |
|||
border-bottom: #333 solid 1px; |
|||
padding: 0 15px; |
|||
font-size: 18px; |
|||
} |
|||
|
|||
.timeLi{ |
|||
display: flex; |
|||
justify-content: center; |
|||
|
|||
.item{ |
|||
margin: 0 10px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.tableEl{ |
|||
width: 100%; |
|||
margin: 0px auto; |
|||
// background: transparent !important; |
|||
|
|||
.el-table__cell{ |
|||
vertical-align: initial !important; |
|||
padding: 5px 0 !important; |
|||
background: transparent !important; |
|||
} |
|||
|
|||
tr{ |
|||
background: transparent !important; |
|||
border: none !important; |
|||
} |
|||
|
|||
th.el-table__cell{ |
|||
padding: 0 !important; |
|||
color: #000 !important; |
|||
border: none !important; |
|||
border-bottom: #333 solid 1px !important; |
|||
.cell{ |
|||
vertical-align: bottom !important; |
|||
} |
|||
} |
|||
|
|||
td{ |
|||
border: none !important; |
|||
color: #000 !important; |
|||
} |
|||
|
|||
.totalRow{ |
|||
td{ |
|||
border-top: blue dashed 1px !important; |
|||
} |
|||
} |
|||
|
|||
.totalRow-red{ |
|||
td{ |
|||
border-top: #ff6000 solid 1px !important; |
|||
} |
|||
} |
|||
.totalRow-green{ |
|||
td{ |
|||
border-top: #24b924 solid 1px !important; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 库存流水帐汇总 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryBookSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventoryBookSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryBookSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<!-- 库存流水帐汇总(ERP储位)-账期 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryBookSummaryERP_pay", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryBookSummaryERP_pay + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<!-- 库存流水帐汇总(库位) --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryBookSummaryLocation", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryBookSummaryLocation + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<!-- 库存流水账汇总(WMS库位)-账期 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryBookSummaryWMS_pay", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryBookSummaryWMS_pay + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 库存账龄明细 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"InventoryDetailReport", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.Inventory_Detail, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.Inventory_Detail + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 计划外出库汇总 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"UnplannedDeliverSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.UnplannedDeliverSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.UnplannedDeliverSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,28 @@ |
|||
<template> |
|||
<!-- 完工收货汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<!-- <iframe :src="url" class="fullPageIframe"></iframe> --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"completionReceiptSummary", |
|||
components:{popUpPage}, |
|||
data() { |
|||
return { |
|||
url:reportsAddress.CompletionReceiptSummary, |
|||
// url: reportsAddress.CompletionReceiptSummary, |
|||
url:null |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.CompletionReceiptSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 成品发货汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"finishedProductDeliverySummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.FinishedProductDeliverySummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.FinishedProductDeliverySummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 库存余额报表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"inventoryBalanceReport", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventoryBlanace, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryBlanace + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<!-- 库存余额报表按库位 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"inventoryBalanceReportLocationCode", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.inventoryBalanceReportLocationCode + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<!-- 库存余额报表按ERP库位 --> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"inventoryBalanceReportLocationErpCode", |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.inventoryBalanceReportLocationErpCode + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 库存单据明细报表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"inventoryReport", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventoryAccountingPeriodDetails, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventoryAccountingPeriodDetails + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 盘点记录汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"inventorySummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.InventorySummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.InventorySummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,13 +0,0 @@ |
|||
<template> |
|||
<!-- 库存事务 暂不使用--> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
url:"http://10.74.150.81:9528/#/reports/202205311631455213.rdlx", |
|||
} |
|||
}, |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 生产发料汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"productionIssuanceSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.ProductionIssueSummary_dy, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.ProductionIssueSummary_dy + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 生产退料汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"productionReturnSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.ProductionReturnSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.ProductionReturnSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 采购收货汇总表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"purchaseReceiptSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.PurchaseReceiptSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.PurchaseReceiptSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 采购退货汇总 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"purchaseReturnSummaryReport", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.PurchaseReturnSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.PurchaseReturnSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 订单汇总查询 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"purchaseSum", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.PurchaseSum, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.PurchaseSum + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,14 +0,0 @@ |
|||
<template> |
|||
<!-- 安全库存报表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name:"safetyStockReport", |
|||
data() { |
|||
return { |
|||
url:"http://10.74.150.81:9528/#/reports/202205311631455213.rdlx", |
|||
} |
|||
}, |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 报废明细表 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"scrapDetails", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.Scrap_Detail, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.Scrap_Detail + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,15 +1,21 @@ |
|||
<template> |
|||
<!-- 计划外入库汇总 --> |
|||
<iframe :src="url" class="fullPageIframe"></iframe> |
|||
<popUpPage :openHandle="openHandle"></popUpPage> |
|||
</template> |
|||
<script> |
|||
import popUpPage from "../popUpPage/index.vue" |
|||
import { reportsAddress } from "@/filters/excelOrReportsOption"; |
|||
import { createNewTabs } from '@/utils/index' |
|||
export default { |
|||
name:"unplannedReceiptSummary", |
|||
data() { |
|||
return { |
|||
url:reportsAddress.UnPlannedReceiptSummary, |
|||
} |
|||
components:{popUpPage}, |
|||
mounted () { |
|||
this.openHandle() |
|||
}, |
|||
methods:{ |
|||
openHandle(){ |
|||
createNewTabs(reportsAddress.UnPlannedReceiptSummary + '?title=' + this.$route.meta.title) |
|||
} |
|||
} |
|||
} |
|||
</script> |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue