|
@@ -71,7 +71,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="bode">
|
|
|
<el-col :span="6">配送方式</el-col>
|
|
|
- <el-col :span="18" class="other">快递配送</el-col>
|
|
|
+ <el-col :span="18" class="other">{{ form.transport_type_name }}</el-col>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="goods_total bode">
|
|
|
<el-col :span="6">快递费</el-col>
|
|
@@ -101,8 +101,49 @@
|
|
|
<el-col :span="6">寄出快递公司</el-col>
|
|
|
<el-col :span="18" class="other">{{ transport.shop_transport_name || '暂无快递信息' }}</el-col>
|
|
|
</el-col>
|
|
|
- <el-col :span="24" class="form" v-if="form.status == '1' || form.status == '2'">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-col v-for="(item, index) in transport" :key="index" class="transport">
|
|
|
+ <el-col :span="24" class="bode">
|
|
|
+ <el-col :span="6">发货商品{{ index + 1 }}</el-col>
|
|
|
+ <el-col :span="18" class="other">{{ item.goods_name }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="bode">
|
|
|
+ <el-col :span="6">发货数量</el-col>
|
|
|
+ <el-col :span="18" class="other">{{ item.num }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="bode">
|
|
|
+ <el-col :span="6">寄出运单号</el-col>
|
|
|
+ <el-col :span="18" class="other">{{ item.shop_transport_no || '暂无单号' }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="bode">
|
|
|
+ <el-col :span="6">寄出快递公司</el-col>
|
|
|
+ <el-col :span="18" class="other">{{ item.shop_transport_name || '暂无快递信息' }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" style="text-align: center">
|
|
|
+ <el-button type="danger" @click="toDel(item)"> 删除 </el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="form.status == '1' || form.status == '2-'">
|
|
|
+ <el-button type="primary" @click="onstatus('0')"> 全部发货 </el-button>
|
|
|
+ <el-button type="primary" @click="onstatus('1')"> 部分发货 </el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="form" v-if="form.status == '1' || form.status == '2' || form.status == '2-'">
|
|
|
<el-form :model="form" ref="form" :rules="rules" label-width="100px" class="demo-ruleForm">
|
|
|
+ <el-form-item label="发货商品" prop="goods_name" v-if="status == '1' && form.transport_type == '0'">
|
|
|
+ <el-select v-model="form.goods_name" clearable filterable placeholder="请选择发货商品" size="small" style="width: 100%" @change="goodsChange">
|
|
|
+ <el-option v-for="i in list" :key="i._id" :label="getName(i)" :value="i._id"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <p>
|
|
|
+ <span style="color: red">用于部分发货 </span>
|
|
|
+ </p>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="发货商品数量" prop="num" v-if="status == '1' && form.transport_type == '0'">
|
|
|
+ <el-input v-model="form.num" placeholder="请输入发货商品数量" size="small" @input="toNum"></el-input>
|
|
|
+ <p>
|
|
|
+ 用于部分发货:发货最大数量不得超过购买商品最大数量 <span style="color: red"> {{ buy_num }}</span>
|
|
|
+ </p>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="寄出运单号" prop="shop_transport_no" v-if="form.transport_type == '0'">
|
|
|
<el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递公司,同时填入" size="small"></el-input>
|
|
|
</el-form-item>
|
|
@@ -129,7 +170,12 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-col>
|
|
|
- <el-button type="primary" @click="onSubmit('form', '2')" v-if="form.status == '1'"> 发货 </el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit('form', '2')" v-if="(form.status == '1' || form.status == '2-') && status == '0'">
|
|
|
+ 保存
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit('form', '2-')" v-if="(form.status == '1' || form.status == '2-') && status == '1'">
|
|
|
+ 添加保存
|
|
|
+ </el-button>
|
|
|
<el-button type="primary" @click="onSubmit('form', '3')" v-if="form.status == '2'"> 确认收货 </el-button>
|
|
|
<el-button type="primary" @click="onSubmit('form', '2')" v-if="form.status == '2'"> 保存 </el-button>
|
|
|
</el-col>
|
|
@@ -181,7 +227,7 @@ export default {
|
|
|
// 商铺
|
|
|
shop: {},
|
|
|
// 运单号
|
|
|
- transport: {},
|
|
|
+ transport: [],
|
|
|
pay: {},
|
|
|
// 商品列表
|
|
|
list: [],
|
|
@@ -202,6 +248,8 @@ export default {
|
|
|
transport_type: [{ required: true, message: '请选择快递类型', trigger: 'change' }],
|
|
|
},
|
|
|
loadings: true,
|
|
|
+ buy_num: '',
|
|
|
+ status: '0',
|
|
|
};
|
|
|
},
|
|
|
async created() {
|
|
@@ -218,6 +266,8 @@ export default {
|
|
|
let res;
|
|
|
res = await this.fetch(this.id);
|
|
|
if (this.$checkRes(res)) {
|
|
|
+ let name = this.transport_typeList.find((i) => i.value == res.data.transport_type);
|
|
|
+ if (name) res.data.transport_type_name = name.label;
|
|
|
this.$set(this, `form`, res.data);
|
|
|
if (res.data.transport == undefined) this.$set(this.form, `transport_type`, '0');
|
|
|
// 地址
|
|
@@ -228,25 +278,28 @@ export default {
|
|
|
// 应付金额
|
|
|
this.$set(this, `total_detail`, res.data.total_detail);
|
|
|
this.$set(this, `pay`, res.data.order.pay);
|
|
|
- if (res.data.transport) {
|
|
|
- let arr = await this.dictQuery({ code: 'transport_company', value: res.data.transport.shop_transport_type });
|
|
|
- if (this.$checkRes(arr)) {
|
|
|
- let type = arr.data.find((i) => i.value == res.data.transport.shop_transport_type);
|
|
|
- if (type) {
|
|
|
- res.data.transport.shop_transport_name = type.label;
|
|
|
- this.querySearch(type.label);
|
|
|
+ if (res.data.transport != undefined) {
|
|
|
+ for (const p1 of res.data.transport) {
|
|
|
+ let goods = this.form.goods.find((i) => i.id == p1.goods);
|
|
|
+ if (goods) p1.goods_name = goods.goods.name + ',' + goods.name;
|
|
|
+ // p1.good = p1.goods;
|
|
|
+ let arr = await this.dictQuery({ code: 'transport_company', value: p1.shop_transport_type });
|
|
|
+ if (this.$checkRes(arr)) {
|
|
|
+ let type = arr.data.find((i) => i.value == p1.shop_transport_type);
|
|
|
+ if (type) {
|
|
|
+ p1.shop_transport_name = type.label;
|
|
|
+ this.querySearch(type.label);
|
|
|
+ }
|
|
|
}
|
|
|
- this.$set(this, `transport`, res.data.transport);
|
|
|
- this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
|
|
|
- if (this.transport.transport_type == undefined) this.$set(this.form, `transport_type`, '0');
|
|
|
- else this.$set(this.form, `transport_type`, this.transport.transport_type);
|
|
|
- this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
|
|
|
+ // p1.shop_transport_type = this.transport.shop_transport_type;
|
|
|
+ // p1.shop_transport_no = this.transport.shop_transport_no;
|
|
|
}
|
|
|
+ this.$set(this, `transport`, res.data.transport);
|
|
|
res = await this.sotFetch(this.id);
|
|
|
if (this.$checkRes(res)) {
|
|
|
if (res.errcode == '0') {
|
|
|
let activities = res.data.list;
|
|
|
- activities[0].color = '#0bbd87';
|
|
|
+ // activities[0].color = '#0bbd87';
|
|
|
this.$set(this, `activities`, activities);
|
|
|
this.$set(this, `activit`, res.data);
|
|
|
}
|
|
@@ -270,55 +323,87 @@ export default {
|
|
|
this.$message.error('该商品还未添加来源网址,无法跳转');
|
|
|
}
|
|
|
},
|
|
|
+ onstatus(status) {
|
|
|
+ this.status = status;
|
|
|
+ },
|
|
|
handleSelect(value) {},
|
|
|
+ // 选择商品
|
|
|
+ goodsChange(value) {
|
|
|
+ let name = this.form.goods.find((i) => i.id == value);
|
|
|
+ this.$set(this, `buy_num`, name.buy_num);
|
|
|
+ },
|
|
|
+ getName(i) {
|
|
|
+ let name = i.goods.name + ',' + i.name;
|
|
|
+ return name;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 发货最大数量
|
|
|
+ toNum(val) {
|
|
|
+ if (val > this.buy_num) {
|
|
|
+ this.$message.error('超过发货最大数量');
|
|
|
+ this.$set(this.form, `num`, '');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ toDel(data) {
|
|
|
+ this.$confirm('是否确认删除', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ }).then(async () => {
|
|
|
+ let list = this.transport;
|
|
|
+ let form = this.form;
|
|
|
+ let newList = list.filter((i) => i.id != data.id);
|
|
|
+ form.transport = newList;
|
|
|
+ this.$set(this, `transport`, newList);
|
|
|
+ let res;
|
|
|
+ if (form.id) res = await this.update(form);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$message({ type: `success`, message: `维护信息成功` });
|
|
|
+ this.search();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 提交
|
|
|
async onSubmit(formName, val) {
|
|
|
- var form = this.form;
|
|
|
- var transport = {};
|
|
|
- var res;
|
|
|
- if (form.shop_transport_no != undefined) transport.shop_transport_no = form.shop_transport_no;
|
|
|
- if (form.shop_transport_type != undefined) transport.shop_transport_type = form.shop_transport_type;
|
|
|
- if (form.transport_type) transport.transport_type = form.transport_type;
|
|
|
- form.transport = transport;
|
|
|
- if (form.shop_transport_no == undefined || form.shop_transport_type == undefined) {
|
|
|
- this.$refs[formName].validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- this.$confirm('快递信息未填写完整,是否保存发货', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- }).then(async () => {
|
|
|
- if (val != undefined || val != '') form.status = val;
|
|
|
- if (form.id) res = await this.update(form);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$message({ type: `success`, message: `维护信息成功` });
|
|
|
- this.search();
|
|
|
+ this.$refs[formName].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.$confirm('是否确认保存', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ }).then(async () => {
|
|
|
+ var form = this.form;
|
|
|
+ if (form.transport_type == '0') {
|
|
|
+ var shop_transport_no = form.shop_transport_no;
|
|
|
+ var shop_transport_type = form.shop_transport_type;
|
|
|
+ if (form.transport != undefined && val == '2-') {
|
|
|
+ let goods = form.goods_name;
|
|
|
+ let num = form.num;
|
|
|
+ form.transport.push({ id: moment(new Date()).valueOf(), goods, num, shop_transport_no, shop_transport_type });
|
|
|
+ } else if (form.transport == undefined && val == '2-') {
|
|
|
+ let goods = form.goods_name;
|
|
|
+ let num = form.num;
|
|
|
+ let transport = [];
|
|
|
+ transport.push({ id: moment(new Date()).valueOf(), goods, num, shop_transport_no, shop_transport_type });
|
|
|
+ form.transport = transport;
|
|
|
+ } else if ((val == '2' || val == '3') && form.transport_type == '0') {
|
|
|
+ let transport = [];
|
|
|
+ transport.push({ shop_transport_no, shop_transport_type });
|
|
|
+ form.transport = transport;
|
|
|
}
|
|
|
- });
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.$refs[formName].validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- this.$confirm('是否确认保存', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- }).then(async () => {
|
|
|
- if (val != undefined || val != '') form.status = val;
|
|
|
- if (form.id) res = await this.update(form);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$message({ type: `success`, message: `维护信息成功` });
|
|
|
- this.search();
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ }
|
|
|
+ var res;
|
|
|
+ if (val != undefined || val != '') form.status = val;
|
|
|
+ if (form.id) res = await this.update(form);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$message({ type: `success`, message: `维护信息成功` });
|
|
|
+ this.search();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
// 返回
|
|
@@ -357,7 +442,7 @@ export default {
|
|
|
<style lang="less" scoped>
|
|
|
.main {
|
|
|
.one {
|
|
|
- margin: 10px 0 0 5%;
|
|
|
+ margin: 10px 0 0 2%;
|
|
|
padding: 5px;
|
|
|
.add {
|
|
|
border-bottom: 2px dashed #ccc;
|
|
@@ -375,6 +460,12 @@ export default {
|
|
|
text-align: right;
|
|
|
}
|
|
|
}
|
|
|
+ .transport {
|
|
|
+ margin: 50px;
|
|
|
+ padding: 5px;
|
|
|
+ // margin: 0 0 0 40px;
|
|
|
+ border: 1px solid rgb(254, 195, 195);
|
|
|
+ }
|
|
|
.other {
|
|
|
text-align: right;
|
|
|
word-break: break-all;
|