Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui
# Conflicts: # manager/src/views/promotion/coupon/coupon.vue # seller/src/views/promotion/coupon/coupon.vuemaster
commit
35af0f2744
|
@ -85,6 +85,14 @@ module.exports = {
|
||||||
limit: 10000,
|
limit: 10000,
|
||||||
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
|
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(cur)(\?.*)?$/,
|
||||||
|
loader: 'url-loader',
|
||||||
|
options: {
|
||||||
|
limit: 10000,
|
||||||
|
name: utils.assetsPath('cur/[name].[hash:7].[ext]')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<div class="c-left">
|
<div class="c-left">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
||||||
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
|
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
|
||||||
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
||||||
</div>
|
</div>
|
||||||
<p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>
|
<p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<div class="c-left">
|
<div class="c-left">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="coupon.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{coupon.price | unitPrice}}</span></span>
|
<span v-if="coupon.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{coupon.price | unitPrice}}</span></span>
|
||||||
<span v-if="coupon.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{coupon.discount}}</span>折</span>
|
<span v-if="coupon.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{coupon.couponDiscount}}</span>折</span>
|
||||||
<span class="describe">满{{coupon.consumeThreshold}}元可用</span>
|
<span class="describe">满{{coupon.consumeThreshold}}元可用</span>
|
||||||
</div>
|
</div>
|
||||||
<p>使用范围:{{useScope(coupon.scopeType, coupon.storeName)}}</p>
|
<p>使用范围:{{useScope(coupon.scopeType, coupon.storeName)}}</p>
|
||||||
|
|
|
@ -56,8 +56,8 @@
|
||||||
<Rate disabled :value="Number(item.descriptionScore)" allow-half class="remarks-star"></Rate>
|
<Rate disabled :value="Number(item.descriptionScore)" allow-half class="remarks-star"></Rate>
|
||||||
</p>
|
</p>
|
||||||
<p class="remarks-content">{{item.content}}</p>
|
<p class="remarks-content">{{item.content}}</p>
|
||||||
<div class="comment-img" v-if="item.haveImage">
|
<div class="comment-img" v-if="item.images">
|
||||||
<div v-for="(img, imgIndex) in item.image.split(',')"
|
<div v-for="(img, imgIndex) in item.images.split(',')"
|
||||||
@click="previewImg(img, item)"
|
@click="previewImg(img, item)"
|
||||||
:class="{borderColor:img === item.previewImg}"
|
:class="{borderColor:img === item.previewImg}"
|
||||||
:key="imgIndex">
|
:key="imgIndex">
|
||||||
|
|
|
@ -53,16 +53,19 @@
|
||||||
</li>
|
</li>
|
||||||
<li class="hover-color" @click="goUserCenter('/home/MyOrder')"><span class="nav-item">我的订单</span></li>
|
<li class="hover-color" @click="goUserCenter('/home/MyOrder')"><span class="nav-item">我的订单</span></li>
|
||||||
<li class="hover-color" @click="goUserCenter('/home/MyTracks')"><span class="nav-item">我的足迹</span></li>
|
<li class="hover-color" @click="goUserCenter('/home/MyTracks')"><span class="nav-item">我的足迹</span></li>
|
||||||
<li v-if="$route.name !== 'Cart'" style="position:relative;" @mouseenter="getCartList">
|
<li v-if="$route.name !== 'Cart'" style="position:relative;" >
|
||||||
<i class="cart-badge" v-show="Number(cartNum)">{{cartNum < 100 ? cartNum : '99'}}</i>
|
<i class="cart-badge" v-show="Number(cartNum)">{{cartNum < 100 ? cartNum : '99'}}</i>
|
||||||
<Dropdown placement="bottom-start">
|
<Dropdown placement="bottom-start">
|
||||||
<router-link to="cart" target="_blank" >
|
<router-link to="cart" target="_blank" >
|
||||||
|
<span @mouseenter="getCartList">
|
||||||
<Icon
|
<Icon
|
||||||
size="18"
|
size="18"
|
||||||
class="cart-icon"
|
class="cart-icon"
|
||||||
type="ios-cart-outline"
|
type="ios-cart-outline"
|
||||||
></Icon>
|
></Icon>
|
||||||
购物车
|
购物车
|
||||||
|
</span>
|
||||||
|
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<DropdownMenu slot="list">
|
<DropdownMenu slot="list">
|
||||||
|
@ -115,7 +118,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import storage from '@/plugins/storage.js';
|
import storage from '@/plugins/storage.js';
|
||||||
import {cartGoodsAll, cartCount} from '@/api/cart.js'
|
import {cartGoodsAll} from '@/api/cart.js'
|
||||||
export default {
|
export default {
|
||||||
name: 'M-Header',
|
name: 'M-Header',
|
||||||
created () {
|
created () {
|
||||||
|
@ -211,12 +214,11 @@ export default {
|
||||||
},
|
},
|
||||||
getCartList () { // 获取购物车列表
|
getCartList () { // 获取购物车列表
|
||||||
if (this.userInfo.username) {
|
if (this.userInfo.username) {
|
||||||
cartCount().then(res => {
|
|
||||||
this.$store.commit('SET_CARTNUM', res.result)
|
|
||||||
this.Cookies.setItem('cartNum', res.result)
|
|
||||||
})
|
|
||||||
cartGoodsAll().then(res => {
|
cartGoodsAll().then(res => {
|
||||||
this.shoppingCart = res.result.skuList
|
this.shoppingCart = res.result.skuList
|
||||||
|
this.$store.commit('SET_CARTNUM', this.shoppingCart.length)
|
||||||
|
this.Cookies.setItem('cartNum', this.shoppingCart.length)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div style="font-size:14px">全部结果</div>
|
<div style="font-size:14px">全部结果</div>
|
||||||
<Icon type="ios-arrow-forward" />
|
<Icon type="ios-arrow-forward" />
|
||||||
<div>{{params.keyword}}</div>
|
<div style="font-weight:bold;" class="mr_10">“{{params.keyword}}”</div>
|
||||||
</template>
|
</template>
|
||||||
<!-- 所选分类 -->
|
<!-- 所选分类 -->
|
||||||
<a
|
<a
|
||||||
|
@ -41,8 +41,7 @@
|
||||||
:key="index"
|
:key="index"
|
||||||
:title="item.name"
|
:title="item.name"
|
||||||
>
|
>
|
||||||
<span>{{ item.type }}:</span><span>{{ item.name }}</span
|
<span>{{ item.type }}:</span><span>{{ item.name }}</span><Icon type="md-close" />
|
||||||
><Icon type="md-close" />
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -190,8 +189,10 @@ export default {
|
||||||
selectedItem: {
|
selectedItem: {
|
||||||
// 监听已选条件,来调用列表接口
|
// 监听已选条件,来调用列表接口
|
||||||
handler (val) {
|
handler (val) {
|
||||||
|
console.log(val);
|
||||||
let classification = [];
|
let classification = [];
|
||||||
if (val.length) {
|
this.params.brandId = ''
|
||||||
|
this.params.prop = ''
|
||||||
val.forEach((item) => {
|
val.forEach((item) => {
|
||||||
if (item.type === '品牌') {
|
if (item.type === '品牌') {
|
||||||
this.params.brandId = this.brandIds.join('@');
|
this.params.brandId = this.brandIds.join('@');
|
||||||
|
@ -203,10 +204,6 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.params.prop = classification.join('@');
|
this.params.prop = classification.join('@');
|
||||||
} else {
|
|
||||||
this.params.prop = ''
|
|
||||||
this.params.brandId = ''
|
|
||||||
}
|
|
||||||
this.getFilterList(this.params);
|
this.getFilterList(this.params);
|
||||||
this.$emit('getParams', this.params);
|
this.$emit('getParams', this.params);
|
||||||
},
|
},
|
||||||
|
@ -251,7 +248,7 @@ export default {
|
||||||
this.$set(this.tabBar, 'second', second)
|
this.$set(this.tabBar, 'second', second)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cateClick (item, index) {
|
cateClick (item, index) { // 点选分类
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 1:
|
case 1:
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
|
@ -299,7 +296,6 @@ export default {
|
||||||
|
|
||||||
brands.forEach((val) => {
|
brands.forEach((val) => {
|
||||||
if (val.name === item) this.brandIds.push(val.value);
|
if (val.name === item) this.brandIds.push(val.value);
|
||||||
console.log(this.brandIds);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,15 +17,15 @@ export default {
|
||||||
* @description api请求基础路径
|
* @description api请求基础路径
|
||||||
*/
|
*/
|
||||||
api_dev: {
|
api_dev: {
|
||||||
common: 'http://192.168.0.100:8890',
|
// common: 'http://192.168.0.103:8890',
|
||||||
buyer: 'http://192.168.0.100:8888',
|
// buyer: 'http://192.168.0.103:8888',
|
||||||
seller: 'http://192.168.0.100:8889',
|
// seller: 'http://192.168.0.103:8889',
|
||||||
manager: 'http://192.168.0.100:8887'
|
// manager: 'http://192.168.0.103:8887'
|
||||||
|
|
||||||
// common: 'https://common-api.pickmall.cn',
|
common: 'https://common-api.pickmall.cn',
|
||||||
// buyer: 'https://buyer-api.pickmall.cn',
|
buyer: 'https://buyer-api.pickmall.cn',
|
||||||
// seller: 'https://store-api.pickmall.cn',
|
seller: 'https://store-api.pickmall.cn',
|
||||||
// manager: 'https://admin-api.pickmall.cn'
|
manager: 'https://admin-api.pickmall.cn'
|
||||||
},
|
},
|
||||||
api_prod: {
|
api_prod: {
|
||||||
common: 'https://common-api.pickmall.cn',
|
common: 'https://common-api.pickmall.cn',
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<div v-if="couponAvailable === index">
|
<div v-if="couponAvailable === index">
|
||||||
<div class="coupon-item" v-for="(item, index) in shop.couponList" :key="index">
|
<div class="coupon-item" v-for="(item, index) in shop.couponList" :key="index">
|
||||||
<span v-if="item.couponType === 'PRICE'">¥{{ item.price }}</span>
|
<span v-if="item.couponType === 'PRICE'">¥{{ item.price }}</span>
|
||||||
<span v-if="item.couponType === 'DISCOUNT'">{{ item.discount }}折</span>
|
<span v-if="item.couponType === 'DISCOUNT'">{{ item.couponDiscount }}折</span>
|
||||||
<span>满{{item.consumeThreshold}}元可用</span>
|
<span>满{{item.consumeThreshold}}元可用</span>
|
||||||
<Button class="coupon-btn" size="small" type="primary" @click="receiveShopCoupon(item)" :disabled="item.disabled">{{ item.disabled ? "已领取" : "领取" }}</Button>
|
<Button class="coupon-btn" size="small" type="primary" @click="receiveShopCoupon(item)" :disabled="item.disabled">{{ item.disabled ? "已领取" : "领取" }}</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
<div class="ml_20 total-price">
|
<div class="ml_20 total-price">
|
||||||
总价(不含运费):<span>{{ priceDetailDTO.billPrice | unitPrice("¥") }}</span>
|
总价(不含运费):<span>{{ priceDetailDTO.billPrice | unitPrice("¥") }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="pay ml_20" @click="pay">去支付</div>
|
<div class="pay ml_20" @click="pay">去结算</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -157,11 +157,11 @@ export default {
|
||||||
window.open(routeUrl.href, '_blank');
|
window.open(routeUrl.href, '_blank');
|
||||||
},
|
},
|
||||||
changePageNum (val) {
|
changePageNum (val) {
|
||||||
this.params.pageNumber = val - 1;
|
this.params.pageNumber = val;
|
||||||
this.getGoodsList();
|
this.getGoodsList();
|
||||||
},
|
},
|
||||||
changePageSize (val) {
|
changePageSize (val) {
|
||||||
this.params.pageNumber = 0;
|
this.params.pageNumber = 1;
|
||||||
this.params.pageSize = val;
|
this.params.pageSize = val;
|
||||||
this.getGoodsList();
|
this.getGoodsList();
|
||||||
},
|
},
|
||||||
|
|
|
@ -146,11 +146,11 @@ export default {
|
||||||
this.getGoodsList()
|
this.getGoodsList()
|
||||||
},
|
},
|
||||||
changePageNum (val) {
|
changePageNum (val) {
|
||||||
this.params.pageNumber = val - 1;
|
this.params.pageNumber = val;
|
||||||
this.getGoodsList();
|
this.getGoodsList();
|
||||||
},
|
},
|
||||||
changePageSize (val) {
|
changePageSize (val) {
|
||||||
this.params.pageNumber = 0;
|
this.params.pageNumber = 1;
|
||||||
this.params.pageSize = val;
|
this.params.pageSize = val;
|
||||||
this.getGoodsList();
|
this.getGoodsList();
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<div class="c-left">
|
<div class="c-left">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
||||||
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
|
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
|
||||||
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
||||||
</div>
|
</div>
|
||||||
<p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>
|
<p>使用范围:{{useScope(item.scopeType, item.storeName)}}</p>
|
||||||
|
|
|
@ -22,10 +22,10 @@
|
||||||
</div>
|
</div>
|
||||||
<Row class="order-item-view">
|
<Row class="order-item-view">
|
||||||
<i-col span="12" class="item-view-name">
|
<i-col span="12" class="item-view-name">
|
||||||
<div class="order-img">
|
<div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||||
<img :src="item.goodsImage" alt="" />
|
<img :src="item.goodsImage" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="order-name">
|
<div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||||
{{item.goodsName}}
|
{{item.goodsName}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<table cellspacing="0" cellpadding='0' border="1">
|
<table cellspacing="0" cellpadding='0' border="1">
|
||||||
<tr>
|
<tr>
|
||||||
<td>投诉商品</td>
|
<td>投诉商品</td>
|
||||||
<td><img :src="detail.goodsImage" width="60" alt=""> {{ detail.goodsName }}</td>
|
<td class="hover-color" @click="linkTo(`/goodsDetail?goodsId=${detail.goodsId}&skuId=${detail.skuId}`)"><img :src="detail.goodsImage" width="60" alt=""> {{ detail.goodsName }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>投诉主题</td>
|
<td>投诉主题</td>
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
</div>
|
</div>
|
||||||
<Row class="order-item-view">
|
<Row class="order-item-view">
|
||||||
<i-col span="12" class="item-view-name">
|
<i-col span="12" class="item-view-name">
|
||||||
<div class="order-img">
|
<div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||||
<img :src="item.goodsImage" alt="" />
|
<img :src="item.goodsImage" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div class="order-name">
|
<div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||||
{{item.goodsName}}
|
{{item.goodsName}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
<Input type="textarea" maxlength="500" readonly show-word-limit :rows="4" v-model="orderGoods.content" />
|
<Input type="textarea" maxlength="500" readonly show-word-limit :rows="4" v-model="orderGoods.content" />
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;align-items:center;">
|
<div style="display:flex;align-items:center;">
|
||||||
<template v-if="orderGoods.image">
|
<template v-if="orderGoods.images">
|
||||||
<div class="demo-upload-list" v-for="(img, index) in orderGoods.image.split(',')" :key="index">
|
<div class="demo-upload-list" v-for="(img, index) in orderGoods.images.split(',')" :key="index">
|
||||||
<img :src="img">
|
<img :src="img">
|
||||||
<div class="demo-upload-list-cover">
|
<div class="demo-upload-list-cover">
|
||||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
<div class="c-left">
|
<div class="c-left">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
||||||
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.discount}}</span>折</span>
|
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{item.couponDiscount}}</span>折</span>
|
||||||
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
<span class="describe">满{{item.consumeThreshold}}元可用</span>
|
||||||
</div>
|
</div>
|
||||||
<p>使用范围:{{useScope(item.scopeType)}}</p>
|
<p>使用范围:{{useScope(item.scopeType)}}</p>
|
||||||
|
|
|
@ -8,11 +8,12 @@ import {
|
||||||
getRequestWithNoToken,
|
getRequestWithNoToken,
|
||||||
putRequestWithNoForm,
|
putRequestWithNoForm,
|
||||||
postRequestWithNoForm,
|
postRequestWithNoForm,
|
||||||
commonUrl,
|
|
||||||
managerUrl
|
managerUrl
|
||||||
} from "@/libs/axios";
|
} from "@/libs/axios";
|
||||||
import config from "@/config";
|
import config from "@/config";
|
||||||
|
|
||||||
|
let commonUrl = (process.env.NODE_ENV === 'development' ? config.api_dev.common : config.api_prod.common)
|
||||||
|
|
||||||
// 文件上传接口
|
// 文件上传接口
|
||||||
export const uploadFile = commonUrl+ "/common/upload/file";
|
export const uploadFile = commonUrl+ "/common/upload/file";
|
||||||
// 验证码渲染图片接口
|
// 验证码渲染图片接口
|
||||||
|
|
|
@ -202,6 +202,7 @@
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.data = res.result.records;
|
this.data = res.result.records;
|
||||||
|
|
||||||
this.total = res.result.total;
|
this.total = res.result.total;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -56,16 +56,22 @@
|
||||||
>
|
>
|
||||||
|
|
||||||
<!-- 商品栏目格式化 -->
|
<!-- 商品栏目格式化 -->
|
||||||
<template slot="goodsSlot" slot-scope="scope">
|
<template slot="goodsSlot" slot-scope="{row}">
|
||||||
<div style="margin: 5px 0px;height: 80px; display: flex;">
|
<div style="margin: 5px 0px;height: 80px; display: flex;">
|
||||||
<div style="">
|
<div style="">
|
||||||
<img :src="scope.row.original" style="height: 60px;margin-top: 1px;width: 60px">
|
<img :src="row.original" style="height: 60px;margin-top: 1px;width: 60px">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="margin-left: 13px;">
|
<div style="margin-left: 13px;">
|
||||||
<div class="div-zoom">
|
<div class="div-zoom">
|
||||||
<a>{{scope.row.goodsName}}</a>
|
<a @click="linkTo(row.id,row.skuId)">{{row.goodsName}}</a>
|
||||||
</div>
|
</div>
|
||||||
|
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
||||||
|
<div slot="content">
|
||||||
|
<vue-qr :text="wapLinkTo(row.id,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
||||||
|
</div>
|
||||||
|
<img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
|
||||||
|
</Poptip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -244,6 +244,7 @@ export default {
|
||||||
//弹出品牌关联框
|
//弹出品牌关联框
|
||||||
brandOperation(v) {
|
brandOperation(v) {
|
||||||
getCategoryBrandListData(v.id).then((res) => {
|
getCategoryBrandListData(v.id).then((res) => {
|
||||||
|
console.warn(res)
|
||||||
this.categoryId = v.id;
|
this.categoryId = v.id;
|
||||||
this.modalBrandTitle = "品牌关联";
|
this.modalBrandTitle = "品牌关联";
|
||||||
this.brandForm.categoryBrands = res.result.map((item) => item.id);
|
this.brandForm.categoryBrands = res.result.map((item) => item.id);
|
||||||
|
|
|
@ -31,9 +31,7 @@
|
||||||
</p>
|
</p>
|
||||||
<template v-if="group.params && group.params.length > 0">
|
<template v-if="group.params && group.params.length > 0">
|
||||||
<div v-for="param in group.params" :key="param.param_id" class="params">
|
<div v-for="param in group.params" :key="param.param_id" class="params">
|
||||||
<span>{{ param.paramName }} 【{{
|
<span>{{ param.paramName }}</span>
|
||||||
param.paramType | paramTypeFilter
|
|
||||||
}}】</span>
|
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
<i-button type="text" @click="handleEditParams(group, param)">编辑</i-button>
|
<i-button type="text" @click="handleEditParams(group, param)">编辑</i-button>
|
||||||
|
@ -56,19 +54,30 @@
|
||||||
<FormItem label="参数名称" prop="paramName">
|
<FormItem label="参数名称" prop="paramName">
|
||||||
<Input v-model="paramForm.paramName" style="width: 100%" />
|
<Input v-model="paramForm.paramName" style="width: 100%" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="参数类型" prop="paramType">
|
<FormItem label="可选值" prop="options">
|
||||||
<Select :loading="userLoading" v-model="paramForm.paramType">
|
<Select
|
||||||
<Option :value="1" :key="1">输入项</Option>
|
v-model="paramForm.options"
|
||||||
<Option :value="2" :key="2">选择项</Option>
|
placeholder="输入后回车添加"
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
allow-create
|
||||||
|
:popper-append-to-body="false"
|
||||||
|
popper-class="spec-values-popper"
|
||||||
|
style="width: 100%; text-align: left; margin-right: 10px"
|
||||||
|
>
|
||||||
|
<Option
|
||||||
|
v-for="item in ops"
|
||||||
|
:value="item"
|
||||||
|
:key="item"
|
||||||
|
:label="item"
|
||||||
|
>
|
||||||
|
{{item}}
|
||||||
|
</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="可选值" prop="options">
|
|
||||||
<i-input v-model="paramForm.options" type="textarea" :rows="3" placeholder="请输入可选值,选择项实用逗号分隔"></i-input>
|
|
||||||
</FormItem>
|
|
||||||
|
|
||||||
<FormItem label="选项" prop="specName3">
|
<FormItem label="选项" prop="specName3">
|
||||||
<Checkbox :value="Number" v-model="paramForm.required">必填</Checkbox>
|
<Checkbox label=1 v-model="paramForm.required">必填</Checkbox>
|
||||||
<Checkbox v-model="paramForm.isIndex">可索引</Checkbox>
|
<Checkbox label=1 v-model="paramForm.isIndex">可索引</Checkbox>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
|
|
||||||
|
@ -127,6 +136,10 @@ export default {
|
||||||
paramId: "",
|
paramId: "",
|
||||||
//参数表单
|
//参数表单
|
||||||
paramForm: {},
|
paramForm: {},
|
||||||
|
/** 参数值 **/
|
||||||
|
ops:{
|
||||||
|
options: []
|
||||||
|
},
|
||||||
paramGroupForm: {},
|
paramGroupForm: {},
|
||||||
/** 添加、编辑参数 规格 */
|
/** 添加、编辑参数 规格 */
|
||||||
formValidate: {
|
formValidate: {
|
||||||
|
@ -170,14 +183,15 @@ export default {
|
||||||
handleEditParams(group, param) {
|
handleEditParams(group, param) {
|
||||||
this.paramForm = {
|
this.paramForm = {
|
||||||
paramName: param.paramName,
|
paramName: param.paramName,
|
||||||
paramType: param.paramType,
|
options: param.options.split(","),
|
||||||
options: param.options,
|
required: param.required==1?true:false,
|
||||||
required: param.required,
|
isIndex: param.isIndex==1?true:false,
|
||||||
isIndex: param.isIndex,
|
|
||||||
groupId: group.groupId,
|
groupId: group.groupId,
|
||||||
categoryId: this.categoryId,
|
categoryId: this.categoryId,
|
||||||
id: param.id,
|
id: param.id,
|
||||||
};
|
};
|
||||||
|
console.warn(this.paramForm.options)
|
||||||
|
this.ops = this.paramForm.options
|
||||||
this.modalType = 1;
|
this.modalType = 1;
|
||||||
this.modalTitle = "修改参数";
|
this.modalTitle = "修改参数";
|
||||||
this.dialogParamsVisible = true;
|
this.dialogParamsVisible = true;
|
||||||
|
@ -194,7 +208,14 @@ export default {
|
||||||
this.dialogParamsGroupVisible = true;
|
this.dialogParamsGroupVisible = true;
|
||||||
},
|
},
|
||||||
handleAddParamsGroup() {
|
handleAddParamsGroup() {
|
||||||
|
this.paramGroupForm = {
|
||||||
|
|
||||||
|
};
|
||||||
|
this.ops = {
|
||||||
|
|
||||||
|
};
|
||||||
(this.paramGroupForm.categoryId = this.categoryId), (this.modalType = 0);
|
(this.paramGroupForm.categoryId = this.categoryId), (this.modalType = 0);
|
||||||
|
|
||||||
this.modalTitle = "添加参数组";
|
this.modalTitle = "添加参数组";
|
||||||
this.dialogParamsGroupVisible = true;
|
this.dialogParamsGroupVisible = true;
|
||||||
},
|
},
|
||||||
|
@ -212,6 +233,7 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
console.warn(this.paramGroupForm)
|
||||||
updateParamsGroup(this.paramGroupForm).then((res) => {
|
updateParamsGroup(this.paramGroupForm).then((res) => {
|
||||||
this.submitLoading = false;
|
this.submitLoading = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
@ -242,6 +264,7 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
console.warn(this.paramForm.isIndex)
|
||||||
this.paramForm.isIndex = Number(this.paramForm.isIndex);
|
this.paramForm.isIndex = Number(this.paramForm.isIndex);
|
||||||
this.paramForm.required = Number(this.paramForm.required);
|
this.paramForm.required = Number(this.paramForm.required);
|
||||||
updateGoodsParams(this.paramForm).then((res) => {
|
updateGoodsParams(this.paramForm).then((res) => {
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
<div class="right-container">
|
<div class="right-container">
|
||||||
<div class="border-b">{{ infoData.goodsName }}</div>
|
<div class="border-b">{{ infoData.goodsName }}</div>
|
||||||
<div class="border-b">
|
<div class="border-b">
|
||||||
<div class="div-height"> 店铺名称:{{ infoData.sellerName }}</div>
|
<div class="div-height"> 店铺名称:{{ infoData.storeName }}</div>
|
||||||
<div class="div-height"> 订单号:{{ infoData.orderNo }}</div>
|
<div class="div-height"> 订单号:{{ infoData.orderNo }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -72,11 +72,11 @@
|
||||||
<div class="counts">{{$store.state.notices.refund|| 0}}</div>
|
<div class="counts">{{$store.state.notices.refund|| 0}}</div>
|
||||||
<div>待审核售后</div>
|
<div>待审核售后</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="todo-item" @click="navigateTo('distribution')">
|
<div class="todo-item" >
|
||||||
<div class="counts">{{$store.state.notices.distributionCash|| 0}}</div>
|
<div class="counts">{{$store.state.notices.distributionCash|| 0}}</div>
|
||||||
<div>待审核分销提现</div>
|
<div>待审核分销提现</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="todo-item" @click="navigateTo('billList')">
|
<div class="todo-item" @click="navigateTo('accountStatementBill')">
|
||||||
<div class="counts">{{$store.state.notices.waitPayBill|| 0}}</div>
|
<div class="counts">{{$store.state.notices.waitPayBill|| 0}}</div>
|
||||||
<div>待审核分账</div>
|
<div>待审核分账</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,127 +0,0 @@
|
||||||
<template>
|
|
||||||
<Modal :mask-closable="false" :value="switched" v-model="switched" title="选择地址" @on-ok="submit" @on-cancel="cancel">
|
|
||||||
<div class="flex">
|
|
||||||
<Spin size="large" fix v-if="spinShow"></Spin>
|
|
||||||
<Tree ref="tree" class="tree" :data="data" expand-node show-checkbox multiple></Tree>
|
|
||||||
</div>
|
|
||||||
</Modal>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import { getAllCity } from "@/api/index";
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
switched: false, // 控制模态框显隐
|
|
||||||
spinShow: false, // 加载状态
|
|
||||||
data: [], // 地区数据
|
|
||||||
selectedWay: [], // 选择的地区
|
|
||||||
callBackData: "", // 打开组件的回显数据
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.init();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
cancel() {
|
|
||||||
this.switched = false;
|
|
||||||
// this.$emit("close",true)
|
|
||||||
},
|
|
||||||
open(val) {
|
|
||||||
if (val) {
|
|
||||||
this.callBackData = val;
|
|
||||||
this.data = JSON.parse(JSON.stringify(this.data));
|
|
||||||
val.areaId.split(",").forEach((ids) => {
|
|
||||||
this.data.forEach((item) => {
|
|
||||||
if (item.id == ids) {
|
|
||||||
item.selected = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
item.children &&
|
|
||||||
item.children.forEach((child) => {
|
|
||||||
if (child.id == ids) {
|
|
||||||
child.checked = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(this.data);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.switched = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
submit() {
|
|
||||||
// 筛选出省市
|
|
||||||
let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
|
|
||||||
let sort = [];
|
|
||||||
list.forEach((item) => {
|
|
||||||
item.selectedList = [];
|
|
||||||
if (item.level == "province") {
|
|
||||||
sort.push({
|
|
||||||
...item,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
sort.forEach((sortItem, sortIndex) => {
|
|
||||||
if (item.level != "province" && sortItem.id == item.parentId) {
|
|
||||||
sortItem.selectedList.push({
|
|
||||||
...item,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
this.$emit(
|
|
||||||
"selected",
|
|
||||||
list.filter((item) => {
|
|
||||||
return item.level == "province";
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
this.cancel();
|
|
||||||
},
|
|
||||||
|
|
||||||
init() {
|
|
||||||
getAllCity().then((res) => {
|
|
||||||
if (res.result) {
|
|
||||||
res.result.forEach((item) => {
|
|
||||||
item.children.forEach((child) => {
|
|
||||||
child.title = child.name;
|
|
||||||
});
|
|
||||||
|
|
||||||
let data = {
|
|
||||||
title: item.name,
|
|
||||||
|
|
||||||
...item,
|
|
||||||
};
|
|
||||||
this.data.push(data);
|
|
||||||
this.selectedWay.push({ name: data.title, id: data.id });
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.flex {
|
|
||||||
display: flex;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.tree {
|
|
||||||
flex: 2;
|
|
||||||
}
|
|
||||||
.form {
|
|
||||||
flex: 8;
|
|
||||||
}
|
|
||||||
.button-list {
|
|
||||||
margin-left: 80px;
|
|
||||||
> * {
|
|
||||||
margin: 0 4px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/deep/ .ivu-modal-body {
|
|
||||||
height: 400px !important;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -147,7 +147,7 @@ export default {
|
||||||
{
|
{
|
||||||
style: {},
|
style: {},
|
||||||
},
|
},
|
||||||
this.$options.filters.unitPrice(params.row.price)
|
this.$options.filters.unitPrice(params.row.price, '¥')
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -40,11 +40,11 @@
|
||||||
<FormItem label="手机号码" prop="mobile" style="width: 90%;">
|
<FormItem label="手机号码" prop="mobile" style="width: 90%;">
|
||||||
<Input v-model="addMemberForm.mobile" maxlength="11" placeholder="请输入手机号码" />
|
<Input v-model="addMemberForm.mobile" maxlength="11" placeholder="请输入手机号码" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="会员名称" prop="username" style="width: 90%">
|
<FormItem label="会员名称" prop="uname" style="width: 90%">
|
||||||
<Input v-model="addMemberForm.username" maxlength="15" placeholder="请输入会员名称" />
|
<Input v-model="addMemberForm.username" maxlength="15" placeholder="请输入会员名称" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="会员密码" prop="password" style="width: 90%">
|
<FormItem label="会员密码" prop="pwd" style="width: 90%">
|
||||||
<Input type="password" password v-model="addMemberForm.password" maxlength="20" placeholder="请输入会员密码" />
|
<Input type="password" password v-model="addMemberForm.password" maxlength="20" placeholder="请输入会员密码" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -165,8 +165,8 @@ export default {
|
||||||
message: "请输入正确的手机号",
|
message: "请输入正确的手机号",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
username: [{ required: true, message: "请输入会员名称" }],
|
uname: [{ required: true, message: "请输入会员名称" }],
|
||||||
password: [{ required: true, message: "请输入密码" }],
|
pwd: [{ required: true, message: "请输入密码" }],
|
||||||
},
|
},
|
||||||
ruleValidate: {}, //修改验证
|
ruleValidate: {}, //修改验证
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
|
|
|
@ -231,21 +231,21 @@
|
||||||
</TabPane>
|
</TabPane>
|
||||||
<TabPane label="TA的余额" name="wallet">
|
<TabPane label="TA的余额" name="wallet">
|
||||||
<div class="pointsTitle" style="justify-content: flex-start; text-align: left;">
|
<div class="pointsTitle" style="justify-content: flex-start; text-align: left;">
|
||||||
<div style="width: 120px;">
|
<div style="min-width: 120px; margin-right:20px">
|
||||||
<div class="points-top-title">
|
<div class="points-top-title">
|
||||||
余额
|
余额
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="points-top-text">
|
<div class="points-top-text">
|
||||||
{{memberWalletInfo.memberDeposit?memberWalletInfo.memberDeposit:0 | unitPrice('¥')}}
|
{{memberWalletInfo.memberWallet?memberWalletInfo.memberWallet:0 | unitPrice('¥')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 120px;">
|
<div style="min-width: 120px;">
|
||||||
<div class="points-top-title">
|
<div class="points-top-title">
|
||||||
冻结余额
|
冻结余额
|
||||||
</div>
|
</div>
|
||||||
<div class="points-top-text">
|
<div class="points-top-text">
|
||||||
{{memberWalletInfo.frozenDeposit?memberWalletInfo.frozenDeposit:0 | unitPrice('¥')}}
|
{{memberWalletInfo.memberFrozenWallet?memberWalletInfo.memberFrozenWallet:0 | unitPrice('¥')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -752,21 +752,21 @@
|
||||||
{
|
{
|
||||||
title: "业务类型",
|
title: "业务类型",
|
||||||
key: "serviceType",
|
key: "serviceType",
|
||||||
width: 150,
|
width: 200,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.serviceType == "BALANCE_WITHDRAWAL") {
|
if (params.row.serviceType == "WALLET_WITHDRAWAL") {
|
||||||
return h('div', [h('span', {}, '余额提现'),]);
|
return h("div", [h("span", {}, "余额提现")]);
|
||||||
} else if (params.row.serviceType == "BALANCE_PAY") {
|
} else if (params.row.serviceType == "WALLET_PAY") {
|
||||||
return h('div', [h('span', {}, '余额支付'),]);
|
return h("div", [h("span", {}, "余额支付")]);
|
||||||
} else if (params.row.serviceType == "BALANCE_REFUND") {
|
} else if (params.row.serviceType == "WALLET_REFUND") {
|
||||||
return h('div', [h('span', {}, '余额退款'),]);
|
return h("div", [h("span", {}, "余额退款")]);
|
||||||
} else if (params.row.serviceType == "BALANCE_RECHARGE") {
|
} else if (params.row.serviceType == "WALLET_RECHARGE") {
|
||||||
return h('div', [h('span', {}, '余额充值'),]);
|
return h("div", [h("span", {}, "余额充值")]);
|
||||||
} else if (params.row.serviceType == "BALANCE_COMMISSION") {
|
} else {
|
||||||
return h('div', [h('span', {}, '佣金提成'),]);
|
return h("div", [h("span", {}, "佣金提成")]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "变动金额",
|
title: "变动金额",
|
||||||
key: "money",
|
key: "money",
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
@end="onEnd"
|
@end="onEnd"
|
||||||
>
|
>
|
||||||
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
<div class="upload-list" v-for="(item, index) in uploadList" :key="index">
|
||||||
<div v-if="item.status == 'finished'">
|
<div v-if="item.status == 'finished'" style="height:60px;">
|
||||||
<img :src="item.url" />
|
<img :src="item.url" />
|
||||||
<div class="upload-list-cover">
|
<div class="upload-list-cover">
|
||||||
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>
|
||||||
|
|
|
@ -29,10 +29,8 @@
|
||||||
<Option value="PASS">通过售后</Option>
|
<Option value="PASS">通过售后</Option>
|
||||||
<Option value="REFUSE">拒绝售后</Option>
|
<Option value="REFUSE">拒绝售后</Option>
|
||||||
<Option value="BUYER_RETURN">买家退货,待卖家收货</Option>
|
<Option value="BUYER_RETURN">买家退货,待卖家收货</Option>
|
||||||
<Option value="SELLER_RE_DELIVERY">商家换货/补发</Option>
|
|
||||||
<Option value="SELLER_CONFIRM">卖家确认收货</Option>
|
<Option value="SELLER_CONFIRM">卖家确认收货</Option>
|
||||||
<Option value="SELLER_TERMINATION">卖家终止售后</Option>
|
<Option value="SELLER_TERMINATION">卖家终止售后</Option>
|
||||||
<Option value="BUYER_CONFIRM">买家确认收货</Option>
|
|
||||||
<Option value="BUYER_CANCEL">买家取消售后</Option>
|
<Option value="BUYER_CANCEL">买家取消售后</Option>
|
||||||
<Option value="COMPLETE">完成售后</Option>
|
<Option value="COMPLETE">完成售后</Option>
|
||||||
</Select>
|
</Select>
|
||||||
|
@ -48,10 +46,10 @@
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
></DatePicker>
|
></DatePicker>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="商家名称" prop="sellerName">
|
<Form-item label="商家名称" prop="storeName">
|
||||||
<Input
|
<Input
|
||||||
type="text"
|
type="text"
|
||||||
v-model="searchForm.sellerName"
|
v-model="searchForm.storeName"
|
||||||
placeholder="请输入商家名称"
|
placeholder="请输入商家名称"
|
||||||
clearable
|
clearable
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
|
@ -149,7 +147,7 @@
|
||||||
orderSn: "",
|
orderSn: "",
|
||||||
memberName: "",
|
memberName: "",
|
||||||
serviceStatus: "",
|
serviceStatus: "",
|
||||||
sellerName:"",
|
storeName:"",
|
||||||
sn: "",
|
sn: "",
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -157,7 +155,7 @@
|
||||||
form: {
|
form: {
|
||||||
// 添加或编辑表单对象初始化数据
|
// 添加或编辑表单对象初始化数据
|
||||||
sn: "",
|
sn: "",
|
||||||
sellerName: "",
|
storeName: "",
|
||||||
startTime: "",
|
startTime: "",
|
||||||
endTime: "",
|
endTime: "",
|
||||||
billPrice: "",
|
billPrice: "",
|
||||||
|
|
|
@ -63,14 +63,13 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="div-form-default" v-if="afterSaleInfo.serviceStatus=='APPLY'">
|
<div class="div-form-default" v-if="afterSaleInfo.serviceStatus=='APPLY'">
|
||||||
<h3>商家处理意见</h3>
|
<h3>处理意见</h3>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>商家</dt>
|
<dt>商家</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<div class="div-content">
|
<div class="div-content">
|
||||||
{{afterSaleInfo.storeName}}
|
{{afterSaleInfo.storeName}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
|
@ -86,7 +85,16 @@
|
||||||
</Radio>
|
</Radio>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</div>
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>申请退款金额</dt>
|
||||||
|
<dd>{{ afterSaleInfo.applyRefundPrice | unitPrice('¥') }}</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>实际退款金额</dt>
|
||||||
|
<dd>
|
||||||
|
<Input v-model="params.actualRefundPrice" style="width:260px"/>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
|
@ -169,7 +177,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--"-->
|
<!--"-->
|
||||||
<div class="div-form-default" v-if="afterSaleInfo.afterSaleAllowOperationVO.refund">
|
<div class="div-form-default" v-if="afterSaleInfo.afterSaleAllowOperationVO && afterSaleInfo.afterSaleAllowOperationVO.refund">
|
||||||
<h3>平台退款</h3>
|
<h3>平台退款</h3>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
@ -438,10 +446,10 @@ export default {
|
||||||
this.afterSaleInfo = res.result;
|
this.afterSaleInfo = res.result;
|
||||||
this.afterSaleImage = (res.result.afterSaleImage || "").split(",");
|
this.afterSaleImage = (res.result.afterSaleImage || "").split(",");
|
||||||
//退货地址去掉逗号
|
//退货地址去掉逗号
|
||||||
this.afterSaleInfo.mconsigneeAddressPath = this.afterSaleInfo.mconsigneeAddressPath.replaceAll(
|
if (this.afterSaleInfo.mconsigneeAddressPath)
|
||||||
",",
|
this.afterSaleInfo.mconsigneeAddressPath = this.afterSaleInfo.mconsigneeAddressPath.replaceAll(","," ");
|
||||||
" "
|
|
||||||
);
|
this.$set(this.params,'actualRefundPrice', this.afterSaleInfo.applyRefundPrice)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -538,6 +546,10 @@ export default {
|
||||||
this.$Message.error("请输入备注信息");
|
this.$Message.error("请输入备注信息");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (this.params.actualRefundPrice == "") {
|
||||||
|
this.$Message.error("请输入退款金额");
|
||||||
|
return;
|
||||||
|
}
|
||||||
API_Order.afterSaleSellerReview(this.sn, this.params).then((res) => {
|
API_Order.afterSaleSellerReview(this.sn, this.params).then((res) => {
|
||||||
this.submitLoading = false;
|
this.submitLoading = false;
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|
|
@ -14,20 +14,26 @@
|
||||||
<Option value="PAID">已付款</Option>
|
<Option value="PAID">已付款</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
|
<Form-item label="支付方式" prop="orderStatus">
|
||||||
|
<Select v-model="searchForm.paymentMethod" placeholder="请选择" clearable style="width: 200px">
|
||||||
|
<Option value="WECHAT">微信</Option>
|
||||||
|
<Option value="ALIPAY">支付宝</Option>
|
||||||
|
<Option value="WALLET">余额</Option>
|
||||||
|
<Option value="BANK_TRANSFER">银行转账</Option>
|
||||||
|
<Option value="">暂未付款</Option>
|
||||||
|
</Select>
|
||||||
|
</Form-item>
|
||||||
<Form-item label="支付时间">
|
<Form-item label="支付时间">
|
||||||
<DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable
|
<DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
|
||||||
@on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="padding-row">
|
<Row class="padding-row">
|
||||||
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
|
||||||
@on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
|
|
||||||
</Row>
|
</Row>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize"
|
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
||||||
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
|
||||||
size="small" show-total show-elevator show-sizer></Page>
|
size="small" show-total show-elevator show-sizer></Page>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
|
@ -68,16 +74,57 @@ export default {
|
||||||
{
|
{
|
||||||
title: "支付方式",
|
title: "支付方式",
|
||||||
key: "paymentMethod",
|
key: "paymentMethod",
|
||||||
width: 100,
|
width: 120,
|
||||||
|
align: "center",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.paymentMethod === "WECHAT") {
|
if (params.row.paymentMethod === "WECHAT") {
|
||||||
return h("div", [h("span", {}, "微信")]);
|
return h("div", [
|
||||||
|
h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
props: {
|
||||||
|
color: "green",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"微信"
|
||||||
|
),
|
||||||
|
]);
|
||||||
} else if (params.row.paymentMethod === "ALIPAY") {
|
} else if (params.row.paymentMethod === "ALIPAY") {
|
||||||
return h("div", [h("span", {}, "支付宝")]);
|
return h("div", [
|
||||||
|
h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
props: {
|
||||||
|
color: "blue",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"支付宝"
|
||||||
|
),
|
||||||
|
]);
|
||||||
} else if (params.row.paymentMethod === "WALLET") {
|
} else if (params.row.paymentMethod === "WALLET") {
|
||||||
return h("div", [h("span", {}, "余额支付")]);
|
return h("div", [
|
||||||
|
h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
props: {},
|
||||||
|
},
|
||||||
|
"余额支付"
|
||||||
|
),
|
||||||
|
]);
|
||||||
} else if (params.row.paymentMethod === "BANK_TRANSFER") {
|
} else if (params.row.paymentMethod === "BANK_TRANSFER") {
|
||||||
return h("div", [h("span", {}, "银行转帐")]);
|
return h("div", [
|
||||||
|
h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
props: {
|
||||||
|
color: "orange",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"银行转帐"
|
||||||
|
),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return h("div", [h("Tag", {}, "暂未付款")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -85,19 +132,24 @@ export default {
|
||||||
title: "第三方流水",
|
title: "第三方流水",
|
||||||
key: "receivableNo",
|
key: "receivableNo",
|
||||||
minWidth: 130,
|
minWidth: 130,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", [
|
||||||
|
h("span", {}, params.row.receivableNo || "暂无流水号"),
|
||||||
|
]);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "客户端",
|
title: "客户端",
|
||||||
key: "clientType",
|
key: "clientType",
|
||||||
width: 130,
|
width: 130,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.clientType === "WECHAT_MP") {
|
if (params.row.clientType === "WECHAT_MP" || params.row.clientType === '小程序') {
|
||||||
return h("div", [h("span", {}, "小程序")]);
|
return h("div", [h("span", {}, "小程序")]);
|
||||||
} else if (params.row.clientType === "APP") {
|
} else if (params.row.clientType === "APP") {
|
||||||
return h("div", [h("span", {}, "APP")]);
|
return h("div", [h("span", {}, "APP")]);
|
||||||
} else if (params.row.clientType === "PC") {
|
} else if (params.row.clientType === "PC") {
|
||||||
return h("div", [h("span", {}, "PC网页")]);
|
return h("div", [h("span", {}, "PC网页")]);
|
||||||
} else if (params.row.clientType === "H5") {
|
} else if (params.row.clientType === "H5" || params.row.clientType === 'wap') {
|
||||||
return h("div", [h("span", {}, "移动端")]);
|
return h("div", [h("span", {}, "移动端")]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -106,6 +158,11 @@ export default {
|
||||||
title: "支付时间",
|
title: "支付时间",
|
||||||
key: "paymentTime",
|
key: "paymentTime",
|
||||||
width: 200,
|
width: 200,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h("div", [
|
||||||
|
h("span", {}, params.row.paymentTime || "暂无支付时间"),
|
||||||
|
]);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "订单金额",
|
title: "订单金额",
|
||||||
|
@ -204,7 +261,7 @@ export default {
|
||||||
});
|
});
|
||||||
this.total = this.data.length;
|
this.total = this.data.length;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.init();
|
this.init();
|
||||||
|
|
|
@ -93,6 +93,20 @@ export default {
|
||||||
title: "订单来源",
|
title: "订单来源",
|
||||||
key: "clientType",
|
key: "clientType",
|
||||||
width: 95,
|
width: 95,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.clientType == "H5") {
|
||||||
|
return h("div",{},"移动端");
|
||||||
|
}else if(params.row.clientType == "PC") {
|
||||||
|
return h("div",{},"PC端");
|
||||||
|
}else if(params.row.clientType == "WECHAT_MP") {
|
||||||
|
return h("div",{},"小程序端");
|
||||||
|
}else if(params.row.clientType == "APP") {
|
||||||
|
return h("div",{},"移动应用端");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return h("div",{},params.row.clientType);
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "买家名称",
|
title: "买家名称",
|
||||||
|
@ -251,7 +265,8 @@ export default {
|
||||||
confirmPrice(v) {
|
confirmPrice(v) {
|
||||||
this.$Modal.confirm({
|
this.$Modal.confirm({
|
||||||
title: "提示",
|
title: "提示",
|
||||||
content: "<p>您确定要收款吗?线下收款涉及库存变更,需异步进行,等待约一分钟刷新列表查看</p>",
|
content:
|
||||||
|
"<p>您确定要收款吗?线下收款涉及库存变更,需异步进行,等待约一分钟刷新列表查看</p>",
|
||||||
onOk: () => {
|
onOk: () => {
|
||||||
API_Order.orderPay(v.sn).then((res) => {
|
API_Order.orderPay(v.sn).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|
|
@ -123,6 +123,7 @@ export default {
|
||||||
searchTreeValue: "", // 切换
|
searchTreeValue: "", // 切换
|
||||||
form: {
|
form: {
|
||||||
// 添加或编辑表单对象初始化数据
|
// 添加或编辑表单对象初始化数据
|
||||||
|
openStatus:false,
|
||||||
title: "",
|
title: "",
|
||||||
categoryId: "",
|
categoryId: "",
|
||||||
sort: 1,
|
sort: 1,
|
||||||
|
@ -347,7 +348,7 @@ export default {
|
||||||
level: 0,
|
level: 0,
|
||||||
children: [],
|
children: [],
|
||||||
id: "0",
|
id: "0",
|
||||||
categoryId: 0
|
categoryId: 0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -379,13 +380,7 @@ export default {
|
||||||
//为了在是否展示一列展示开关 需要改一下数据类型,最终提交再次更改
|
//为了在是否展示一列展示开关 需要改一下数据类型,最终提交再次更改
|
||||||
this.data = [];
|
this.data = [];
|
||||||
if (res.result.records.length > 0) {
|
if (res.result.records.length > 0) {
|
||||||
res.result.records.forEach((item) => {
|
|
||||||
if (item.openStatus == "OPEN") {
|
|
||||||
item.openStatus = true;
|
|
||||||
} else {
|
|
||||||
item.openStatus = false;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.data = res.result.records;
|
this.data = res.result.records;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -395,11 +390,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
if (this.form.openStatus) {
|
|
||||||
this.form.openStatus = "OPEN";
|
|
||||||
} else {
|
|
||||||
this.form.openStatus = "CLOSE";
|
|
||||||
}
|
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.submitLoading = true;
|
this.submitLoading = true;
|
||||||
|
@ -412,6 +403,7 @@ export default {
|
||||||
this.$Message.success("操作成功");
|
this.$Message.success("操作成功");
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -422,6 +414,8 @@ export default {
|
||||||
this.$Message.success("操作成功");
|
this.$Message.success("操作成功");
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -449,11 +443,7 @@ export default {
|
||||||
this.form.content = res.result.content;
|
this.form.content = res.result.content;
|
||||||
this.form.title = res.result.title;
|
this.form.title = res.result.title;
|
||||||
this.form.sort = res.result.sort;
|
this.form.sort = res.result.sort;
|
||||||
if (res.result.openStatus == "OPEN") {
|
this.form.openStatus = res.result.openStatus
|
||||||
this.form.openStatus = true;
|
|
||||||
} else {
|
|
||||||
this.form.openStatus = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -174,7 +174,6 @@ export default {
|
||||||
{
|
{
|
||||||
title: "领取数量/总数量",
|
title: "领取数量/总数量",
|
||||||
key: "publishNum",
|
key: "publishNum",
|
||||||
width: 150,
|
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
return h(
|
||||||
"div", params.row.receivedNum + "/" + params.row.publishNum)
|
"div", params.row.receivedNum + "/" + params.row.publishNum)
|
||||||
|
@ -214,7 +213,6 @@ export default {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "活动时间",
|
title: "活动时间",
|
||||||
minWidth: 120,
|
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h("div", {
|
return h("div", {
|
||||||
domProps:
|
domProps:
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
}}</span>
|
}}</span>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="面额">
|
<FormItem label="面额">
|
||||||
<span class="goods-category-name"> ¥{{ form.price }}</span>
|
<span class="goods-category-name"> ¥{{ form.price | unitPrice }}</span>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="活动说明">
|
<FormItem label="活动说明">
|
||||||
<span class="goods-category-name">{{ form.description }}</span>
|
<span class="goods-category-name">{{ form.description }}</span>
|
||||||
|
|
|
@ -49,11 +49,15 @@
|
||||||
<FormItem label="领取限制" prop="couponLimitNum">
|
<FormItem label="领取限制" prop="couponLimitNum">
|
||||||
<Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
|
<Input v-model="form.couponLimitNum" placeholder="领取限制" clearable style="width: 260px" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="有效期" prop="startTime">
|
<FormItem label="有效期" prop="rangeTime">
|
||||||
<DatePicker type="datetime" v-model="form.startTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" clearable style="width: 200px">
|
<DatePicker
|
||||||
</DatePicker>
|
type="datetimerange"
|
||||||
-
|
v-model="form.rangeTime"
|
||||||
<DatePicker type="datetime" v-model="form.endTime" format="yyyy-MM-dd HH:mm:ss" :options="options" placeholder="请选择" clearable style="width: 200px">
|
format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
placeholder="请选择"
|
||||||
|
:options="options"
|
||||||
|
style="width: 260px"
|
||||||
|
>
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="使用范围" prop="scopeType">
|
<FormItem label="使用范围" prop="scopeType">
|
||||||
|
@ -135,20 +139,6 @@ export default {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const isLtEndDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const isGtStartDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
modalType: 0, // 是否编辑
|
modalType: 0, // 是否编辑
|
||||||
form: {
|
form: {
|
||||||
|
@ -186,34 +176,11 @@ export default {
|
||||||
{ required: true, message: "请输入面额" },
|
{ required: true, message: "请输入面额" },
|
||||||
{ validator: checkPrice },
|
{ validator: checkPrice },
|
||||||
],
|
],
|
||||||
|
rangeTime: [{ required: true, message: "请选择优惠券有效期" }],
|
||||||
consumeThreshold: [
|
consumeThreshold: [
|
||||||
{ required: true, message: "请输入消费门槛" },
|
{ required: true, message: "请输入消费门槛" },
|
||||||
{ validator: checkWeight },
|
{ validator: checkWeight },
|
||||||
],
|
],
|
||||||
startTime: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择开始时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "开始时间要小于结束时间",
|
|
||||||
validator: isLtEndDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
endTime: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择结束时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "结束时间要大于开始时间",
|
|
||||||
validator: isGtStartDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
couponDiscount: [
|
couponDiscount: [
|
||||||
{ required: true, message: "请输入折扣" },
|
{ required: true, message: "请输入折扣" },
|
||||||
{
|
{
|
||||||
|
@ -337,6 +304,8 @@ export default {
|
||||||
next(this.goodsCategoryList, []);
|
next(this.goodsCategoryList, []);
|
||||||
data.scopeIdGoods = prevCascader;
|
data.scopeIdGoods = prevCascader;
|
||||||
}
|
}
|
||||||
|
data.rangeTime = [];
|
||||||
|
data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
|
||||||
this.form = data;
|
this.form = data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -345,15 +314,14 @@ export default {
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const params = JSON.parse(JSON.stringify(this.form));
|
const params = JSON.parse(JSON.stringify(this.form));
|
||||||
const strat = this.$options.filters.unixToDate(
|
params.startTime = this.$options.filters.unixToDate(
|
||||||
this.form.startTime / 1000
|
this.form.rangeTime[0] / 1000
|
||||||
);
|
);
|
||||||
const end = this.$options.filters.unixToDate(
|
params.endTime = this.$options.filters.unixToDate(
|
||||||
this.form.endTime / 1000
|
this.form.rangeTime[1] / 1000
|
||||||
);
|
);
|
||||||
|
delete params.rangeTime
|
||||||
let scopeId = [];
|
let scopeId = [];
|
||||||
params.startTime = strat;
|
|
||||||
params.endTime = end;
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
params.scopeType == "PORTION_GOODS" &&
|
params.scopeType == "PORTION_GOODS" &&
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<div>{{ form.goodsSku.sellerName }}</div>
|
<div>{{ form.goodsSku.sellerName }}</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="商品价格" prop="goodsPrice">
|
<FormItem label="商品价格" prop="goodsPrice">
|
||||||
<div>{{ form.goodsSku.price }}</div>
|
<div>{{ form.goodsSku.price | unitPrice('¥') }}</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="库存" prop="quantity">
|
<FormItem label="库存" prop="quantity">
|
||||||
<div>{{ form.goodsSku.quantity }}</div>
|
<div>{{ form.goodsSku.quantity }}</div>
|
||||||
|
|
|
@ -17,16 +17,9 @@
|
||||||
primary-key="id"
|
primary-key="id"
|
||||||
>
|
>
|
||||||
<template slot="action" slot-scope="scope">
|
<template slot="action" slot-scope="scope">
|
||||||
<Dropdown transfer="true" trigger="click">
|
<Button @click.native="edit(scope.row)" style="margin-right:10px;" size="small">编辑</Button>
|
||||||
<Button type="primary" size="small">
|
<Button @click.native="remove(scope.row)" type="primary" size="small">删除</Button>
|
||||||
操作
|
|
||||||
<Icon type="ios-arrow-down"></Icon>
|
|
||||||
</Button>
|
|
||||||
<DropdownMenu slot="list">
|
|
||||||
<DropdownItem @click.native="edit(scope.row)">编辑</DropdownItem>
|
|
||||||
<DropdownItem @click.native="remove(scope.row)">删除</DropdownItem>
|
|
||||||
</DropdownMenu>
|
|
||||||
</Dropdown>
|
|
||||||
</template>
|
</template>
|
||||||
</tree-table>
|
</tree-table>
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
|
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
|
|
||||||
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
|
@ -6,18 +6,20 @@
|
||||||
<Row @keydown.enter.native="handleSearch">
|
<Row @keydown.enter.native="handleSearch">
|
||||||
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
||||||
<Form-item label="账单编号" prop="sn">
|
<Form-item label="账单编号" prop="sn">
|
||||||
<Input
|
<Input type="text" v-model="searchForm.sn" placeholder="请输入账单编号" clearable style="width: 200px" />
|
||||||
type="text"
|
|
||||||
v-model="searchForm.sn"
|
|
||||||
placeholder="请输入账单编号"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item label="出帐时间" prop="createTime">
|
<Form-item label="出帐时间" prop="createTime">
|
||||||
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
|
<DatePicker v-model="selectDate" type="daterange" format="yyyy-MM-dd HH:mm:ss" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px">
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
|
<Form-item label="筛选状态">
|
||||||
|
<Select v-model="searchForm.billStatus" style="width:160px">
|
||||||
|
<Option value="">全部</Option>
|
||||||
|
<Option value="OUT">已出账</Option>
|
||||||
|
<Option value="CHECK">已核对</Option>
|
||||||
|
<Option value="COMPLETE">已完成</Option>
|
||||||
|
</Select>
|
||||||
|
</Form-item>
|
||||||
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
|
@ -26,14 +28,11 @@
|
||||||
<Button @click="delAll">批量删除</Button>
|
<Button @click="delAll">批量删除</Button>
|
||||||
</Row>
|
</Row>
|
||||||
<Row>
|
<Row>
|
||||||
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
|
||||||
@on-sort-change="changeSort"
|
|
||||||
@on-selection-change="changeSelect">
|
|
||||||
</Table>
|
</Table>
|
||||||
</Row>
|
</Row>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize"
|
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
||||||
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
|
||||||
size="small" show-total show-elevator show-sizer></Page>
|
size="small" show-total show-elevator show-sizer></Page>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
|
@ -88,6 +87,7 @@ export default {
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
startDate: "", // 起始时间
|
startDate: "", // 起始时间
|
||||||
endDate: "", // 终止时间
|
endDate: "", // 终止时间
|
||||||
|
billStatus:"" //状态
|
||||||
},
|
},
|
||||||
selectDate: null, // 选择一个时间段
|
selectDate: null, // 选择一个时间段
|
||||||
form: {
|
form: {
|
||||||
|
@ -114,7 +114,7 @@ export default {
|
||||||
title: "账单号",
|
title: "账单号",
|
||||||
key: "sn",
|
key: "sn",
|
||||||
minWidth: 200,
|
minWidth: 200,
|
||||||
tooltip: true
|
tooltip: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "生成时间",
|
title: "生成时间",
|
||||||
|
@ -126,14 +126,14 @@ export default {
|
||||||
key: "startTime",
|
key: "startTime",
|
||||||
width: 200,
|
width: 200,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h('div', params.row.startTime +"~"+params.row.endTime)
|
return h("div", params.row.startTime + "~" + params.row.endTime);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "店铺名称",
|
title: "店铺名称",
|
||||||
key: "storeName",
|
key: "storeName",
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
tooltip: true
|
tooltip: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -152,17 +152,17 @@ export default {
|
||||||
key: "billStatus",
|
key: "billStatus",
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if(params.row.billStatus == 'OUT'){
|
if (params.row.billStatus == "OUT") {
|
||||||
return h('div', '已出账')
|
return h("div", "已出账");
|
||||||
} else if (params.row.billStatus == 'CHECK') {
|
} else if (params.row.billStatus == "CHECK") {
|
||||||
return h('div', '已对账')
|
return h("div", "已对账");
|
||||||
} else if (params.row.billStatus == 'EXAMINE') {
|
} else if (params.row.billStatus == "EXAMINE") {
|
||||||
return h('div', '已审核')
|
return h("div", "已审核");
|
||||||
} else {
|
} else {
|
||||||
return h('div', '已付款')
|
return h("div", "已付款");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
|
|
|
@ -99,6 +99,15 @@
|
||||||
key: "storeAddressPath",
|
key: "storeAddressPath",
|
||||||
width: 300,
|
width: 300,
|
||||||
sortable: false,
|
sortable: false,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
|
||||||
|
},
|
||||||
|
params.row.storeAddressPath || "暂未填写"
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "是否自营",
|
title: "是否自营",
|
||||||
|
|
|
@ -111,7 +111,16 @@ export default {
|
||||||
title: "店铺地址",
|
title: "店铺地址",
|
||||||
key: "storeAddressPath",
|
key: "storeAddressPath",
|
||||||
width: 300,
|
width: 300,
|
||||||
tooltip: true
|
tooltip: true,
|
||||||
|
render: (h, params) => {
|
||||||
|
return h(
|
||||||
|
"Tag",
|
||||||
|
{
|
||||||
|
|
||||||
|
},
|
||||||
|
params.row.storeAddressPath || "暂未填写"
|
||||||
|
);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "是否自营",
|
title: "是否自营",
|
||||||
|
|
|
@ -54,7 +54,7 @@ export default {
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
return h(
|
||||||
"div",
|
"div",
|
||||||
this.$options.filters.unitPrice(params.row.price)
|
this.$options.filters.unitPrice(params.row.price, '¥')
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,59 +6,28 @@
|
||||||
<Row @keydown.enter.native="handleSearch">
|
<Row @keydown.enter.native="handleSearch">
|
||||||
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
||||||
<Form-item label="系统类型" prop="orderSn">
|
<Form-item label="系统类型" prop="orderSn">
|
||||||
<Select
|
<Select v-model="searchForm.type" placeholder="请选择系统类型" clearable style="width: 200px">
|
||||||
v-model="searchForm.type"
|
|
||||||
placeholder="请选择系统类型"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<Option value="IOS">苹果</Option>
|
<Option value="IOS">苹果</Option>
|
||||||
<Option value="ANDROID">安卓</Option>
|
<Option value="ANDROID">安卓</Option>
|
||||||
</Select>
|
</Select>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
<Form-item style="margin-left:-35px;" class="br">
|
|
||||||
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
|
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
|
||||||
</Form-item>
|
|
||||||
</Form>
|
</Form>
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="operation" style="margin-top: 20px">
|
<Row class="operation" style="margin-top: 20px">
|
||||||
<Button @click="addAppVersion" type="primary">添加</Button>
|
<Button @click="addAppVersion" type="primary">添加</Button>
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="padding-row">
|
<Row class="padding-row">
|
||||||
<Table
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
|
||||||
:loading="loading"
|
|
||||||
border
|
|
||||||
:columns="columns"
|
|
||||||
:data="data"
|
|
||||||
ref="table"
|
|
||||||
sortable="custom"
|
|
||||||
@on-sort-change="changeSort"
|
|
||||||
@on-selection-change="changeSelect"
|
|
||||||
></Table>
|
|
||||||
</Row>
|
</Row>
|
||||||
<Row type="flex" justify="end" class="page">
|
<Row type="flex" justify="end" class="page">
|
||||||
<Page
|
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
|
||||||
:current="searchForm.pageNumber"
|
size="small" show-total show-elevator show-sizer></Page>
|
||||||
:total="total"
|
|
||||||
:page-size="searchForm.pageSize"
|
|
||||||
@on-change="changePage"
|
|
||||||
@on-page-size-change="changePageSize"
|
|
||||||
:page-size-opts="[10, 20, 50]"
|
|
||||||
size="small"
|
|
||||||
show-total
|
|
||||||
show-elevator
|
|
||||||
show-sizer
|
|
||||||
></Page>
|
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
<Modal
|
<Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="1000">
|
||||||
:title="modalTitle"
|
|
||||||
v-model="modalVisible"
|
|
||||||
:mask-closable="false"
|
|
||||||
:width="1000"
|
|
||||||
>
|
|
||||||
<Form ref="form" :model="form" :label-width="100" :rules="formValidate">
|
<Form ref="form" :model="form" :label-width="100" :rules="formValidate">
|
||||||
<FormItem label="版本名称" prop="versionName">
|
<FormItem label="版本名称" prop="versionName">
|
||||||
<Input v-model="form.versionName" maxlength="15" clearable style="width: 40%" />
|
<Input v-model="form.versionName" maxlength="15" clearable style="width: 40%" />
|
||||||
|
@ -67,19 +36,12 @@
|
||||||
<Input v-model="form.version" maxlength="15" clearable style="width: 40%" />
|
<Input v-model="form.version" maxlength="15" clearable style="width: 40%" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="更新时间" prop="versionUpdateDate">
|
<FormItem label="更新时间" prop="versionUpdateDate">
|
||||||
<DatePicker
|
<DatePicker v-model="form.versionUpdateDate" type="datetime" format="yyyy-MM-dd HH:mm:ss" clearable placeholder="请选择" style="width: 200px"></DatePicker>
|
||||||
v-model="form.versionUpdateDate"
|
|
||||||
type="datetime"
|
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
clearable
|
|
||||||
placeholder="请选择"
|
|
||||||
style="width: 200px"
|
|
||||||
></DatePicker>
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="强制更新">
|
<FormItem label="强制更新">
|
||||||
<RadioGroup type="button" button-style="solid" v-model="form.forceUpdate">
|
<RadioGroup type="button" button-style="solid" v-model="form.forceUpdate">
|
||||||
<Radio label="1">强制更新</Radio>
|
<Radio :label="true">强制更新</Radio>
|
||||||
<Radio label="0">非强制更新</Radio>
|
<Radio :label="false">非强制更新</Radio>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="类型">
|
<FormItem label="类型">
|
||||||
|
@ -92,7 +54,7 @@
|
||||||
<Input v-model="form.downloadUrl" maxlength="100" clearable style="width: 40%" />
|
<Input v-model="form.downloadUrl" maxlength="100" clearable style="width: 40%" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem class="form-item-view-el" label="更新内容" prop="content">
|
<FormItem class="form-item-view-el" label="更新内容" prop="content">
|
||||||
<editor v-model="form.content"></editor>
|
<Input v-model="form.content" :rows="6" maxlength="100" show-word-limit type="textarea" placeholder="Enter something..." />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
<div slot="footer">
|
<div slot="footer">
|
||||||
|
@ -102,11 +64,7 @@
|
||||||
</Modal>
|
</Modal>
|
||||||
<div>
|
<div>
|
||||||
<!-- 查看版本信息 -->
|
<!-- 查看版本信息 -->
|
||||||
<Modal
|
<Modal :title="queryModalTitle" v-model="queryModalVisible" :width="700">
|
||||||
:title="queryModalTitle"
|
|
||||||
v-model="queryModalVisible"
|
|
||||||
:width="700"
|
|
||||||
>
|
|
||||||
<Form>
|
<Form>
|
||||||
<div class="div-version">
|
<div class="div-version">
|
||||||
<FormItem label="版本名称:">
|
<FormItem label="版本名称:">
|
||||||
|
@ -151,13 +109,11 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as API_Setting from "@/api/setting";
|
import * as API_Setting from "@/api/setting";
|
||||||
import editor from "@/views/my-components/lili/editor";
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "orderList",
|
name: "orderList",
|
||||||
components: {
|
components: {
|
||||||
editor
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -173,7 +129,7 @@
|
||||||
pageSize: 10, // 页面大小
|
pageSize: 10, // 页面大小
|
||||||
sort: "createTime", // 默认排序字段
|
sort: "createTime", // 默认排序字段
|
||||||
order: "desc", // 默认排序方式
|
order: "desc", // 默认排序方式
|
||||||
type: ""
|
type: "",
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
// 添加或编辑表单对象初始化数据
|
// 添加或编辑表单对象初始化数据
|
||||||
|
@ -183,22 +139,21 @@
|
||||||
type: "IOS",
|
type: "IOS",
|
||||||
downloadUrl: "",
|
downloadUrl: "",
|
||||||
content: "",
|
content: "",
|
||||||
versionUpdateDate: ""
|
versionUpdateDate: "",
|
||||||
},
|
},
|
||||||
versionUpdateDate: "", // 更新时间
|
versionUpdateDate: "", // 更新时间
|
||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
formValidate: {
|
formValidate: {
|
||||||
version: [
|
version: [
|
||||||
{required: true, message: '版本号不能为空', trigger: 'blur'},
|
{ required: true, message: "版本号不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
versionName: [
|
versionName: [
|
||||||
{required: true, message: '版本名称不能为空', trigger: 'blur'},
|
{ required: true, message: "版本名称不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
downloadUrl: [
|
downloadUrl: [
|
||||||
{required: true, message: '下载地址不能为空', trigger: 'blur'},
|
{ required: true, message: "下载地址不能为空", trigger: "blur" },
|
||||||
],
|
],
|
||||||
versionUpdateDate: [{ required: true, message: "更新时间不能为空" }],
|
versionUpdateDate: [{ required: true, message: "更新时间不能为空" }],
|
||||||
|
|
||||||
},
|
},
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
selectList: [], // 多选数据
|
selectList: [], // 多选数据
|
||||||
|
@ -219,7 +174,6 @@
|
||||||
key: "forceUpdate",
|
key: "forceUpdate",
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
|
|
||||||
return h(
|
return h(
|
||||||
"div",
|
"div",
|
||||||
{
|
{
|
||||||
|
@ -229,9 +183,7 @@
|
||||||
},
|
},
|
||||||
params.row.forceUpdate == 0 ? "非强制" : "强制"
|
params.row.forceUpdate == 0 ? "非强制" : "强制"
|
||||||
);
|
);
|
||||||
|
},
|
||||||
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "类型",
|
title: "类型",
|
||||||
|
@ -239,12 +191,12 @@
|
||||||
minWidth: 80,
|
minWidth: 80,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
if (params.row.type == "IOS") {
|
if (params.row.type == "IOS") {
|
||||||
return h('div', [h('span', {}, '苹果'),]);
|
return h("div", [h("span", {}, "苹果")]);
|
||||||
} else {
|
} else {
|
||||||
return h('div', [h('span', {}, '安卓'),]);
|
return h("div", [h("span", {}, "安卓")]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "更新时间",
|
title: "更新时间",
|
||||||
|
@ -285,7 +237,7 @@
|
||||||
props: {
|
props: {
|
||||||
type: "info",
|
type: "info",
|
||||||
size: "small",
|
size: "small",
|
||||||
ghost:true
|
ghost: true,
|
||||||
},
|
},
|
||||||
style: {
|
style: {
|
||||||
marginRight: "5px",
|
marginRight: "5px",
|
||||||
|
@ -368,7 +320,7 @@
|
||||||
//添加app版本信息
|
//添加app版本信息
|
||||||
addAppVersion() {
|
addAppVersion() {
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
this.modalTitle = "添加APP版本信息"
|
this.modalTitle = "添加APP版本信息";
|
||||||
const versionUpdateDate = this.$options.filters.unixToDate(
|
const versionUpdateDate = this.$options.filters.unixToDate(
|
||||||
new Date() / 1000
|
new Date() / 1000
|
||||||
);
|
);
|
||||||
|
@ -376,15 +328,15 @@
|
||||||
forceUpdate: 0,
|
forceUpdate: 0,
|
||||||
type: "IOS",
|
type: "IOS",
|
||||||
versionUpdateDate: versionUpdateDate,
|
versionUpdateDate: versionUpdateDate,
|
||||||
content: " "
|
content: " ",
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
//添加app版本信息
|
//添加app版本信息
|
||||||
editAppVersion(v) {
|
editAppVersion(v) {
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
this.modalTitle = "修改APP版本信息"
|
this.modalTitle = "修改APP版本信息";
|
||||||
this.modalType = 1
|
this.modalType = 1;
|
||||||
this.form = v
|
this.form = v;
|
||||||
},
|
},
|
||||||
//保存app版本信息
|
//保存app版本信息
|
||||||
saveAppVersion() {
|
saveAppVersion() {
|
||||||
|
@ -394,8 +346,8 @@
|
||||||
const versionUpdateDate = this.$options.filters.unixToDate(
|
const versionUpdateDate = this.$options.filters.unixToDate(
|
||||||
this.form.versionUpdateDate / 1000
|
this.form.versionUpdateDate / 1000
|
||||||
);
|
);
|
||||||
this.form.versionUpdateDate = versionUpdateDate
|
this.form.versionUpdateDate = versionUpdateDate;
|
||||||
this.form.updateTime = versionUpdateDate
|
this.form.updateTime = versionUpdateDate;
|
||||||
if (this.modalType == 0) {
|
if (this.modalType == 0) {
|
||||||
// 添加 避免编辑后传入id等数据 记得删除
|
// 添加 避免编辑后传入id等数据 记得删除
|
||||||
delete this.form.id;
|
delete this.form.id;
|
||||||
|
@ -403,7 +355,7 @@
|
||||||
this.submitLoading = false;
|
this.submitLoading = false;
|
||||||
if (res && res.success) {
|
if (res && res.success) {
|
||||||
this.$Message.success("添加成功");
|
this.$Message.success("添加成功");
|
||||||
this.modalVisible = false
|
this.modalVisible = false;
|
||||||
this.getData();
|
this.getData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -412,14 +364,13 @@
|
||||||
this.submitLoading = false;
|
this.submitLoading = false;
|
||||||
if (res && res.success) {
|
if (res && res.success) {
|
||||||
this.$Message.success("修改成功");
|
this.$Message.success("修改成功");
|
||||||
this.modalVisible = false
|
this.modalVisible = false;
|
||||||
this.getData();
|
this.getData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
remove(v) {
|
remove(v) {
|
||||||
this.$Modal.confirm({
|
this.$Modal.confirm({
|
||||||
|
@ -428,21 +379,21 @@
|
||||||
loading: true,
|
loading: true,
|
||||||
onOk: () => {
|
onOk: () => {
|
||||||
// 删除
|
// 删除
|
||||||
API_Setting.deleteVersion(v.id).then(res => {
|
API_Setting.deleteVersion(v.id).then((res) => {
|
||||||
this.$Modal.remove();
|
this.$Modal.remove();
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("删除成功");
|
this.$Message.success("删除成功");
|
||||||
this.getData();
|
this.getData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
detail(v) {
|
detail(v) {
|
||||||
this.queryModalVisible = true
|
this.queryModalVisible = true;
|
||||||
this.form = JSON.parse(JSON.stringify(v))
|
this.form = JSON.parse(JSON.stringify(v));
|
||||||
//时间格式化有问题,所以另外单独给时间赋值
|
//时间格式化有问题,所以另外单独给时间赋值
|
||||||
this.versionUpdateDate = this.form.versionUpdateDate
|
this.versionUpdateDate = this.form.versionUpdateDate;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
@ -710,7 +710,7 @@ export default {
|
||||||
//发送短信
|
//发送短信
|
||||||
sendSms() {
|
sendSms() {
|
||||||
this.$refs.smsForm.validate((valid) => {
|
this.$refs.smsForm.validate((valid) => {
|
||||||
const mobile = JSON.stringify(this.alreadyCheck);
|
const mobile = this.alreadyCheck;
|
||||||
this.smsForm.mobile = mobile;
|
this.smsForm.mobile = mobile;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
API_Setting.sendSms(this.smsForm).then((res) => {
|
API_Setting.sendSms(this.smsForm).then((res) => {
|
||||||
|
|
|
@ -162,7 +162,11 @@
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// 建议引入通用样式 可删除下面样式代码
|
||||||
|
@import "@/styles/table-common.scss";
|
||||||
|
|
||||||
.sign-name {
|
.sign-name {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
|
@ -189,7 +193,3 @@
|
||||||
margin-left: 100px;
|
margin-left: 100px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang="scss">
|
|
||||||
// 建议引入通用样式 可删除下面样式代码
|
|
||||||
@import "@/styles/table-common.scss";
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ export const getDistributionSetting = (id, params) => {
|
||||||
|
|
||||||
//获取分销订单列表
|
//获取分销订单列表
|
||||||
export const getDistributionOrder = (params) => {
|
export const getDistributionOrder = (params) => {
|
||||||
return getRequest('/distribution/order/getByPage', params)
|
return getRequest('/distributionOrder', params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,10 +22,10 @@ export default {
|
||||||
buyer: 'https://buyer-api.pickmall.cn',
|
buyer: 'https://buyer-api.pickmall.cn',
|
||||||
seller: 'https://store-api.pickmall.cn',
|
seller: 'https://store-api.pickmall.cn',
|
||||||
manager: 'https://admin-api.pickmall.cn'
|
manager: 'https://admin-api.pickmall.cn'
|
||||||
// common: 'http://192.168.0.100:8890',
|
// common: 'http://192.168.0.103:8890',
|
||||||
// buyer: 'http://192.168.0.100:8888',
|
// buyer: 'http://192.168.0.103:8888',
|
||||||
// seller: 'http://192.168.0.100:8889',
|
// seller: 'http://192.168.0.103:8889',
|
||||||
// manager: 'http://192.168.0.100:8887'
|
// manager: 'http://192.168.0.103:8887'
|
||||||
},
|
},
|
||||||
api_prod: {
|
api_prod: {
|
||||||
common: 'https://common-api.pickmall.cn',
|
common: 'https://common-api.pickmall.cn',
|
||||||
|
|
|
@ -454,6 +454,20 @@ export const result = [
|
||||||
url: "",
|
url: "",
|
||||||
permTypes: [],
|
permTypes: [],
|
||||||
children: null
|
children: null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "distributionOrder",
|
||||||
|
showAlways: true,
|
||||||
|
level: 2,
|
||||||
|
type: 0,
|
||||||
|
title: "分销订单",
|
||||||
|
path: "distributionOrder",
|
||||||
|
component: "distribution/distributionOrder",
|
||||||
|
icon: "md-person",
|
||||||
|
isMenu: true,
|
||||||
|
url: "",
|
||||||
|
permTypes: [],
|
||||||
|
children: null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import Vue from 'vue';
|
||||||
|
|
||||||
const app = {
|
const app = {
|
||||||
state: {
|
state: {
|
||||||
|
shipTemplates:"",
|
||||||
styleStore:"", //移动端楼层装修中选择风格存储
|
styleStore:"", //移动端楼层装修中选择风格存储
|
||||||
loading: false, // 全局加载动画
|
loading: false, // 全局加载动画
|
||||||
added: false, // 加载路由标识
|
added: false, // 加载路由标识
|
||||||
|
|
|
@ -0,0 +1,200 @@
|
||||||
|
<template>
|
||||||
|
<div class="search">
|
||||||
|
<Row>
|
||||||
|
<Col>
|
||||||
|
<Card>
|
||||||
|
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
|
||||||
|
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
|
||||||
|
<Form-item label="订单编号" prop="orderSn">
|
||||||
|
<Input type="text" v-model="searchForm.orderSn" placeholder="请输入订单编号" clearable style="width: 200px" />
|
||||||
|
</Form-item>
|
||||||
|
<Form-item label="订单时间">
|
||||||
|
<DatePicker type="daterange" v-model="timeRange" format="yyyy-MM-dd" placeholder="选择时间" style="width: 210px"></DatePicker>
|
||||||
|
</Form-item>
|
||||||
|
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
|
||||||
|
</Form>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Row class="padding-row">
|
||||||
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"></Table>
|
||||||
|
</Row>
|
||||||
|
<Row type="flex" justify="end" class="page">
|
||||||
|
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10,20,50]" size="small"
|
||||||
|
show-total show-elevator show-sizer></Page>
|
||||||
|
</Row>
|
||||||
|
</Card>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getDistributionOrder } from "@/api/distribution";
|
||||||
|
import { orderStatusList } from "./dataJson";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "distributionOrder",
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
timeRange: [], // 范围时间
|
||||||
|
orderStatusList, // 订单状态列表
|
||||||
|
distributionId: this.$route.query.id, // 分销id
|
||||||
|
openSearch: true, // 显示搜索
|
||||||
|
openTip: true, // 显示提示
|
||||||
|
loading: true, // 表单加载状态
|
||||||
|
searchForm: {
|
||||||
|
// 搜索框初始化对象
|
||||||
|
pageNumber: 1, // 当前页数
|
||||||
|
pageSize: 10, // 页面大小
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: "订单编号",
|
||||||
|
key: "orderSn",
|
||||||
|
minWidth: 120,
|
||||||
|
tooltip: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: "实付金额",
|
||||||
|
key: "orderPrice",
|
||||||
|
width: 130,
|
||||||
|
sortable: false,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.orderPrice == null) {
|
||||||
|
return h("div", this.$options.filters.unitPrice(0, "¥"));
|
||||||
|
} else {
|
||||||
|
return h(
|
||||||
|
"div",
|
||||||
|
this.$options.filters.unitPrice(params.row.orderPrice, "¥")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "退款金额",
|
||||||
|
key: "returnMoney",
|
||||||
|
width: 130,
|
||||||
|
sortable: false,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.orderPrice == null) {
|
||||||
|
return h("div", this.$options.filters.unitPrice(0, "¥"));
|
||||||
|
} else {
|
||||||
|
return h(
|
||||||
|
"div",
|
||||||
|
this.$options.filters.unitPrice(params.row.returnMoney, "¥")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品名称",
|
||||||
|
key: "goodsName",
|
||||||
|
minWidth: 120,
|
||||||
|
tooltip: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
key: "distributionOrderStatus",
|
||||||
|
width: 100,
|
||||||
|
sortable: false,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.distributionOrderStatus == "COMPLETE_CASH") {
|
||||||
|
return h("div", "提现完成");
|
||||||
|
} else if (params.row.distributionOrderStatus == "WAIT_BILL") {
|
||||||
|
return h("div", "待结算");
|
||||||
|
} else if (params.row.distributionOrderStatus == "WAIT_CASH") {
|
||||||
|
return h("div", "待提现");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: "佣金金额",
|
||||||
|
key: "rebateGrade",
|
||||||
|
width: 120,
|
||||||
|
sortable: false,
|
||||||
|
render: (h, params) => {
|
||||||
|
if (params.row.rebateGrade == null) {
|
||||||
|
return h("div", this.$options.filters.unitPrice(0, "¥"));
|
||||||
|
} else {
|
||||||
|
return h(
|
||||||
|
"div",
|
||||||
|
this.$options.filters.unitPrice(params.row.rebateGrade, "¥")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "创建时间",
|
||||||
|
key: "createTime",
|
||||||
|
width: 180,
|
||||||
|
sortable: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
data: [], // 表单数据
|
||||||
|
total: 0, // 表单数据总数
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
changePage(v) {
|
||||||
|
this.searchForm.pageNumber = v;
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
changePageSize(v) {
|
||||||
|
this.searchForm.pageSize = v;
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
handleSearch() {
|
||||||
|
this.searchForm.pageNumber = 1;
|
||||||
|
this.searchForm.pageSize = 10;
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
|
||||||
|
getDataList() {
|
||||||
|
this.searchForm.distributionId = this.distributionId;
|
||||||
|
this.loading = true;
|
||||||
|
if (this.timeRange && this.timeRange[0]) {
|
||||||
|
let startTime = this.timeRange[0];
|
||||||
|
let endTime = this.timeRange[1];
|
||||||
|
this.searchForm.startTime = this.$options.filters.unixToDate(
|
||||||
|
startTime / 1000
|
||||||
|
);
|
||||||
|
this.searchForm.endTime = this.$options.filters.unixToDate(
|
||||||
|
endTime / 1000
|
||||||
|
);
|
||||||
|
}
|
||||||
|
console.log(this.searchForm);
|
||||||
|
// 带多条件搜索参数获取表单数据 请自行修改接口
|
||||||
|
getDistributionOrder(this.searchForm).then((res) => {
|
||||||
|
this.loading = false;
|
||||||
|
if (res.success) {
|
||||||
|
this.data = res.result.records;
|
||||||
|
|
||||||
|
this.total = res.result.total;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.total = this.data.length;
|
||||||
|
this.loading = false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route(e) {
|
||||||
|
this.distributionId = e.query.id ? e.query.id : undefined;
|
||||||
|
this.getDataList();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" >
|
||||||
|
@import "@/styles/table-common.scss";
|
||||||
|
</style>
|
||||||
|
|
|
@ -183,13 +183,14 @@ export default {
|
||||||
{
|
{
|
||||||
title: "商品价格",
|
title: "商品价格",
|
||||||
key: "price",
|
key: "price",
|
||||||
minWidth: 120
|
render: (h, params) => {
|
||||||
|
return h('div', this.$options.filters.unitPrice(params.row.price, '¥'))
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "商品库存",
|
title: "商品库存",
|
||||||
key: "quantity",
|
key: "quantity",
|
||||||
minWidth: 120
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "创建时间",
|
title: "创建时间",
|
||||||
|
@ -200,7 +201,7 @@ export default {
|
||||||
title: "操作",
|
title: "操作",
|
||||||
key: "action",
|
key: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 150,
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
h(
|
||||||
|
|
|
@ -39,16 +39,22 @@
|
||||||
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
|
||||||
|
|
||||||
<!-- 商品栏目格式化 -->
|
<!-- 商品栏目格式化 -->
|
||||||
<template slot="goodsSlot" slot-scope="scope">
|
<template slot="goodsSlot" slot-scope="{row}">
|
||||||
<div style="margin-top: 5px;height: 90px; display: flex;">
|
<div style="margin-top: 5px;height: 90px; display: flex;">
|
||||||
<div style="">
|
<div style="">
|
||||||
<img :src="scope.row.original" style="height: 80px;margin-top: 3px;width: 70px">
|
<img :src="row.original" style="height: 80px;margin-top: 3px;width: 70px">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="margin-left: 13px;">
|
<div style="margin-left: 13px;">
|
||||||
<div class="div-zoom">
|
<div class="div-zoom">
|
||||||
<a>{{scope.row.goodsName}}</a>
|
<a @click="linkTo(row.id,row.skuId)">{{row.goodsName}}</a>
|
||||||
</div>
|
</div>
|
||||||
|
<Poptip trigger="hover" title="扫码在手机中查看" transfer>
|
||||||
|
<div slot="content">
|
||||||
|
<vue-qr :text="wapLinkTo(row.id,row.skuId)" :margin="0" colorDark="#000" colorLight="#fff" :size="150"></vue-qr>
|
||||||
|
</div>
|
||||||
|
<img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="">
|
||||||
|
</Poptip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -76,10 +82,10 @@
|
||||||
<Form ref="shipTemplateForm" :model="shipTemplateForm" :label-width="120">
|
<Form ref="shipTemplateForm" :model="shipTemplateForm" :label-width="120">
|
||||||
<FormItem class="form-item-view-el" label="运费" prop="freightPayer">
|
<FormItem class="form-item-view-el" label="运费" prop="freightPayer">
|
||||||
<RadioGroup type="button" button-style="solid" @on-change="logisticsTemplateUndertakerChange" v-model="shipTemplateForm.freightPayer">
|
<RadioGroup type="button" button-style="solid" @on-change="logisticsTemplateUndertakerChange" v-model="shipTemplateForm.freightPayer">
|
||||||
<Radio label="BUYER">
|
|
||||||
<span>买家承担运费</span>
|
|
||||||
</Radio>
|
|
||||||
<Radio label="STORE">
|
<Radio label="STORE">
|
||||||
|
<span>卖家承担运费</span>
|
||||||
|
</Radio>
|
||||||
|
<Radio label="BUYER">
|
||||||
<span>使用物流规则</span>
|
<span>使用物流规则</span>
|
||||||
</Radio>
|
</Radio>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
@ -120,7 +126,7 @@ export default {
|
||||||
id: "", //要操作的id
|
id: "", //要操作的id
|
||||||
loading: true, // 表单加载状态
|
loading: true, // 表单加载状态
|
||||||
shipTemplateForm: {
|
shipTemplateForm: {
|
||||||
freightPayer: "BUYER",
|
freightPayer: "STORE",
|
||||||
},
|
},
|
||||||
shipTemplateShow: false, //物流模板是否显示
|
shipTemplateShow: false, //物流模板是否显示
|
||||||
shipTemplateModal: false, // 物流模板是否显示
|
shipTemplateModal: false, // 物流模板是否显示
|
||||||
|
@ -515,7 +521,7 @@ export default {
|
||||||
},
|
},
|
||||||
//保存运费模板信息
|
//保存运费模板信息
|
||||||
saveShipTemplate () {
|
saveShipTemplate () {
|
||||||
if (this.shipTemplateForm.freightPayer == "BUYER") {
|
if (this.shipTemplateForm.freightPayer == "STORE") {
|
||||||
{
|
{
|
||||||
this.shipTemplateForm.templateId = 0;
|
this.shipTemplateForm.templateId = 0;
|
||||||
}
|
}
|
||||||
|
@ -559,7 +565,7 @@ export default {
|
||||||
//运费承担者变化
|
//运费承担者变化
|
||||||
logisticsTemplateUndertakerChange(v) {
|
logisticsTemplateUndertakerChange(v) {
|
||||||
//如果是卖家承担运费 需要显示运费模板
|
//如果是卖家承担运费 需要显示运费模板
|
||||||
if (v == "STORE") {
|
if (v == "BUYER") {
|
||||||
API_Store.getShipTemplate().then((res) => {
|
API_Store.getShipTemplate().then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.logisticsTemplate = res.result;
|
this.logisticsTemplate = res.result;
|
||||||
|
@ -567,7 +573,7 @@ export default {
|
||||||
});
|
});
|
||||||
this.shipTemplateShow = true;
|
this.shipTemplateShow = true;
|
||||||
}
|
}
|
||||||
if (v == "BUYER") {
|
if (v == "STORE") {
|
||||||
this.shipTemplateShow = false;
|
this.shipTemplateShow = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -576,13 +576,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="form-item-view-bottom">
|
<div class="form-item-view-bottom">
|
||||||
<Collapse
|
<Collapse
|
||||||
active-key="1"
|
v-model="show"
|
||||||
v-for="paramsgroup in goodsParams"
|
v-for="paramsgroup in goodsParams"
|
||||||
:title="paramsgroup.groupName"
|
:title="paramsgroup.groupName"
|
||||||
style="text-align: left"
|
style="text-align: left"
|
||||||
:key="paramsgroup.groupName"
|
:key="paramsgroup.groupName"
|
||||||
>
|
>
|
||||||
<Panel key="1">
|
<Panel key="1" name="1">
|
||||||
{{ paramsgroup.groupName }}
|
{{ paramsgroup.groupName }}
|
||||||
<p slot="content">
|
<p slot="content">
|
||||||
<FormItem
|
<FormItem
|
||||||
|
@ -592,25 +592,15 @@
|
||||||
:key="index"
|
:key="index"
|
||||||
:label="`${goodsParamsList.paramName}:`"
|
:label="`${goodsParamsList.paramName}:`"
|
||||||
>
|
>
|
||||||
<Input
|
|
||||||
v-if="goodsParamsList.paramType === 1"
|
|
||||||
type="text"
|
|
||||||
v-model="goodsParamsList.paramValue"
|
|
||||||
placeholder="长度为最多50个字符"
|
|
||||||
maxlength="50"
|
|
||||||
clearable
|
|
||||||
style="width: 260px"
|
|
||||||
/>
|
|
||||||
<Select
|
<Select
|
||||||
v-model="goodsParamsList.paramValue"
|
v-model="goodsParamsList.paramValue"
|
||||||
v-if="goodsParamsList.paramType === 2"
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
<Option
|
<Option
|
||||||
v-for="option in goodsParamsList.optionList"
|
v-for="option in goodsParamsList.optionList"
|
||||||
:key="option"
|
:key="option.paramValue"
|
||||||
:label="option"
|
:label="option"
|
||||||
:value="option"
|
:value="option"
|
||||||
></Option>
|
></Option>
|
||||||
|
@ -772,6 +762,7 @@ export default {
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
show: '1',
|
||||||
//提交状态
|
//提交状态
|
||||||
submitLoading: false,
|
submitLoading: false,
|
||||||
//上传图片路径
|
//上传图片路径
|
||||||
|
@ -1370,18 +1361,14 @@ export default {
|
||||||
(ij) => ij.paramName === elem.paramName
|
(ij) => ij.paramName === elem.paramName
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if (elem.paramType === 2) {
|
|
||||||
elem.optionList = elem.options.split(",");
|
elem.optionList = elem.options.split(",");
|
||||||
}
|
|
||||||
this.baseInfoForm.goodsParamsList.push(elem);
|
this.baseInfoForm.goodsParamsList.push(elem);
|
||||||
}
|
}
|
||||||
if (this.$route.query.id || this.draftId) {
|
if (this.$route.query.id || this.draftId) {
|
||||||
this.baseInfoForm.goodsParamsList = this.baseInfoForm.goodsParamsList.map(
|
this.baseInfoForm.goodsParamsList = this.baseInfoForm.goodsParamsList.map(
|
||||||
(i) => {
|
(i) => {
|
||||||
if (i.paramId === elem.id || i.id === elem.id) {
|
if (i.paramId === elem.id || i.id === elem.id) {
|
||||||
if (elem.paramType === 2) {
|
|
||||||
elem.optionList = elem.options.split(",");
|
elem.optionList = elem.options.split(",");
|
||||||
}
|
|
||||||
i = {
|
i = {
|
||||||
...i,
|
...i,
|
||||||
...elem,
|
...elem,
|
||||||
|
@ -1839,14 +1826,19 @@ export default {
|
||||||
this.$Message.error("请上传商品图片");
|
this.$Message.error("请上传商品图片");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if (
|
let flag = false;
|
||||||
// !this.baseInfoForm.storeCategoryPath ||
|
let paramValue = "";
|
||||||
// !this.baseInfoForm.storeCategoryPath.length
|
this.baseInfoForm.goodsParamsList.forEach((e)=> {
|
||||||
// ) {
|
if(e.required === 1 && e.paramValue === null || e.paramValue === undefined){
|
||||||
// this.submitLoading = false;
|
flag = true
|
||||||
// this.$Message.error("请选择店内分类");
|
paramValue = e.paramName
|
||||||
// return;
|
}
|
||||||
// }
|
});
|
||||||
|
if(flag){
|
||||||
|
this.$Message.error(paramValue +" 参数值不能为空");
|
||||||
|
this.submitLoading = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
//如果选择的是卖家承担运费 则运费模板重置为0
|
//如果选择的是卖家承担运费 则运费模板重置为0
|
||||||
if (this.baseInfoForm.freightPayer !== "BUYER") {
|
if (this.baseInfoForm.freightPayer !== "BUYER") {
|
||||||
this.baseInfoForm.templateId = 0;
|
this.baseInfoForm.templateId = 0;
|
||||||
|
@ -1865,6 +1857,12 @@ export default {
|
||||||
(i) => i.url
|
(i) => i.url
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
/** 参数校验 **/
|
||||||
|
/* Object.keys(this.baseInfoForm.goodsParamsList).forEach((item) => {
|
||||||
|
console.warn(item.paramName)
|
||||||
|
});*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (this.goodsId) {
|
if (this.goodsId) {
|
||||||
API_GOODS.editGoods(this.goodsId, this.baseInfoForm).then((res) => {
|
API_GOODS.editGoods(this.goodsId, this.baseInfoForm).then((res) => {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Row>
|
|
||||||
<Col>
|
|
||||||
<Card>
|
<Card>
|
||||||
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
|
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
|
||||||
<Form
|
<Form
|
||||||
|
@ -97,8 +95,6 @@
|
||||||
></Page>
|
></Page>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
<Modal
|
<Modal
|
||||||
title="更新库存"
|
title="更新库存"
|
||||||
v-model="updateStockModalVisible"
|
v-model="updateStockModalVisible"
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
<h4>待办事项</h4>
|
<h4>待办事项</h4>
|
||||||
|
|
||||||
<div class="detail-list">
|
<div class="detail-list">
|
||||||
<div class="detail-item" @click="navigateTo('order')">
|
<div class="detail-item" @click="navigateTo('orderList')">
|
||||||
<div>
|
<div>
|
||||||
<span>{{homeData.unPaidOrder || 0}}</span>
|
<span>{{homeData.unPaidOrder || 0}}</span>
|
||||||
<div>待付款</div>
|
<div>待付款</div>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detail-item" @click="navigateTo('order')">
|
<div class="detail-item" @click="navigateTo('orderList')">
|
||||||
<div>
|
<div>
|
||||||
<span>{{homeData.unDeliveredOrder || 0}}</span>
|
<span>{{homeData.unDeliveredOrder || 0}}</span>
|
||||||
<div>待发货</div>
|
<div>待发货</div>
|
||||||
|
@ -125,7 +125,7 @@
|
||||||
<span>{{homeData.seckillNum || 0}}</span>
|
<span>{{homeData.seckillNum || 0}}</span>
|
||||||
<div>待参加活动</div>
|
<div>待参加活动</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div @click="navigateTo('accountStatementBill')">
|
||||||
<span>{{homeData.waitPayBill || 0}}</span>
|
<span>{{homeData.waitPayBill || 0}}</span>
|
||||||
<div>待对账</div>
|
<div>待对账</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -161,17 +161,17 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="count-item">
|
<div class="count-item" @click="navigateTo('orderStatistics')">
|
||||||
<div>
|
<div>
|
||||||
<Icon class="icon" size="31" type="ios-card" />
|
<Icon class="icon" size="31" type="ios-card" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="counts">{{homeData.orderPrice ||0}}</div>
|
<div class="counts">{{homeData.orderPrice || 0 | unitPrice('¥')}}</div>
|
||||||
<div>订单总额</div>
|
<div>订单总额</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="count-item" @click="navigateTo('order')">
|
<div class="count-item" @click="navigateTo('orderList')">
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<Icon class="icon" size="31" type="md-list" />
|
<Icon class="icon" size="31" type="md-list" />
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="count-item">
|
<div class="count-item" @click="navigateTo('trafficStatistics')">
|
||||||
<div>
|
<div>
|
||||||
<Icon class="icon" size="31" type="md-person" />
|
<Icon class="icon" size="31" type="md-person" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
</Modal>
|
</Modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getChildRegion, getAllCity } from "@/api/index";
|
import { getAllCity } from "@/api/index";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -22,46 +22,84 @@ export default {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 关闭
|
||||||
|
*/
|
||||||
cancel() {
|
cancel() {
|
||||||
this.switched = false;
|
this.switched = false;
|
||||||
// this.$emit("close",true)
|
|
||||||
},
|
// 关闭的时候所有数据设置成disabled为true
|
||||||
open(val) {
|
|
||||||
if (val) {
|
|
||||||
this.callBackData = val;
|
|
||||||
this.data = JSON.parse(JSON.stringify(this.data));
|
|
||||||
val.areaId.split(",").forEach((ids) => {
|
|
||||||
this.data.forEach((item) => {
|
this.data.forEach((item) => {
|
||||||
if (item.id == ids) {
|
this.$set(item, "disabled", false);
|
||||||
item.selected = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
item.children &&
|
|
||||||
item.children.forEach((child) => {
|
item.children.forEach((child) => {
|
||||||
if (child.id == ids) {
|
this.$set(child, "disabled", false);
|
||||||
child.checked = true;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.switched = true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 打开地图选择器
|
||||||
|
* @param {val} 回调的数据
|
||||||
|
* @param {index} 当前操作的运费模板的索引
|
||||||
|
*/
|
||||||
|
open(val, index) {
|
||||||
|
if (val) {
|
||||||
|
//已选中的地址
|
||||||
|
let checkedData = this.$store.state.shipTemplate;
|
||||||
|
|
||||||
|
// 禁止选中的地址
|
||||||
|
let disabledData = checkedData.filter((item, i) => {
|
||||||
|
return i != index;
|
||||||
|
});
|
||||||
|
|
||||||
|
disabledData.forEach((dis) => {
|
||||||
|
// 循环出已经选中的地址id
|
||||||
|
dis.areaId.split(",").forEach((ids) => {
|
||||||
|
// 循环出省份
|
||||||
|
this.data.forEach((item) => {
|
||||||
|
// 如果当前省份下市区全部选中则选中该省份
|
||||||
|
if (dis.selectedAll) {
|
||||||
|
dis.area.split(",").forEach((area) => {
|
||||||
|
if (area == item.name) {
|
||||||
|
this.$set(item, "disabled", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 将市区继续循环
|
||||||
|
item.children.forEach((child, childIndex) => {
|
||||||
|
// 判断当前市区是否是已选中状态
|
||||||
|
if (child.id == ids) {
|
||||||
|
this.$set(child, "disabled", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.switched ? (this.switched = true) : (this.switched = true);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交并筛选出省市
|
||||||
|
*/
|
||||||
submit() {
|
submit() {
|
||||||
// 筛选出省市
|
// 筛选出省市
|
||||||
let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
|
let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
|
||||||
|
|
||||||
let sort = [];
|
let sort = [];
|
||||||
list.forEach((item) => {
|
list.forEach((item, i) => {
|
||||||
item.selectedList = [];
|
item.selectedList = [];
|
||||||
if (item.level == "province") {
|
item.selectedAll = false;
|
||||||
|
// 筛选出当前的省份
|
||||||
|
if (item.level == "province" && !item.disabled) {
|
||||||
sort.push({
|
sort.push({
|
||||||
...item,
|
...item,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 筛选出当前选中的市
|
||||||
sort.forEach((sortItem, sortIndex) => {
|
sort.forEach((sortItem, sortIndex) => {
|
||||||
if (item.level != "province" && sortItem.id == item.parentId) {
|
if (item.level != "province" && sortItem.id == item.parentId && !item.disabled) {
|
||||||
sortItem.selectedList.push({
|
sortItem.selectedList.push({
|
||||||
...item,
|
...item,
|
||||||
});
|
});
|
||||||
|
@ -69,12 +107,24 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$emit(
|
// 判断如果当前省是否全选
|
||||||
"selected",
|
this.data.forEach((whether) => {
|
||||||
list.filter((item) => {
|
sort.forEach((item) => {
|
||||||
return item.level == "province";
|
// 如果当前省匹配
|
||||||
})
|
if (
|
||||||
);
|
item.id == whether.id &&
|
||||||
|
item.selectedList.length == whether.children.length
|
||||||
|
) {
|
||||||
|
// 给一个全选子级的标识符
|
||||||
|
item.selectedList.forEach((child) => {
|
||||||
|
this.$set(child, "selectedAll", true);
|
||||||
|
});
|
||||||
|
this.$set(item, "selectedAll", true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$emit("selected", sort);
|
||||||
|
|
||||||
this.cancel();
|
this.cancel();
|
||||||
},
|
},
|
||||||
|
@ -93,8 +143,10 @@ export default {
|
||||||
...item,
|
...item,
|
||||||
};
|
};
|
||||||
this.data.push(data);
|
this.data.push(data);
|
||||||
|
|
||||||
this.selectedWay.push({ name: data.title, id: data.id });
|
this.selectedWay.push({ name: data.title, id: data.id });
|
||||||
});
|
});
|
||||||
|
console.log(this.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
<div>
|
<div>
|
||||||
<Row class="header">
|
<Row class="header">
|
||||||
<img src="../../assets/lili.png" class="logo" width="220px">
|
<img src="../../assets/lili.png" class="logo" width="220px">
|
||||||
|
|
||||||
</Row>
|
</Row>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -102,6 +102,7 @@
|
||||||
v-model="image"
|
v-model="image"
|
||||||
:disable="true"
|
:disable="true"
|
||||||
:remove="false"
|
:remove="false"
|
||||||
|
:isView="true"
|
||||||
></upload-pic-thumb>
|
></upload-pic-thumb>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="回复内容" prop="reply">
|
<FormItem label="回复内容" prop="reply">
|
||||||
|
@ -370,8 +371,8 @@ export default {
|
||||||
this.content = res.result.content
|
this.content = res.result.content
|
||||||
this.form.reply = res.result.reply
|
this.form.reply = res.result.reply
|
||||||
this.replyStatus = res.result.replyStatus
|
this.replyStatus = res.result.replyStatus
|
||||||
if (res.result.image) {
|
if (res.result.images) {
|
||||||
this.image = (res.result.image || "").split(",");
|
this.image = (res.result.images || "").split(",");
|
||||||
}
|
}
|
||||||
if (res.result.replyImage) {
|
if (res.result.replyImage) {
|
||||||
this.form.replyImage = (res.result.replyImage || "").split(",");
|
this.form.replyImage = (res.result.replyImage || "").split(",");
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
:action="uploadFileUrl"
|
:action="uploadFileUrl"
|
||||||
:headers="accessToken"
|
:headers="accessToken"
|
||||||
style="display: inline-block;width:58px;"
|
style="display: inline-block;width:58px;"
|
||||||
|
v-if="!isView"
|
||||||
>
|
>
|
||||||
<div style="width: 58px;height:58px;line-height: 58px;">
|
<div style="width: 58px;height:58px;line-height: 58px;">
|
||||||
<Icon type="md-camera" size="20"></Icon>
|
<Icon type="md-camera" size="20"></Icon>
|
||||||
|
@ -87,6 +88,10 @@ export default {
|
||||||
limit: {
|
limit: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 10
|
default: 10
|
||||||
|
},
|
||||||
|
isView: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -173,7 +173,7 @@
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<a>{{ complaintInfo.goodsName }}</a><br>
|
<a>{{ complaintInfo.goodsName }}</a><br>
|
||||||
<span>{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
|
<span>¥{{ complaintInfo.goodsPrice | unitPrice }} * {{ complaintInfo.num }}(数量)</span>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@
|
||||||
订单金额
|
订单金额
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{{ complaintInfo.orderPrice }}
|
{{ complaintInfo.orderPrice | unitPrice('¥')}}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
<template slot-scope="{ row }" slot="action">
|
<template slot-scope="{ row }" slot="action">
|
||||||
<Button
|
<Button
|
||||||
v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'"
|
v-if="row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'"
|
||||||
type="primary"
|
type="info"
|
||||||
size="small"
|
size="small"
|
||||||
style="margin-right: 10px"
|
style="margin-right: 10px"
|
||||||
@click="edit(row)"
|
@click="edit(row)"
|
||||||
|
@ -259,7 +259,7 @@ export default {
|
||||||
slot: "action",
|
slot: "action",
|
||||||
align: "center",
|
align: "center",
|
||||||
fixed: "right",
|
fixed: "right",
|
||||||
width: 150,
|
minWidth: 80,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
data: [], // 表单数据
|
data: [], // 表单数据
|
||||||
|
|
|
@ -90,26 +90,14 @@
|
||||||
style="width: 260px"
|
style="width: 260px"
|
||||||
/>
|
/>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="有效期" prop="startTime">
|
<FormItem label="有效期" prop="rangeTime">
|
||||||
<DatePicker
|
<DatePicker
|
||||||
type="datetime"
|
type="datetimerange"
|
||||||
v-model="form.startTime"
|
v-model="form.rangeTime"
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="options"
|
:options="options"
|
||||||
clearable
|
style="width: 260px"
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
</DatePicker>
|
|
||||||
-
|
|
||||||
<DatePicker
|
|
||||||
type="datetime"
|
|
||||||
v-model="form.endTime"
|
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
:options="options"
|
|
||||||
placeholder="请选择"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
>
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
@ -225,20 +213,7 @@ export default {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const isLtEndDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const isGtStartDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
modalType: 0, // 判断是新增还是编辑优惠券 0 新增 1 编辑
|
modalType: 0, // 判断是新增还是编辑优惠券 0 新增 1 编辑
|
||||||
categoryId: 0, // 分类id
|
categoryId: 0, // 分类id
|
||||||
|
@ -281,30 +256,7 @@ export default {
|
||||||
{ required: true, message: "请输入消费门槛" },
|
{ required: true, message: "请输入消费门槛" },
|
||||||
{ validator: checkWeight },
|
{ validator: checkWeight },
|
||||||
],
|
],
|
||||||
startTime: [
|
rangeTime: [{ required: true, message: "请选择优惠券有效期" }],
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择开始时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "开始时间要小于结束时间",
|
|
||||||
validator: isLtEndDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
endTime: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择结束时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "结束时间要大于开始时间",
|
|
||||||
validator: isGtStartDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
couponDiscount: [
|
couponDiscount: [
|
||||||
{ required: true, message: "请输入折扣" },
|
{ required: true, message: "请输入折扣" },
|
||||||
{
|
{
|
||||||
|
@ -425,6 +377,8 @@ export default {
|
||||||
next(this.goodsCategoryList, []);
|
next(this.goodsCategoryList, []);
|
||||||
data.scopeIdGoods = prevCascader;
|
data.scopeIdGoods = prevCascader;
|
||||||
}
|
}
|
||||||
|
data.rangeTime = [];
|
||||||
|
data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
|
||||||
this.form = data;
|
this.form = data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -433,16 +387,14 @@ export default {
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const params = JSON.parse(JSON.stringify(this.form));
|
const params = JSON.parse(JSON.stringify(this.form));
|
||||||
const strat = this.$options.filters.unixToDate(
|
params.startTime = this.$options.filters.unixToDate(
|
||||||
this.form.startTime / 1000
|
this.form.rangeTime[0] / 1000
|
||||||
);
|
);
|
||||||
const end = this.$options.filters.unixToDate(
|
params.endTime = this.$options.filters.unixToDate(
|
||||||
this.form.endTime / 1000
|
this.form.rangeTime[1] / 1000
|
||||||
);
|
);
|
||||||
|
delete params.rangeTime
|
||||||
let scopeId = [];
|
let scopeId = [];
|
||||||
params.startTime = strat;
|
|
||||||
params.endTime = end;
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
params.scopeType == "PORTION_GOODS" &&
|
params.scopeType == "PORTION_GOODS" &&
|
||||||
(!params.promotionGoodsList ||
|
(!params.promotionGoodsList ||
|
||||||
|
@ -511,7 +463,7 @@ export default {
|
||||||
this.$store.state.app.storeOpenedList
|
this.$store.state.app.storeOpenedList
|
||||||
);
|
);
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: "promotion/coupon",
|
name: "coupon",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
changeSelect(e) {
|
changeSelect(e) {
|
||||||
|
|
|
@ -8,26 +8,14 @@
|
||||||
活动名称将显示在对人拼团活动列表中,方便商家管理使用,最多输入25个字符
|
活动名称将显示在对人拼团活动列表中,方便商家管理使用,最多输入25个字符
|
||||||
</div>
|
</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="活动时间" prop="startTime">
|
<FormItem label="活动时间" prop="rangeTime">
|
||||||
<DatePicker
|
<DatePicker
|
||||||
type="datetime"
|
type="datetimerange"
|
||||||
v-model="form.startTime"
|
v-model="form.rangeTime"
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
format="yyyy-MM-dd HH:mm:ss"
|
||||||
:options="options"
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
</DatePicker>
|
|
||||||
-
|
|
||||||
<DatePicker
|
|
||||||
type="datetime"
|
|
||||||
v-model="form.endTime"
|
|
||||||
format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
:options="options"
|
:options="options"
|
||||||
placeholder="请选择"
|
style="width: 260px"
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
>
|
||||||
</DatePicker>
|
</DatePicker>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
@ -87,20 +75,6 @@
|
||||||
import { savePintuan, editPintuan, getPintuanDetail } from "@/api/promotion";
|
import { savePintuan, editPintuan, getPintuanDetail } from "@/api/promotion";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
const isLtEndDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() > new Date(this.form.endTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const isGtStartDate = (rule, value, callback) => {
|
|
||||||
if (new Date(value).getTime() < new Date(this.form.startTime).getTime()) {
|
|
||||||
callback(new Error());
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
id: this.$route.query.id, // 拼团id
|
id: this.$route.query.id, // 拼团id
|
||||||
form: {
|
form: {
|
||||||
|
@ -131,33 +105,10 @@ export default {
|
||||||
message: "限购数不合法",
|
message: "限购数不合法",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
startTime: [
|
rangeTime: [{ required: true, message: "请选择活动时间" }],
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择开始时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "开始时间要小于结束时间",
|
|
||||||
validator: isLtEndDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
endTime: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
type: "date",
|
|
||||||
message: "请选择结束时间",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
trigger: "change",
|
|
||||||
message: "结束时间要大于开始时间",
|
|
||||||
validator: isGtStartDate,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
submitLoading: false, // 添加或编辑提交状态
|
submitLoading: false, // 添加或编辑提交状态
|
||||||
options: { // 不可选取的时间段
|
options: { // 不可选取时间
|
||||||
disabledDate(date) {
|
disabledDate(date) {
|
||||||
return date && date.valueOf() < Date.now() - 86400000;
|
return date && date.valueOf() < Date.now() - 86400000;
|
||||||
},
|
},
|
||||||
|
@ -185,11 +136,12 @@ export default {
|
||||||
this.submitLoading = true;
|
this.submitLoading = true;
|
||||||
let params = JSON.parse(JSON.stringify(this.form));
|
let params = JSON.parse(JSON.stringify(this.form));
|
||||||
params.startTime = this.$options.filters.unixToDate(
|
params.startTime = this.$options.filters.unixToDate(
|
||||||
this.form.startTime / 1000
|
this.form.rangeTime[0] / 1000
|
||||||
);
|
);
|
||||||
params.endTime = this.$options.filters.unixToDate(
|
params.endTime = this.$options.filters.unixToDate(
|
||||||
this.form.endTime / 1000
|
this.form.rangeTime[1] / 1000
|
||||||
);
|
);
|
||||||
|
delete params.rangeTime
|
||||||
if (!this.id) {
|
if (!this.id) {
|
||||||
// 添加 避免编辑后传入id等数据 记得删除
|
// 添加 避免编辑后传入id等数据 记得删除
|
||||||
delete params.id;
|
delete params.id;
|
||||||
|
@ -218,7 +170,10 @@ export default {
|
||||||
getDetail() {
|
getDetail() {
|
||||||
getPintuanDetail(this.id).then((res) => {
|
getPintuanDetail(this.id).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.form = res.result;
|
const data = res.result;
|
||||||
|
data.rangeTime = [];
|
||||||
|
data.rangeTime.push(new Date(data.startTime), new Date(data.endTime));
|
||||||
|
this.form = data;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
<template slot-scope="{ row, index }" slot="price">
|
<template slot-scope="{ row, index }" slot="price">
|
||||||
<Input v-model="row.price" :disabled="status==='view'" @input="goodsData[index].price = row.price" />
|
<Input v-model="row.price" :disabled="status==='view'" @input="goodsData[index].price = row.price" />
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="{ row }" slot="QRCode">
|
|
||||||
<img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
|
|
||||||
</template>
|
|
||||||
<template slot-scope="{ index }" slot="action">
|
<template slot-scope="{ index }" slot="action">
|
||||||
<Button type="error" size="small" ghost v-if="status === 'manager'" @click="delGoods(index)">删除</Button>
|
<Button type="error" size="small" ghost v-if="status === 'manager'" @click="delGoods(index)">删除</Button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -107,11 +104,7 @@ export default {
|
||||||
return h("div", [
|
return h("div", [
|
||||||
h(
|
h(
|
||||||
"Tag",
|
"Tag",
|
||||||
{
|
{props: {color: color}},
|
||||||
props: {
|
|
||||||
color: color,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
text
|
text
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
@ -125,20 +118,17 @@ export default {
|
||||||
key: "goodsName",
|
key: "goodsName",
|
||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "库存",
|
title: "库存",
|
||||||
key: "quantity",
|
key: "quantity",
|
||||||
minWidth: 40,
|
minWidth: 40,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "拼团价格",
|
title: "拼团价格",
|
||||||
key: "price",
|
key: "price",
|
||||||
slot: "price",
|
slot: "price",
|
||||||
minWidth: 50,
|
minWidth: 50,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
slot: "action",
|
slot: "action",
|
||||||
|
@ -188,23 +178,23 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
init() {
|
init() { // 初始化数据
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.getPintuanMsg();
|
this.getPintuanMsg();
|
||||||
},
|
},
|
||||||
|
|
||||||
changePage(v) {
|
changePage(v) { // 分页 改变页数
|
||||||
this.searchForm.pageNumber = v - 1;
|
this.searchForm.pageNumber = v - 1;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
this.clearSelectAll();
|
this.clearSelectAll();
|
||||||
},
|
},
|
||||||
|
|
||||||
changePageSize(v) {
|
changePageSize(v) { // 分页 改变每页数
|
||||||
this.searchForm.pageSize = v;
|
this.searchForm.pageSize = v;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSearch() {
|
handleSearch() { // 搜索
|
||||||
this.searchForm.pageNumber = 0;
|
this.searchForm.pageNumber = 0;
|
||||||
this.searchForm.pageSize = 10;
|
this.searchForm.pageSize = 10;
|
||||||
this.getDataList();
|
this.getDataList();
|
||||||
|
@ -253,7 +243,7 @@ export default {
|
||||||
// 删除商品
|
// 删除商品
|
||||||
this.goodsData.splice(index, 1);
|
this.goodsData.splice(index, 1);
|
||||||
},
|
},
|
||||||
delAll() {
|
delAll() { // 批量删除商品
|
||||||
if (this.selectCount <= 0) {
|
if (this.selectCount <= 0) {
|
||||||
this.$Message.warning("您还未选择要删除的数据");
|
this.$Message.warning("您还未选择要删除的数据");
|
||||||
return;
|
return;
|
||||||
|
@ -272,7 +262,7 @@ export default {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
selectedGoodsData(item) {
|
selectedGoodsData(item) { // 选择商品
|
||||||
let ids = [];
|
let ids = [];
|
||||||
let list = [];
|
let list = [];
|
||||||
this.goodsData.forEach((e) => {
|
this.goodsData.forEach((e) => {
|
||||||
|
@ -295,7 +285,7 @@ export default {
|
||||||
});
|
});
|
||||||
this.goodsData.push(...list);
|
this.goodsData.push(...list);
|
||||||
},
|
},
|
||||||
openSkuList() {
|
openSkuList() { // 显示商品选择器
|
||||||
this.$refs.skuSelect.open("goods");
|
this.$refs.skuSelect.open("goods");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,7 +15,8 @@
|
||||||
<td class="sep-row" colspan="20"></td>
|
<td class="sep-row" colspan="20"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="20"><h3>{{item.name}}</h3>
|
<th colspan="20">
|
||||||
|
<h3>{{item.name}}</h3>
|
||||||
<span class="fr m-r-5">
|
<span class="fr m-r-5">
|
||||||
<time style="margin-right: 20px" title="最后编辑时间">
|
<time style="margin-right: 20px" title="最后编辑时间">
|
||||||
<i class="icon-time"></i>{{item.updateTime}}
|
<i class="icon-time"></i>{{item.updateTime}}
|
||||||
|
@ -45,13 +46,13 @@
|
||||||
{{children.firstCompany}}
|
{{children.firstCompany}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="yuan">¥</span><span class="integer">{{children.firstPrice}}</span>
|
<span class="yuan">¥</span><span class="integer">{{children.firstPrice | unitPrice}}</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{children.continuedCompany}}
|
{{children.continuedCompany}}
|
||||||
</td>
|
</td>
|
||||||
<td class="bdr">
|
<td class="bdr">
|
||||||
<span class="yuan">¥</span><span class="integer">{{children.continuedPrice}}</span>
|
<span class="yuan">¥</span><span class="integer">{{children.continuedPrice | unitPrice}}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -92,43 +93,30 @@
|
||||||
<td></td>
|
<td></td>
|
||||||
<td class="tl cell-area">
|
<td class="tl cell-area">
|
||||||
<span class="area-group">
|
<span class="area-group">
|
||||||
<p style="display:inline-block">{{item.area}}</p></span>
|
<p style="display:inline-block;white-space:pre;">{{item.area}}</p>
|
||||||
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w40" type="text" v-model="item.firstCompany" maxlength="3" clearable />
|
<Input class="text w40" type="text" v-model="item.firstCompany" maxlength="3" clearable />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable/><em
|
<Input class="text w60" type="text" v-model="item.firstPrice" maxlength="6" clearable /><em class="add-on">
|
||||||
class="add-on">
|
|
||||||
元
|
元
|
||||||
</em>
|
</em>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w40" type="text" v-model="item.continuedCompany" maxlength="6"
|
<Input class="text w40" type="text" v-model="item.continuedCompany" maxlength="6" clearable />
|
||||||
clearable/>
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6"
|
<Input class="text w60" type="text" v-model="item.continuedPrice" maxlength="6" clearable /><em class="add-on">
|
||||||
clearable/><em class="add-on">
|
|
||||||
元
|
元
|
||||||
</em>
|
</em>
|
||||||
</td>
|
</td>
|
||||||
<td class="nscs-table-handle">
|
<td class="nscs-table-handle">
|
||||||
<Button
|
<Button @click="editRegion(item,index)" type="info" size="small" style="margin-bottom: 5px">修改
|
||||||
@click="editRegion(item)"
|
|
||||||
type="info"
|
|
||||||
size="small"
|
|
||||||
style="margin-bottom: 5px"
|
|
||||||
>修改
|
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button @click="removeTemplateChildren(index)" :loading="submitLoading" type="error" size="small" style="margin-bottom: 5px">删除
|
||||||
@click="removeTemplateChildren(index)"
|
|
||||||
:loading="submitLoading"
|
|
||||||
type="error"
|
|
||||||
size="small"
|
|
||||||
style="margin-bottom: 5px"
|
|
||||||
>删除
|
|
||||||
</Button>
|
</Button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -147,26 +135,15 @@
|
||||||
<Icon type="ios-information-circle-outline" />
|
<Icon type="ios-information-circle-outline" />
|
||||||
首(续)件(重)费应输入大于0的整数
|
首(续)件(重)费应输入大于0的整数
|
||||||
</div>
|
</div>
|
||||||
<Button
|
|
||||||
@click="addShipTemplateChildren(index)"
|
|
||||||
:loading="submitLoading"
|
|
||||||
type="info"
|
|
||||||
size="small"
|
|
||||||
icon="ios-create-outline"
|
|
||||||
style="margin-bottom: 5px"
|
|
||||||
>为指定城市设置运费模板
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<Form-item>
|
<Form-item>
|
||||||
<Button
|
<Button @click="addShipTemplateChildren(index)" :loading="submitLoading" icon="ios-create-outline" >为指定城市设置运费模板
|
||||||
@click="handleSubmit"
|
</Button>
|
||||||
:loading="submitLoading"
|
<Button @click="handleSubmit" :loading="submitLoading" type="primary" style="margin-right:5px">保存
|
||||||
type="primary"
|
|
||||||
style="margin-right:5px"
|
|
||||||
>保存
|
|
||||||
</Button>
|
</Button>
|
||||||
</Form-item>
|
</Form-item>
|
||||||
</Form>
|
</Form>
|
||||||
|
@ -186,15 +163,15 @@
|
||||||
import * as API_Shop from "@/api/shops";
|
import * as API_Shop from "@/api/shops";
|
||||||
import multipleRegion from "@/views/lili-components/multiple-region";
|
import multipleRegion from "@/views/lili-components/multiple-region";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "shipTemplate",
|
name: "shipTemplate",
|
||||||
components: {
|
components: {
|
||||||
multipleRegion
|
multipleRegion,
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
selectedIndex:0, //选中的地址模板下标
|
||||||
item: "", //运费模板子模板
|
item: "", //运费模板子模板
|
||||||
shipInfo: {}, // 运费模板数据
|
shipInfo: {}, // 运费模板数据
|
||||||
title: "添加运费模板", // 模态框标题
|
title: "添加运费模板", // 模态框标题
|
||||||
|
@ -205,7 +182,7 @@
|
||||||
form: {
|
form: {
|
||||||
// 添加或编辑表单对象初始化数据
|
// 添加或编辑表单对象初始化数据
|
||||||
name: "",
|
name: "",
|
||||||
pricingMethod: "WEIGHT"
|
pricingMethod: "WEIGHT",
|
||||||
},
|
},
|
||||||
formValidate: {
|
formValidate: {
|
||||||
name: [
|
name: [
|
||||||
|
@ -215,7 +192,8 @@
|
||||||
trigger: "blur",
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
pricingMethod: [ // 计费方式
|
pricingMethod: [
|
||||||
|
// 计费方式
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请选择计费方式",
|
message: "请选择计费方式",
|
||||||
|
@ -233,101 +211,132 @@
|
||||||
handleClickType(v) {
|
handleClickType(v) {
|
||||||
if (v == "INFO") {
|
if (v == "INFO") {
|
||||||
this.getData();
|
this.getData();
|
||||||
this.csTab = false
|
this.csTab = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//添加运费模板
|
//添加运费模板
|
||||||
add() {
|
add() {
|
||||||
this.title = "添加运费模板"
|
this.title = "添加运费模板";
|
||||||
this.csTab = true
|
this.csTab = true;
|
||||||
this.operation = "ADD"
|
this.operation = "ADD";
|
||||||
this.currentTab = "ADD"
|
this.currentTab = "ADD";
|
||||||
this.saveError = false;
|
this.saveError = false;
|
||||||
this.form = {
|
this.form = {
|
||||||
pricingMethod: "WEIGHT",
|
pricingMethod: "WEIGHT",
|
||||||
name: "",
|
name: "",
|
||||||
freightTemplateChildList: [{
|
freightTemplateChildList: [
|
||||||
|
{
|
||||||
area: "",
|
area: "",
|
||||||
areaId: "",
|
areaId: "",
|
||||||
firstCompany: "1",
|
firstCompany: "1",
|
||||||
firstPrice: "",
|
firstPrice: "",
|
||||||
continuedCompany: "1",
|
continuedCompany: "1",
|
||||||
continuedPrice: ""
|
continuedPrice: "",
|
||||||
}]
|
selectedAll:false
|
||||||
|
},
|
||||||
}
|
],
|
||||||
|
};
|
||||||
},
|
},
|
||||||
//修改运费模板
|
//修改运费模板
|
||||||
edit(item) {
|
edit(item) {
|
||||||
this.title = "修改运费模板"
|
this.title = "修改运费模板";
|
||||||
this.csTab = true
|
this.csTab = true;
|
||||||
this.operation = "EDIT"
|
this.operation = "EDIT";
|
||||||
this.currentTab = "EDIT"
|
this.currentTab = "EDIT";
|
||||||
this.saveError = false;
|
this.saveError = false;
|
||||||
//给form赋值
|
//给form赋值
|
||||||
this.form = item
|
this.form = item;
|
||||||
},
|
},
|
||||||
//选择地区
|
//选择地区
|
||||||
editRegion(item){
|
editRegion(item,index) {
|
||||||
this.item = item
|
this.selectedIndex = index
|
||||||
|
this.item = item;
|
||||||
|
|
||||||
this.$refs.region.open(item)
|
this.$store.state.shipTemplate = this.form.freightTemplateChildList
|
||||||
|
this.$refs.region.open(item,index);
|
||||||
},
|
},
|
||||||
//刷细数据
|
//刷细数据
|
||||||
refresh() {
|
refresh() {
|
||||||
this.csTab = false
|
this.csTab = false;
|
||||||
this.operation = "INFO"
|
this.operation = "INFO";
|
||||||
this.currentTab = "INFO"
|
this.currentTab = "INFO";
|
||||||
this.getData()
|
this.getData();
|
||||||
},
|
},
|
||||||
//运费模板数据
|
//运费模板数据
|
||||||
getData() {
|
getData() {
|
||||||
API_Shop.getShipTemplate().then((res) => {
|
API_Shop.getShipTemplate().then((res) => {
|
||||||
this.shipInfo = res.result
|
this.shipInfo = res.result;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 选择地址回调
|
||||||
|
*/
|
||||||
handleSelect(v) {
|
handleSelect(v) {
|
||||||
let area = ""
|
console.log(v);
|
||||||
let areaId= ""
|
let area = "";
|
||||||
|
let areaId = "";
|
||||||
if (v != "") {
|
if (v != "") {
|
||||||
v.forEach((child, index) => {
|
v.forEach((child) => {
|
||||||
if (child.selectedList != "") {
|
if (child.selectedList != "") {
|
||||||
child.selectedList.forEach((child, index) => {
|
// 只显示省份
|
||||||
|
|
||||||
|
if(child.selectedAll ){
|
||||||
area += child.name + ","
|
area += child.name + ","
|
||||||
areaId+=child.id +","
|
this.form.freightTemplateChildList[this.selectedIndex].selectedAll = true
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
|
child.selectedList.forEach((son) => {
|
||||||
|
if (child.selectedAll) {
|
||||||
|
areaId += son.id + ",";
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// 显示城市
|
||||||
|
area += son.name + ",";
|
||||||
|
areaId += son.id + ",";
|
||||||
}
|
}
|
||||||
this.item.area = area
|
});
|
||||||
this.item.areaId= areaId
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.item.area = area;
|
||||||
|
this.item.areaId = areaId;
|
||||||
},
|
},
|
||||||
//添加或者修改运费模板
|
//添加或者修改运费模板
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
const headers = {
|
const headers = {
|
||||||
"Content-Type": "application/json;charset=utf-8"
|
"Content-Type": "application/json;charset=utf-8",
|
||||||
}
|
};
|
||||||
|
|
||||||
this.$refs.form.validate((valid) => {
|
this.$refs.form.validate((valid) => {
|
||||||
const regNumber = /^\+?[1-9][0-9]*$/;
|
const regNumber = /^\+?[1-9][0-9]*$/;
|
||||||
const regMoney = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
|
const regMoney = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
//校验运费模板详细信息
|
//校验运费模板详细信息
|
||||||
for (let i = 0; i < this.form.freightTemplateChildList.length; i++) {
|
for (let i = 0; i < this.form.freightTemplateChildList.length; i++) {
|
||||||
if (this.form.freightTemplateChildList[i].area == ""
|
if (
|
||||||
|| this.form.freightTemplateChildList[i].firstCompany == ""
|
this.form.freightTemplateChildList[i].area == "" ||
|
||||||
|| this.form.freightTemplateChildList[i].firstPrice == ""
|
this.form.freightTemplateChildList[i].firstCompany == "" ||
|
||||||
|| this.form.freightTemplateChildList[i].continuedCompany == ""
|
this.form.freightTemplateChildList[i].firstPrice == "" ||
|
||||||
|| this.form.freightTemplateChildList[i].continuedPrice == "") {
|
this.form.freightTemplateChildList[i].continuedCompany == "" ||
|
||||||
|
this.form.freightTemplateChildList[i].continuedPrice == ""
|
||||||
|
) {
|
||||||
this.saveError = true;
|
this.saveError = true;
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
if (regNumber.test(this.form.freightTemplateChildList[i].firstCompany) == false
|
if (
|
||||||
|| regNumber.test(this.form.freightTemplateChildList[i].continuedCompany) == false
|
regNumber.test(
|
||||||
|| regMoney.test(this.form.freightTemplateChildList[i].firstPrice) == false
|
this.form.freightTemplateChildList[i].firstCompany
|
||||||
|| regMoney.test(this.form.freightTemplateChildList[i].continuedPrice) == false) {
|
) == false ||
|
||||||
|
regNumber.test(
|
||||||
|
this.form.freightTemplateChildList[i].continuedCompany
|
||||||
|
) == false ||
|
||||||
|
regMoney.test(this.form.freightTemplateChildList[i].firstPrice) ==
|
||||||
|
false ||
|
||||||
|
regMoney.test(
|
||||||
|
this.form.freightTemplateChildList[i].continuedPrice
|
||||||
|
) == false
|
||||||
|
) {
|
||||||
this.saveError = true;
|
this.saveError = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -336,43 +345,46 @@
|
||||||
API_Shop.addShipTemplate(this.form, headers).then((res) => {
|
API_Shop.addShipTemplate(this.form, headers).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("新增成功");
|
this.$Message.success("新增成功");
|
||||||
this.operation = "INFO"
|
this.operation = "INFO";
|
||||||
this.currentTab = "INFO"
|
this.currentTab = "INFO";
|
||||||
this.csTab = false
|
this.csTab = false;
|
||||||
this.getData()
|
this.getData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
API_Shop.editShipTemplate(this.form.id, this.form, headers).then((res) => {
|
API_Shop.editShipTemplate(this.form.id, this.form, headers).then(
|
||||||
|
(res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$Message.success("新增成功");
|
this.$Message.success("新增成功");
|
||||||
this.operation = "INFO"
|
this.operation = "INFO";
|
||||||
this.currentTab = "INFO"
|
this.currentTab = "INFO";
|
||||||
this.csTab = false
|
this.csTab = false;
|
||||||
this.getData()
|
this.getData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
//添加子模板
|
//添加子模板
|
||||||
addShipTemplateChildren() {
|
addShipTemplateChildren() {
|
||||||
const params = {
|
const params = {
|
||||||
area: '',
|
area: "",
|
||||||
areaId: "",
|
areaId: "",
|
||||||
firstCompany: '1',
|
firstCompany: "1",
|
||||||
firstPrice: '',
|
firstPrice: "",
|
||||||
continuedCompany: '1',
|
continuedCompany: "1",
|
||||||
continuedPrice: ''
|
continuedPrice: "",
|
||||||
}
|
selectedAll:false
|
||||||
this.form.freightTemplateChildList.push(params)
|
};
|
||||||
|
this.form.freightTemplateChildList.push(params);
|
||||||
},
|
},
|
||||||
//删除一个子模板
|
//删除一个子模板
|
||||||
removeTemplateChildren(index) {
|
removeTemplateChildren(index) {
|
||||||
if (Object.keys(this.form.freightTemplateChildList).length == 1) {
|
if (Object.keys(this.form.freightTemplateChildList).length == 1) {
|
||||||
this.$Message.success("必须保留一个子模板");
|
this.$Message.error("必须保留一个子模板");
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
this.form.freightTemplateChildList.splice(index, 1);
|
this.form.freightTemplateChildList.splice(index, 1);
|
||||||
},
|
},
|
||||||
|
@ -391,13 +403,9 @@
|
||||||
this.$Modal.remove();
|
this.$Modal.remove();
|
||||||
this.getData();
|
this.getData();
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.init();
|
this.init();
|
||||||
|
@ -408,11 +416,11 @@
|
||||||
.ncsc-default-table thead th {
|
.ncsc-default-table thead th {
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
color: #555;
|
color: #555;
|
||||||
background-color: #FAFAFA;
|
background-color: #fafafa;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
padding: 9px 0;
|
padding: 9px 0;
|
||||||
border-bottom: solid 1px #DDD;
|
border-bottom: solid 1px #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ncsc-default-table {
|
.ncsc-default-table {
|
||||||
|
@ -421,33 +429,31 @@
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
|
|
||||||
tbody th {
|
tbody th {
|
||||||
background-color: #FAFAFA;
|
background-color: #fafafa;
|
||||||
border: solid #E6E6E6;
|
border: solid #e6e6e6;
|
||||||
border-width: 1px 0;
|
border-width: 1px 0;
|
||||||
padding: 4px 0;
|
padding: 4px 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody td {
|
tbody td {
|
||||||
color: #999;
|
color: #999;
|
||||||
background-color: #FFF;
|
background-color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 6px 0;
|
padding: 6px 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.order tbody tr td {
|
.order tbody tr td {
|
||||||
border-bottom: 1px solid #E6E6E6;
|
border-bottom: 1px solid #e6e6e6;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order tbody tr td.bdr {
|
.order tbody tr td.bdr {
|
||||||
border-right: 1px solid #E6E6E6;
|
border-right: 1px solid #e6e6e6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order tbody tr th {
|
.order tbody tr th {
|
||||||
border: solid 1px #DDD;
|
border: solid 1px #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order tbody tr td.sep-row {
|
.order tbody tr td.sep-row {
|
||||||
|
@ -464,7 +470,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.order tbody tr td.bdl {
|
.order tbody tr td.bdl {
|
||||||
border-left: 1px solid #E6E6E6;
|
border-left: 1px solid #e6e6e6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.order tbody tr th h3 {
|
.order tbody tr th h3 {
|
||||||
|
@ -504,7 +510,8 @@
|
||||||
border-color: inherit;
|
border-color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
caption, th {
|
caption,
|
||||||
|
th {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -516,14 +523,17 @@
|
||||||
display: table-column-group;
|
display: table-column-group;
|
||||||
}
|
}
|
||||||
|
|
||||||
button, input, select, textarea {
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bd-line td {
|
.bd-line td {
|
||||||
border-bottom: solid 1px #EEE;
|
border-bottom: solid 1px #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w40 {
|
.w40 {
|
||||||
|
@ -534,23 +544,26 @@
|
||||||
width: 80px !important;
|
width: 80px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
Input[type="text"], Input[type="password"], Input.text, Input.password {
|
Input[type="text"],
|
||||||
|
Input[type="password"],
|
||||||
|
Input.text,
|
||||||
|
Input.password {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-height: 20px;
|
min-height: 20px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: solid 1px #E6E9EE;
|
border: solid 1px #e6e9ee;
|
||||||
outline: 0 none;
|
outline: 0 none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-on {
|
.add-on {
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
background-color: #F6F7Fb;
|
background-color: #f6f7fb;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: solid #E6E9EE;
|
border: solid #e6e9ee;
|
||||||
border-width: 1px 1px 1px 0;
|
border-width: 1px 1px 1px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -562,11 +575,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.ncsu-trans-type {
|
.ncsu-trans-type {
|
||||||
background-color: #FFF;
|
background-color: #fff;
|
||||||
border: solid #DDD 1px;
|
border: solid #ddd 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
i, cite, em {
|
i,
|
||||||
|
cite,
|
||||||
|
em {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,6 +593,6 @@
|
||||||
margin-left: 7px;
|
margin-left: 7px;
|
||||||
margin-bottom: -8px;
|
margin-bottom: -8px;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
color: #F00;
|
color: #f00;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-item">
|
<div class="card-item">
|
||||||
<div class="card-item-label">退单金额</div>
|
<div class="card-item-label">退单金额</div>
|
||||||
<div class="card-item-value">{{overViewList.refundOrderPrice || 0}}</div>
|
<div class="card-item-value">{{overViewList.refundOrderPrice || 0 | unitPrice('¥')}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -333,9 +333,7 @@ export default {
|
||||||
key: "applyRefundPrice",
|
key: "applyRefundPrice",
|
||||||
render: (h, params) => {
|
render: (h, params) => {
|
||||||
return h(
|
return h(
|
||||||
"div",
|
"div", this.$options.filters.unitPrice(params.row.applyRefundPrice, '¥')
|
||||||
"¥" +
|
|
||||||
(params.row.applyRefundPrice ? params.row.applyRefundPrice : 0)
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
<span style="font-size: 14px;">总金额</span>
|
<span style="font-size: 14px;">总金额</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="static-num">
|
<p class="static-num">
|
||||||
{{ priceData.price | unitPrice }}
|
{{ priceData.price | unitPrice('¥') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue