|
@@ -31,9 +31,9 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="销售订单号" prop="orderId">
|
|
|
+ <el-form-item label="发货单号" prop="deliveryId">
|
|
|
<div style="display: flex; align-items: center;">
|
|
|
- <el-input v-model="formData.orderId" autocomplete="off" placeholder="请选择" disabled></el-input>
|
|
|
+ <el-input v-model="formData.deliveryId" autocomplete="off" placeholder="请选择" disabled></el-input>
|
|
|
<el-button type="primary" size="small" @click="openOrderDialog" style="margin-left: 10px;" :disabled="!!formData.id">选择</el-button>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
@@ -48,6 +48,11 @@
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="6">
|
|
|
+ <el-form-item label="销售订单号" prop="orderId">
|
|
|
+ <el-input v-model="formData.orderId" autocomplete="off" placeholder="请输入销售订单号" disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="业务员" prop="saleName">
|
|
|
<el-input v-model="formData.saleName" autocomplete="off" placeholder="请输入业务员" disabled></el-input>
|
|
|
</el-form-item>
|
|
@@ -57,27 +62,30 @@
|
|
|
<el-input v-model="formData.saleMobile" autocomplete="off" placeholder="请输入业务员电话" disabled></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- <el-col :span="6">
|
|
|
- <el-form-item label="工单类型" prop="orderSmallType">
|
|
|
- <el-select v-model="formData.orderSmallType" placeholder="请选择" disabled>
|
|
|
- <el-option
|
|
|
- v-for="item in orderTypeList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.orderSmallTypeText"
|
|
|
- :value="item.id">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col> -->
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="下单时间" prop="createTime">
|
|
|
<el-input v-model="formData.createTime" autocomplete="off" placeholder="请输入下单时间" disabled></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="出货仓库" prop="deliverStorageName">
|
|
|
+ <el-input v-model="formData.deliverStorageName" :disabled="true" placeholder="请输入出货仓库"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="退货仓库" prop="storageStockId">
|
|
|
+ <el-select v-model="formData.storageStockId" placeholder="请选择退货仓库" style="width: 100%;">
|
|
|
+ <el-option :label="item.storageName" :value="item.storageId" v-for="(item, index) in storageList"
|
|
|
+ :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
-
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="客户名称" prop="receUserName">
|
|
|
<el-input v-model="formData.receUserName" autocomplete="off" placeholder="请输入客户名称" disabled></el-input>
|
|
@@ -412,24 +420,16 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="客户名称" prop="userName">
|
|
|
- <el-input v-model="screenForm.userName" placeholder="请输入客户名称"></el-input>
|
|
|
+ <el-form-item label="发货单号" prop="deliveryId">
|
|
|
+ <el-input v-model="screenForm.deliveryId" placeholder="请输入发货单号"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="客户电话" prop="phone">
|
|
|
- <el-input v-model="screenForm.phone" placeholder="请输入客户电话"></el-input>
|
|
|
+ <el-form-item label="商品名称" prop="goodsName">
|
|
|
+ <el-input v-model="screenForm.goodsName" placeholder="请输入商品名称"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="商品名称" prop="productName">
|
|
|
- <el-input v-model="screenForm.productName" placeholder="请输入商品名称"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label=""></el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8" class="tr">
|
|
|
+ <el-col :span="24" class="tr">
|
|
|
<el-form-item label="">
|
|
|
<el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
|
|
|
<el-button size="small" @click="resetScreenForm">清空</el-button>
|
|
@@ -449,44 +449,28 @@
|
|
|
max-height="270"
|
|
|
@selection-change="handleChooseGoods">
|
|
|
<el-table-column align="center" type="selection" width="45"></el-table-column>
|
|
|
- <el-table-column align="center" prop="orderId" label="订单号" min-width="180"></el-table-column>
|
|
|
- <el-table-column align="center" prop="orderStatus" label="状态" min-width="80">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{scope.row.orderStatus | ORDER_CURRENT_STATUS_FILTER}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <!-- <el-table-column align="center" prop="goodsPrice" label="品牌" min-width="80"></el-table-column> -->
|
|
|
- <!-- <el-table-column align="center" prop="goodsPrice" label="大类" min-width="80"></el-table-column> -->
|
|
|
- <!-- <el-table-column align="center" prop="goodsPrice" label="小类" min-width="80"></el-table-column> -->
|
|
|
- <el-table-column align="center" prop="goodsName" label="商品名称" min-width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <div style="text-align: left;" v-for="(item, index) in scope.row.orderDetails" :key="index"><span v-if="scope.row.orderDetails.length > 1">{{index+1}}. </span>{{item.goodsName}}</div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column align="center" prop="goodsSpecName" label="规格型号" min-width="200">
|
|
|
+ <el-table-column align="center" prop="deliveryId" label="发货单号" min-width="180"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="orderId" label="销售订单号" min-width="180"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="status" label="状态" min-width="80">
|
|
|
<template slot-scope="scope">
|
|
|
- <div style="text-align: left;" v-for="(item, index) in scope.row.orderDetails" :key="index"><span v-if="scope.row.orderDetails.length > 1">{{index+1}}. </span>{{item.goodsSpecName}}</div>
|
|
|
+ {{{SEND: '已发货', REFUND: '已退货'}[scope.row.status]}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="totalAmount" label="金额" min-width="80"></el-table-column>
|
|
|
- <el-table-column align="center" prop="saleName" label="业务员" min-width="80"></el-table-column>
|
|
|
- <el-table-column align="center" prop="saleMobile" label="业务员电话" min-width="120"></el-table-column>
|
|
|
- <el-table-column align="center" prop="receUserName" label="客户名称" min-width="80"></el-table-column>
|
|
|
- <el-table-column align="center" prop="recePhone" label="客户电话" min-width="120"></el-table-column>
|
|
|
- <el-table-column align="center" prop="receAddress" label="客户地址" min-width="200" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column align="center" prop="saleType" label="销售类型" min-width="80">
|
|
|
+ <el-table-column align="center" prop="brandName" label="品牌" min-width="80"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="mainName" label="大类" min-width="80"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="smallName" label="小类" min-width="80"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="goodsName" label="商品名称" min-width="200"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="goodsSpecValue" label="规格型号" min-width="200"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="sendNum" label="数量" min-width="80"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="saleType" label="发货方式" min-width="80">
|
|
|
<template slot-scope="scope">
|
|
|
- {{scope.row.saleType | saleTypeFilter}}
|
|
|
+ {{{YES: '自提', NO: '快递物流'}[scope.row.pickType]}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column align="center" prop="goodsPrice" label="支付状态" min-width="80"></el-table-column> -->
|
|
|
- <el-table-column align="center" prop="payType" label="支付方式" min-width="80"></el-table-column>
|
|
|
- <!-- <el-table-column align="center" prop="goodsPrice" label="支付订单号" min-width="80"></el-table-column> -->
|
|
|
- <el-table-column align="center" prop="payTime" label="支付时间" min-width="160"></el-table-column>
|
|
|
- <el-table-column align="center" prop="createBy" label="创建人" min-width="160" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column align="center" prop="createTime" label="创建时间" min-width="160"></el-table-column>
|
|
|
- <el-table-column align="center" prop="examineBy" label="审批人" min-width="160" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column align="center" prop="examineTime" label="审批时间" min-width="160"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="pickName" label="提货人" min-width="80"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="pickPhone" label="提货人电话" min-width="120"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="companyName" label="快递公司" min-width="120"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="deliverTime" label="发货时间" min-width="160"></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div class="pagination clearfix">
|
|
@@ -519,9 +503,10 @@ import { mapGetters } from 'vuex'
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
import TemplatePage from '@/components/template/template-page-1.vue'
|
|
|
import import_mixin from '@/components/template/import_mixin.js'
|
|
|
-import { getSalesReturnOrderList, salesReturnOrderListExport, salesReturnOrderSave, getSalesReturnOrderDetail, salesReturnOrderExamine, getOrderTypeList, getList, getOrderCodeList, getOrderDetail } from "@/api/order";
|
|
|
+import { getSalesReturnOrderList, salesReturnOrderListExport, salesReturnOrderSave, getSalesReturnOrderDetail, salesReturnOrderExamine, getOrderTypeList, getSalesDeliverOrderList, getOrderCodeList, getOrderDetail, getSalesDeliverOrderDetail } from "@/api/order";
|
|
|
import operation_mixin from '@/components/template/operation_mixin.js'
|
|
|
import geographicalPosi from '@/components/geographicalPosi/index.vue'
|
|
|
+import * as Storage from "@/api/storage";
|
|
|
|
|
|
export default {
|
|
|
components: { TemplatePage, geographicalPosi },
|
|
@@ -595,6 +580,9 @@ export default {
|
|
|
|
|
|
isOld: 'NO',
|
|
|
isReturnOld: '',
|
|
|
+
|
|
|
+ deliverStorageName: '',
|
|
|
+ storageStockId: '',
|
|
|
},
|
|
|
formRules: {
|
|
|
isReturnOld: [{ required: true, message: '请选择是否退旧机', trigger: 'change' }],
|
|
@@ -604,6 +592,7 @@ export default {
|
|
|
|
|
|
examineStatus: '',
|
|
|
orderTypeList: [],
|
|
|
+ storageList: [],
|
|
|
goodsList: [],
|
|
|
codeList: [],
|
|
|
oldList: [],
|
|
@@ -617,9 +606,8 @@ export default {
|
|
|
isShowOrderDialog: false,
|
|
|
screenForm: {
|
|
|
orderId: '',
|
|
|
- userName: '',
|
|
|
- phone: '',
|
|
|
- productName: '',
|
|
|
+ deliveryId: '',
|
|
|
+ goodsName: '',
|
|
|
},
|
|
|
currentPage: 1, // 当前页码
|
|
|
pageSize: 10, // 每页数量
|
|
@@ -656,30 +644,42 @@ export default {
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
- if(this.$route.query.orderId) {
|
|
|
+ if(this.$route.query.deliverId) {
|
|
|
this.$nextTick(() => {
|
|
|
this.openForm('add');
|
|
|
- getOrderDetail({ orderId: this.$route.query.orderId }).then((res) => {
|
|
|
- const data = res.data;
|
|
|
- this.formData.orderId = data.orderId;
|
|
|
- this.formData.isOld = data.isOld;
|
|
|
- this.formData.saleType = data.saleType;
|
|
|
- this.formData.saleName = data.saleName;
|
|
|
- this.formData.saleMobile = data.saleMobile;
|
|
|
- this.formData.createTime = data.createTime;
|
|
|
- this.formData.receUserName = data.receUserName;
|
|
|
- this.formData.recePhone = data.recePhone;
|
|
|
- this.formData.receAddress = data.receAddress;
|
|
|
- data.orderDetails.forEach(item => {
|
|
|
- item.waitRefundNum = item.num;
|
|
|
- item.waitRefundPrice = item.price;
|
|
|
+ getSalesDeliverOrderDetail({ deliveryId: this.$route.query.deliverId }).then(res => {
|
|
|
+ const dData = res.data;
|
|
|
+ this.formData.deliveryId = dData.deliveryId;
|
|
|
+ this.formData.deliverStorageName = dData.storageStockName;
|
|
|
+
|
|
|
+ getOrderDetail({ orderId: dData.orderId }).then((res) => {
|
|
|
+ const oData = res.data;
|
|
|
+ this.formData.orderId = oData.orderId;
|
|
|
+ this.formData.isOld = oData.isOld;
|
|
|
+ this.formData.saleType = oData.saleType;
|
|
|
+ this.formData.saleName = oData.saleName;
|
|
|
+ this.formData.saleMobile = oData.saleMobile;
|
|
|
+ this.formData.createTime = oData.createTime;
|
|
|
+ this.formData.receUserName = oData.receUserName;
|
|
|
+ this.formData.recePhone = oData.recePhone;
|
|
|
+ this.formData.receAddress = oData.receAddress;
|
|
|
+ oData.orderDetails.forEach(item => {
|
|
|
+ item.waitRefundNum = item.num;
|
|
|
+ item.waitRefundPrice = item.price;
|
|
|
+ })
|
|
|
+ this.goodsList = oData.orderDetails;
|
|
|
+ this.oldList = oData.orderOldProductDTOList;
|
|
|
+ })
|
|
|
+ getOrderCodeList({orderId: dData.orderId}).then(res => {
|
|
|
+ this.codeList = res.data;
|
|
|
})
|
|
|
- this.goodsList = data.orderDetails;
|
|
|
- this.oldList = data.orderOldProductDTOList;
|
|
|
- })
|
|
|
- getOrderCodeList({orderId: this.$route.query.orderId}).then(res => {
|
|
|
- this.codeList = res.data;
|
|
|
})
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if(this.$route.query.refundId) {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.openDetail('detail', this.$route.query.refundId);
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -756,6 +756,7 @@ export default {
|
|
|
this.formCancel()
|
|
|
this.$nextTick(()=>{
|
|
|
// this.getOrderTypeList();
|
|
|
+ this.getStorageList();
|
|
|
this.formType = type
|
|
|
this.formVisible = true
|
|
|
this.formTabs = 'a';
|
|
@@ -815,8 +816,11 @@ export default {
|
|
|
formConfirm(cancel) {
|
|
|
this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
|
|
|
if (valid) {
|
|
|
+ if(!this.formData.storageStockId) return this.$errorMsg('请选择退货仓库');
|
|
|
+
|
|
|
salesReturnOrderSave({
|
|
|
id: this.formData.id || '',
|
|
|
+ deliveryId: this.formData.deliveryId,
|
|
|
orderId: this.formData.orderId,
|
|
|
remark: this.formData.remark,
|
|
|
fileUrls: this.formData.fileUrl,
|
|
@@ -831,6 +835,7 @@ export default {
|
|
|
orderOfflineItemCodes: this.joinCode ? this.codeList : [],
|
|
|
isOld: this.formData.isReturnOld,
|
|
|
ids: this.oldList.map(o => o.id),
|
|
|
+ storageStockId: this.formData.storageStockId,
|
|
|
}).then(res => {
|
|
|
this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
|
|
|
cancel('list')
|
|
@@ -909,15 +914,21 @@ export default {
|
|
|
this.waitChooseOrder = val;
|
|
|
},
|
|
|
|
|
|
+ getStorageList() {
|
|
|
+ Storage.getList({ pageNum: 1, pageSize: -1 }).then(res => {
|
|
|
+ this.storageList = res.data.records;
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
getOrderList() {
|
|
|
- getList({
|
|
|
- orderStatus: 'YFH,OVER',
|
|
|
- orderId: this.screenForm.orderId, // 订单号
|
|
|
- productName: this.screenForm.productName, // 商品名称
|
|
|
- userName: this.screenForm.userName, // 会员昵称
|
|
|
- phone: this.screenForm.phone, // 手机号
|
|
|
+ getSalesDeliverOrderList({
|
|
|
pageNum: this.currentPage,
|
|
|
- pageSize: this.pageSize
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ params: [
|
|
|
+ {param: "a.order_id", compare: "like", value: this.screenForm.orderId},
|
|
|
+ {param: "a.delivery_id", compare: "like", value: this.screenForm.deliveryId},
|
|
|
+ {param: "b.goods_name", compare: "like", value: this.screenForm.goodsName}
|
|
|
+ ]
|
|
|
}).then(res => {
|
|
|
this.orderList = res.data.records;
|
|
|
this.listTotal = res.data.total;
|
|
@@ -952,11 +963,16 @@ export default {
|
|
|
|
|
|
confirmOrderDialog() {
|
|
|
if(this.waitChooseOrder.length < 1) {
|
|
|
- return this.$errorMsg('请选择订单');
|
|
|
+ return this.$errorMsg('请选择发货单');
|
|
|
}
|
|
|
if(this.waitChooseOrder.length > 1) {
|
|
|
- return this.$errorMsg('最多选择一个订单');
|
|
|
+ return this.$errorMsg('最多选择一个发货单');
|
|
|
}
|
|
|
+ getSalesDeliverOrderDetail({ deliveryId: this.waitChooseOrder[0].deliveryId }).then(res => {
|
|
|
+ const data = res.data;
|
|
|
+ this.formData.deliveryId = data.deliveryId;
|
|
|
+ this.formData.deliverStorageName = data.storageStockName;
|
|
|
+ })
|
|
|
getOrderDetail({ orderId: this.waitChooseOrder[0].orderId }).then((res) => {
|
|
|
const data = res.data;
|
|
|
this.formData.orderId = data.orderId;
|