提交 7de5c20a authored 作者: 王天霸's avatar 王天霸

Merge branch '云仓3.1.2'

...@@ -43,5 +43,11 @@ export function getAreaList(query) { ...@@ -43,5 +43,11 @@ export function getAreaList(query) {
}); });
} }
export function getnewAreaList(query) {
return request({
url: '/local/address/typeList',
method: 'get',
params: query
});
}
// //
...@@ -24,3 +24,12 @@ export function getVerifyrecord(query) { ...@@ -24,3 +24,12 @@ export function getVerifyrecord(query) {
params: query params: query
}) })
} }
export function updaterecord(data) {
return request({
url: '/local/asset/excel',
method: 'post',
data
})
}
\ No newline at end of file
...@@ -32,7 +32,10 @@ const service = axios.create({ ...@@ -32,7 +32,10 @@ const service = axios.create({
}) })
// request拦截器 // request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
if(config.url!='/local/brands'){
showLoading() showLoading()
}
// 是否需要设置 token // 是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="mini" type="primary" icon="el-icon-download" @click="handleAllOrderExport">导出</el-button>
<el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="search">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
...@@ -128,7 +129,8 @@ ...@@ -128,7 +129,8 @@
<script> <script>
import { import {
listVerifyrecord, listVerifyrecord,
getVerifyrecord getVerifyrecord,
updaterecord
} from '@/api/module/settlementbill' } from '@/api/module/settlementbill'
import {dateFormat} from '@/utils' import {dateFormat} from '@/utils'
...@@ -172,6 +174,36 @@ ...@@ -172,6 +174,36 @@
} }
}, },
methods: { methods: {
handleAllOrderExport() {
let params = {
page: this.currentPage,
limit: this.pageSize,
change_type: 1,
}
if (this.queryParams.order_sn != '') {
params['order_sn'] = this.queryParams.order_sn;
}
if (this.queryParams.cashTime && this.queryParams.cashTime.length == 2) {
params['start_time'] = new Date(this.queryParams.cashTime[0]).getTime() / 1000;
params['end_time'] = new Date(this.queryParams.cashTime[1]).getTime() / 1000;
}
//console.log("导出全部订单,入参:",params);
updaterecord(params).then(res => {
if (res.code === 1) {
debugger
const aLink = document.createElement('a');
aLink.href = res.data.url;
//aLink.download = '订单.xls'; //下载的文件名
aLink.style.display = 'none';
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
}else {
this.$message({type:'error',message: res.message ? res.message: '导出失败'});
}
});
},
/** 有搜索条件是,初始化到第一页 */ /** 有搜索条件是,初始化到第一页 */
search() { search() {
this.currentPage = 1; this.currentPage = 1;
......
<template> <template>
<div class="goods-after-sale"> <div class="goods-after-sale">
<el-form ref="goodsAfterSaleForm" :model="goodsAfterSaleForm" :rules="goodsAfterSaleRules" label-width="150px" size="small">
<el-card class="box-card" ref="paramsvalue"> <el-card class="box-card" ref="paramsvalue">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>商品参数</span> <span style="font-size:13px;padding-left:20px;font-weight: 400;">参数名称/参数</span> <span>商品属性</span> <span style="font-size:13px;padding-left:20px;font-weight: 400;">属性名称/属性</span>
</div> </div>
<el-form-item label="所属品牌:" prop="brand_id">
<el-select v-model.trim="goodsAfterSaleForm.brand_id" :loading="loading" :filter-method="searchbtn" filterable placeholder="请选择商品品牌" style="width: 420px;">
<el-option v-for="(item,index) in brandOptions" :key="index" :label="item.brand_cn" :value="item.id"></el-option>
</el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('brand')">新增品牌</el-link>
</el-form-item>
<el-form-item label="商品产地:" prop="producing_area_id_list">
<el-cascader ref="producing_area" filterable v-model.trim="goodsAfterSaleForm.producing_area_id_list" :options="areaOptions" :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('producing_area')">
</el-cascader>
</el-form-item>
<el-form-item label="商品发货地:" prop="deliver_area_id_list">
<el-cascader ref="deliver_area" filterable v-model.trim="goodsAfterSaleForm.deliver_area_id_list" filterable :options="areaOptions" :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('deliver_area')">
</el-cascader>
</el-form-item>
<draggable :list="goodsAfterSaleForm.params" group="article" class="dragArea"> <draggable :list="goodsAfterSaleForm.params" group="article" class="dragArea">
<div v-for="(element,index) in goodsAfterSaleForm.params" :key="index" class="list-complete-item"> <div v-for="(element,index) in goodsAfterSaleForm.params" :key="index" class="list-complete-item">
<el-row :gutter="24" style="padding-left:50px;"> <el-row :gutter="24" style="padding-left:50px;">
<el-col :span="8" style="height:50px;"> <el-col :span="8" style="height:50px;">
<el-input <el-input
type="text" type="text"
placeholder="参数名称" placeholder="属性名称"
v-model="element.title" v-model="element.title"
maxlength="15" maxlength="15"
show-word-limit show-word-limit
...@@ -20,7 +40,7 @@ ...@@ -20,7 +40,7 @@
<el-col :span="12" style="height:50px;"> <el-col :span="12" style="height:50px;">
<el-input <el-input
type="text" type="text"
placeholder="参数值" placeholder="属性值"
v-model="element.value" v-model="element.value"
maxlength="60" maxlength="60"
show-word-limit show-word-limit
...@@ -39,24 +59,22 @@ ...@@ -39,24 +59,22 @@
</div> </div>
</draggable> </draggable>
<el-button style="margin-left:50px;margin-bottom:30px;" type="primary" size="small" @click="addparameter">添加参数</el-button> <el-button style="margin-left:50px;margin-bottom:30px;" type="primary" size="small" @click="addparameter">添加属性</el-button>
</el-card> </el-card>
<el-form ref="goodsAfterSaleForm" :model="goodsAfterSaleForm" :rules="goodsAfterSaleRules" label-width="150px" size="small">
<el-card class="box-card" ref="salesvalue"> <el-card class="box-card" ref="salesvalue">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>售后及服务</span> <span>售后及服务</span>
</div> </div>
<el-form-item label="服务标签:" prop="stags"> <el-form-item label="服务标签:" prop="stags">
<el-checkbox-group v-model="goodsAfterSaleForm.stags"> <el-checkbox-group v-model="goodsAfterSaleForm.stags">
<el-checkbox v-for="item in tagOptions" :label="item.id" true-label :key="item.id" @change="serviceTagsChange(item.id)">{{item.tag}}</el-checkbox> <el-checkbox v-for="(item,index) in tagOptions" :label="item.id" true-label :key="index" @change="serviceTagsChange(item.id)">{{item.tag}}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item label="邮费模板:" prop="freight_id"> <el-form-item label="邮费模板:" prop="freight_id">
<el-select v-model="goodsAfterSaleForm.freight_id" placeholder="请选择邮费模板" style="width:400px;"> <el-select v-model="goodsAfterSaleForm.freight_id" placeholder="请选择邮费模板" style="width:400px;">
<el-option v-for="item in freightOptions" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item,index) in freightOptions" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -131,6 +149,8 @@ ...@@ -131,6 +149,8 @@
<script> <script>
import { GetFreight } from '@/api/module/goods' import { GetFreight } from '@/api/module/goods'
import { getBrandsInf } from '@/api/module/brand/brand'
import { getnewAreaList } from '@/api/module/retreat/address'
import draggable from 'vuedraggable' import draggable from 'vuedraggable'
export default { export default {
name: "goodsaftersale", name: "goodsaftersale",
...@@ -153,6 +173,24 @@ ...@@ -153,6 +173,24 @@
} }
}; };
return { return {
loading: false,
brandOptions: [], // 商品品牌
oldbrandOptions: [], // 初始化品牌
goodssxRules: {
categoryStr: [{ required: true, message: '商品分类不能为空', trigger: 'blur' }],
goods_name: [
{ required: true, message: '请输入商品名称', trigger: 'blur' },
{ min: 3, max: 50, message: '商品标题限制在3字符以上,50个字符以下', trigger: 'blur' }
],
brand_id: [{ required: true, message: '请选择商品品牌', trigger: 'change' }],
// ssfl: [{ required: true, message: '请选择商品税收分类', trigger: 'change' }],
// goods_des: [{required: true, validator: goodsDecCheck, trigger: 'blur'}],
producing_area_id_list:[{required: true, message: '请选择商品产地', trigger: 'change'}],
deliver_area_id_list: [{ required: true, message: '请选择商品发货地', trigger: 'change' }],
metering_unit: [{ required: true, message: '计量单位不能为空', trigger: 'change' }],
goods_brand: [{ required: true, message: '请选择商品品牌', trigger: 'change' }],
},
areaOptions: [], // 地址 省 areaOptions: [], // 地址 省
list:[ list:[
{ {
...@@ -175,7 +213,23 @@ ...@@ -175,7 +213,23 @@
value:'' value:''
} }
], ],
areaProps: {
checkStrictly: false,
expandTrigger: 'click',
emitPath: true,
// lazy: true,
// lazyLoad: this.areaLazyLoad,
value: "id",
label: "name",
leaf: "leaf"
},
goodsAfterSaleForm: { goodsAfterSaleForm: {
producing_area_id_list: '', // 产地id
producing_area: '', // 产地name
deliver_area_id_list: '', // 发货地id
deliver_area: '', // 发货地name
goods_brand: '', // 品牌
brand_id: '', // 品牌id
stags: [], stags: [],
freight_id: 310, freight_id: 310,
delay_compensate: 24, delay_compensate: 24,
...@@ -189,6 +243,9 @@ ...@@ -189,6 +243,9 @@
], ],
}, },
goodsAfterSaleRules: { goodsAfterSaleRules: {
brand_id: [{ required: true, message: '请选择商品品牌', trigger: 'change' }],
producing_area_id_list:[{required: true, message: '请选择商品产地', trigger: 'change'}],
deliver_area_id_list: [{ required: true, message: '请选择商品发货地', trigger: 'change' }],
stags: [{ type: 'array', required: true, message: '请选择至少一个服务标签', trigger: 'change' }], stags: [{ type: 'array', required: true, message: '请选择至少一个服务标签', trigger: 'change' }],
freight_id: [{required: true, message: '请选择邮费模板', trigger: 'change'}], freight_id: [{required: true, message: '请选择邮费模板', trigger: 'change'}],
delay_compensate: [{required: true, message: '请选择发货时效', trigger: 'change'}], delay_compensate: [{required: true, message: '请选择发货时效', trigger: 'change'}],
...@@ -206,18 +263,194 @@ ...@@ -206,18 +263,194 @@
}, },
components: { draggable }, components: { draggable },
mounted() { mounted() {
this.getnewaddress()
this.getFreightData(); this.getFreightData();
// debugger // debugger
// console.log('售后数据:',this.goodsaftersale); // console.log('售后数据:',this.goodsaftersale);
if(this.goodsaftersale) { if(this.goodsaftersale) {
this.goodsAfterSaleForm = this.goodsaftersale; this.goodsAfterSaleForm = this.goodsaftersale;
this.goodsAfterSaleForm.brand_id = this.goodsaftersale.brand_id?this.goodsaftersale.brand_id.toString():''
debugger
} }
}, },
created() { created() {
// 获取 省 // 获取 省
// this.getArea(); // this.getArea();
this.getBrands();
}, },
methods: { methods: {
// 跳转到对应页面
toPage(name) {
switch (name) {
case 'brand' : {
// this.$router.push({ path: '/system/shop/brand' });
this.$router.push({ path: '/system/goods/brand' });
break;
}
case 'metering_unit' : {
this.$router.push({ path: '/system/goods/commodityUnit' });
break;
}
case 'group' : {
// this.$router.push({ path: '/system/settings/commodityGroup' });
this.$router.push({ path: '/system/goods/commodityGroup' });
break;
}
case 'supplier' : {
this.$router.push({ path: '/system/supplier/supplier' });
break;
}
case 'warehouse' : {
this.$router.push({ path: '/system/warehouse/wareHouse' });
break;
}
}
},
searchbtn(query){//品牌搜索
if (query !== '') {
this.brandOptions = []
this.loading = true;
setTimeout(() => {
this.loading = false;
let data = {
brand_name:query,
status: 1,
page:1,
limit:100
}
getBrandsInf(data).then(res => {
if (res.data) {
this.brandOptions = res.data.data
}
});
}, 2000);
} else {
this.brandOptions = this.oldbrandOptions
}
},
// 获取 商品品牌
seachid(datelist,brand_id){//查找初始化数组是否存在回显的品牌
datelist.some(item=>{
if(item.id==brand_id){
return true
}
})
},
getBrands() {
// 增加入参
let data = {
status: 1,
page:1,
limit:100
}
getBrandsInf(data).then(res => {
if (res.data) {
let datelist = res.data.data ? res.data.data : []
if(this.goodsaftersale&&this.goodsaftersale.brand_id){
if(this.seachid(datelist,this.goodsaftersale.brand_id)){
}else{
datelist.push({
id:this.goodsaftersale.brand_id,
brand_cn:this.goodsaftersale.goods_brand
// brand_cn:'大傻逼'
})
}
}
this.brandOptions = datelist
this.oldbrandOptions = datelist
}
});
},
getnewaddress(){
let data = {
type:2
}
getnewAreaList(data).then(res=>{
if(res.code==1){
let datelist= this.removeEmptyChildren(res.data)
this.areaOptions =datelist
debugger
}
})
},
removeEmptyChildren (node) {
node.forEach(item => {
if ('children' in item && item.children.length === 0) {
delete item.children
} else if ('children' in item && item.children.length) {
this.removeEmptyChildren(item.children)
}
})
return node
},
// 产地
areaLazyLoad(node, resolve) {
this.getArea(node, resolve);
},
// 商品产地
getArea(node, resolve) {
const level = node.level
let date = {}
if (level === 0) {
date = { pid: 0 }
}else {
date = { pid: node.value }
}
getAreaList(date).then(res => {
let result = {}
result = res.data
if (level === 0) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
item.children=[]
item.leaf = level
})
}
if (level === 1) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
// item.children=[]
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = level >= 1
})
}
// if (level === 2) {
// result.forEach(item => {
// item.value = item.id;
// item.label = item.name
// //这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
// item.leaf = 1
// })
// }
resolve(result)
})
},
// 产地查处id对应的中文地址
matchIdName(typeName) {
if(this.$refs[typeName].getCheckedNodes()[0]){
}else{
return
}
let areaLabelList = this.$refs[typeName].getCheckedNodes()[0].pathLabels;
let areaLastName = 0;
if (areaLabelList.length > 0) {
areaLastName = areaLabelList.length - 1
// 产地
if (typeName === "producing_area") {
this.goodsAfterSaleForm.producing_area = areaLabelList[areaLastName]
}
// 发货地
if (typeName === "deliver_area") {
this.goodsAfterSaleForm.deliver_area = areaLabelList[areaLastName]
}
}
},
// 添加参数 // 添加参数
addparameter(){ addparameter(){
let obj = { let obj = {
...@@ -256,6 +489,7 @@ ...@@ -256,6 +489,7 @@
}, },
// 服务标签,7天退换、不可退换互斥 // 服务标签,7天退换、不可退换互斥
serviceTagsChange(id) { serviceTagsChange(id) {
debugger
let index4 = this.goodsAfterSaleForm.stags.indexOf(4); let index4 = this.goodsAfterSaleForm.stags.indexOf(4);
let index3 = this.goodsAfterSaleForm.stags.indexOf(3); let index3 = this.goodsAfterSaleForm.stags.indexOf(3);
if(id == 3) { if(id == 3) {
......
...@@ -17,20 +17,20 @@ ...@@ -17,20 +17,20 @@
<!-- <el-form-item label='商品单位:' prop="unit"> <!-- <el-form-item label='商品单位:' prop="unit">
<el-input v-model.trim="goodsInfoForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input>
</el-form-item> --> </el-form-item> -->
<el-form-item label="所属品牌:" prop="brand_id"> <!-- <el-form-item label="所属品牌:" prop="brand_id">
<el-select v-model.trim="goodsInfoForm.brand_id" placeholder="请选择商品品牌" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.brand_id" :loading="loading" :filter-method="searchbtn" filterable placeholder="请选择商品品牌" style="width: 420px;">
<el-option v-for="item in brandOptions" :key="item.id" :label="item.brand_cn" :value="item.id"></el-option> <el-option v-for="item in brandOptions" :key="item.id" :label="item.brand_cn" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('brand')">新增品牌</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('brand')">新增品牌</el-link>
</el-form-item> </el-form-item> -->
<el-form-item label="计量单位:" prop="metering_unit"> <el-form-item label="计量单位:" prop="metering_unit">
<el-select v-model.trim="goodsInfoForm.metering_unit" placeholder="请选择商品计量单位" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.metering_unit" filterable placeholder="请选择商品计量单位" style="width: 420px;">
<el-option v-for="item in unitList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in unitList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('metering_unit')">新增计量单位</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('metering_unit')">新增计量单位</el-link>
</el-form-item> </el-form-item>
<el-form-item label="包装单位:" prop="packaging_unit"> <el-form-item label="包装单位:" prop="packaging_unit">
<el-select v-model.trim="goodsInfoForm.packaging_unit" placeholder="请选择商品包装单位" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.packaging_unit" filterable placeholder="请选择商品包装单位" style="width: 420px;">
<el-option v-for="item in packageList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in packageList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -38,17 +38,17 @@ ...@@ -38,17 +38,17 @@
<el-input v-model.trim="goodsInfoForm.conversion_unit" placeholder="请输入换算关系都数量值" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.conversion_unit" placeholder="请输入换算关系都数量值" style="width:420px;"></el-input>
<span class="tip-span ml20">1包装单位=n计量单位,如:1箱=10个,请填写数字10</span> <span class="tip-span ml20">1包装单位=n计量单位,如:1箱=10个,请填写数字10</span>
</el-form-item> </el-form-item>
<el-form-item label="商品产地:" prop="producing_area_id_list"> <!-- <el-form-item label="商品产地:" prop="producing_area_id_list">
<el-cascader ref="producing_area" v-model.trim="goodsInfoForm.producing_area_id_list" :props="areaProps" placeholder="请选择" <el-cascader ref="producing_area" filterable v-model.trim="goodsInfoForm.producing_area_id_list" :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('producing_area')"> style="width:420px;" size="mini" @change="matchIdName('producing_area')">
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="商品发货地:" prop="deliver_area_id_list"> <el-form-item label="商品发货地:" prop="deliver_area_id_list">
<el-cascader ref="deliver_area" v-model.trim="goodsInfoForm.deliver_area_id_list" :props="areaProps" placeholder="请选择" <el-cascader ref="deliver_area" filterable v-model.trim="goodsInfoForm.deliver_area_id_list" filterable :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('deliver_area')"> style="width:420px;" size="mini" @change="matchIdName('deliver_area')">
</el-cascader> </el-cascader>
</el-form-item> </el-form-item> -->
<!-- <el-form-item label='商品编码:' prop="out_goods_id"> <!-- <el-form-item label='商品编码:' prop="out_goods_id">
<el-input v-model.trim="goodsInfoForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input>
</el-form-item> --> </el-form-item> -->
...@@ -119,22 +119,22 @@ ...@@ -119,22 +119,22 @@
</el-form-item> </el-form-item>
<el-form-item label="商品分组:"> <el-form-item label="商品分组:">
<el-select v-model.trim="goodsInfoForm.group" placeholder="请选择商品分组" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.group" filterable placeholder="请选择商品分组" style="width: 420px;">
<el-option v-for="item in goodsGroupList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in goodsGroupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('group')">新增分组</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('group')">新增分组</el-link>
</el-form-item> </el-form-item>
<el-form-item label="所属供应商:"> <el-form-item label="所属供应商:">
<el-select v-model.trim="goodsInfoForm.supplier" placeholder="请选择供应商" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.supplier" filterable placeholder="请选择供应商" style="width: 420px;">
<el-option v-for="item in supplierList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in supplierList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('supplier')">新增供应商</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('supplier')">新增供应商</el-link>
</el-form-item> </el-form-item>
<el-form-item label="所属仓库:"> <el-form-item label="所属仓库:">
<el-select v-model.trim="goodsInfoForm.storehouse" v-el-select-loadmore="loadMoreTheme" class="w-600" placeholder="请选择仓库" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.storehouse" :filter-method="househbtn" filterable v-el-select-loadmore="loadMoreTheme" class="w-600" placeholder="请选择仓库" style="width: 420px;">
<el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item,index) in warehouseList" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('warehouse')">新增仓库</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('warehouse')">新增仓库</el-link>
</el-form-item> </el-form-item>
...@@ -279,7 +279,9 @@ ...@@ -279,7 +279,9 @@
drag: false, drag: false,
currentDelBtn: -1, currentDelBtn: -1,
areaOptions: [], // 地址 省 areaOptions: [], // 地址 省
loading: false,
brandOptions: [], // 商品品牌 brandOptions: [], // 商品品牌
oldbrandOptions: [], // 初始化品牌
goodsInfoForm: { goodsInfoForm: {
goods_id: 0, goods_id: 0,
categoryStr: '', // 商品分类 地址拼接 categoryStr: '', // 商品分类 地址拼接
...@@ -287,12 +289,12 @@ ...@@ -287,12 +289,12 @@
goods_des: '', // 商品标签 goods_des: '', // 商品标签
goods_name: '', // 商品标题 goods_name: '', // 商品标题
category_id: '', category_id: '',
producing_area_id_list: '', // 产地id // producing_area_id_list: '', // 产地id
producing_area: '', // 产地name // producing_area: '', // 产地name
deliver_area_id_list: '', // 发货地id // deliver_area_id_list: '', // 发货地id
deliver_area: '', // 发货地name // deliver_area: '', // 发货地name
goods_brand: '', // 品牌 // goods_brand: '', // 品牌
brand_id: '', // 品牌id // brand_id: '', // 品牌id
metering_unit: '', // 计量单位 metering_unit: '', // 计量单位
packaging_unit: '', // 包装单位 packaging_unit: '', // 包装单位
conversion_unit: '', // 换算关系 conversion_unit: '', // 换算关系
...@@ -302,6 +304,7 @@ ...@@ -302,6 +304,7 @@
group: '', // 商品分组 group: '', // 商品分组
supplier: '', // 供应商 supplier: '', // 供应商
storehouse: '', // 仓库 storehouse: '', // 仓库
storehouse_name: '', // 仓库名
out_goods_id: '', // 商品编码 out_goods_id: '', // 商品编码
imgs: [], // 商品图片 imgs: [], // 商品图片
video: '' video: ''
...@@ -356,6 +359,7 @@ ...@@ -356,6 +359,7 @@
goodsGroupList: [], //分组 goodsGroupList: [], //分组
supplierList: [], // 供应商 supplierList: [], // 供应商
warehouseList: [], // 仓库 warehouseList: [], // 仓库
oldwarehouseList: [],
pageDataTheme: { pageDataTheme: {
page: 1, page: 1,
limit: 20, limit: 20,
...@@ -374,7 +378,7 @@ ...@@ -374,7 +378,7 @@
}, },
created() { created() {
// 获取 商品品牌 // 获取 商品品牌
this.getBrands(); // this.getBrands();
// 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据 // 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
this.getSynthesisList(); this.getSynthesisList();
}, },
...@@ -430,7 +434,6 @@ ...@@ -430,7 +434,6 @@
}else { }else {
date = { pid: node.value } date = { pid: node.value }
} }
getAreaList(date).then(res => { getAreaList(date).then(res => {
let result = {} let result = {}
result = res.data result = res.data
...@@ -439,26 +442,26 @@ ...@@ -439,26 +442,26 @@
item.value = item.id; item.value = item.id;
item.label = item.name item.label = item.name
item.children=[] item.children=[]
item.leaf = 0 item.leaf = level
}) })
} }
if (level === 1) { if (level === 1) {
result.forEach(item => { result.forEach(item => {
item.value = item.id; item.value = item.id;
item.label = item.name item.label = item.name
item.children=[] // item.children=[]
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = 0
})
}
if (level === 2) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上 //这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = 1 item.leaf = level >= 1
}) })
} }
// if (level === 2) {
// result.forEach(item => {
// item.value = item.id;
// item.label = item.name
// //这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
// item.leaf = 1
// })
// }
resolve(result) resolve(result)
}) })
}, },
...@@ -492,7 +495,7 @@ ...@@ -492,7 +495,7 @@
// 上传 视频 之前 // 上传 视频 之前
beforeUpGoodsvedio(file) { beforeUpGoodsvedio(file) {
// debugger // debugger
let isImgSize = (file.size / 1024 / 1024) > 100; let isImgSize = (file.size / 1024 / 1024) > 10;
if (file.type !== "video/mp4") { if (file.type !== "video/mp4") {
this.$message({ this.$message({
...@@ -504,7 +507,7 @@ ...@@ -504,7 +507,7 @@
if (isImgSize) { if (isImgSize) {
this.$message({ this.$message({
message: '上传视频大小不能超过100MB', message: '上传视频大小不能超过10MB',
type: "warning" type: "warning"
}); });
return false; return false;
...@@ -565,20 +568,48 @@ ...@@ -565,20 +568,48 @@
this.$refs.goodsInfoForm.resetFields(); this.$refs.goodsInfoForm.resetFields();
this.goodsImgFileList = []; this.goodsImgFileList = [];
}, },
searchbtn(query){//品牌搜索
// 获取 商品品牌 if (query !== '') {
getBrands() { this.loading = true;
// 增加入参 setTimeout(() => {
this.loading = false;
let data = { let data = {
status: 1 status: 1,
page:1,
limit:100
} }
getBrandsInf(data).then(res => { getBrandsInf(data).then(res => {
if (res.data) { if (res.data) {
this.brandOptions = res.data.data ? res.data.data : []; this.brandOptions = [];
} }
}); });
}, 200);
} else {
this.brandOptions = this.oldbrandOptions
}
},
// // 获取 商品品牌
// getBrands() {
// // 增加入参
// let data = {
// status: 1,
// page:1,
// limit:100
// }
// getBrandsInf(data).then(res => {
// if (res.data) {
// this.brandOptions = res.data.data ? res.data.data : [];
// this.oldbrandOptions = res.data.data ? res.data.data : [];
// }
// });
// },
seachid(datelist,srtore_id){//查找初始化数组是否存在回显的品牌
datelist.some(item=>{
if(item.id==srtore_id){
return true
}
})
}, },
// 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据 // 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
getSynthesisList() { getSynthesisList() {
synthesisList().then(res=> { synthesisList().then(res=> {
...@@ -602,11 +633,23 @@ ...@@ -602,11 +633,23 @@
} }
// 仓库 // 仓库
if (res.data.warehouse_list && Array.isArray(res.data.warehouse_list.list)) { if (res.data.warehouse_list && Array.isArray(res.data.warehouse_list.list)) {
this.warehouseList = res.data.warehouse_list.list let datelist = res.data.warehouse_list.list
if(this.seachid(datelist,this.goodsInfoForm.storehouse)){
}else{
datelist.push({
id:this.goodsInfoForm.storehouse,
name:this.goodsInfoForm.storehouse_name
})
}
this.warehouseList = datelist
this.oldwarehouseList = datelist
this.warehouseCount = res.data.warehouse_list.count
// 默认一次数据最多20条,如果这个接口,返回仓库数据小于20条,说明仓库已经没有数据了,不用再进行滚动懒加载;否则仓库总数量, // 默认一次数据最多20条,如果这个接口,返回仓库数据小于20条,说明仓库已经没有数据了,不用再进行滚动懒加载;否则仓库总数量,
// 可能多于20条,需要进行滚动懒加载 // 可能多于20条,需要进行滚动懒加载
if (this.warehouseList.length === 20) { if (this.warehouseList.length === 100) {
this.loadMoreTheme() debugger
// this.loadMoreTheme()
} }
} }
}else { }else {
...@@ -614,7 +657,30 @@ ...@@ -614,7 +657,30 @@
} }
}); });
}, },
househbtn(query){//仓库搜索
if (query !== '') {
this.warehouseList = []
this.loading = true;
setTimeout(() => {
this.loading = false;
let data = {
name: query,
page:1,
limit:100
}
wareHoustList(data).then(res=> {
if (res.data) {
if (Array.isArray(res.data.list) && res.data.list.length > 0) {
this.warehouseList = this.warehouseList.concat(res.data.list);
this.warehouseCount = res.data.count;
}
}
});
}, 2000);
} else {
this.warehouseList = this.oldwarehouseList
}
},
// 仓库 滚动加载 // 仓库 滚动加载
loadMoreTheme() { loadMoreTheme() {
if (this.warehouseList.length < this.warehouseCount) { if (this.warehouseList.length < this.warehouseCount) {
...@@ -625,6 +691,7 @@ ...@@ -625,6 +691,7 @@
// 仓库列表 // 仓库列表
getWarehouseList() { getWarehouseList() {
debugger
wareHoustList(this.pageDataTheme).then(res=> { wareHoustList(this.pageDataTheme).then(res=> {
if (res.data) { if (res.data) {
if (Array.isArray(res.data.list) && res.data.list.length > 0) { if (Array.isArray(res.data.list) && res.data.list.length > 0) {
......
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
{ id: 1, name: '商品信息' }, { id: 1, name: '商品信息' },
{ id: 2, name: '价格库存' }, { id: 2, name: '价格库存' },
{ id: 3, name: '商品详情' }, { id: 3, name: '商品详情' },
{ id: 4, name: '商品参数' }, { id: 4, name: '商品属性' },
{ id: 5, name: '售后及服务' } { id: 5, name: '售后及服务' }
], ],
/* 商品信息 */ /* 商品信息 */
...@@ -185,6 +185,12 @@ ...@@ -185,6 +185,12 @@
'value':'' 'value':''
} }
],//参数 ],//参数
producing_area_id_list: "", // 产地的idlist
producing_area: '', // 产地中文名称
deliver_area_id_list: "", // 发货地的idlist
deliver_area: '', // 发货地中文名称
goods_brand: '', // 品牌
brand_id: '', // 品牌、
stags: [], stags: [],
freight_id: 310, freight_id: 310,
delay_compensate: 24, delay_compensate: 24,
...@@ -218,13 +224,7 @@ ...@@ -218,13 +224,7 @@
metering_unit: res.data.metering_unit !== 0 ? res.data.metering_unit : "",// 计量单位, 三目兼容老数据 metering_unit: res.data.metering_unit !== 0 ? res.data.metering_unit : "",// 计量单位, 三目兼容老数据
packaging_unit: res.data.packaging_unit !== 0 ? res.data.packaging_unit : "",// 包装单位 packaging_unit: res.data.packaging_unit !== 0 ? res.data.packaging_unit : "",// 包装单位
conversion_unit: res.data.conversion_unit, // 换算关系 conversion_unit: res.data.conversion_unit, // 换算关系
producing_area_id_list: "", // 产地的idlist
producing_area: res.data.producing_area, // 产地中文名称
deliver_area_id_list: "", // 发货地的idlist
deliver_area: res.data.deliver_area, // 发货地中文名称
// tax_rate: res.data.tax_rate,// 税率 // tax_rate: res.data.tax_rate,// 税率
goods_brand: res.data.goods_brand, // 品牌
brand_id: res.data.brand_id, // 品牌
web_url: res.data.web_url, // 市场参考价链接 web_url: res.data.web_url, // 市场参考价链接
group: res.data.group !== 0 ? res.data.group : "", // 商品分组 group: res.data.group !== 0 ? res.data.group : "", // 商品分组
supplier: res.data.supplier !== 0 ? res.data.supplier : "", // 供应商 supplier: res.data.supplier !== 0 ? res.data.supplier : "", // 供应商
...@@ -241,21 +241,7 @@ ...@@ -241,21 +241,7 @@
arr[2] = res.data.category_three_id; arr[2] = res.data.category_three_id;
this.goodsinfodata.categoryList = arr; this.goodsinfodata.categoryList = arr;
// 产地
let producing_area_list = res.data.producing_area_list
if (Array.isArray(producing_area_list) && producing_area_list.length > 0) {
this.goodsinfodata.producing_area_id_list = producing_area_list.map((item)=> {
return item.id
});
}
// 发货地
let deliver_area_list = res.data.deliver_area_list
if (Array.isArray(deliver_area_list) && deliver_area_list.length > 0) {
this.goodsinfodata.deliver_area_id_list = deliver_area_list.map((item)=> {
return item.id
});
}
// console.log(260,this.goodsinfodata.producing_area_id_list,this.goodsinfodata.deliver_area_id_list) // console.log(260,this.goodsinfodata.producing_area_id_list,this.goodsinfodata.deliver_area_id_list)
...@@ -342,15 +328,44 @@ ...@@ -342,15 +328,44 @@
this.description = res.data.description; this.description = res.data.description;
// 商品参数 售后服务 // 商品参数 售后服务
this.goodsaftersale={
producing_area_id_list: "", // 产地的idlist
producing_area: res.data.producing_area, // 产地中文名称
deliver_area_id_list: "", // 发货地的idlist
deliver_area: res.data.deliver_area, // 发货地中文名称
goods_brand: res.data.goods_brand, // 品牌
brand_id: Number(res.data.brand_id) , // 品牌、
stags:[]
}
this.goodsaftersale.params = res.data.params?res.data.params:[{'title':'','value':''}]//参数 this.goodsaftersale.params = res.data.params?res.data.params:[{'title':'','value':''}]//参数
this.goodsaftersale.out_goods_id = (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id //商品编码 this.goodsaftersale.out_goods_id = (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id //商品编码
this.goodsaftersale.freight_id = res.data.freight_id; this.goodsaftersale.freight_id = res.data.freight_id;
this.goodsaftersale.delay_compensate = res.data.delay_compensate; this.goodsaftersale.delay_compensate = res.data.delay_compensate;
this.goodsaftersale.aftersale_time = res.data.aftersale_time; this.goodsaftersale.aftersale_time = res.data.aftersale_time;
let stagArr = []; let stagArr = [];
// 产地
let producing_area_list = res.data.producing_area_list?res.data.producing_area_list:[]
if(producing_area_list.length==3){
producing_area_list.pop()
}
if (Array.isArray(producing_area_list) && producing_area_list.length > 0) {
this.goodsaftersale.producing_area_id_list = producing_area_list.map((item)=> {
return item.id
});
}
// 发货地
let deliver_area_list = res.data.deliver_area_list?res.data.deliver_area_list:[]
if(deliver_area_list.length==3){
deliver_area_list.pop()
}
if (Array.isArray(deliver_area_list) && deliver_area_list.length > 0) {
this.goodsaftersale.deliver_area_id_list = deliver_area_list.map((item)=> {
return item.id
});
}
// 后台返回数据格式 ‘2,3’或者‘[]’都是字符串,处理兼容一下 // 后台返回数据格式 ‘2,3’或者‘[]’都是字符串,处理兼容一下
//debugger debugger
if( res.data.stags && !Array.isArray(res.data.stags)) { if( res.data.stags && !Array.isArray(res.data.stags)) {
if( res.data.stags.indexOf(',') > -1 ) { if( res.data.stags.indexOf(',') > -1 ) {
stagArr = res.data.stags.split(','); stagArr = res.data.stags.split(',');
...@@ -373,7 +388,7 @@ ...@@ -373,7 +388,7 @@
} }
} }
}); });
// console.log("售后数据:",this.goodsaftersale) console.log("售后数据:",this.goodsaftersale)
}else { }else {
this.isShowGoodsDetails = false; this.isShowGoodsDetails = false;
} }
...@@ -664,28 +679,7 @@ ...@@ -664,28 +679,7 @@
// 获取 商品信息数据 // 获取 商品信息数据
let spxxData = this.$refs.goodsInfo.goodsInfoForm; let spxxData = this.$refs.goodsInfo.goodsInfoForm;
// 品牌处理 goods_brand
let brandOptions = this.$refs.goodsInfo.brandOptions;
if (Array.isArray(brandOptions) && brandOptions.length > 0) {
for(let bi = 0; bi < brandOptions.length; bi++) {
if( Number(spxxData.brand_id) === Number(brandOptions[bi].id) ) {
spxxData.goods_brand = brandOptions[bi].brand_cn;
break;
}
}
}
// 产地
spxxData["producing_area_id"] = spxxData.producing_area_id_list[spxxData.producing_area_id_list.length - 1]
// 发货地
spxxData["deliver_area_id"] = spxxData.deliver_area_id_list[spxxData.deliver_area_id_list.length - 1]
// 发货地数据处理,预留
// for(let ai = 0; ai < areaOptions.length; ai++) {
// if ( Number(ssffData.deliver_area) === Number(areaOptions[ai].id) ) {
// ssffData.deliver_area = areaOptions[ai].name;
// break;
// }
// }
if( spxxData.imgs.length > 7 ) { if( spxxData.imgs.length > 7 ) {
this.$message({ type: 'warning',message: '商品信息中,商品图片最大数量为7张,请检查' }); this.$message({ type: 'warning',message: '商品信息中,商品图片最大数量为7张,请检查' });
...@@ -720,7 +714,28 @@ ...@@ -720,7 +714,28 @@
// 售后服务 数据 // 售后服务 数据
let ssffData = this.$refs.goodsaftersale.goodsAfterSaleForm; let ssffData = this.$refs.goodsaftersale.goodsAfterSaleForm;
// 品牌处理 goods_brand
let brandOptions = this.$refs.goodsaftersale.brandOptions;
if (Array.isArray(brandOptions) && brandOptions.length > 0) {
for(let bi = 0; bi < brandOptions.length; bi++) {
if( Number(ssffData.brand_id) === Number(brandOptions[bi].id) ) {
ssffData.goods_brand = brandOptions[bi].brand_cn;
break;
}
}
}
// 产地
ssffData["producing_area_id"] = ssffData.producing_area_id_list[ssffData.producing_area_id_list.length - 1]
// 发货地
ssffData["deliver_area_id"] = ssffData.deliver_area_id_list[ssffData.deliver_area_id_list.length - 1]
// 发货地数据处理,预留
// for(let ai = 0; ai < areaOptions.length; ai++) {
// if ( Number(ssffData.deliver_area) === Number(areaOptions[ai].id) ) {
// ssffData.deliver_area = areaOptions[ai].name;
// break;
// }
// }
if (ssffData.delay_compensate == 72) { if (ssffData.delay_compensate == 72) {
this.$message({ type: 'warning',message: '发货时长不能超过48小时,请重新编辑' }); this.$message({ type: 'warning',message: '发货时长不能超过48小时,请重新编辑' });
return return
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix">商品导入</div> <div slot="header" class="clearfix">导入商品</div>
<h3 class="cton_h3">剩余次数:{{collect_num}} / 1000次</h3> <h3 class="cton_h3">剩余次数:{{collect_num}} / 1000次</h3>
<div class="cton_text"> <div class="cton_text">
<p>功能介绍:</p> <p>功能介绍:</p>
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
</p> </p>
<p>请确保不要将多个平台的商品链接混合输入</p> <p>请确保不要将多个平台的商品链接混合输入</p>
<p>每个用户默认拥有1000次商品导入的机会,请慎重使用</p> <p>每个用户默认拥有1000次商品导入的机会,请慎重使用</p>
<p>支持平台:</p>
<p>京东、天猫、淘宝 </p>
</div> </div>
<el-form ref="form" :model="form" label-width="180px"> <el-form ref="form" :model="form" label-width="180px">
<el-form-item label="商品链接:"> <el-form-item label="商品链接:">
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</div> </div>
<div> <div>
<el-button size="mini" type="primary" @click="goShipping(1)">去发货</el-button> <el-button size="mini" type="primary" @click="goShipping(1)">去发货</el-button>
<el-button size="mini" type="primary" @click="goShipping(2)" >补单发货</el-button> <el-button size="mini" type="primary" @click="goShipping(2)" >更新物流单号</el-button>
</div> </div>
</div> </div>
<el-table :data="orderGoodsDetail" style="border: 1px solid #eee;" @selection-change="handleSelectionChange"> <el-table :data="orderGoodsDetail" style="border: 1px solid #eee;" @selection-change="handleSelectionChange">
...@@ -438,7 +438,7 @@ export default { ...@@ -438,7 +438,7 @@ export default {
} }
}else { }else {
isContinue = false; isContinue = false;
this.$message({type:'warning',message:'所选商品中部分未发货,不能进行补单操作,请重新选择'}); this.$message({type:'warning',message:'所选商品中部分未发货,不能进行更新物流单号,请重新选择'});
break break
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-card class="box-cardone"> <el-card class="box-cardone">
<div style="position: relative;" class="clearfixall"> <div style="position: relative;" class="clearfixall">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全部订单" name="fourth" > <el-tab-pane label="全部订单" name="fourth">
<div slot="label">全部订单{{'(' + totalall + ')' }}</div> <div slot="label">全部订单{{'(' + totalall + ')' }}</div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="first"> <el-tab-pane name="first">
...@@ -24,19 +24,23 @@ ...@@ -24,19 +24,23 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<div v-show="activeName == 'first' " style="position: absolute; top: -2px; right: 0;"> <div v-show="activeName == 'first' " style="position: absolute; top: -2px; right: 0;">
<el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单" placement="bottom-end"> <el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单"
placement="bottom-end">
<el-button size="small" @click="gotoOldShop">查看老订单</el-button> <el-button size="small" @click="gotoOldShop">查看老订单</el-button>
</el-tooltip> </el-tooltip>
<el-button size="mini" type="primary" icon="el-icon-position" @click="handleExportDeliveryOrder">批量发货</el-button> <el-button size="mini" type="primary" icon="el-icon-position" @click="handleExportDeliveryOrder">批量发货
</el-button>
</div> </div>
<div v-show="activeName == 'fourth' " style="position: absolute; top: -2px; right: 0;"> <div v-show="activeName == 'fourth' " style="position: absolute; top: -2px; right: 0;">
<el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单" placement="bottom-end"> <el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单"
placement="bottom-end">
<el-button size="small" @click="gotoOldShop">查看老订单</el-button> <el-button size="small" @click="gotoOldShop">查看老订单</el-button>
</el-tooltip> </el-tooltip>
<el-button size="mini" type="primary" icon="el-icon-download" @click="handleAllOrderExport">导出订单</el-button> <el-button size="mini" type="primary" icon="el-icon-download" @click="handleAllOrderExport">导出订单</el-button>
</div> </div>
<div v-show="activeName == 'second' || activeName == 'third'" style="position: absolute; top: -2px; right: 0;"> <div v-show="activeName == 'second' || activeName == 'third'" style="position: absolute; top: -2px; right: 0;">
<el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单" placement="bottom-end"> <el-tooltip v-if="channel_id == 0" class="item" effect="dark" content="查看2021年10月8日23:00之前的订单"
placement="bottom-end">
<el-button size="small" @click="gotoOldShop">查看老订单</el-button> <el-button size="small" @click="gotoOldShop">查看老订单</el-button>
</el-tooltip> </el-tooltip>
</div> </div>
...@@ -45,19 +49,19 @@ ...@@ -45,19 +49,19 @@
<div class="form-box"> <div class="form-box">
<el-form class="form-params" ref="form" :model="form" label-width="120px" :inline="true" size="small"> <el-form class="form-params" ref="form" :model="form" label-width="120px" :inline="true" size="small">
<el-form-item label="总订单号:"> <el-form-item label="总订单号:">
<el-input style="width:220px;" v-model="form.order_sn" placeholder="请输入总订单号"/> <el-input style="width:220px;" v-model="form.order_sn" placeholder="请输入总订单号" />
</el-form-item> </el-form-item>
<el-form-item label="商品名称:"> <el-form-item label="商品名称:">
<el-input v-model="form.goods_name" placeholder="请输入商品名称"/> <el-input v-model="form.goods_name" placeholder="请输入商品名称" />
</el-form-item> </el-form-item>
<el-form-item label="收货人:"> <el-form-item label="收货人:">
<el-input v-model="form.real_name" placeholder="请输入收货人"/> <el-input v-model="form.real_name" placeholder="请输入收货人" />
</el-form-item> </el-form-item>
<el-form-item label="联系电话:"> <el-form-item label="联系电话:">
<el-input v-model="form.Tel" placeholder="请输入联系电话"/> <el-input v-model="form.Tel" placeholder="请输入联系电话" />
</el-form-item> </el-form-item>
<el-form-item label="结算状态:" prop="settlement_status" v-show="activeName == 'fourth' "> <el-form-item label="结算状态:" prop="settlement_status" v-show="activeName == 'fourth' ">
...@@ -86,50 +90,21 @@ ...@@ -86,50 +90,21 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="下单时间:" v-show="activeName == 'first' || activeName == 'fourth' "> <el-form-item label="下单时间:" v-show="activeName == 'first' || activeName == 'fourth' ">
<el-date-picker <el-date-picker style="width:280px;" v-model="form.dateTime" type="daterange" align="left" unaLink-panels
style="width:280px;" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
v-model="form.dateTime"
type="daterange"
align="left"
unaLink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="发货时间:" v-show="activeName == 'second' "> <el-form-item label="发货时间:" v-show="activeName == 'second' ">
<el-date-picker <el-date-picker v-model="form.sendTime" type="daterange" align="left" unaLink-panels range-separator="至"
v-model="form.sendTime" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
type="daterange"
align="left"
unaLink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="收货时间:" v-show="activeName == 'five' "> <el-form-item label="收货时间:" v-show="activeName == 'five' ">
<el-date-picker <el-date-picker v-model="form.qiansTime" type="daterange" align="left" unaLink-panels range-separator="至"
v-model="form.qiansTime" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
type="daterange"
align="left"
unaLink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="完成时间:" v-show="activeName == 'third' "> <el-form-item label="完成时间:" v-show="activeName == 'third' ">
<el-date-picker <el-date-picker v-model="form.finishTime" type="daterange" align="left" unaLink-panels range-separator="至"
v-model="form.finishTime" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
type="daterange"
align="left"
unaLink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -142,19 +117,20 @@ ...@@ -142,19 +117,20 @@
<!-- 表头 --> <!-- 表头 -->
<div class="table-header-spe"> <div class="table-header-spe">
<el-table class="title_table hxz-el-table" align="center"> <el-table class="title_table hxz-el-table" align="center">
<!-- <el-table-column align="center" width="55" v-if="activeName == 'fourth' ">--> <!-- <el-table-column align="center" width="55" v-if="activeName == 'fourth' ">-->
<!-- <template slot="header" slot-scope="scope">--> <!-- <template slot="header" slot-scope="scope">-->
<!-- <el-checkbox v-model="allTablesChecked" ></el-checkbox>--> <!-- <el-checkbox v-model="allTablesChecked" ></el-checkbox>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<!-- <el-table-column label="订单号" align="center" width="220" ></el-table-column>--> <!-- <el-table-column label="订单号" align="center" width="220" ></el-table-column>-->
<el-table-column label="商品名称" align="center"></el-table-column> <el-table-column label="商品名称" align="center"></el-table-column>
<el-table-column label="规格/数量/金额" align="center" ></el-table-column> <el-table-column label="规格/数量/金额" align="center"></el-table-column>
<el-table-column label="下单/发货/完成时间" align="center" width="180" ></el-table-column> <el-table-column label="下单/发货/完成时间" align="center" width="180"></el-table-column>
<el-table-column label="运费" align="center" width="100" ></el-table-column> <el-table-column label="运费" align="center" width="100"></el-table-column>
<el-table-column label="收货人" align="center" width="120" ></el-table-column> <el-table-column label="收货人" align="center" width="200"></el-table-column>
<el-table-column label="联系电话" align="center" width="120"></el-table-column> <!-- <el-table-column label="联系电话" align="center" width="120"></el-table-column> -->
<el-table-column label="售后状态" align="center" width="180"></el-table-column> <el-table-column label="售后状态" align="center" width="180"></el-table-column>
<el-table-column label="订单备注" align="center" width="120"></el-table-column>
<el-table-column label="物流信息" align="center" width="120"></el-table-column> <el-table-column label="物流信息" align="center" width="120"></el-table-column>
<el-table-column label="操作" align="center" width="120"></el-table-column> <el-table-column label="操作" align="center" width="120"></el-table-column>
</el-table> </el-table>
...@@ -175,33 +151,31 @@ ...@@ -175,33 +151,31 @@
</div> </div>
</div> </div>
<div class="item-table"> <div class="item-table">
<el-table <el-table border :show-header="false" :span-method="arraySpanMethod" :data="item.order_goods">
border <!-- <el-table-column type="selection" width="55" align="center" v-if="activeName == 'fourth' "></el-table-column>-->
:show-header="false" <!-- <el-table-column prop="goods_order_sn" label="订单号" width="220" align="center"></el-table-column>-->
:span-method="arraySpanMethod"
:data="item.order_goods">
<!-- <el-table-column type="selection" width="55" align="center" v-if="activeName == 'fourth' "></el-table-column>-->
<!-- <el-table-column prop="goods_order_sn" label="订单号" width="220" align="center"></el-table-column>-->
<el-table-column prop="title" label="商品名称" align="center"> <el-table-column prop="title" label="商品名称" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="img-title-table"> <div class="img-title-table">
<img v-if="scope.row.thumb" style="width:60px;height:60px;" :src="scope.row.thumb"/> <img v-if="scope.row.thumb" style="width:60px;height:60px;" :src="scope.row.thumb" />
<div class="ml10">{{ scope.row.title }}</div> <div class="ml10">{{ scope.row.title }}</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="规格/数量/金额" align="center"> <el-table-column label="规格/数量/金额" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.goods_option_title ? scope.row.goods_option_title : '--' }}<br/> {{ scope.row.goods_option_title ? scope.row.goods_option_title : '--' }}<br />
x {{ scope.row.total ? scope.row.total : '--' }}<br/> x {{ scope.row.total ? scope.row.total : '--' }}<br />
{{ scope.row.goods_price / 100 ? scope.row.goods_price / 100 : '--' }}<br/> {{ scope.row.goods_price / 100 ? scope.row.goods_price / 100 : '--' }}<br />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="created_time" label="下单时间" width="180" align="center"> <el-table-column prop="created_time" label="下单时间" width="200" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ timeFormatter(scope.row.created_time) }}</span><br/> <span>{{ timeFormatter(scope.row.created_time) }}</span><br />
<span :class="{ 'red-text' : sendTimeFormatter(scope.row.send_time) == '未发货' }">{{ sendTimeFormatter(scope.row.send_time) }}</span><br/> <span :class="{ 'red-text' : sendTimeFormatter(scope.row.send_time) == '未发货' }">{{
<span :class="{ 'red-text' : updatedTimeFormatter(scope.row.updated_time) == '未完成' }">{{ updatedTimeFormatter(scope.row.updated_time, scope.row.goods_status) }}</span> sendTimeFormatter(scope.row.send_time) }}</span><br />
<span :class="{ 'red-text' : updatedTimeFormatter(scope.row.updated_time) == '未完成' }">{{
updatedTimeFormatter(scope.row.updated_time, scope.row.goods_status) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="dispatch_price" width="100" label="运费" align="center"> <el-table-column prop="dispatch_price" width="100" label="运费" align="center">
...@@ -209,17 +183,25 @@ ...@@ -209,17 +183,25 @@
{{ item.order.dispatch_price / 100 }} {{ item.order.dispatch_price / 100 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="phone" width="120" label="收货人" align="center"> <el-table-column prop="phone" width="200" label="收货人" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ item.order.real_name }} {{ item.order.real_name }}<br />
{{ item.order.mobile }}<br />
{{ item.order.provice }}{{ item.order.city }}{{ item.order.district }}{{ item.order.address }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="mobile" label="联系电话" width="120" align="center"> <!-- <el-table-column prop="mobile" label="联系电话" width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ item.order.mobile }} {{ item.order.mobile }}
</template> </template>
</el-table-column> -->
<el-table-column prop="refund_status" label="售后状态" width="180" align="center"
:formatter="refundStatusFormatter"></el-table-column>
<el-table-column prop="remark" label="订单备注" width="120" align="center">
<template slot-scope="scope">
{{item.order.remark?item.order.remark:'暂无备注内容'}}
</template>
</el-table-column> </el-table-column>
<el-table-column prop="refund_status" label="售后状态" width="180" align="center" :formatter="refundStatusFormatter"></el-table-column>
<el-table-column prop="物流信息" label="物流信息" width="120" align="center"> <el-table-column prop="物流信息" label="物流信息" width="120" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="handleExpressInfo(scope.row)">查看物流</el-button> <el-button type="text" @click="handleExpressInfo(scope.row)">查看物流</el-button>
...@@ -228,6 +210,8 @@ ...@@ -228,6 +210,8 @@
<el-table-column label="操作" width="120" align="center" fixed="right"> <el-table-column label="操作" width="120" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="handleInfo(scope.row)">详情</el-button> <el-button type="text" @click="handleInfo(scope.row)">详情</el-button>
<el-button :disabled="Number(scope.row.goods_status)!==0" type="text"
@click="goShipping(scope.row.id,scope.row.goods_order_sn)">去发货</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -237,15 +221,9 @@ ...@@ -237,15 +221,9 @@
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="footer_pagination"> <div class="footer_pagination">
<el-pagination <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
background :current-page="currentPage" :page-sizes="[20, 40, 60, 80, 100]" :page-size="pageSize"
@size-change="handleSizeChange" layout="total, sizes, prev, pager, next, jumper" :total="total">
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[20, 40, 60, 80, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
...@@ -254,11 +232,13 @@ ...@@ -254,11 +232,13 @@
<el-dialog title="订单详情" width="85%" :close-on-click-modal="false" :destroy-on-close="true" <el-dialog title="订单详情" width="85%" :close-on-click-modal="false" :destroy-on-close="true"
:visible.sync="detailDialog" center :before-close="handleClose"> :visible.sync="detailDialog" center :before-close="handleClose">
<div style="height:100%;"> <div style="height:100%;">
<order-detail :order-detail="order_detail" :order-goods-detail="order_goods_detail" :express-lists="expressLists" @updateOrder="updateOrder"/> <order-detail :order-detail="order_detail" :order-goods-detail="order_goods_detail"
:express-lists="expressLists" @updateOrder="updateOrder" />
</div> </div>
</el-dialog> </el-dialog>
<!-- 批量发货 --> <!-- 批量发货 -->
<el-dialog title="批量发货流程" :visible.sync="isDeliveryOpen" width="60%" center :before-close="cancelExport" :close-on-click-modal="false" :destroy-on-close="true"> <el-dialog title="批量发货流程" :visible.sync="isDeliveryOpen" width="60%" center :before-close="cancelExport"
:close-on-click-modal="false" :destroy-on-close="true">
<el-steps :active="3" align-center style="width:95%;margin: 0 auto;"> <el-steps :active="3" align-center style="width:95%;margin: 0 auto;">
<el-step title="导出发货Excel表单" description=""> <el-step title="导出发货Excel表单" description="">
<template slot="icon"> <template slot="icon">
...@@ -278,19 +258,12 @@ ...@@ -278,19 +258,12 @@
</el-steps> </el-steps>
<div class="delivery-data-con"> <div class="delivery-data-con">
<div> <div>
<el-button size="mini" type="primary" icon="el-icon-download" @click="handleExportUnSendOrder">导出订单</el-button> <el-button size="mini" type="primary" icon="el-icon-download" @click="handleExportUnSendOrder">导出订单
</el-button>
</div> </div>
<div> <div>
<el-upload <el-upload action="" class="upload-demo" :auto-upload="false" :limit="1" accept="*/*" :on-change="importExcel"
action="" :on-remove="removeDevExcel" ref="upload">
class="upload-demo"
:auto-upload="false"
:limit="1"
accept="*/*"
:on-change="importExcel"
:on-remove="removeDevExcel"
ref="upload"
>
<el-button size="small" type="primary">上传批量发货Excel表单</el-button> <el-button size="small" type="primary">上传批量发货Excel表单</el-button>
</el-upload> </el-upload>
</div> </div>
...@@ -314,23 +287,39 @@ ...@@ -314,23 +287,39 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- 查看物流 --> <!-- 查看物流 -->
<el-dialog title="物流信息" width="50%" class="cutclass" :close-on-click-modal="false" :destroy-on-close="true" :visible.sync="dialogExpress" append-to-body> <el-dialog title="物流信息" width="50%" class="cutclass" :close-on-click-modal="false" :destroy-on-close="true"
:visible.sync="dialogExpress" append-to-body>
<div class="logistics"> <div class="logistics">
<el-timeline> <el-timeline>
<el-timeline-item <el-timeline-item v-for="(activity, index) in activities" :key="index" :icon="activity.icon"
v-for="(activity, index) in activities" :type="activity.type" color="#0bbd87" :size="activity.size" :timestamp="activity.msg_time">
:key="index"
:icon="activity.icon"
:type="activity.type"
color="#0bbd87"
:size="activity.size"
:timestamp="activity.msg_time">
{{activity.content}} {{activity.content}}
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
<div v-if="activities.length == 0">暂无物流信息</div> <div v-if="activities.length == 0">暂无物流信息</div>
</div> </div>
</el-dialog> </el-dialog>
<!-- fahuo -->
<el-dialog title="发货" :visible.sync="goShippingDialog" width="25%" :modal-append-to-body="false"
:close-on-click-modal="false" :append-to-body="true">
<div style="margin: 0 10%">
<el-form ref="form" label-width="100px">
<el-form-item label="快递公司:">
<el-select size="mini" v-model="expressNum" filterable placeholder="请选择快递公司" style="width: 100%;">
<el-option v-for="item in expressLists" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="快递单号:">
<el-input size="mini" v-model="express_sn" placeholder="请输入快递单号"></el-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="goShippingDialog = false">取 消</el-button>
<el-button size="mini" type="primary" @click="handleGoShipping">确 定</el-button>
</span>
</el-dialog>
<!-- 批量发货 展示失败数据--> <!-- 批量发货 展示失败数据-->
<el-dialog title="批量发货提醒" center width="60%" class="delivery-fail-data-dialog" :visible.sync="dialogDeliveryInfor" <el-dialog title="批量发货提醒" center width="60%" class="delivery-fail-data-dialog" :visible.sync="dialogDeliveryInfor"
:close-on-click-modal="false" append-to-body :before-close="closeDeliverFailDialog"> :close-on-click-modal="false" append-to-body :before-close="closeDeliverFailDialog">
...@@ -354,12 +343,14 @@ ...@@ -354,12 +343,14 @@
<script> <script>
import { indexInfo } from '@/api/webSite' import { indexInfo } from '@/api/webSite'
import { listOrder, exportOrder, orderInfo, expressInfoNew, deliveryOrder, expressList, getOrderTabData , import {
exportUnSendOrderGoodsData,deliveryOrderExport } from '@/api/module/order' listOrder, exportOrder, orderInfo, expressInfoNew, deliveryOrder, expressList, getOrderTabData,
import {dateFormat} from '@/utils' exportUnSendOrderGoodsData, deliveryOrderExport
} from '@/api/module/order'
import { dateFormat } from '@/utils'
import OrderDetail from './components/orderDetail.vue' import OrderDetail from './components/orderDetail.vue'
import XLSX from "xlsx" import XLSX from "xlsx"
import {isArray} from "../../../utils/validate"; import { isArray } from "../../../utils/validate";
export default { export default {
components: { components: {
...@@ -367,6 +358,10 @@ ...@@ -367,6 +358,10 @@
}, },
data() { data() {
return { return {
goShippingDialog: false,
expressNum: '',
express_sn: '',
goods_ids: '',
// channel_id // channel_id
channel_id: '', channel_id: '',
// //
...@@ -376,10 +371,10 @@ ...@@ -376,10 +371,10 @@
total: 0, total: 0,
total1: '',//待发货 total1: '',//待发货
total2: '',//待收货 total2: '',//待收货
total5:'',//已收货 total5: '',//已收货
total4:'',//已完成 total4: '',//已完成
total3:'',//异常订单 total3: '',//异常订单
totalall:'',//全部订单 totalall: '',//全部订单
activeName: 'fourth', activeName: 'fourth',
form: { form: {
order_sn: '', order_sn: '',
...@@ -387,10 +382,10 @@ ...@@ -387,10 +382,10 @@
real_name: '', real_name: '',
Tel: '', Tel: '',
settlement_status: '', settlement_status: '',
status:'', status: '',
dateTime: [], dateTime: [],
finishTime: [], finishTime: [],
qiansTime:[], qiansTime: [],
sendTime: [], sendTime: [],
is_after_sale: '' is_after_sale: ''
}, },
...@@ -404,7 +399,7 @@ ...@@ -404,7 +399,7 @@
}, // 订单信息 }, // 订单信息
order_goods_detail: [], // 订单商品信息 order_goods_detail: [], // 订单商品信息
expressLists: [], expressLists: [],
fullHeight:'', fullHeight: '',
tableHeight: null, tableHeight: null,
allTablesChecked: false, allTablesChecked: false,
// 订单导出 入参 // 订单导出 入参
...@@ -441,6 +436,60 @@ ...@@ -441,6 +436,60 @@
this.getExpressList() this.getExpressList()
}, },
methods: { methods: {
goShipping(id, goods_order_sn) {
this.goods_ids = goods_order_sn;
this.titleInfo = '去发货'
this.goShippingDialog = true
},
handleGoShipping() {
if (!this.expressNum) {
this.$message({
type: 'warning',
message: '请选择快递公司'
})
return
}
if (!this.express_sn) {
this.$message({
type: 'warning',
message: '请输入快递单号'
})
return
}
// 物流公司,名称
let expressName = ''
this.expressLists.map((item) => {
if (item.value == this.expressNum) {
expressName = item.label
}
})
let paramsObj = {
goods_order_sn: [],//this.goods_ids,
express_company_name: expressName, // 快递公司 名称
express_sn: this.express_sn, // 快递单号
//express_code: ''
}
paramsObj.goods_order_sn.push(this.goods_ids);
//console.log(11111,paramsObj);
deliveryOrder(paramsObj).then(res => {
if (res.code == 1) {
this.$message({ type: 'success', message: '发货成功' });
this.goShippingDialog = false
this.getListOrder();
} else {
this.$message({ type: 'error', message: res.message ? res.message : '发货失败' });
}
});
},
/** 判断渠道 值=0才显示 查看历史数据 链接 */ /** 判断渠道 值=0才显示 查看历史数据 链接 */
getChannelId() { getChannelId() {
let ssa = window.location.host let ssa = window.location.host
...@@ -449,7 +498,7 @@ ...@@ -449,7 +498,7 @@
site_type: 4, site_type: 4,
// domain: ssa, // domain: ssa,
} }
indexInfo(data).then(res=> { indexInfo(data).then(res => {
if (res.code == 1) { if (res.code == 1) {
this.channel_id = res.data.channel.id this.channel_id = res.data.channel.id
} }
...@@ -460,12 +509,12 @@ ...@@ -460,12 +509,12 @@
gotoOldShop() { gotoOldShop() {
window.location.href = 'http://oldpop.jxhh.com/' window.location.href = 'http://oldpop.jxhh.com/'
}, },
checkSelectable( row,index) { checkSelectable(row, index) {
}, },
/** 表格合并 列单元格 */ /** 表格合并 列单元格 */
arraySpanMethod({ row, column, rowIndex, columnIndex }) { arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex > 2 && columnIndex != 6 && columnIndex != 7) { // 用于设置要合并开始的列号 if (columnIndex > 2 && columnIndex != 7 && columnIndex != 8) { // 用于设置要合并开始的列号
if (rowIndex === 0) { // 用于设置合并开始的行号 if (rowIndex === 0) { // 用于设置合并开始的行号
return { return {
rowspan: 100,     // 合并的行数 rowspan: 100,     // 合并的行数
...@@ -480,20 +529,20 @@ ...@@ -480,20 +529,20 @@
} }
}, },
formatter(time) { formatter(time) {
return dateFormat(time *1000, 'Y-m-d H:i:s') return dateFormat(time * 1000, 'Y-m-d H:i:s')
}, },
/** 一般时间 格式化 */ /** 一般时间 格式化 */
timeFormatter(time) { timeFormatter(time) {
if(time) { if (time) {
return dateFormat(time *1000, 'Y-m-d H:i:s') return dateFormat(time * 1000, 'Y-m-d H:i:s')
} else { } else {
return '--' return '--'
} }
}, },
/** 发货时间 格式化 */ /** 发货时间 格式化 */
sendTimeFormatter(time) { sendTimeFormatter(time) {
if(time) { if (time) {
return dateFormat(time *1000, 'Y-m-d H:i:s') return dateFormat(time * 1000, 'Y-m-d H:i:s')
} else { } else {
return '未发货' return '未发货'
} }
...@@ -501,8 +550,8 @@ ...@@ -501,8 +550,8 @@
/** 发货时间 格式化 */ /** 发货时间 格式化 */
updatedTimeFormatter(time, status) { updatedTimeFormatter(time, status) {
if(time && status == 2) { if (time && status == 2) {
return dateFormat(time *1000, 'Y-m-d H:i:s') return dateFormat(time * 1000, 'Y-m-d H:i:s')
} else { } else {
return '未完成' return '未完成'
} }
...@@ -516,30 +565,30 @@ ...@@ -516,30 +565,30 @@
// <el-option label="已收货" value="5"></el-option> // <el-option label="已收货" value="5"></el-option>
// <el-option label="已完成" value="3"></el-option> // <el-option label="已完成" value="3"></el-option>
// <el-option label="异常订单" value="4"></el-option> // <el-option label="异常订单" value="4"></el-option>
if(status === -1) { if (status === -1) {
return '订单取消' return '订单取消'
}else if (status === 0) { } else if (status === 0) {
return '待付款' return '待付款'
}else if (status === 1) { } else if (status === 1) {
return '待发货' return '待发货'
}else if (status === 2) { } else if (status === 2) {
return '待收货' return '待收货'
}else if (status === 3) { } else if (status === 3) {
return '已完成' return '已完成'
}else if (status === 4) { } else if (status === 4) {
return '异常订单' return '异常订单'
}else if (status === 5) { } else if (status === 5) {
return '已收货' return '已收货'
}else { } else {
return '' // 保险,返回空 return '' // 保险,返回空
} }
}, },
/** 结算状态 */ /** 结算状态 */
settlementFormat(status) { settlementFormat(status) {
let res = ''; let res = '';
if(status == 0) { if (status == 0) {
res = '未结算' res = '未结算'
}else if (status == 1) { } else if (status == 1) {
res = '已结算' res = '已结算'
} else { } else {
res = '' res = ''
...@@ -551,23 +600,23 @@ ...@@ -551,23 +600,23 @@
let statusText = '--' let statusText = '--'
if (cellValue == 1) { if (cellValue == 1) {
statusText = '申请仅退款' statusText = '申请仅退款'
}else if (cellValue == 2) { } else if (cellValue == 2) {
statusText = '同意仅退款,退款完成' statusText = '同意仅退款,退款完成'
}else if (cellValue == 3) { } else if (cellValue == 3) {
statusText = '卖家拒绝退款,售后关闭' statusText = '卖家拒绝退款,售后关闭'
}else if (cellValue == 4) { } else if (cellValue == 4) {
statusText = '申请退货退款' statusText = '申请退货退款'
}else if (cellValue == 5) { } else if (cellValue == 5) {
statusText = '同意退货退款,等待买家退货' statusText = '同意退货退款,等待买家退货'
}else if (cellValue == 6) { } else if (cellValue == 6) {
statusText = '拒绝退货退款,售后关闭' statusText = '拒绝退货退款,售后关闭'
}else if (cellValue == 7) { } else if (cellValue == 7) {
statusText = '买家退货,等待卖家收货' statusText = '买家退货,等待卖家收货'
}else if (cellValue == 8) { } else if (cellValue == 8) {
statusText = '同意退货退款,退款完成' statusText = '同意退货退款,退款完成'
}else if (cellValue == 9) { } else if (cellValue == 9) {
statusText = '拒绝收货,售后关闭' statusText = '拒绝收货,售后关闭'
}else if (cellValue == 10) { } else if (cellValue == 10) {
statusText = '买家取消售后,售后关闭' statusText = '买家取消售后,售后关闭'
} }
return statusText return statusText
...@@ -581,7 +630,7 @@ ...@@ -581,7 +630,7 @@
Tel: '', Tel: '',
dateTime: [], dateTime: [],
finishTime: [], finishTime: [],
qiansTime:[], qiansTime: [],
sendTime: [], sendTime: [],
settlement_status: '', settlement_status: '',
is_after_sale: '' is_after_sale: ''
...@@ -680,30 +729,30 @@ ...@@ -680,30 +729,30 @@
// if(this.$route.query.timeout==24){ // if(this.$route.query.timeout==24){
// params.is_time_out=true // params.is_time_out=true
// } // }
if(this.form.order_sn != '') { if (this.form.order_sn != '') {
params['order_sn'] = this.form.order_sn params['order_sn'] = this.form.order_sn
} }
if(this.form.goods_name != '') { if (this.form.goods_name != '') {
params['goods_name'] = this.form.goods_name params['goods_name'] = this.form.goods_name
} }
if(this.form.real_name != '') { if (this.form.real_name != '') {
params['real_name'] = this.form.real_name params['real_name'] = this.form.real_name
} }
if(this.form.Tel != '') { if (this.form.Tel != '') {
params['mobile'] = this.form.Tel params['mobile'] = this.form.Tel
} }
if(this.form.is_after_sale == '0' || this.form.is_after_sale == '1') { if (this.form.is_after_sale == '0' || this.form.is_after_sale == '1') {
params['is_after_sale'] = this.form.is_after_sale params['is_after_sale'] = this.form.is_after_sale
} }
if(this.goodsStatus==0) { if (this.goodsStatus == 0) {
if(this.form.status == '' || this.form.status == '-1'){ if (this.form.status == '' || this.form.status == '-1') {
params['status'] = this.goodsStatus params['status'] = this.goodsStatus
} }
else{ else {
params['status'] = this.form.status params['status'] = this.form.status
} }
}else{ } else {
params['status'] = this.goodsStatus params['status'] = this.goodsStatus
} }
...@@ -711,21 +760,21 @@ ...@@ -711,21 +760,21 @@
params['settlement_status'] = this.form.settlement_status params['settlement_status'] = this.form.settlement_status
} }
if( this.form.dateTime && this.form.dateTime.length == 2) { if (this.form.dateTime && this.form.dateTime.length == 2) {
params['created_start_time'] = new Date(this.form.dateTime[0]).getTime() / 1000; params['created_start_time'] = new Date(this.form.dateTime[0]).getTime() / 1000;
params['created_end_time'] = new Date(this.form.dateTime[1]).getTime() / 1000; params['created_end_time'] = new Date(this.form.dateTime[1]).getTime() / 1000;
} }
if(this.form.finishTime && this.form.finishTime.length == 2) { if (this.form.finishTime && this.form.finishTime.length == 2) {
params['finish_start_time'] = new Date(this.form.finishTime[0]).getTime() / 1000; params['finish_start_time'] = new Date(this.form.finishTime[0]).getTime() / 1000;
params['finish_end_time'] = new Date(this.form.finishTime[1]).getTime() / 1000; params['finish_end_time'] = new Date(this.form.finishTime[1]).getTime() / 1000;
} }
if(this.form.qiansTime && this.form.qiansTime.length == 2) { if (this.form.qiansTime && this.form.qiansTime.length == 2) {
params['sign_order_start_time'] = new Date(this.form.qiansTime[0]).getTime() / 1000; params['sign_order_start_time'] = new Date(this.form.qiansTime[0]).getTime() / 1000;
params['sign_order_end_time'] = new Date(this.form.qiansTime[1]).getTime() / 1000; params['sign_order_end_time'] = new Date(this.form.qiansTime[1]).getTime() / 1000;
} }
if(this.form.sendTime && this.form.sendTime.length == 2) { if (this.form.sendTime && this.form.sendTime.length == 2) {
params['send_start_time'] = new Date(this.form.sendTime[0]).getTime() / 1000; params['send_start_time'] = new Date(this.form.sendTime[0]).getTime() / 1000;
params['send_end_time'] = new Date(this.form.sendTime[1]).getTime() / 1000; params['send_end_time'] = new Date(this.form.sendTime[1]).getTime() / 1000;
} }
...@@ -739,12 +788,12 @@ ...@@ -739,12 +788,12 @@
this.total = res.data.count || 0 this.total = res.data.count || 0
this.tableDataList = res.data.data this.tableDataList = res.data.data
} else { } else {
this.$message({type: "error",message: res.message ? res.message : "查询订单失败"}); this.$message({ type: "error", message: res.message ? res.message : "查询订单失败" });
} }
}) })
}, },
// row 当前行 column 当前列 rowIndex 当前行号, columnIndex 当前列号 // row 当前行 column 当前列 rowIndex 当前行号, columnIndex 当前列号
listSpanMethod({row, column, rowIndex, columnIndex}) { listSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 1) { if (columnIndex === 1) {
if (rowIndex % 2 === 0) { if (rowIndex % 2 === 0) {
return { return {
...@@ -769,7 +818,7 @@ ...@@ -769,7 +818,7 @@
delete params.limit; delete params.limit;
delete params.seller_id; delete params.seller_id;
delete params.status; delete params.status;
exportUnSendOrderGoodsData(params).then(res=> { exportUnSendOrderGoodsData(params).then(res => {
if (res.code === 1) { if (res.code === 1) {
const aLink = document.createElement('a'); const aLink = document.createElement('a');
aLink.href = res.data.file_url; aLink.href = res.data.file_url;
...@@ -778,9 +827,9 @@ ...@@ -778,9 +827,9 @@
document.body.appendChild(aLink); document.body.appendChild(aLink);
aLink.click(); aLink.click();
document.body.removeChild(aLink); document.body.removeChild(aLink);
this.$message({type:'success',message: '导出成功,注意下载表格'}); this.$message({ type: 'success', message: '导出成功,注意下载表格' });
}else { } else {
this.$message({type:'error',message: res.message ? res.message: '导出失败'}); this.$message({ type: 'error', message: res.message ? res.message : '导出失败' });
} }
}); });
}, },
...@@ -792,9 +841,9 @@ ...@@ -792,9 +841,9 @@
let params = this.exportParams; let params = this.exportParams;
delete params.page; delete params.page;
delete params.limit; delete params.limit;
delete params.seller_id; // delete params.seller_id;
delete params.status; // delete params.status;
delete params.settlement_status; // delete params.settlement_status;
//console.log("导出全部订单,入参:",params); //console.log("导出全部订单,入参:",params);
exportOrder(params).then(res => { exportOrder(params).then(res => {
...@@ -806,8 +855,8 @@ ...@@ -806,8 +855,8 @@
document.body.appendChild(aLink); document.body.appendChild(aLink);
aLink.click(); aLink.click();
document.body.removeChild(aLink); document.body.removeChild(aLink);
}else { } else {
this.$message({type:'error',message: res.message ? res.message: '导出失败'}); this.$message({ type: 'error', message: res.message ? res.message : '导出失败' });
} }
}); });
}, },
...@@ -877,7 +926,7 @@ ...@@ -877,7 +926,7 @@
this.failDeliveryList = []; this.failDeliveryList = [];
if (this.excelList.length === 0) { if (this.excelList.length === 0) {
this.$message({type: 'warning', message: '请先上传填写好的表格数据'}); this.$message({ type: 'warning', message: '请先上传填写好的表格数据' });
return return
} }
...@@ -886,33 +935,33 @@ ...@@ -886,33 +935,33 @@
if (res.code == 1) { if (res.code == 1) {
if (res.data && res.data.fail_list && res.data.fail_list.length > 0) { if (res.data && res.data.fail_list && res.data.fail_list.length > 0) {
this.failDeliveryList = res.data.fail_list; this.failDeliveryList = res.data.fail_list;
this.failDeliveryList.forEach((item)=> { this.failDeliveryList.forEach((item) => {
item['goods_status'] = '发货失败' item['goods_status'] = '发货失败'
}) })
this.dialogDeliveryInfor = true; this.dialogDeliveryInfor = true;
this.$message({type: 'warning', message: '部分订单发货成功,失败订单可以导出'}); this.$message({ type: 'warning', message: '部分订单发货成功,失败订单可以导出' });
} else { } else {
this.isDeliveryOpen = false; this.isDeliveryOpen = false;
this.excelList = []; this.excelList = [];
this.$refs.upload.clearFiles(); this.$refs.upload.clearFiles();
this.$message({type: 'success', message: '批量发货成功'}); this.$message({ type: 'success', message: '批量发货成功' });
} }
} else { } else {
this.$message({type: 'error', message: res.message ? res.message : '批量发货失败'}); this.$message({ type: 'error', message: res.message ? res.message : '批量发货失败' });
} }
this.getListOrder(); this.getListOrder();
}); });
} else { } else {
this.$message({type: 'error', message: '部分订单未填写物流公司或物流单号,请完善后再上传'}); this.$message({ type: 'error', message: '部分订单未填写物流公司或物流单号,请完善后再上传' });
} }
}, },
/** 导出 table数据 */ /** 导出 table数据 */
exportFailDeliveryExcel(){ exportFailDeliveryExcel() {
let list = []; let list = [];
list = this.failDeliveryList; list = this.failDeliveryList;
let exportList = []; let exportList = [];
this.failDeliveryList.forEach(item=> { this.failDeliveryList.forEach(item => {
let obj = {}; let obj = {};
obj['goods_order_sn'] = item.goods_order_sn obj['goods_order_sn'] = item.goods_order_sn
obj['order_sn'] = item.order_sn obj['order_sn'] = item.order_sn
...@@ -923,8 +972,8 @@ ...@@ -923,8 +972,8 @@
// 列标题,逗号隔开,每一个逗号就是隔开一个单元格 // 列标题,逗号隔开,每一个逗号就是隔开一个单元格
let title = `商品订单号,总订单号,发货状态,失败原因\n`; let title = `商品订单号,总订单号,发货状态,失败原因\n`;
//增加\t为了不让表格显示科学计数法或者其他格式 //增加\t为了不让表格显示科学计数法或者其他格式
for(let i = 0 ; i < exportList.length ; i++ ){ for (let i = 0; i < exportList.length; i++) {
for(let item in exportList[i]){ for (let item in exportList[i]) {
title += `${exportList[i][item] + '\t'},`; title += `${exportList[i][item] + '\t'},`;
} }
title += '\n'; title += '\n';
...@@ -939,7 +988,7 @@ ...@@ -939,7 +988,7 @@
document.body.appendChild(link); document.body.appendChild(link);
link.click(); link.click();
document.body.removeChild(link); document.body.removeChild(link);
} , },
/** 关闭 发货失败 数据展示 */ /** 关闭 发货失败 数据展示 */
cancelDeliveryInfor() { cancelDeliveryInfor() {
this.isDeliveryOpen = false; this.isDeliveryOpen = false;
...@@ -957,8 +1006,8 @@ ...@@ -957,8 +1006,8 @@
/** 查看物流信息 */ /** 查看物流信息 */
handleExpressInfo(row) { handleExpressInfo(row) {
// 如果 商品订单没有发货,则不用请求了 // 如果 商品订单没有发货,则不用请求了
if(row.goods_status == 0) { if (row.goods_status == 0) {
this.$message({type:'warning',message:'您还未发货,暂无物流信息'}); this.$message({ type: 'warning', message: '您还未发货,暂无物流信息' });
return return
} }
...@@ -970,15 +1019,15 @@ ...@@ -970,15 +1019,15 @@
if (res.code == 1 && res.data) { if (res.code == 1 && res.data) {
this.dialogExpress = true this.dialogExpress = true
this.activities = res.data.order_track ? res.data.order_track : []; this.activities = res.data.order_track ? res.data.order_track : [];
}else { } else {
this.$message({type:'error',message: res.message ? res.message : '获取数据失败' }); this.$message({ type: 'error', message: res.message ? res.message : '获取数据失败' });
} }
}) })
}, },
// 订单详情 // 订单详情
handleInfo(row) { handleInfo(row) {
let order_id = row.order_id let order_id = row.order_id
orderInfo({order_id: order_id}).then(res => { orderInfo({ order_id: order_id }).then(res => {
if (res.code == 1 && res.data) { if (res.code == 1 && res.data) {
this.detailDialog = true this.detailDialog = true
// 留言备注,需要单独处理 // 留言备注,需要单独处理
...@@ -999,12 +1048,12 @@ ...@@ -999,12 +1048,12 @@
// 能否修改买家信息 字段动态添加 // 能否修改买家信息 字段动态添加
// 1,商品订单,只要要发货的,就不能再修改,2,修改过一次的,不能再修改 // 1,商品订单,只要要发货的,就不能再修改,2,修改过一次的,不能再修改
let isEditBuyerInfo = false; let isEditBuyerInfo = false;
if(this.order_detail.is_update_address == 1) { if (this.order_detail.is_update_address == 1) {
isEditBuyerInfo = true isEditBuyerInfo = true
}else { } else {
if(this.order_goods_detail.length > 0) { if (this.order_goods_detail.length > 0) {
for(let i = 0; i < this.order_goods_detail.length; i++) { for (let i = 0; i < this.order_goods_detail.length; i++) {
if(this.order_goods_detail[i].goods_status > 0) { if (this.order_goods_detail[i].goods_status > 0) {
isEditBuyerInfo = true isEditBuyerInfo = true
break; break;
} }
...@@ -1016,15 +1065,15 @@ ...@@ -1016,15 +1065,15 @@
//console.log('备注留言返回原始数据',res.data.order.remark); //console.log('备注留言返回原始数据',res.data.order.remark);
// this.$router.push({path: '/system/goods/management'}); // this.$router.push({path: '/system/goods/management'});
} else if(res.code == 0) { } else if (res.code == 0) {
let msg = res.message ? res.message : '暂无数据' let msg = res.message ? res.message : '暂无数据'
this.$message({type: 'error',message: msg}); this.$message({ type: 'error', message: msg });
} }
}) })
}, },
/** 更新 订单备注 */ /** 更新 订单备注 */
updateOrder(id) { updateOrder(id) {
let row = {order_id: id} let row = { order_id: id }
this.handleInfo(row); this.handleInfo(row);
}, },
// 获取物流信息 // 获取物流信息
...@@ -1066,11 +1115,13 @@ ...@@ -1066,11 +1115,13 @@
height: calc(100% - 50px); height: calc(100% - 50px);
/* overflow: auto; */ /* overflow: auto; */
} }
.overMain{
.overMain {
height: 729px; height: 729px;
overflow: auto; overflow: auto;
padding-top: 15px; padding-top: 15px;
} }
.scollbox { .scollbox {
/* height: calc(100% - 50px); */ /* height: calc(100% - 50px); */
/* overflow-y: hidden; */ /* overflow-y: hidden; */
...@@ -1078,6 +1129,7 @@ ...@@ -1078,6 +1129,7 @@
::v-deep .el-tabs__header{ ::v-deep .el-tabs__header{
margin: 0; margin: 0;
} }
.form-box { .form-box {
/*margin-bottom: 20px;*/ /*margin-bottom: 20px;*/
/*padding-top: 10px;*/ /*padding-top: 10px;*/
...@@ -1090,6 +1142,7 @@ ...@@ -1090,6 +1142,7 @@
::v-deep .form-params .el-form-item { ::v-deep .form-params .el-form-item {
margin: 5px 0 5px 0; margin: 5px 0 5px 0;
} }
.img-title-table { .img-title-table {
display: flex; display: flex;
justify-content: center; justify-content: center;
...@@ -1142,7 +1195,8 @@ ...@@ -1142,7 +1195,8 @@
} }
.el-card-header-spe { .el-card-header-spe {
overflow: hidden; /* 此为父元素,子元素都浮动了,所以,这样处理,撑开自己的高度 */ overflow: hidden;
/* 此为父元素,子元素都浮动了,所以,这样处理,撑开自己的高度 */
font-size: 14px; font-size: 14px;
padding: 10px 12px; padding: 10px 12px;
background-color: #f0f0f5; background-color: #f0f0f5;
...@@ -1151,7 +1205,7 @@ ...@@ -1151,7 +1205,7 @@
.table-header-spe { .table-header-spe {
background-color: #F7F8FA; background-color: #F7F8FA;
padding:0 34px 0 22px; padding: 0 34px 0 22px;
margin: 5px 0; margin: 5px 0;
} }
...@@ -1161,7 +1215,7 @@ ...@@ -1161,7 +1215,7 @@
} }
::v-deep .title_table .el-table__body-wrapper{ ::v-deep .title_table .el-table__body-wrapper{
display: none !important; display: none !important;
height:0 !important; height: 0 !important;
} }
::v-deep .title_table tr th { ::v-deep .title_table tr th {
border-bottom: 0 !important; border-bottom: 0 !important;
...@@ -1186,8 +1240,9 @@ ...@@ -1186,8 +1240,9 @@
.red-text { .red-text {
font-size: 12px; font-size: 12px;
color: red!important; color: red !important;
} }
/* 批量发货 对话框 */ /* 批量发货 对话框 */
.delivery-fail-data-dialog { .delivery-fail-data-dialog {
height: 100%; height: 100%;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论