This commit is contained in:
刘仕伟
2024-02-28 11:26:21 +08:00
parent d1c746be14
commit 66624fc77a
4 changed files with 264 additions and 9 deletions

View File

@@ -51,11 +51,15 @@ const router = new VueRouter({
component: () => import('../view/shipping/WaitShippingList.vue')
},
{
path: 'myOrder',
name: 'myOrder',
component: () => import('../view/shipping/MyOrder.vue')
path: 'myNormalOrder',
name: 'myNormalOrder',
component: () => import('../view/shipping/MyNormalOrder.vue')
},
{
path: 'myUrgencyOrder',
name: 'myUrgencyOrder',
component: () => import('../view/shipping/MyUrgencyOrder.vue')
},
{
path: 'returnPackage',
name: 'returnPackage',

View File

@@ -58,7 +58,8 @@
<el-menu-item index="/waitPackageList">待装箱发货单</el-menu-item>
<el-menu-item index="/waitShippingList">待收货发货单</el-menu-item>
<el-menu-item index="/shippingList">已收货发货单</el-menu-item>
<el-menu-item index="/myOrder">我的备货单</el-menu-item>
<el-menu-item index="/myNormalOrder">普通备货单</el-menu-item>
<el-menu-item index="/myUrgencyOrder">紧急备货单</el-menu-item>
</el-submenu>
<el-submenu index="/copyProduct">

View File

@@ -2,7 +2,7 @@
<ai-list class="list" v-loading="isLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
<ai-title
slot="title"
title="我的备货单"
title="普通备货单"
isShowBottomBorder>
<template #rightBtn>
<div class="title-right">
@@ -44,8 +44,8 @@
<json-excel
:data="tableData"
:fields="jsonFields"
name="备货单列表.xls"
worksheet="备货单列表">
name="普通备货单列表.xls"
worksheet="普通备货单列表">
<el-button type="primary" :disabled="tableData.length == 0">下载数据</el-button>
</json-excel>
</template>
@@ -70,7 +70,7 @@ import {timestampToTime} from '@/utils/date'
import JsonExcel from 'vue-json-excel'
export default {
name: 'MyOrder',
name: 'MyNormalOrder',
data () {
return {

View File

@@ -0,0 +1,250 @@
<template>
<ai-list class="list" v-loading="isLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
<ai-title
slot="title"
title="紧急备货单"
isShowBottomBorder>
<template #rightBtn>
<div class="title-right">
<div>
<label style="width:90px">店铺</label>
<el-select v-model="form.mallId" @change="beforeGetList" placeholder="请选择" size="small">
<el-option
v-for="item in $store.state.mallList"
:key="item.mallId"
:label="item.mallName"
:value="item.mallId">
</el-option>
</el-select>
</div>
</div>
</template>
</ai-title>
<template slot="content">
<ai-card title="数据明细" style="padding-bottom: 40px;">
<template #right>
<label style="width:80px">状态</label>
<el-select v-model="form.status" multiple placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<label style="width:120px">备货单创建时间</label>
<el-date-picker
v-model="form.date"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button type="primary" @click="toLoad">加载</el-button>&nbsp;
<json-excel
:data="tableData"
:fields="jsonFields"
name="紧急备货单列表.xls"
worksheet="紧急备货单列表">
<el-button type="primary" :disabled="tableData.length == 0">下载数据</el-button>
</json-excel>
</template>
<ai-table
:isShowPagination="false"
:tableData="tableData"
:col-configs="colConfigs"
:total="tableData.length"
height="500"
style="margin-top: 8px;"
@getList="() => {}">
</ai-table>
</ai-card>
</template>
</ai-list>
</template>
<script>
import { Message } from 'element-ui'
import {sendChromeAPIMessage} from '@/api/chromeApi'
import {timestampToTime} from '@/utils/date'
import JsonExcel from 'vue-json-excel'
export default {
name: 'MyUrgencyOrder',
data () {
return {
form: {
date: '',
beginDate: '',
endDate: '',
status: [],
mallId: ''
},
reqData: {
purchaseTimeFrom: '',
purchaseTimeTo: '',
pageNo: 1,
pageSize: 100,
urgencyType: 1,
statusList: [],
isCustomGoods: false,
oneDimensionSort: {
firstOrderByParam: "createdAt",
firstOrderByDesc: 1
}
},
options: [
{label: '待创建', value: 0},
{label: '待发货', value: 1},
{label: '已送货', value: 2},
{label: '已收货', value: 3},
{label: '质检全部退回', value: 5},
{label: '已验收', value: 6},
{label: '已入库', value: 7},
{label: '已作废', value: 8},
{label: '已取消', value: 10},
{label: '已超时', value: 9},
],
colConfigs: [
{ prop: 'purchaseTime', label: '备货单创建时间', width: '180px', align: 'left', fixed: 'left' },
{ prop: 'subPurchaseOrderSn', label: '备货单号', width: '160px', align: 'left', fixed: 'left' },
{ prop: 'productName', label: '商品名称', width: '240px', align: 'left', fixed: 'left' },
{ prop: 'status', label: '状态', width: '80px', align: 'left' },
{ prop: 'productSkcId', label: 'SKC ID', width: '120px', align: 'left' },
{ prop: 'skcExtCode', label: 'SKC货号', width: '100px', align: 'left' },
{ prop: 'productSkuId', label: 'SKU ID', width: '120px', align: 'left' },
{ prop: 'extCode', label: 'SKU货号', width: '160px', align: 'left' },
{ prop: 'specName', label: 'SKU属性', width: '100px', align: 'left' },
{ prop: 'supplierPrice', label: '申报价格(CNY)', width: '180px', align: 'left' },
{ prop: 'xiadan', label: '送货数量', width: '100px', align: 'left' },
{ prop: 'skuNum', label: '入库数量', width: '100px', align: 'left' },
{ prop: 'deliveryOrderSn', label: '发货单号', width: '140px', align: 'left' },
{ prop: 'deliverTime', label: '发货时间', width: '160px', align: 'left' },
{ prop: 'receiveTime', label: '收货时间', width: '160px', align: 'left' }
],
isLoading: false,
tableData: [],
jsonFields: {
"备货单创建时间": "purchaseTime",
"备货单号": "subPurchaseOrderSn",
"商品名称": "productName",
"商品图片": "productSkcPicture",
"状态": "status",
"SKC ID": "productSkcId",
"SKC货号": "skcExtCode",
"SKU ID": "productSkuId",
"SKU货号": "extCode",
"SKU属性": "specName",
"申报价格(CNY)": "supplierPrice",
"下单数量": "xiadan",
"实际入库数量": "skuNum",
"发货单号": "deliveryOrderSn",
"发货时间": "deliverTime",
"收货时间": "receiveTime"
},
snList: [],
currentIndex: 0
}
},
components: {
JsonExcel
},
methods: {
beforeGetList() {
this.$userCheck(this.form.mallId).then(() => {
}).catch((err) => {
this.form.mallId = ''
})
},
toLoad() {
if (!this.form.mallId) {
Message.error("请选择店铺")
return
}
if (!this.form.date) {
Message.error("请选择时间")
return
}
this.reqData.purchaseTimeFrom = this.form.date[0].getTime()
this.reqData.purchaseTimeTo = this.form.date[1].getTime() + 86400 * 1000
this.reqData.pageNo = 1
this.reqData.statusList = this.form.status
this.tableData = []
this.packageNumber = 0
this.snList = []
this.currentIndex = 0
this.isLoading = true
this.load()
},
load() {
sendChromeAPIMessage({
url: 'oms/bg/venom/api/supplier/purchase/manager/querySubOrderList',
needMallId: true,
mallId: this.form.mallId,
anti: true,
data: this.reqData}).then((res) => {
if (res.errorCode == 1000000) {
for(let i = 0;i < res.result.subOrderForSupplierList.length; i++) {
let item = res.result.subOrderForSupplierList[i];
let data = {};
data.purchaseTime = timestampToTime(item.purchaseTime)
data.subPurchaseOrderSn = item.subPurchaseOrderSn
data.productName = item.productName
data.productSkcPicture = item.productSkcPicture
data.productSkcId = item.productSkcId
data.skcExtCode = item.productSn
data.status = this.options.filter(i => {return i.value == item.status})[0].label
data.deliveryOrderSn = item.deliverInfo.deliveryOrderSn
data.deliverTime = timestampToTime(item.deliverInfo.deliverTime)
data.receiveTime = timestampToTime(item.deliverInfo.receiveTime)
for(let k = 0; k < item.skuQuantityDetailList.length; k++) {
data = {...data,
productSkuId: item.skuQuantityDetailList[k].productSkuId,
specName: item.skuQuantityDetailList[k].className,
extCode: item.skuQuantityDetailList[k].extCode,
supplierPrice: item.skuQuantityDetailList[k].supplierPrice / 100,
xiadan: item.skuQuantityDetailList[k].deliverQuantity,
skuNum: item.skuQuantityDetailList[k].realReceiveAuthenticQuantity}
this.tableData.push(data)
}
}
if (this.reqData.pageNo == 1 && res.result.subOrderForSupplierList.length == 0) {
this.isLoading = false
}
else if (res.result.subOrderForSupplierList.length == 100) {
this.reqData.pageNo ++
this.load()
} else {
this.isLoading = false
}
}
})
}
}
}
</script>
<style scoped lang="scss">
.list {
.title-right {
display: flex;
align-items: center;
& > div:first-child {
margin-right: 20px;
}
}
::v-deep.ai-list {
.ai-list__content--right-wrapper {
background: transparent;
box-shadow: none;
padding: 0!important;
}
}
}
</style>