You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1148 lines
31 KiB
1148 lines
31 KiB
<template> |
|
<basic-container> |
|
<div class="avue-crud"> |
|
<el-row v-if="!search"> |
|
<!-- 查询模块 --> |
|
<el-form :inline="true" :model="query" class="el-fr"> |
|
<el-form-item label="入库时间:" class="el-times"> |
|
<el-date-picker |
|
v-model="warehouseEntryTimeEnd" |
|
type="datetimerange" |
|
unlink-panels |
|
range-separator="至" |
|
start-placeholder="开始时间" |
|
end-placeholder="结束时间" |
|
/> |
|
</el-form-item> |
|
|
|
<el-form-item label="装车时间:" class="el-times"> |
|
<el-date-picker |
|
v-model="loadingTime" |
|
type="datetimerange" |
|
unlink-panels |
|
range-separator="至" |
|
start-placeholder="开始时间" |
|
end-placeholder="结束时间" |
|
/> |
|
</el-form-item> |
|
|
|
<el-form-item label="签收时间:" class="el-times"> |
|
<el-date-picker |
|
v-model="signingTime" |
|
type="datetimerange" |
|
unlink-panels |
|
range-separator="至" |
|
start-placeholder="开始时间" |
|
end-placeholder="结束时间" |
|
/> |
|
</el-form-item> |
|
|
|
<el-form-item> |
|
<el-button type="primary" icon="el-icon-search" @click="searchChange">搜 索</el-button> |
|
<el-button icon="el-icon-delete" @click="searchReset()">清 空</el-button> |
|
</el-form-item> |
|
</el-form> |
|
</el-row> |
|
|
|
<el-row> |
|
<div class="avue-crud__header"> |
|
<!-- 头部左侧按钮模块 --> |
|
<div class="avue-crud__left"> |
|
<el-button type="danger" icon="el-icon-bottom" @click="handleExportInfo" plain |
|
>导出</el-button |
|
> |
|
<el-button type="primary" icon="el-icon-view" @click="batchHandQrCode" plain |
|
>批量查看二维码</el-button |
|
> |
|
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新 增</el-button>--> |
|
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>删 除</el-button>--> |
|
</div> |
|
<!-- 头部右侧按钮模块 --> |
|
<div class="avue-crud__right"> |
|
<el-button icon="el-icon-refresh" @click="onLoad(page)" circle></el-button> |
|
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button> |
|
<el-button icon="el-icon-search" @click="searchHide" circle></el-button> |
|
</div> |
|
</div> |
|
</el-row> |
|
<el-row> |
|
<!-- 列表模块 --> |
|
<tablecmt |
|
:columnList="columnList" |
|
:tableData="data" |
|
:loading="loading" |
|
@inputTxt="inputsc" |
|
@timeCheck="timesc" |
|
@btnCheck="btnsc" |
|
@selectCheck="selectsc" |
|
@selection="selectionChange" |
|
> |
|
<template #default="slotProps"> |
|
<!-- <el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>--> |
|
<el-text size="small" @click="handleQRCode(slotProps.scope)">查看二维码</el-text> |
|
</template> |
|
</tablecmt> |
|
</el-row> |
|
<el-row class="el-fy"> |
|
<div class="flex-c-sb" style="width: 100%"> |
|
<div>勾选数量:{{ selectionList.length }}</div> |
|
|
|
<!-- 分页模块 --> |
|
<el-pagination |
|
align="right" |
|
background |
|
@size-change="sizeChange" |
|
@current-change="currentChange" |
|
:current-page="page.currentPage" |
|
:page-sizes="[30, 50, 80, 120]" |
|
:page-size="page.pageSize" |
|
layout="total, sizes, prev, pager, next, jumper" |
|
:total="page.total" |
|
> |
|
</el-pagination> |
|
</div> |
|
</el-row> |
|
<!-- 表单模块 --> |
|
<el-dialog |
|
:title="title" |
|
v-model="box" |
|
width="50%" |
|
:before-close="beforeClose" |
|
append-to-body |
|
> |
|
<el-form :disabled="view" ref="form" :model="form" label-width="80px"> |
|
<!-- 表单字段 --> |
|
<el-form-item label="仓库" prop="warehouse"> |
|
<el-input v-model="form.warehouse" placeholder="请输入仓库" /> |
|
</el-form-item> |
|
<el-form-item label="状态" prop="conditions"> |
|
<el-select v-model="form.conditions" clearable placeholder="请选择状态"> |
|
<el-option |
|
v-for="item in conditionsData" |
|
:key="item.dictKey" |
|
:label="item.dictValue" |
|
:value="item.dictKey" |
|
> |
|
</el-option> |
|
</el-select> |
|
</el-form-item> |
|
<el-form-item label="包条码" prop="packetBarCode"> |
|
<el-input v-model="form.packetBarCode" placeholder="请输入包条码" /> |
|
</el-form-item> |
|
<el-form-item label="货位信息" prop="goodsAllocation"> |
|
<el-input v-model="form.goodsAllocation" placeholder="请输入货位信息" /> |
|
</el-form-item> |
|
<el-form-item label="所在托盘" prop="pallet"> |
|
<el-input v-model="form.pallet" placeholder="请输入所在托盘" /> |
|
</el-form-item> |
|
<el-form-item label="一级品" prop="firsts"> |
|
<el-input v-model="form.firsts" placeholder="请输入一级品" /> |
|
</el-form-item> |
|
<el-form-item label="二级品" prop="second"> |
|
<el-input v-model="form.second" placeholder="请输入二级品" /> |
|
</el-form-item> |
|
<el-form-item label="三级品" prop="thirdProduct"> |
|
<el-input v-model="form.thirdProduct" placeholder="请输入三级品" /> |
|
</el-form-item> |
|
<el-form-item label="物料" prop="material"> |
|
<el-input v-model="form.material" placeholder="请输入物料" /> |
|
</el-form-item> |
|
<el-form-item label="数量" prop="quantity"> |
|
<el-input v-model="form.quantity" placeholder="请输入数量" /> |
|
</el-form-item> |
|
<el-form-item label="车次号" prop="trainNumber"> |
|
<el-input v-model="form.trainNumber" placeholder="请输入车次号" /> |
|
</el-form-item> |
|
<el-form-item label="在库订单ID" prop="stockArticleId"> |
|
<el-input v-model="form.stockArticleId" placeholder="请输入在库订单ID" /> |
|
</el-form-item> |
|
</el-form> |
|
<!-- 表单按钮 --> |
|
<template #footer> |
|
<span v-if="!view" class="dialog-footer"> |
|
<el-button type="primary" icon="el-icon-circle-check" @click="handleSubmit" |
|
>提 交</el-button |
|
> |
|
<el-button icon="el-icon-circle-close" @click="box = false">取 消</el-button> |
|
</span> |
|
</template> |
|
</el-dialog> |
|
</div> |
|
</basic-container> |
|
<edittablehead |
|
@setcolum="setnewcolum" |
|
@closce="showdrawer" |
|
:drawerShow="drawerShow" |
|
:columnList="columnList" |
|
></edittablehead> |
|
|
|
<el-dialog title="二维码" :visible.sync="dialogVisibleF" width="780px" v-model="dialogVisibleF"> |
|
<div> |
|
<div v-html="html"></div> |
|
</div> |
|
<span slot="footer" class="dialog-footer"> |
|
<!-- <el-button type="primary" @click="ddd">导 出</el-button>--> |
|
<el-button type="primary" @click="printTemplate">打 印</el-button> |
|
<el-button @click="dialogVisibleF = false">取 消</el-button> |
|
</span> |
|
</el-dialog> |
|
</template> |
|
|
|
<script> |
|
import { |
|
getpage, |
|
getDetail, |
|
add, |
|
update, |
|
remove, |
|
$_distributionParcelList, |
|
} from '@/api/distribution/distributionParcelList'; |
|
|
|
import { getDictionaryBiz } from '@/api/system/dict'; |
|
import option from '@/option/distribution/distributionParcelList'; |
|
import { mapGetters } from 'vuex'; |
|
import { downloadXls } from '@/utils/util'; |
|
import { showInventoryPackgeCode } from '@/api/distribution/distributionStockList'; |
|
import { showOrderPackgeCode } from '@/api/distribution/distributionStockArticle'; |
|
import print from '@/utils/print'; |
|
|
|
export default { |
|
data() { |
|
return { |
|
dialogVisibleF: false, |
|
html: '', |
|
columnList: [ |
|
{ |
|
prop: '', |
|
label: '复选框', |
|
type: 0, |
|
values: '', |
|
width: '55', |
|
checkarr: [], |
|
fixed: true, |
|
sortable: false, |
|
head: false, |
|
}, |
|
{ |
|
prop: '', |
|
label: '序号', |
|
type: 12, |
|
values: '', |
|
width: '55', |
|
checkarr: [], |
|
fixed: true, |
|
sortable: false, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'waybillNumber', |
|
label: '运单号', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: true, |
|
sortable: false, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'orderCode', |
|
label: '订单自编号', |
|
type: 2, |
|
values: '', |
|
width: '200', |
|
checkarr: [], |
|
fixed: true, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'orderPackageCode', |
|
label: '包条码', |
|
type: 2, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: true, |
|
sortable: true, |
|
head: false, |
|
}, |
|
// { |
|
// prop: 'trainNumber', |
|
// label: '配送车次', |
|
// type: 2, |
|
// values: '', |
|
// width: '150', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
// { |
|
// prop: 'materialName', |
|
// label: '配送时间', |
|
// type: 2, |
|
// values: '', |
|
// width: '150', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
// { |
|
// prop: 'materialName', |
|
// label: '签收时间', |
|
// type: 2, |
|
// values: '', |
|
// width: '150', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
{ |
|
prop: 'warehouse', |
|
label: '仓库', |
|
type: 2, |
|
values: '', |
|
width: '100', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'typeServiceName', |
|
label: '服务类型', |
|
type: 2, |
|
values: '', |
|
width: '80', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'pickupBatch', |
|
label: '提货批次', |
|
type: 2, |
|
values: '', |
|
width: '80', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'scanTime', |
|
label: '装车时间', |
|
type: 2, |
|
values: '', |
|
width: '100', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
|
|
{ |
|
prop: 'carNumber', |
|
label: '客户车次号', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
|
|
{ |
|
prop: 'warehouseEntryTimeEnd', |
|
label: '入库时间', |
|
type: 4, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
|
|
{ |
|
prop: 'conditionsType', |
|
label: '包件类型', |
|
type: 3, |
|
values: '', |
|
width: '130', |
|
checkarr: [ |
|
{ |
|
label: '定制品', |
|
value: '1', |
|
}, |
|
{ |
|
label: '库存品', |
|
value: '2', |
|
}, |
|
], |
|
fixed: false, |
|
sortable: false, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'orderPackageStockupStatusName', |
|
label: '备货状态', |
|
type: 3, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'orderPackageStatusName', |
|
label: '包件状态', |
|
type: 3, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'orderPackageLoadingStatusName', |
|
label: '装车状态', |
|
type: 3, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'orderPackageReservationStatusName', |
|
label: '预约状态', |
|
type: 3, |
|
values: '', |
|
width: '130', |
|
checkarr: [ |
|
{ |
|
label: '待上架', |
|
value: '10', |
|
}, |
|
{ |
|
label: '已上架', |
|
value: '20', |
|
}, |
|
], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'orderPackageGroundingStatusName', |
|
label: '上架状态', |
|
type: 3, |
|
values: '', |
|
width: '90', |
|
checkarr: [ |
|
{ |
|
label: '待上架', |
|
value: '10', |
|
}, |
|
{ |
|
label: '已上架', |
|
value: '20', |
|
}, |
|
], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
// { |
|
// prop: '待添加', |
|
// label: '服务类型', |
|
// type: 2, |
|
// values: '', |
|
// width: '130', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
{ |
|
prop: 'reservationCode', |
|
label: '预约单编号', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
// { |
|
// prop: 'noteNumber', |
|
// label: '配送单号', |
|
// type: 2, |
|
// values: '', |
|
// width: '130', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
{ |
|
prop: 'driverName', |
|
label: '配送司机', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'loadingTime', |
|
label: '装车时间', |
|
type: 4, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'scanUser', |
|
label: '实际装车人', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'signingTime', |
|
label: '签收时间', |
|
type: 4, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'signingUser', |
|
label: '实际签收人', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
// { |
|
// prop: 'noteNumber', |
|
// label: '配送单号', |
|
// type: 2, |
|
// values: '', |
|
// width: '130', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
{ |
|
prop: 'dvehicleName', |
|
label: '配送车次号', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'vehicleName', |
|
label: '配送车牌', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'firsts', |
|
label: '一级品', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'second', |
|
label: '二级品', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'thirdProduct', |
|
label: '三级品', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'materialCode', |
|
label: '物料编码', |
|
type: 2, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
{ |
|
prop: 'materialName', |
|
label: '物料名称', |
|
type: 2, |
|
values: '', |
|
width: '150', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
}, |
|
|
|
// { |
|
// prop: 'allocationMsg', |
|
// label: '货位信息', |
|
// type: 1, |
|
// values: '', |
|
// width: '180', |
|
// checkarr: [], |
|
// fixed: false, |
|
// sortable: true, |
|
// }, |
|
{ |
|
prop: 'goodsAllocation', |
|
label: '货位信息', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'pallet', |
|
label: '所在托盘', |
|
type: 2, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
head: false, |
|
}, |
|
{ |
|
prop: 'quantity', |
|
label: '数量', |
|
type: 1, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: false, |
|
sortable: true, |
|
isshowSummary: false, |
|
}, |
|
{ |
|
prop: '', |
|
label: '操作', |
|
type: 6, |
|
values: '', |
|
width: '130', |
|
checkarr: [], |
|
fixed: 'right', |
|
sortable: true, |
|
isshowSummary: false, |
|
}, |
|
], |
|
drawerShow: false, |
|
height: 0, |
|
// 弹框标题 |
|
title: '', |
|
// 是否展示弹框 |
|
box: false, |
|
// 是否显示查询 |
|
search: true, |
|
// 加载中 |
|
loading: false, |
|
// 是否为查看模式 |
|
view: false, |
|
// 查询信息 |
|
query: {}, |
|
// 分页信息 |
|
page: { |
|
currentPage: 1, |
|
pageSize: 30, |
|
total: 40, |
|
}, |
|
// 表单数据 |
|
form: {}, |
|
// 选择行 |
|
selectionList: [], |
|
// 表单配置 |
|
option: option, |
|
// 表单列表 |
|
data: [], |
|
/** 时间 */ |
|
/** 入库时间 */ |
|
warehouseEntryTimeEnd: [], |
|
/** 装车时间 */ |
|
loadingTime: [], |
|
/** 签收时间 */ |
|
signingTime: [], |
|
}; |
|
}, |
|
mounted() { |
|
this.init(); |
|
// this.onLoad(this.page); |
|
/** |
|
* 初始化获取本地缓存的编辑隐藏的列表 |
|
* 固定搭配,不能更改 |
|
*/ |
|
let checkListnewarr = this.$functions.getStorage(window.location.pathname + 'checkList'); |
|
let flexListnewarr = this.$functions.getStorage(window.location.pathname + 'flexList'); |
|
let sortlistnewarr = this.$functions.getStorage(window.location.pathname + 'sortlist'); |
|
if (checkListnewarr) { |
|
this.columnList.map(item => { |
|
item.head = false; |
|
}); |
|
checkListnewarr.map(ite => { |
|
this.columnList.map(item => { |
|
if (ite == item.label) { |
|
item.head = true; |
|
} |
|
}); |
|
}); |
|
} else { |
|
let arr = []; |
|
this.columnList.map(item => { |
|
if (item.head) { |
|
arr.push(item.label); |
|
} |
|
}); |
|
this.$functions.setStorage(window.location.pathname + 'checkList', arr); |
|
} |
|
if (flexListnewarr) { |
|
this.columnList.map(item => { |
|
item.fixed = false; |
|
}); |
|
flexListnewarr.map(ite => { |
|
this.columnList.map(item => { |
|
if (ite == item.label) { |
|
if (item.type == 6) { |
|
item.fixed = 'right'; |
|
} else { |
|
item.fixed = true; |
|
} |
|
} |
|
}); |
|
}); |
|
} else { |
|
let arr = []; |
|
this.columnList.map(item => { |
|
if (item.fixed) { |
|
arr.push(item.label); |
|
} |
|
}); |
|
this.$functions.setStorage(window.location.pathname + 'flexList', arr); |
|
} |
|
if (sortlistnewarr) { |
|
this.columnList.map(item => { |
|
item.sortable = false; |
|
}); |
|
sortlistnewarr.map(ite => { |
|
this.columnList.map(item => { |
|
if (ite == item.label) { |
|
item.sortable = true; |
|
} |
|
}); |
|
}); |
|
} else { |
|
let arr = []; |
|
this.columnList.map(item => { |
|
if (item.sortable) { |
|
arr.push(item.label); |
|
} |
|
}); |
|
this.$functions.setStorage(window.location.pathname + 'sortlist', arr); |
|
} |
|
}, |
|
computed: { |
|
...mapGetters(['permission']), |
|
ids() { |
|
let ids = []; |
|
this.selectionList.forEach(ele => { |
|
ids.push(ele.id); |
|
}); |
|
return ids.join(','); |
|
}, |
|
}, |
|
methods: { |
|
//批量查看二维码 |
|
batchHandQrCode() { |
|
console.log(' this.selectionList--------->', this.selectionList); |
|
if (this.selectionList.length <= 0) { |
|
this.$message.warning('请选择包件'); |
|
return; |
|
} |
|
const data = this.selectionList.map(item => { |
|
return item.id; |
|
}); |
|
let qr = { |
|
ids: data.join(','), |
|
}; |
|
this.html = ''; |
|
showOrderPackgeCode(qr).then(res => { |
|
// this.orderPackageCode = res.data |
|
console.log(res.data); |
|
this.html = this.getHtmls(res.data.data.dataList, res.data.data.templateHtml); |
|
}); |
|
this.dialogVisibleF = true; |
|
}, |
|
//查看二维码 |
|
handleQRCode(scope) { |
|
const { row } = scope; |
|
console.log('执行查看二维码'); |
|
this.materialQRCode = row; |
|
console.log('---------------->', row); |
|
let qr = { |
|
ids: row.id, |
|
}; |
|
this.html = ''; |
|
showOrderPackgeCode(qr).then(res => { |
|
// this.orderPackageCode = res.data |
|
console.log(res.data); |
|
this.html = this.getHtmls(res.data.data.dataList, res.data.data.templateHtml); |
|
}); |
|
|
|
this.dialogVisibleF = true; |
|
}, |
|
handleExportInfo() { |
|
let row = {}; |
|
// 查询信息 |
|
if (this.query) { |
|
for (let prop in this.query) { |
|
row[prop] = this.query[prop]; |
|
} |
|
} |
|
if (!!this.ids) { |
|
row.ids = this.ids; |
|
} else { |
|
row.ids = ''; |
|
} |
|
$_distributionParcelList(row).then(res => { |
|
console.log(res.data); |
|
downloadXls(res.data, '包件明细.xlsx'); |
|
}); |
|
}, |
|
|
|
inputsc(index, row) { |
|
if(!row.values){ |
|
return |
|
} |
|
this.query[row.prop] = index; |
|
console.log(this.query); |
|
this.page.currentPage = 1; |
|
this.onLoad(this.page); |
|
}, |
|
timesc() {}, |
|
btnsc() {}, |
|
// 复选框 |
|
selectsc(value, row) { |
|
this.query[row.prop] = value; |
|
// 包件明细状态 |
|
if (row.prop === 'conditionsType') { |
|
this.query.conditions = value; |
|
if (value === '') delete this.query.conditions; |
|
} |
|
|
|
this.query[row.prop.replace(/Name/, '')] = value; |
|
if (value === '') { |
|
delete this.query[row.prop.replace(/Name/, '')]; |
|
delete this.query[row.prop]; |
|
} |
|
this.page.currentPage = 1; |
|
this.onLoad(this.page); |
|
}, |
|
showdrawer(value) { |
|
this.drawerShow = value; |
|
}, |
|
/** |
|
* 弹窗的勾选回调,用于更改头部数组 |
|
* 固定搭配,只需要更换 columnList |
|
*/ |
|
setnewcolum(newarr, headarr, type) { |
|
if (type == 1) { |
|
this.columnList = newarr; |
|
this.$functions.setStorage(window.location.pathname + 'checkList', headarr); |
|
} else if (type == 2) { |
|
this.columnList = newarr; |
|
this.$functions.setStorage(window.location.pathname + 'flexList', headarr); |
|
} else if (type == 3) { |
|
this.columnList = newarr; |
|
this.$functions.setStorage(window.location.pathname + 'sortlist', headarr); |
|
} |
|
}, |
|
init() { |
|
this.height = this.setPx(document.body.clientHeight - 340); |
|
|
|
// 包件状态 |
|
getDictionaryBiz('order_package_status').then(res => { |
|
this.distributionType = res.data.data; |
|
this.$functions.checkcColumnList('orderPackageStatusName', this.columnList).checkarr = |
|
res.data.data.map(item => { |
|
item.value = item.dictKey; |
|
item.label = item.dictValue; |
|
return item; |
|
}); |
|
}); |
|
|
|
// 装车状态 |
|
getDictionaryBiz('order_package_loading_status').then(res => { |
|
this.distributionType = res.data.data; |
|
this.$functions.checkcColumnList( |
|
'orderPackageLoadingStatusName', |
|
this.columnList |
|
).checkarr = res.data.data.map(item => { |
|
item.value = item.dictKey; |
|
item.label = item.dictValue; |
|
return item; |
|
}); |
|
}); |
|
|
|
// 备货状态 orderPackageStockupStatusName |
|
getDictionaryBiz('order_package_stockup_status').then(res => { |
|
this.distributionType = res.data.data; |
|
this.$functions.checkcColumnList( |
|
'orderPackageStockupStatusName', |
|
this.columnList |
|
).checkarr = res.data.data.map(item => { |
|
item.value = item.dictKey; |
|
item.label = item.dictValue; |
|
return item; |
|
}); |
|
}); |
|
|
|
// 入库状态 |
|
getDictionaryBiz('order_package_status').then(res => { |
|
this.distributionType = res.data.data; |
|
this.$functions.checkcColumnList('orderPackageStatusName', this.columnList).checkarr = |
|
res.data.data.map(item => { |
|
item.value = item.dictKey; |
|
item.label = item.dictValue; |
|
return item; |
|
}); |
|
}); |
|
|
|
// 预约状态 |
|
getDictionaryBiz('order_package_reservation_status').then(res => { |
|
this.distributionType = res.data.data; |
|
this.$functions.checkcColumnList( |
|
'orderPackageReservationStatusName', |
|
this.columnList |
|
).checkarr = res.data.data.map(item => { |
|
item.value = item.dictKey; |
|
item.label = item.dictValue; |
|
return item; |
|
}); |
|
}); |
|
}, |
|
searchHide() { |
|
this.search = !this.search; |
|
}, |
|
searchChange() { |
|
/** 入库时间 */ |
|
this.query.startWarehouseEntryTimeEnd = this.warehouseEntryTimeEnd[0]; |
|
this.query.lastWarehouseEntryTimeEnd = this.warehouseEntryTimeEnd[1]; |
|
/** 装车时间 */ |
|
this.query.startLoadingTime = this.loadingTime[0]; |
|
this.query.lastLoadingTime = this.loadingTime[1]; |
|
/** 签收时间 */ |
|
this.query.startSigningTime = this.signingTime[0]; |
|
this.query.lastSigningTime = this.signingTime[1]; |
|
|
|
this.onLoad(this.page); |
|
}, |
|
searchReset() { |
|
/** 入库时间 */ |
|
this.warehouseEntryTimeEnd = []; |
|
/** 装车时间 */ |
|
this.loadingTime = []; |
|
/** 签收时间 */ |
|
this.signingTime = []; |
|
this.query = {}; |
|
this.page.currentPage = 1; |
|
this.onLoad(this.page); |
|
}, |
|
handleSubmit() { |
|
if (!this.form.id) { |
|
add(this.form).then(() => { |
|
this.box = false; |
|
this.onLoad(this.page); |
|
this.$message({ |
|
type: 'success', |
|
message: '操作成功!', |
|
}); |
|
}); |
|
} else { |
|
update(this.form).then(() => { |
|
this.box = false; |
|
this.onLoad(this.page); |
|
this.$message({ |
|
type: 'success', |
|
message: '操作成功!', |
|
}); |
|
}); |
|
} |
|
}, |
|
handleAdd() { |
|
this.title = '新增'; |
|
this.form = {}; |
|
this.box = true; |
|
}, |
|
handleEdit(row) { |
|
this.title = '编辑'; |
|
this.box = true; |
|
getDetail(row.id).then(res => { |
|
this.form = res.data.data; |
|
}); |
|
}, |
|
handleView(row) { |
|
this.title = '查看'; |
|
this.view = true; |
|
this.box = true; |
|
getDetail(row.id).then(res => { |
|
this.form = res.data.data; |
|
}); |
|
}, |
|
handleDelete() { |
|
if (this.selectionList.length === 0) { |
|
this.$message.warning('请选择至少一条数据'); |
|
return; |
|
} |
|
this.$confirm('确定将选择数据删除?', { |
|
confirmButtonText: '确定', |
|
cancelButtonText: '取消', |
|
type: 'warning', |
|
}) |
|
.then(() => { |
|
return remove(this.ids); |
|
}) |
|
.then(() => { |
|
this.selectionClear(); |
|
this.onLoad(this.page); |
|
this.$message({ |
|
type: 'success', |
|
message: '操作成功!', |
|
}); |
|
}); |
|
}, |
|
rowDel(row) { |
|
this.$confirm('确定将选择数据删除?', { |
|
confirmButtonText: '确定', |
|
cancelButtonText: '取消', |
|
type: 'warning', |
|
}) |
|
.then(() => { |
|
return remove(row.id); |
|
}) |
|
.then(() => { |
|
this.onLoad(this.page); |
|
this.$message({ |
|
type: 'success', |
|
message: '操作成功!', |
|
}); |
|
}); |
|
}, |
|
beforeClose(done) { |
|
done(); |
|
this.form = {}; |
|
this.view = false; |
|
}, |
|
selectionChange(list) { |
|
this.selectionList = list; |
|
}, |
|
selectionClear() { |
|
this.selectionList = []; |
|
}, |
|
currentChange(currentPage) { |
|
this.page.currentPage = currentPage; |
|
this.onLoad(this.page); |
|
}, |
|
sizeChange(pageSize) { |
|
this.page.pageSize = pageSize; |
|
this.onLoad(this.page); |
|
}, |
|
formatDateTime(dateTimeString) { |
|
// 检查时间字符串是否以 "00:00:00" 结束 |
|
if (dateTimeString.endsWith('00:00:00')) { |
|
// 如果是,去除时间部分(包括前面的空格) |
|
return dateTimeString.slice(0, -9); |
|
} else { |
|
// 如果不是,返回原始字符串 |
|
return dateTimeString; |
|
} |
|
}, |
|
/** 打印 */ |
|
printTemplate() { |
|
const orderNodeList = document.querySelectorAll('.el-dialog__body>div>div>div'); |
|
print(orderNodeList); |
|
}, |
|
onLoad(page, params = {}) { |
|
this.loading = true; |
|
getpage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
|
const data = res.data.data; |
|
console.log(res, '获取到的页面初始值'); |
|
res.data.data.records.forEach(item => { |
|
if (item.warehouseEntryTimeEnd) { |
|
item.warehouseEntryTimeEnd = this.formatDateTime(item.warehouseEntryTimeEnd); |
|
} |
|
}); |
|
this.page.total = data.total; |
|
this.data = data.records.map(val => { |
|
val.conditionsType = val.conditions === 1 ? '定制品' : '库存品'; |
|
return val; |
|
}); |
|
this.loading = false; |
|
this.selectionClear(); |
|
}); |
|
}, |
|
}, |
|
}; |
|
</script> |
|
<style lang="scss" scoped> |
|
:deep(.avue-crud) { |
|
display: flex; |
|
height: 100%; |
|
flex-direction: column; |
|
} |
|
:deep(.el-card__body) { |
|
height: 100%; |
|
} |
|
:deep(.el-card) { |
|
height: 100%; |
|
display: flex; |
|
flex-direction: column; |
|
} |
|
.el-fy { |
|
flex: 1; |
|
display: flex; |
|
align-items: flex-end; |
|
} |
|
// 时间选择框 |
|
:deep(.el-date-editor.el-input__wrapper) { |
|
height: 100% !important; |
|
} |
|
</style>
|
|
|