|
@@ -2,77 +2,136 @@
|
|
|
<div>
|
|
|
<div class="bg-in">
|
|
|
<div>
|
|
|
- <!-- <span class="font">仓库: {{ orderOutboundInfo.warehouse_name }}</span>
|
|
|
- <span style="margin-left: 50px" class="font">
|
|
|
- 出库日期:
|
|
|
- <el-date-picker style="width: 200px" v-model="orderOutboundInfo.out_time" value-format="timestamp"
|
|
|
- type="datetime" :clearable="false" :editable="false" :disabled="$route.name === 'orderOutboundDetail'" />
|
|
|
- </span>
|
|
|
- <span style="margin-left: 50px" class="font" v-if="id">提货人:
|
|
|
- {{ orderOutboundInfo.warehouse_consignee_name ? orderOutboundInfo.warehouse_consignee_name : '无' }}
|
|
|
- </span>
|
|
|
- <span style="margin-left: 50px" class="font" v-if="!id">提货人:
|
|
|
- <el-select v-model="orderOutboundInfo.warehouse_consignee_id">
|
|
|
- <el-option v-for="item in adminList" :key="item.id" :label="item.real_name" :value="item.id" />
|
|
|
- </el-select>
|
|
|
- </span> -->
|
|
|
<el-form
|
|
|
- :model="warehouseOutForms"
|
|
|
- ref="warehouseOutForms"
|
|
|
+ :model="deliveryForms"
|
|
|
+ :rules="rules"
|
|
|
+ ref="ruleForm"
|
|
|
label-width="120px"
|
|
|
>
|
|
|
<el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="出库单号:" prop="name">
|
|
|
- <el-select v-model="warehouseOutForms.sn">
|
|
|
- <!-- <el-option /> -->
|
|
|
+ <el-col>
|
|
|
+ <el-form-item label="预约类型:" prop="appointment_type">
|
|
|
+ <el-select v-model="deliveryForms.appointment_type">
|
|
|
+ <el-option label="立即单" value="0"> </el-option>
|
|
|
+ <el-option label="预约上门单" value="1"> </el-option>
|
|
|
</el-select>
|
|
|
- <!-- {{ warehouseOutForms.sn }} -->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col>
|
|
|
+ <el-form-item label="预约时间:" prop="appointment_time">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="deliveryForms.appointment_time"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="选择日期时间"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <h3>发货人信息:</h3>
|
|
|
+ <el-row>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="订单编号:" prop="sn">
|
|
|
- <el-select v-model="warehouseOutForms.order_sn_list">
|
|
|
- <!-- <el-option /> -->
|
|
|
- </el-select>
|
|
|
- <!-- <span v-if="warehouseOutForms.order_sn_list">{{ formatFilter(warehouseOutForms.order_sn_list) }}</span> -->
|
|
|
- </el-form-item></el-col
|
|
|
- >
|
|
|
+ <el-form-item label="发货人姓名:" prop="sender.name">
|
|
|
+ <!-- <el-select v-model="deliveryForms.sender.name"> </el-select> -->
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.sender.name"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ placeholder="请输入发货人姓名"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="配送方式:" prop="category_id">
|
|
|
- <el-select>
|
|
|
- <!-- <el-option /> -->
|
|
|
- </el-select>
|
|
|
- <!-- <el-radio v-model="warehouseOutForms.delivery_type" :label="'express'" :disabled="true">物流配送</el-radio>
|
|
|
- <el-radio v-model="warehouseOutForms.delivery_type" :label="'self_pick'" :disabled="true">自提</el-radio> -->
|
|
|
- </el-form-item></el-col
|
|
|
- >
|
|
|
+ <el-form-item label="手机号:" prop="sender.phone">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.sender.phone"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ placeholder="请输入手机号"
|
|
|
+ ></el-input> </el-form-item
|
|
|
+ ></el-col>
|
|
|
<el-col :span="12">
|
|
|
+ <el-form-item label="配送地址:" prop="sender.address">
|
|
|
+ <el-cascader
|
|
|
+ size="large"
|
|
|
+ :options="options"
|
|
|
+ clearable
|
|
|
+ v-model="selectedOptions"
|
|
|
+ @change="sendHandleChange"
|
|
|
+ >
|
|
|
+ </el-cascader>
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.sender.address"
|
|
|
+ placeholder="请输入"
|
|
|
+ ></el-input> </el-form-item
|
|
|
+ ></el-col>
|
|
|
+ <!-- <el-col :span="12">
|
|
|
<el-form-item label="配送仓库:" prop="freight_price">
|
|
|
<el-select>
|
|
|
- <!-- <el-option /> -->
|
|
|
+
|
|
|
</el-select>
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="物流公司:" prop="logistics_company_id">
|
|
|
- <el-select v-model="warehouseOutForms.logistics_company_id">
|
|
|
- <!-- <el-option /> -->
|
|
|
+ <el-select v-model="deliveryForms.logistics_company_id">
|
|
|
+
|
|
|
</el-select>
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="配送地址" prop="address">
|
|
|
<el-input
|
|
|
- v-model="warehouseOutForms.address"
|
|
|
+ v-model="deliveryForms.address"
|
|
|
:minlength="1"
|
|
|
:maxlength="20"
|
|
|
clearable
|
|
|
placeholder="请输入提货人"
|
|
|
></el-input> </el-form-item
|
|
|
+ ></el-col> -->
|
|
|
+ </el-row>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <h3>收货人信息:</h3>
|
|
|
+ <!-- --><el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收货人姓名:" prop="receiver.name">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.receiver.name"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ placeholder="请输入收货人姓名"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="手机号:" prop="receiver.phone">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.receiver.phone"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ placeholder="请输入手机号"
|
|
|
+ ></el-input> </el-form-item
|
|
|
+ ></el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="配送地址:" prop="receiver.address">
|
|
|
+ <el-cascader
|
|
|
+ size="large"
|
|
|
+ :options="options"
|
|
|
+ clearable
|
|
|
+ v-model="receiverOptions"
|
|
|
+ @change="receiverChange"
|
|
|
+ >
|
|
|
+ </el-cascader>
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.receiver.address"
|
|
|
+ size="medium"
|
|
|
+ placeholder="请输入"
|
|
|
+ ></el-input> </el-form-item
|
|
|
></el-col>
|
|
|
</el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <!-- <el-row :gutter="20">
|
|
|
<el-col :span="8" :offset="6">
|
|
|
<el-form-item label="物流单号:" prop="tracking_number">
|
|
|
<el-input
|
|
@@ -85,151 +144,173 @@
|
|
|
<el-button>自动获取单号</el-button>
|
|
|
</el-form-item
|
|
|
></el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- </el-form>
|
|
|
- <!-- <div style="display: flex;">
|
|
|
- <span>物流单号:</span> <el-input v-model="tracking_number" :minlength="1" :maxlength="20" clearable
|
|
|
- placeholder="请输入物流单号"></el-input>
|
|
|
- </div> -->
|
|
|
- </div>
|
|
|
-
|
|
|
- <el-divider></el-divider>
|
|
|
- <!-- <div class="order-item" v-for="order in orderOutboundInfo.order_list">
|
|
|
- <div><span class="font">订单编号:</span>{{ order.order_sn }}</div>
|
|
|
-
|
|
|
- <div v-for="orderItem in order.order_item_list">
|
|
|
- <div class="flex">
|
|
|
- <div>商品名称: {{ orderItem.product_name }}</div>
|
|
|
- <div>商品编号: {{ orderItem.product_sn }}</div>
|
|
|
- <div>规格型号: {{ orderItem.product_specification }}</div>
|
|
|
- <div>购买数量: {{ orderItem.num }}</div>
|
|
|
- <div>
|
|
|
- <el-button
|
|
|
- class="button"
|
|
|
- size="mini"
|
|
|
- type="primary"
|
|
|
- @click="handleSelectWarehouseEntryBatch(orderItem)"
|
|
|
- :disabled="$route.name === 'orderOutboundDetail'"
|
|
|
- >选择库存</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
+ </el-row> -->
|
|
|
+ <h3>商品信息:</h3>
|
|
|
<el-table
|
|
|
- :data="orderItem.batch_list"
|
|
|
+ :data="product_list"
|
|
|
border
|
|
|
:cell-style="{ textAlign: 'center' }"
|
|
|
:header-cell-style="{ textAlign: 'center' }"
|
|
|
- style="width: 100%; margin-top: 20px"
|
|
|
+ style="width: 95%"
|
|
|
>
|
|
|
- <el-table-column label="入库单号">
|
|
|
+ <el-table-column type="selection" width="40" align="center" />
|
|
|
+ <el-table-column label="商品编号">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.warehouse_entry_sn }}
|
|
|
+ {{ scope.row.sn }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="批次号">
|
|
|
+ <el-table-column label="商品名称">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.batch_sn }}
|
|
|
+ {{ scope.row.name }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="库存数量">
|
|
|
+ <el-table-column label="条码">
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.remain_num }}
|
|
|
+ {{ scope.row.bar_code }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="出库数量">
|
|
|
+ <el-table-column label="序列号">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input
|
|
|
- :maxlength="22"
|
|
|
- v-model="scope.row.out_num"
|
|
|
- :disabled="$route.name === 'orderOutboundDetail'"
|
|
|
- />
|
|
|
+ {{ scope.row.sn_code }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="规格型号">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.goods_style }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="单位">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.goods_unit }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="订单数量">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.num }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="库存数量">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.usable_stock }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- </div>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <h3></h3>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="物品总重量:" prop="total_weight">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.total_weight"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ clearable
|
|
|
+ placeholder="请输入物品总重量"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="物品总体积:" prop="total_volume">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.total_volume"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ clearable
|
|
|
+ placeholder="请输入物品总体积"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="物品价格:" prop="declared_value">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.declared_value"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ clearable
|
|
|
+ placeholder="请输入物品价格"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form-item label="备注:" prop="remark">
|
|
|
+ <el-input
|
|
|
+ v-model="deliveryForms.remark"
|
|
|
+ type="textarea"
|
|
|
+ clearable
|
|
|
+ :autosize="{ minRows: 2, maxRows: 4 }"
|
|
|
+ placeholder="请输入备注"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8" :offset="6">
|
|
|
+ <el-form-item label="物流单号:" prop="tracking_number">
|
|
|
+ <el-input
|
|
|
+ v-model="kdnCode"
|
|
|
+ :minlength="1"
|
|
|
+ :maxlength="20"
|
|
|
+ :disabled="true"
|
|
|
+ placeholder="请输入物流单号"
|
|
|
+ ></el-input>
|
|
|
+ <el-button @click="obtainOrder" v-if="kdnCode == ''"
|
|
|
+ >获取单号</el-button
|
|
|
+ >
|
|
|
+ </el-form-item></el-col
|
|
|
+ >
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- <el-card v-if="orderOutboundInfo.status === 'SHIP'">
|
|
|
- <el-row :gutter="0">
|
|
|
- <el-col :span="4">配送方式</el-col>
|
|
|
- <el-col :span="8">{{
|
|
|
- orderOutboundInfo.delivery_type === "express" ? "物流配送" : "自提"
|
|
|
- }}</el-col>
|
|
|
- <el-col :span="4">物流费用</el-col>
|
|
|
- <el-col :span="8">{{ orderOutboundInfo.freight_price }}</el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="0">
|
|
|
- <el-col :span="4">提货人</el-col>
|
|
|
- <el-col :span="8">{{ orderOutboundInfo.consignee }}</el-col>
|
|
|
- <span v-if="orderOutboundInfo.delivery_type !== 'express'">
|
|
|
- <el-col :span="4">自提点</el-col>
|
|
|
- <el-col :span="8">{{ orderOutboundInfo.store_name }}</el-col>
|
|
|
- </span>
|
|
|
- <span v-else>
|
|
|
- <el-col :span="4">物流公司</el-col>
|
|
|
- <el-col :span="8">{{
|
|
|
- orderOutboundInfo.logistics_company_name
|
|
|
- }}</el-col>
|
|
|
- </span>
|
|
|
- </el-row>
|
|
|
- <el-row
|
|
|
- :gutter="0"
|
|
|
- v-if="orderOutboundInfo.delivery_type === 'express'"
|
|
|
- >
|
|
|
- <el-col :span="4">物流单号</el-col>
|
|
|
- <el-col :span="8">{{ orderOutboundInfo.tracking_number }}</el-col>
|
|
|
- </el-row>
|
|
|
- </el-card> -->
|
|
|
+
|
|
|
+ <!-- <el-divider></el-divider>
|
|
|
<el-form
|
|
|
- :model="warehouseOutForms"
|
|
|
- ref="warehouseOutForms"
|
|
|
+ :model="deliveryForms"
|
|
|
+ ref="deliveryForms"
|
|
|
label-width="120px"
|
|
|
>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="出库单号:" prop="name">
|
|
|
- <el-select v-model="warehouseOutForms.sn">
|
|
|
- <!-- <el-option /> -->
|
|
|
+ <el-select v-model="deliveryForms.sn">
|
|
|
+
|
|
|
</el-select>
|
|
|
- <!-- {{ warehouseOutForms.sn }} -->
|
|
|
+
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="订单编号:" prop="sn">
|
|
|
- <el-select v-model="warehouseOutForms.order_sn_list">
|
|
|
- <!-- <el-option /> -->
|
|
|
+ <el-select v-model="deliveryForms.order_sn_list">
|
|
|
+
|
|
|
</el-select>
|
|
|
- <!-- <span v-if="warehouseOutForms.order_sn_list">{{ formatFilter(warehouseOutForms.order_sn_list) }}</span> -->
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="配送方式:" prop="category_id">
|
|
|
<el-select>
|
|
|
- <!-- <el-option /> -->
|
|
|
+
|
|
|
</el-select>
|
|
|
- <!-- <el-radio v-model="warehouseOutForms.delivery_type" :label="'express'" :disabled="true">物流配送</el-radio>
|
|
|
- <el-radio v-model="warehouseOutForms.delivery_type" :label="'self_pick'" :disabled="true">自提</el-radio> -->
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="配送仓库:" prop="freight_price">
|
|
|
<el-select>
|
|
|
- <!-- <el-option /> -->
|
|
|
+
|
|
|
</el-select>
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="物流公司:" prop="logistics_company_id">
|
|
|
- <el-select v-model="warehouseOutForms.logistics_company_id">
|
|
|
- <!-- <el-option /> -->
|
|
|
+ <el-select v-model="deliveryForms.logistics_company_id">
|
|
|
+
|
|
|
</el-select>
|
|
|
</el-form-item></el-col
|
|
|
>
|
|
|
<el-col :span="8" >
|
|
|
<el-form-item label="配送地址" prop="address">
|
|
|
<el-input
|
|
|
- v-model="warehouseOutForms.address"
|
|
|
+ v-model="deliveryForms.address"
|
|
|
:minlength="1"
|
|
|
:maxlength="20"
|
|
|
clearable
|
|
@@ -252,22 +333,10 @@
|
|
|
</el-form-item
|
|
|
></el-col>
|
|
|
</el-row>
|
|
|
- </el-form>
|
|
|
- <div class="footer">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
-
|
|
|
- v-if="$route.name === 'orderOutboundDetail'"
|
|
|
- >
|
|
|
- <!-- @click="roBack()" -->
|
|
|
- 获取全部单号
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="saveErpWarehouseOut"
|
|
|
-
|
|
|
- >发货
|
|
|
- </el-button>
|
|
|
+ </el-form> -->
|
|
|
+ <div class="footer" v-if="kdnCode !== ''">
|
|
|
+ <!-- <el-button type="primary"> 获取全部单号 </el-button> -->
|
|
|
+ <el-button type="primary" @click="saveErpWarehouseOut">发货 </el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
@click="roBack2()"
|
|
@@ -283,7 +352,15 @@ import * as API_BasicSetting from "@/api/basicSetting";
|
|
|
import * as API_order from "@/api/order";
|
|
|
import * as API_Setting from "@/api/setting";
|
|
|
import * as API_Auth from "@/api/auth";
|
|
|
+import { RegExp } from '~/ui-utils'
|
|
|
import { Foundation } from "~/ui-utils";
|
|
|
+import {
|
|
|
+ provinceAndCityData,
|
|
|
+ pcTextArr,
|
|
|
+ regionData,
|
|
|
+ pcaTextArr,
|
|
|
+ codeToText,
|
|
|
+} from "element-china-area-data";
|
|
|
import { mapGetters } from "vuex";
|
|
|
|
|
|
export default {
|
|
@@ -297,19 +374,93 @@ export default {
|
|
|
},
|
|
|
id: "",
|
|
|
adminList: [],
|
|
|
- warehouseOutForms: {},
|
|
|
+ kdnCode: "",
|
|
|
+ deliveryForms: {
|
|
|
+ //发货人
|
|
|
+ sender: {
|
|
|
+ name: "",
|
|
|
+ phone: "",
|
|
|
+ address: "",
|
|
|
+ },
|
|
|
+ //收货人
|
|
|
+ receiver: {
|
|
|
+ name: "",
|
|
|
+ phone: "",
|
|
|
+ address: "",
|
|
|
+ },
|
|
|
+ //商品信息列表
|
|
|
+ goods_list: [],
|
|
|
+ },
|
|
|
+ product_list: [],
|
|
|
+ options: regionData,
|
|
|
+ selectedOptions: [],
|
|
|
+ receiverOptions: [],
|
|
|
+ rules: {
|
|
|
+ appointment_type: [
|
|
|
+ { required: true, message: "请选择预约类型", trigger: "change" },
|
|
|
+ ],
|
|
|
+ appointment_time: [
|
|
|
+ { required: true, message: "请选择上门时间", trigger: "change" },
|
|
|
+ ],
|
|
|
+ sender: {
|
|
|
+ name: [
|
|
|
+ { required: true, message: "请输入发货人姓名", trigger: "blur" },
|
|
|
+ ],
|
|
|
+
|
|
|
+ phone: [
|
|
|
+ this.MixinRequired("请输入手机号码!"),
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (!RegExp.mobile.test(value)) {
|
|
|
+ callback(new Error("手机号码格式有误!"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: ["change", "blur"],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ receiver: {
|
|
|
+ name: [
|
|
|
+ { required: true, message: "请输入收货人姓名", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ phone: [
|
|
|
+ this.MixinRequired("请输入手机号码!"),
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (!RegExp.mobile.test(value)) {
|
|
|
+ callback(new Error("手机号码格式有误!"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: ["change", "blur"],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ total_weight: [
|
|
|
+ { required: true, message: "请输入物品总重量", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ total_volume: [
|
|
|
+ { required: true, message: "请输入物品总体积", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ declared_value: [
|
|
|
+ { required: true, message: "请输入物品价格", trigger: "blur" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
$route: {
|
|
|
immediate: true,
|
|
|
handler(newVal) {
|
|
|
- if (this.$route.name === "orderOutboundDetail") {
|
|
|
- this.id = this.$route.params.id;
|
|
|
- this.GET_WarehouseOutDetail();
|
|
|
+ if (this.$route.name === "orderOutboundAdd") {
|
|
|
+ /* this.id = this.$route.params.id;
|
|
|
+ this.GET_WarehouseOutDetail(); */
|
|
|
} else {
|
|
|
this.orderIds = this.$route.params.orderIds;
|
|
|
- this.GET_WarehouseOutPreview();
|
|
|
+ /* this.GET_WarehouseOutPreview(); */
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -318,9 +469,75 @@ export default {
|
|
|
...mapGetters(["user"]),
|
|
|
},
|
|
|
mounted() {
|
|
|
+ /**/ this.id = this.$route.params.id;
|
|
|
+ this.GET_WarehouseOutDetail();
|
|
|
this.GET_AdministratorList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ /* 收获地址 */
|
|
|
+ receiverChange() {
|
|
|
+ this.deliveryForms.receiver.province_name =
|
|
|
+ codeToText[this.receiverOptions[0]];
|
|
|
+ this.deliveryForms.receiver.city_name =
|
|
|
+ codeToText[this.receiverOptions[1]];
|
|
|
+ this.deliveryForms.receiver.area_name =
|
|
|
+ codeToText[this.receiverOptions[2]];
|
|
|
+ },
|
|
|
+ /* 发货地址 */
|
|
|
+ sendHandleChange(val) {
|
|
|
+ this.deliveryForms.sender.province_name =
|
|
|
+ codeToText[this.selectedOptions[0]];
|
|
|
+ this.deliveryForms.sender.city_name = codeToText[this.selectedOptions[1]];
|
|
|
+ this.deliveryForms.sender.area_name = codeToText[this.selectedOptions[2]];
|
|
|
+ },
|
|
|
+
|
|
|
+ obtainOrder() {
|
|
|
+ this.$refs["ruleForm"].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ const params = this.MixinClone(this.deliveryForms);
|
|
|
+ //发货详细地址
|
|
|
+ params.receiver.province_city_area_address =
|
|
|
+ params.receiver.province_name +
|
|
|
+ params.receiver.city_name +
|
|
|
+ params.receiver.area_name +
|
|
|
+ params.receiver.address;
|
|
|
+ //收货详细地址
|
|
|
+ params.sender.province_city_area_address =
|
|
|
+ params.sender.province_name +
|
|
|
+ params.sender.city_name +
|
|
|
+ params.sender.area_name +
|
|
|
+ params.sender.address;
|
|
|
+ //商品信息
|
|
|
+ const item = {};
|
|
|
+ this.product_list.map((el) => {
|
|
|
+ item.goods_name = el.name;
|
|
|
+ item.goods_price = el.price;
|
|
|
+ item.quantity = el.num;
|
|
|
+ item.unit = el.goods_unit;
|
|
|
+ return params.goods_list.push(item);
|
|
|
+ });
|
|
|
+ params.goods_num = this.product_list.reduce(
|
|
|
+ (sum, e) => sum + Number(e.num || 0),
|
|
|
+ 0
|
|
|
+ );
|
|
|
+ params.total_weight = Number(params.total_weight);
|
|
|
+ params.total_volume = Number(params.total_volume);
|
|
|
+ params.declared_value = Number(params.declared_value);
|
|
|
+ //
|
|
|
+ console.log(params);
|
|
|
+ params.order_code = this.id;
|
|
|
+ API_order.getKdShip(this.id, params).then((res) => {
|
|
|
+ this.kdnCode = res;
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ console.log("error submit!!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取地址
|
|
|
+ handleChange(value) {},
|
|
|
/** 获取人员列表 */
|
|
|
GET_AdministratorList() {
|
|
|
API_Auth.getAdministratorList({
|
|
@@ -332,7 +549,10 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
saveErpWarehouseOut() {
|
|
|
- return
|
|
|
+ API_order.outOrderSend(this.id).then((res) => {
|
|
|
+ this.$router.push({ name: "warehouseOut" });
|
|
|
+ });
|
|
|
+ return;
|
|
|
API_order.addErpWarehouseOut({
|
|
|
order_list: this.orderOutboundInfo.order_list,
|
|
|
warehouse_consignee_id: this.orderOutboundInfo.warehouse_consignee_id,
|
|
@@ -385,11 +605,47 @@ export default {
|
|
|
});
|
|
|
this.$router.push({ name: "order" });
|
|
|
},
|
|
|
- /** 调拨单商品明细API*/
|
|
|
+ /** 获取发货单详情*/
|
|
|
GET_WarehouseOutDetail() {
|
|
|
- API_order.getWarehouseOutInfo(this.id).then((response) => {
|
|
|
- this.orderOutboundInfo = response;
|
|
|
- this.orderOutboundInfo.out_time = response.out_time * 1000;
|
|
|
+ API_order.getOrderDetail(this.id).then((res) => {
|
|
|
+ res.product_list = res.item_list.map((el) => {
|
|
|
+ el.allow_sn = el.goods_vo.allow_sn;
|
|
|
+ el.bar_code = el.goods_vo.bar_code;
|
|
|
+ el.brand_id = el.goods_vo.brand_id;
|
|
|
+ el.brand_name = el.goods_vo.brand_name;
|
|
|
+ el.category_id = el.goods_vo.category_id;
|
|
|
+ el.category_ids = el.goods_vo.category_ids;
|
|
|
+ el.category_name = el.goods_vo.category_name;
|
|
|
+ el.cost_price = el.goods_vo.cost_price;
|
|
|
+ el.create_time = el.goods_vo.create_time;
|
|
|
+ el.creator = el.goods_vo.creator;
|
|
|
+ el.description = el.goods_vo.description;
|
|
|
+ el.en_name = el.goods_vo.en_name;
|
|
|
+ el.freight_template_id = el.goods_vo.freight_template_id;
|
|
|
+ el.goods_style = el.goods_vo.goods_style;
|
|
|
+ el.goods_unit = el.goods_vo.goods_unit;
|
|
|
+ el.goods_unit = el.goods_vo.goods_unit;
|
|
|
+ el.have_spec = el.goods_vo.have_spec;
|
|
|
+ el.hire_or_sail = el.goods_vo.hire_or_sail;
|
|
|
+ el.id = el.goods_vo.id;
|
|
|
+ el.image = el.goods_vo.image;
|
|
|
+ el.image_list = el.goods_vo.image_list;
|
|
|
+ el.label_names = el.goods_vo.label_names;
|
|
|
+ el.market_enable = el.goods_vo.market_enable;
|
|
|
+ el.mkt_price = el.goods_vo.mkt_price;
|
|
|
+ el.name = el.goods_vo.name;
|
|
|
+ el.params_list = el.goods_vo.params_list;
|
|
|
+ el.price = el.goods_vo.price;
|
|
|
+ el.sn = el.goods_vo.sn;
|
|
|
+ el.sn_code = el.goods_vo.sn_code;
|
|
|
+ el.sort = el.goods_vo.sort;
|
|
|
+ el.update_time = el.goods_vo.update_time;
|
|
|
+ el.updater = el.goods_vo.updater;
|
|
|
+ el.usable_stock = el.goods_vo.usable_stock;
|
|
|
+ el.video = el.goods_vo.video;
|
|
|
+ return el;
|
|
|
+ });
|
|
|
+ this.product_list = res.item_list;
|
|
|
});
|
|
|
},
|
|
|
/** 出库前预览 */
|
|
@@ -479,8 +735,12 @@ export default {
|
|
|
z-index: 999;
|
|
|
margin-top: 30px;
|
|
|
}
|
|
|
-/deep/ .el-form-item__content{
|
|
|
+/deep/ .el-form-item__content {
|
|
|
display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .el-input {
|
|
|
+ width: 300px;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|
|
|
|