|
|
|
|
<template>
|
|
|
|
|
<view class="viewport">
|
|
|
|
|
<CustomNavbar />
|
|
|
|
|
<u-tabs
|
|
|
|
|
:list="tabsList"
|
|
|
|
|
:is-scroll="false"
|
|
|
|
|
:current="tabsCurrent"
|
|
|
|
|
@change="fnTabsChg"
|
|
|
|
|
></u-tabs>
|
|
|
|
|
<u-card v-for="orderItem in orderList">
|
|
|
|
|
<view class="" slot="head">
|
|
|
|
|
<text>采购订单(编号:{{ orderItem.orderNumber }})</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="" slot="body">
|
|
|
|
|
<u-row gutter="16">
|
|
|
|
|
<u-col span="12">
|
|
|
|
|
<text>订单日期:</text><text>{{ fnFormat(orderItem.orderDate) }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>物料名称:</text><text>{{ orderItem.materialName }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>规格型号:</text><text>{{ orderItem.specification }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>物料编码:</text><text>{{ orderItem.materialCode }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>下单数量:</text><text>{{ orderItem.orderQuantity }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="12">
|
|
|
|
|
<text>要求到货日期:</text><text>{{ fnFormat(orderItem.requestDeliveryDate) }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>总投产数量:</text><text>{{ orderItem.totalProductionQuantity }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
<u-col span="6">
|
|
|
|
|
<text>总发货数量:</text><text>{{ orderItem.totalSendQuantity }}</text>
|
|
|
|
|
</u-col>
|
|
|
|
|
</u-row>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="" slot="foot">
|
|
|
|
|
<template v-if="orderItem.orderStatus == 1">
|
|
|
|
|
<u-button
|
|
|
|
|
size="mini"
|
|
|
|
|
:custom-style="{
|
|
|
|
|
color: 'white',
|
|
|
|
|
margin: '5px',
|
|
|
|
|
backgroundImage:
|
|
|
|
|
'linear-gradient(to right, rgb(111, 137, 221), rgb(42, 75, 180))',
|
|
|
|
|
}"
|
|
|
|
|
:plain="true"
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="fnTakeOrder(orderItem)"
|
|
|
|
|
>
|
|
|
|
|
接单
|
|
|
|
|
</u-button>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else-if="orderItem.orderStatus == 2">
|
|
|
|
|
<u-button
|
|
|
|
|
size="mini"
|
|
|
|
|
:custom-style="{
|
|
|
|
|
color: 'white',
|
|
|
|
|
margin: '5px',
|
|
|
|
|
backgroundImage:
|
|
|
|
|
'linear-gradient(to right, rgb(255, 133, 133), rgb(249, 61, 61))',
|
|
|
|
|
}"
|
|
|
|
|
:plain="true"
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="fnDelay(orderItem)"
|
|
|
|
|
>
|
|
|
|
|
延期发货
|
|
|
|
|
</u-button>
|
|
|
|
|
<u-button
|
|
|
|
|
size="mini"
|
|
|
|
|
:custom-style="{
|
|
|
|
|
color: 'white',
|
|
|
|
|
margin: '5px',
|
|
|
|
|
backgroundImage:
|
|
|
|
|
'linear-gradient(to right, rgb(255, 199, 131), rgb(252, 136, 13))',
|
|
|
|
|
}"
|
|
|
|
|
:plain="true"
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="fnFinish(orderItem)"
|
|
|
|
|
>
|
|
|
|
|
缺货结单
|
|
|
|
|
</u-button>
|
|
|
|
|
<u-button
|
|
|
|
|
size="mini"
|
|
|
|
|
:custom-style="{
|
|
|
|
|
color: 'white',
|
|
|
|
|
margin: '5px',
|
|
|
|
|
backgroundImage:
|
|
|
|
|
'linear-gradient(to right, rgb(111, 137, 221), rgb(42, 75, 180))',
|
|
|
|
|
}"
|
|
|
|
|
:plain="true"
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="fnToProd(orderItem)"
|
|
|
|
|
>
|
|
|
|
|
投产
|
|
|
|
|
</u-button>
|
|
|
|
|
<u-button
|
|
|
|
|
size="mini"
|
|
|
|
|
:custom-style="{
|
|
|
|
|
color: 'white',
|
|
|
|
|
margin: '5px',
|
|
|
|
|
backgroundImage:
|
|
|
|
|
'linear-gradient(to right, rgb(126, 237, 140), rgb(74, 215, 92))',
|
|
|
|
|
}"
|
|
|
|
|
:plain="true"
|
|
|
|
|
shape="circle"
|
|
|
|
|
@click="fnShipments(orderItem)"
|
|
|
|
|
>
|
|
|
|
|
发货
|
|
|
|
|
</u-button>
|
|
|
|
|
</template>
|
|
|
|
|
</view>
|
|
|
|
|
</u-card>
|
|
|
|
|
<PopToProd ref="popToProd" @evtRefresh="fnRefreshA"></PopToProd>
|
|
|
|
|
<PopDelay ref="popDelay" @evtRefresh="fnRefreshB"></PopDelay>
|
|
|
|
|
<PopShipments ref="popShipments" @evtRefresh="fnRefreshC"></PopShipments>
|
|
|
|
|
<u-top-tips ref="uTips"></u-top-tips>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
|
|
|
|
|
import { mapGetters } from "vuex";
|
|
|
|
|
import dayjs from "dayjs";
|
|
|
|
|
import {
|
|
|
|
|
getOrderList,
|
|
|
|
|
takeOrder,
|
|
|
|
|
finish,
|
|
|
|
|
} from "@/api/yys/materialProcurementOrder.js";
|
|
|
|
|
import CustomNavbar from "./components/CustomNavbar";
|
|
|
|
|
import PopToProd from "./components/PopToProd";
|
|
|
|
|
import PopDelay from "./components/PopDelay";
|
|
|
|
|
import PopShipments from "./components/PopShipments";
|
|
|
|
|
export default {
|
|
|
|
|
components: { CustomNavbar, PopToProd, PopDelay, PopShipments },
|
|
|
|
|
mixins: [],
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
isLoading: false,
|
|
|
|
|
tabsList: [
|
|
|
|
|
{ name: "待接单", orderStatus: "1" },
|
|
|
|
|
{ name: "已接单", orderStatus: "2" },
|
|
|
|
|
{ name: "部分发货", orderStatus: "4" },
|
|
|
|
|
{ name: "发货完成", orderStatus: "5" },
|
|
|
|
|
],
|
|
|
|
|
tabsCurrent: 0,
|
|
|
|
|
orderList: [],
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
watch: {},
|
|
|
|
|
computed: {},
|
|
|
|
|
onLoad(params) {
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
},
|
|
|
|
|
onUnload() {},
|
|
|
|
|
methods: {
|
|
|
|
|
fnTabsChg(index) {
|
|
|
|
|
this.tabsCurrent = index;
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
},
|
|
|
|
|
fnGetList() {
|
|
|
|
|
let tabsNow = this.tabsList[this.tabsCurrent];
|
|
|
|
|
let params = {
|
|
|
|
|
orderStatus: tabsNow.orderStatus,
|
|
|
|
|
};
|
|
|
|
|
getOrderList(params)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.orderList = res.data;
|
|
|
|
|
}
|
|
|
|
|
console.log(res);
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.log(err);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
fnTakeOrder(orderItem) {
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: "确认接单",
|
|
|
|
|
content: "确认接单(编号:" + orderItem.orderNumber + ")",
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
// 用户确认接单
|
|
|
|
|
console.log("用户确认接单");
|
|
|
|
|
takeOrder(orderItem)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.$refs.uTips.show({
|
|
|
|
|
title: "确认接单提交成功",
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: "2300",
|
|
|
|
|
});
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.log(err);
|
|
|
|
|
});
|
|
|
|
|
} else if (res.cancel) {
|
|
|
|
|
// 用户取消接单
|
|
|
|
|
console.log("用户取消接单");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
console.log(orderItem);
|
|
|
|
|
},
|
|
|
|
|
fnToProd(orderItem) {
|
|
|
|
|
this.$refs.popToProd.init(orderItem);
|
|
|
|
|
},
|
|
|
|
|
fnFinish(orderItem) {
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: "缺货结单",
|
|
|
|
|
content: "缺货结单(编号:" + orderItem.orderNumber + ")",
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
// 用户确认缺货结单
|
|
|
|
|
console.log("用户确认缺货结单");
|
|
|
|
|
finish(orderItem)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.$refs.uTips.show({
|
|
|
|
|
title: "缺货结单提交成功",
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: "2300",
|
|
|
|
|
});
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
console.log(err);
|
|
|
|
|
});
|
|
|
|
|
} else if (res.cancel) {
|
|
|
|
|
// 用户取消缺货结单
|
|
|
|
|
console.log("用户取消缺货结单");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
fnDelay(orderItem) {
|
|
|
|
|
this.$refs.popDelay.init(orderItem);
|
|
|
|
|
},
|
|
|
|
|
fnShipments(orderItem) {
|
|
|
|
|
this.$refs.popShipments.init(orderItem);
|
|
|
|
|
},
|
|
|
|
|
fnRefreshA() {
|
|
|
|
|
this.$refs.uTips.show({
|
|
|
|
|
title: "投产提交成功",
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: "2300",
|
|
|
|
|
});
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
},
|
|
|
|
|
fnRefreshB() {
|
|
|
|
|
this.$refs.uTips.show({
|
|
|
|
|
title: "延期发货提交成功",
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: "2300",
|
|
|
|
|
});
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
},
|
|
|
|
|
fnRefreshC() {
|
|
|
|
|
this.$refs.uTips.show({
|
|
|
|
|
title: "发货提交成功",
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: "2300",
|
|
|
|
|
});
|
|
|
|
|
this.fnGetList();
|
|
|
|
|
},
|
|
|
|
|
fnFormat(time, fmtStr = "YYYY-MM-DD") {
|
|
|
|
|
return dayjs(time).format(fmtStr);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss"></style>
|