<template>
|
<div class="rightContent">
|
<div class="top">
|
<SearchCommonView :add-title="'新建'" :showAdd="false" :placeholder="'请根据单号、产品、业务类型进行搜索'" :amount-view="false" :showDownload="true"
|
@downloadClick="downHttpClick" @addCommonClick="addBtnClick" @searchClick="getList" />
|
</div>
|
<div class="list-view">
|
<div class="table">
|
<TableCommonView ref="tableListRef" :table-list="tableList" @selTableCol="selTableCol"
|
@tableRowClick="tableRowClick">
|
<template slot="tableButton">
|
<el-table-column label="数量" prop='amount'>
|
<el-table-column v-for="unit in unitList" :label="unit.name" prop='amount' min="90">
|
<template slot-scope="scope">
|
{{getUnitValue(scope.row.amountMoreUnits,unit.name,scope.row.amount,scope.row.unit)}}
|
</template>
|
</el-table-column>
|
<!--<el-table-column label="件" prop='amount' min="90">
|
<template slot-scope="scope">
|
{{getUnitValue(scope.row.amountMoreUnits,'件',scope.row.amount,scope.row.unit)}}
|
</template>
|
</el-table-column>
|
<el-table-column label="匹" prop='amount' min="90">
|
<template slot-scope="scope">
|
{{getUnitValue(scope.row.amountMoreUnits,'匹',scope.row.amount,scope.row.unit)}}
|
</template>
|
</el-table-column>
|
<el-table-column label="米数" prop='amount' min="90">
|
<template slot-scope="scope">
|
{{getUnitValue(scope.row.amountMoreUnits,'米数',scope.row.amount,scope.row.unit)}}
|
</template>
|
</el-table-column>
|
<el-table-column label="重量" prop='amount' min="90">
|
<template slot-scope="scope">
|
{{getUnitValue(scope.row.beginMoreUnitsArr,'重量',scope.row.beginAmount,scope.row.unit)}}
|
</template>
|
</el-table-column>-->
|
</el-table-column>
|
</template>
|
</TableCommonView>
|
</div>
|
<div class="btn-pager">
|
<PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
|
</div>
|
</div>
|
<!-- 编辑 -->
|
<AddOverviewDialog :workType="workType"
|
v-if="editConfig.visible"
|
:edit-common-config="editConfig"
|
:add-name="this.$route.params.name" />
|
</div>
|
</template>
|
|
<script>
|
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
|
import { getHistory,getOperationInfo } from "@/api/reportForm/inventoryRwport"
|
// import { getProductOperatonList } from "@/api/product/product"
|
|
// import AddOverviewDialog from "@/views/reportForm/outboundDetail/AddOutboundDetailDialog.vue"
|
import AddOverviewDialog from "@/views/overview/AddOverviewDialog"
|
import { getDataByType } from "@/api/data"
|
import { downloadHistory } from "@/api/downFile"
|
import FileSaver from 'file-saver'
|
import _ from 'lodash'
|
import { getUnitInfo } from "@/api/basic/standard";
|
export default {
|
name: "outboundDetail",
|
props: {},
|
components: { AddOverviewDialog },
|
mixins: [pageMixin],
|
computed: {},
|
data() {
|
return {
|
unitList:[],
|
workType:2,
|
tableList: {},
|
showcol: ["状态"],
|
searchOptions: [],
|
commonDetail: {
|
visible: false,
|
title: "新建",
|
infomation: {}
|
},
|
editConfig: {
|
visible: false,
|
title: "新建",
|
infomation: {}
|
},
|
params: {},
|
baseOperationTypeList: getDataByType("baseOperationTypeTwo"),
|
}
|
},
|
created() {
|
this.setTable()
|
console.log(this.$route.params)
|
var paramsList = sessionStorage.getItem("paramsList")
|
let params = {}
|
if (paramsList) {
|
params = JSON.parse(sessionStorage.getItem("paramsList"))
|
} else {
|
params = this.$route.params
|
sessionStorage.setItem("paramsList", JSON.stringify(params))
|
}
|
this.params = params
|
this.getData();
|
this.getUnitInfo();
|
},
|
// 页面销毁之前
|
beforeDestroy() {
|
sessionStorage.removeItem("paramsList")
|
},
|
methods: {
|
async getUnitInfo(){
|
const { code,data }=await getUnitInfo();
|
if(code===200){
|
this.unitList=data;
|
}
|
},
|
getUnitValue(list,val,num,unit){
|
let string='--'
|
if(list){
|
if(list.length>0){
|
for(let i in list){
|
if(list[i].unit==val){
|
string=list[i].amount
|
break;
|
}
|
}
|
}
|
}
|
if(unit==val){
|
string=num
|
}
|
return string
|
},
|
// 下载
|
downHttpClick: _.debounce(function(){
|
downloadHistory({
|
page: this.pagerOptions.currPage,
|
pageSize: this.pagerOptions.pageSize,
|
keyword:this.keyword,
|
baseOperationType:2
|
}).then(res => {
|
if (res) {
|
FileSaver.saveAs(res, '出库明细报表.xlsx');
|
this.$message.success("下载成功!");
|
}
|
})
|
}, 1000),
|
setTable() {
|
this.tableList = {
|
tableInfomation: [],
|
selectBox: true,
|
showcol: this.showcol,
|
allcol: [],
|
tableColumn: this.setTableColumn(this.showcol)
|
}
|
let allcol = []
|
for (let i = 0; i < this.tableList.tableColumn.length; i++) {
|
if (!this.tableList.tableColumn[i].default) {
|
const label = this.tableList.tableColumn[i].label
|
allcol.push(label)
|
}
|
}
|
this.tableList.allcol = allcol
|
},
|
setTableColumn(showcol) {
|
let tableColumn = [
|
{
|
label: "日期",
|
prop: "date",
|
isShowColumn: true,
|
default: true,
|
// date: true
|
},
|
{
|
label: "单号",
|
prop: "number",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "产品",
|
prop: "productName",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "产品编码",
|
prop: "productId",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "业务类型",
|
prop: "operationTypeName",
|
isShowColumn: true,
|
default: true,
|
// conversion: true,
|
// getStatus: this.getBaseOperationTypeList
|
},
|
{
|
label: "从",
|
prop: "fromLocation",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "至",
|
prop: "toLocation",
|
isShowColumn: true,
|
default: true
|
},
|
/*{
|
label: "数量",
|
prop: "amount",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "单位",
|
prop: "unit",
|
isShowColumn: true,
|
default: true
|
},*/
|
{
|
label: "重量",
|
prop: "weight",
|
isShowColumn: true,
|
default: true
|
},
|
{
|
label: "状态",
|
prop: "status",
|
width: 120,
|
isShowColumn: showcol.includes("状态"),
|
default: false,
|
status: true,
|
isCallMethod: true,
|
getCallMethod: this.getStatus
|
},
|
{
|
label: "完成者",
|
prop: "contactedName",
|
isShowColumn: showcol.includes("完成者"),
|
default: false
|
}
|
]
|
return tableColumn
|
},
|
selTableCol(val) {
|
this.showcol = val
|
this.tableList.tableColumn = this.setTableColumn(val)
|
},
|
getBaseOperationTypeList(val) {
|
let string = "--"
|
if (val) {
|
for (let i in this.baseOperationTypeList) {
|
if (this.baseOperationTypeList[i].id == val) {
|
return this.baseOperationTypeList[i].name
|
}
|
}
|
}
|
return string
|
},
|
// 库存报表跳转请求数据
|
async getData() {
|
if (this.params.name === "报表") {
|
await getHistory({
|
keyWord: this.params.keyWord,
|
produceId: this.params.produceId,
|
unit: this.params.unit,
|
productName: this.params.productName,
|
page: this.pagerOptions.currPage,
|
pageSize: this.pagerOptions.pageSize
|
}).then((res) => {
|
if (res.code === 200&&res.data) {
|
res.data.map((item) => {
|
let dateObject = new Date(item.date);
|
let formattedDateString = dateObject.toISOString().split('T')[0];
|
item.date = formattedDateString
|
})
|
this.tableList.tableInfomation = res.data||[]
|
}else{
|
this.tableList.tableInfomation = res.data||[]
|
}
|
this.pagerOptions.totalCount = res.total
|
})
|
} else {
|
await getHistory({
|
keyWord: this.params.keyWord,
|
baseOperationType: 2,
|
page: this.pagerOptions.currPage,
|
pageSize: this.pagerOptions.pageSize
|
}).then((res) => {
|
if (res.code === 200&&res.data) {
|
res.data.map((item) => {
|
if(item.status===""){
|
item.status=4
|
}
|
let dateObject = new Date(item.date);
|
let formattedDateString = dateObject.toISOString().split('T')[0];
|
item.date = formattedDateString
|
})
|
this.tableList.tableInfomation = res.data || []
|
}else{
|
this.tableList.tableInfomation = res.data || []
|
}
|
this.pagerOptions.totalCount = res.total
|
})
|
}
|
},
|
// 搜索
|
getList(val) {
|
this.params.keyWord = val;
|
this.getData()
|
},
|
// 行点击
|
async tableRowClick(row) {
|
await getOperationInfo(row.operationId).then(({data})=>{
|
data.details.map((item) => {
|
item.fromLocationId = item.fromLocation.name;
|
item.toLocationId = item.toLocation.name;
|
item.relAmount=item.amount;
|
item.amount=item.stockAmount;
|
});
|
this.editConfig.infomation = { ...data }
|
});
|
this.editConfig.visible = true
|
this.editConfig.title = "查看"
|
},
|
// 新建
|
addBtnClick() {
|
// this.editConfig.visible = true
|
this.editConfig.title = "新建"
|
},
|
// 状态
|
getStatus(val) {
|
return val === 1 ? "草稿" : val === 3 ? "就绪" : val === 4 ? "完成" : val === 5 ? "已取消":""
|
}
|
}
|
}
|
</script>
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<style lang="scss" scoped></style>
|