mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2026-08-07 03:15:01 +08:00
升级Vue3,iView替换ElementPlus
- 删除babel配置、更新依赖与入口初始化 - 全量替换UI组件、样式适配,新增迁移文档与标签/过滤器自动化替换脚本
This commit is contained in:
@@ -6,27 +6,20 @@
|
||||
<div>
|
||||
<router-link to="/"><img :src="$store.state.logoImg" /></router-link>
|
||||
<div>
|
||||
购物车(<span>{{ goodsTotal }}</span
|
||||
>)
|
||||
购物车(<span>{{ goodsTotal }}</span>)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<Divider />
|
||||
<el-divider />
|
||||
<!-- 购物车主体 -->
|
||||
<div class="cart-content width_1200 center">
|
||||
<div class="available-area">
|
||||
<div class="cart-steps">
|
||||
<span :class="stepIndex == 0 ? 'active' : ''">1.我的购物车</span>
|
||||
<Icon
|
||||
:class="stepIndex == 0 ? 'active-arrow' : ''"
|
||||
custom="icomoon icon-next"
|
||||
></Icon>
|
||||
<i class="icomoon icon-next" :class="stepIndex == 0 ? 'active-arrow' : ''"></i>
|
||||
<span :class="stepIndex == 1 ? 'active' : ''">2.填写订单信息</span>
|
||||
<Icon
|
||||
:class="stepIndex == 1 ? 'active-arrow' : ''"
|
||||
custom="icomoon icon-next"
|
||||
></Icon>
|
||||
<i class="icomoon icon-next" :class="stepIndex == 1 ? 'active-arrow' : ''"></i>
|
||||
<span :class="stepIndex == 2 ? 'active' : ''">3.成功提交订单</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,10 +27,10 @@
|
||||
<div class="cart-goods">
|
||||
<div class="cart-goods-title">
|
||||
<div class="width_60">
|
||||
<Checkbox
|
||||
<el-checkbox
|
||||
v-model="allChecked"
|
||||
@on-change="changeChecked(allChecked, 'all')"
|
||||
>全选</Checkbox
|
||||
@change="changeChecked(allChecked, 'all')"
|
||||
>全选</el-checkbox
|
||||
>
|
||||
</div>
|
||||
<div class="goods-title">商品</div>
|
||||
@@ -58,10 +51,10 @@
|
||||
>
|
||||
<div class="shop-name">
|
||||
<div>
|
||||
<Checkbox
|
||||
<el-checkbox
|
||||
v-model="shop.checked"
|
||||
@on-change="changeChecked(shop.checked, 'shop', shop.storeId)"
|
||||
></Checkbox>
|
||||
@change="changeChecked(shop.checked, 'shop', shop.storeId)"
|
||||
></el-checkbox>
|
||||
<span class="go-shop-page" @click="goShopPage(shop.storeId)">{{
|
||||
shop.storeName
|
||||
}}</span>
|
||||
@@ -80,34 +73,32 @@
|
||||
:key="index"
|
||||
>
|
||||
<span v-if="item.couponType === 'PRICE'"
|
||||
>¥{{ item.price }}</span
|
||||
>
|
||||
>¥{{ item.price }}</span>
|
||||
<span v-if="item.couponType === 'DISCOUNT'"
|
||||
>{{ item.couponDiscount }}折</span
|
||||
>
|
||||
>{{ item.couponDiscount }}折</span>
|
||||
<span>满{{ item.consumeThreshold }}元可用</span>
|
||||
<Button
|
||||
<el-button
|
||||
class="coupon-btn"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="receiveShopCoupon(item)"
|
||||
:disabled="item.disabled"
|
||||
>{{ item.disabled ? "已领取" : "领取" }}</Button
|
||||
>{{ item.disabled ? "已领取" : "领取" }}</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<div class="promotion-notice">{{ shop.promotionNotice }}</div>
|
||||
</div>
|
||||
<template v-for="(goods, goodsIndex) in shop.skuList">
|
||||
<div class="goods-item" :key="goodsIndex">
|
||||
<template v-for="(goods, goodsIndex) in shop.skuList" :key="goods.goodsSku?.id || goodsIndex">
|
||||
<div class="goods-item">
|
||||
<div class="width_60">
|
||||
<Checkbox
|
||||
<el-checkbox
|
||||
v-model="goods.checked"
|
||||
@on-change="
|
||||
@change="
|
||||
changeChecked(goods.checked, 'goods', goods.goodsSku.id)
|
||||
"
|
||||
></Checkbox>
|
||||
></el-checkbox>
|
||||
</div>
|
||||
<div
|
||||
class="goods-title"
|
||||
@@ -125,13 +116,13 @@
|
||||
<p>
|
||||
{{ goods.goodsSku.goodsName }}
|
||||
</p>
|
||||
<p><Tag
|
||||
<p><el-tag
|
||||
v-if="goods.goodsSku.salesModel === 'WHOLESALE'"
|
||||
class="goods-show-tag"
|
||||
color="purple"
|
||||
>
|
||||
批发商品
|
||||
</Tag></p>
|
||||
</el-tag></p>
|
||||
<template
|
||||
v-for="(promotion, promotionIndex) in goods.promotions"
|
||||
>
|
||||
@@ -165,43 +156,43 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="width_150">
|
||||
{{ goods.purchasePrice | unitPrice("¥") }}
|
||||
{{ $filters.unitPrice(goods.purchasePrice, "¥") }}
|
||||
</div>
|
||||
<div class="width_100">
|
||||
<InputNumber
|
||||
<el-input-number
|
||||
:min="1"
|
||||
size="small"
|
||||
v-model="goods.num"
|
||||
@on-change="changeNum(goods.num, goods.goodsSku.id)"
|
||||
></InputNumber>
|
||||
@change="changeNum(goods.num, goods.goodsSku.id)"
|
||||
></el-input-number>
|
||||
<div class="fontsize_12">
|
||||
{{ goods.goodsSku.quantity > 0 ? "有货" : "无货" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="width_150">
|
||||
{{ goods.subTotal | unitPrice("¥") }}
|
||||
{{ $filters.unitPrice(goods.subTotal, "¥") }}
|
||||
</div>
|
||||
<div class="width_100">
|
||||
<Button
|
||||
<el-button
|
||||
v-if="!goods.errorMessage"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="delGoods(goods.goodsSku.id)"
|
||||
>删除</Button
|
||||
>删除</el-button
|
||||
>
|
||||
<Button
|
||||
<el-button
|
||||
v-if="!goods.errorMessage"
|
||||
size="small"
|
||||
type="info"
|
||||
@click="collectGoods(goods.goodsSku.id)"
|
||||
style="margin-left: 10px"
|
||||
>收藏</Button
|
||||
>收藏</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="error-goods" v-if="goods.errorMessage">
|
||||
<div style="margin-top: 20px">{{ goods.errorMessage }}</div>
|
||||
<Button type="primary" @click="delGoods(goods.goodsSku.id)"
|
||||
>删除</Button
|
||||
<el-button type="primary" @click="delGoods(goods.goodsSku.id)"
|
||||
>删除</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -211,10 +202,10 @@
|
||||
<div class="cart-goods-footer">
|
||||
<div>
|
||||
<div class="width_60">
|
||||
<Checkbox
|
||||
<el-checkbox
|
||||
v-model="allChecked"
|
||||
@on-change="changeChecked(allChecked, 'all')"
|
||||
>全选</Checkbox
|
||||
@change="changeChecked(allChecked, 'all')"
|
||||
>全选</el-checkbox
|
||||
>
|
||||
</div>
|
||||
<div class="width_100 handle-btn" @click="delGoods()">
|
||||
@@ -227,23 +218,20 @@
|
||||
</div>
|
||||
<div>
|
||||
<div class="selected-count">
|
||||
已选择<span>{{ checkedNum }}</span
|
||||
>件商品
|
||||
已选择<span>{{ checkedNum }}</span>件商品
|
||||
</div>
|
||||
<div class="ml_20 save-price">
|
||||
已节省<span>{{
|
||||
priceDetailDTO.discountPrice | unitPrice("¥")
|
||||
}}</span>
|
||||
已节省<span>{{ $filters.unitPrice(priceDetailDTO.discountPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div class="ml_20 total-price">
|
||||
总价(不含运费):
|
||||
<div>{{ priceDetailDTO.flowPrice | unitPrice("¥") }}</div>
|
||||
<div>{{ $filters.unitPrice(priceDetailDTO.flowPrice, "¥") }}</div>
|
||||
</div>
|
||||
<div class="pay ml_20" @click="pay">去结算</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="loading"></Spin>
|
||||
<el-skeleton size="large" fix v-if="loading"></el-skeleton>
|
||||
</div>
|
||||
<BaseFooter class="footer"></BaseFooter>
|
||||
</div>
|
||||
@@ -400,7 +388,7 @@ export default {
|
||||
async receiveShopCoupon(item) {
|
||||
let res = await APIMember.receiveCoupon(item.id);
|
||||
if (res.success) {
|
||||
this.$set(item, "disabled", true);
|
||||
item["disabled"] = true;
|
||||
this.$Message.success("领取成功");
|
||||
} else {
|
||||
this.$Message.error(res.message);
|
||||
@@ -500,7 +488,7 @@ export default {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
@include content_color($light_content_color);
|
||||
font-size: 20px;
|
||||
margin: 0 15px;
|
||||
@@ -743,7 +731,7 @@ export default {
|
||||
width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.ivu-divider {
|
||||
.el-divider {
|
||||
background: $theme_color;
|
||||
height: 2px;
|
||||
}
|
||||
@@ -781,7 +769,7 @@ export default {
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.ivu-input-number-input {
|
||||
.el-input-number .el-input__inner {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,11 +8,9 @@
|
||||
<img src="../assets/images/logo.png" width="120" alt="" />
|
||||
</router-link>
|
||||
<p>领券中心</p>
|
||||
<Input
|
||||
search
|
||||
<el-input
|
||||
style="width: 400px"
|
||||
@on-search="search"
|
||||
enter-button="搜索"
|
||||
@keyup.enter="search"
|
||||
placeholder="搜索优惠券"
|
||||
/>
|
||||
</div>
|
||||
@@ -27,19 +25,13 @@
|
||||
<span
|
||||
v-if="item.couponType === 'PRICE'"
|
||||
class="fontsize_12 global_color"
|
||||
>¥<span class="price">{{
|
||||
item.price | unitPrice
|
||||
}}</span></span
|
||||
>
|
||||
>¥<span class="price">{{ $filters.unitPrice(item.price) }}</span></span>
|
||||
<span
|
||||
v-if="item.couponType === 'DISCOUNT'"
|
||||
class="fontsize_12 global_color"
|
||||
><span class="price">{{ item.couponDiscount }}</span
|
||||
>折</span
|
||||
>
|
||||
><span class="price">{{ item.couponDiscount }}</span>折</span>
|
||||
<span class="describe"
|
||||
>满{{ item.consumeThreshold }}元可用</span
|
||||
>
|
||||
>满{{ item.consumeThreshold }}元可用</span>
|
||||
</div>
|
||||
<p>使用范围:{{ useScope(item.scopeType, item.storeName) }}</p>
|
||||
<p>有效期:{{ item.endTime }}</p>
|
||||
@@ -50,16 +42,12 @@
|
||||
<i class="circle-bottom"></i>
|
||||
</li>
|
||||
</ul>
|
||||
<Page
|
||||
:total="total"
|
||||
@on-change="changePageNum"
|
||||
<el-pagination :total="total"
|
||||
@current-change="changePageNum"
|
||||
class="pageration"
|
||||
@on-page-size-change="changePageSize"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer
|
||||
>
|
||||
</Page>
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<BaseFooter></BaseFooter>
|
||||
|
||||
@@ -11,76 +11,72 @@
|
||||
</div>
|
||||
<div class="login-container">
|
||||
<!-- 验证手机号 -->
|
||||
<Form
|
||||
<el-form
|
||||
ref="formFirst"
|
||||
:model="formFirst"
|
||||
:rules="ruleInline"
|
||||
style="width:300px;"
|
||||
v-show="step === 0"
|
||||
>
|
||||
<FormItem prop="mobile">
|
||||
<i-input
|
||||
<el-form-item prop="mobile">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="formFirst.mobile"
|
||||
clearable
|
||||
placeholder="手机号"
|
||||
>
|
||||
<Icon type="md-phone-portrait" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="code">
|
||||
<i-input
|
||||
<template #prepend><el-icon><Iphone /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="code">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="formFirst.code"
|
||||
clearable
|
||||
placeholder="手机验证码"
|
||||
>
|
||||
<Icon
|
||||
type="ios-text-outline"
|
||||
style="font-weight: bold"
|
||||
slot="prepend"
|
||||
/>
|
||||
<Button slot="append" @click="sendCode">{{ codeMsg }}</Button>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button @click="verifyBtnClick" long :type="verifyStatus?'success':'default'">{{verifyStatus?'验证通过':'点击完成安全验证'}}</Button>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="error" @click="next" :loading="loading" long>下一步</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<Form
|
||||
<template #prepend><el-icon style="font-weight: bold"><Document /></el-icon></template>
|
||||
<template #append><el-button @click="sendCode">{{ codeMsg }}</el-button></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="verifyBtnClick" style="width:100%" :type="verifyStatus?'success':'default'">{{verifyStatus?'验证通过':'点击完成安全验证'}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="danger" @click="next" :loading="loading" style="width:100%">下一步</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="ruleInline"
|
||||
style="width:300px;"
|
||||
v-show="step === 1"
|
||||
>
|
||||
<FormItem prop="password">
|
||||
<i-input
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
type="password"
|
||||
v-model="form.password"
|
||||
clearable
|
||||
placeholder="请输入至少六位密码"
|
||||
>
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="password">
|
||||
<i-input
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
type="password"
|
||||
v-model="form.oncePasd"
|
||||
clearable
|
||||
placeholder="请再次输入密码"
|
||||
>
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="error" size="large" @click="handleSubmit" :loading="loading1" long>提交</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="danger" size="large" @click="handleSubmit" :loading="loading1" style="width:100%">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 拼图验证码 -->
|
||||
<Verify
|
||||
ref="verify"
|
||||
@@ -91,18 +87,18 @@
|
||||
<div class="login-btn"><a @click="$router.push('login')">前往登录</a></div>
|
||||
</div>
|
||||
<div class="foot">
|
||||
<Row type="flex" justify="space-around" class="help">
|
||||
<div type="flex" justify="space-around" class="help">
|
||||
<a class="item" href="https://pickmall.cn/" target="_blank">帮助</a>
|
||||
<a class="item" href="https://pickmall.cn/" target="_blank">隐私</a>
|
||||
<a class="item" href="https://pickmall.cn/" target="_blank">条款</a>
|
||||
</Row>
|
||||
<Row type="flex" justify="center" class="copyright">
|
||||
</div>
|
||||
<div type="flex" justify="center" class="copyright">
|
||||
Copyright © {{year}} - Present
|
||||
<a href="https://pickmall.cn/" target="_blank" style="margin: 0 5px"
|
||||
>{{config.title}}</a
|
||||
>
|
||||
版权所有
|
||||
</Row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -114,9 +110,10 @@ import { md5 } from '@/plugins/md5.js';
|
||||
import * as apiLogin from '@/api/login.js';
|
||||
import { sendSms } from '@/api/common.js';
|
||||
import Verify from '@/components/verify';
|
||||
import { Lock, Iphone, Document } from '@element-plus/icons-vue';
|
||||
export default {
|
||||
name: 'ForgetPassword',
|
||||
components: { Verify },
|
||||
components: { Verify, Lock, Iphone, Document },
|
||||
data () {
|
||||
return {
|
||||
config:require('@/config'),
|
||||
@@ -294,7 +291,7 @@ export default {
|
||||
|
||||
.other-login {
|
||||
margin: 0 auto;
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
<Search></Search>
|
||||
<div class="shop-item-path">
|
||||
<div class="shop-nav-container">
|
||||
<Breadcrumb>
|
||||
<BreadcrumbItem to="/">首页</BreadcrumbItem>
|
||||
<BreadcrumbItem v-for="(item, index) in categoryBar" :to="goGoodsList(index)" target="_blank" :key="index">
|
||||
<el-breadcrumb>
|
||||
<el-breadcrumb-item to="/">首页</el-breadcrumb-item>
|
||||
<el-breadcrumb-item v-for="(item, index) in categoryBar" :to="goGoodsList(index)" target="_blank" :key="index">
|
||||
{{ item.name }}
|
||||
</BreadcrumbItem>
|
||||
</Breadcrumb>
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
<div class="store-collect" v-if="!takeDownSale">
|
||||
<span class="mr_10" v-if="goodsMsg.data">
|
||||
<router-link :to="'Merchant?id=' + goodsMsg.data.storeId">{{
|
||||
@@ -17,7 +17,7 @@
|
||||
}}</router-link>
|
||||
</span>
|
||||
<span @click="collect">
|
||||
<Icon type="ios-heart" :color="storeCollected ? '#ed3f14' : '#666'" />
|
||||
<el-icon :color="storeCollected ? '#ed3f14' : '#666'"><StarFilled /></el-icon>
|
||||
{{ storeCollected? "已收藏店铺": "收藏店铺" }}
|
||||
</span>
|
||||
<span class="ml_10" @click="IMService(goodsMsg.data.storeId,goodsMsg.data.goodsId,goodsMsg.data.id)">联系客服</span>
|
||||
@@ -32,16 +32,17 @@
|
||||
|
||||
<empty _Title='当前商品已下架' v-if="takeDownSale">
|
||||
<div class="sale-btn">
|
||||
<Button size="small" class="mr_10" @click="target('/')">返回首页</Button>
|
||||
<Button size="small" @click="target('goodsList')">返回商品列表</Button>
|
||||
<el-button size="small" class="mr_10" @click="target('/')">返回首页</el-button>
|
||||
<el-button size="small" @click="target('goodsList')">返回商品列表</el-button>
|
||||
</div>
|
||||
</empty>
|
||||
<Spin size="large" fix v-if="isLoading"></Spin>
|
||||
<el-skeleton size="large" fix v-if="isLoading"></el-skeleton>
|
||||
<BaseFooter></BaseFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { StarFilled } from '@element-plus/icons-vue';
|
||||
import Search from "@/components/Search";
|
||||
|
||||
import ShowGoods from "@/components/goodsDetail/ShowGoods";
|
||||
@@ -129,7 +130,7 @@ export default {
|
||||
});
|
||||
});
|
||||
this.categoryBar = cateArr;
|
||||
this.$set(this, "goodsMsg", res.result);
|
||||
this["goodsMsg"] = res.result;
|
||||
if (!this.goodsMsg.data.intro) {
|
||||
this.goodsMsg.data.intro = ''
|
||||
}
|
||||
@@ -191,12 +192,10 @@ export default {
|
||||
},
|
||||
},
|
||||
watch: {},
|
||||
components: {
|
||||
Search,
|
||||
components: { Search,
|
||||
ShowGoods,
|
||||
ShowGoodsDetail,
|
||||
empty
|
||||
},
|
||||
empty, StarFilled },
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
||||
@@ -20,21 +20,14 @@
|
||||
@click="orderBy(item.en, index)"
|
||||
>
|
||||
<span :class="{ 'goods-list-tool-active': index === sortIndex }"
|
||||
>{{ item.title }}<Icon type="ios-arrow-round-down"
|
||||
/></span>
|
||||
>{{ item.title }}<el-icon><ArrowDown /></el-icon></span>
|
||||
</li>
|
||||
<li @click="orderBy('price', 5, 'up')" class="price-sort">
|
||||
<span :class="{ 'goods-list-tool-active': 5 === sortIndex }">
|
||||
价格
|
||||
<div>
|
||||
<Icon
|
||||
type="md-arrow-dropup"
|
||||
:class="{ 'price-color': sortPriceIndex == 'desc' }"
|
||||
/>
|
||||
<Icon
|
||||
type="md-arrow-dropdown"
|
||||
:class="{ 'price-color': sortPriceIndex == 'asc' }"
|
||||
/>
|
||||
<el-icon :class="{ 'price-color': sortPriceIndex == 'desc' }"><ArrowUp /></el-icon>
|
||||
<el-icon :class="{ 'price-color': sortPriceIndex == 'asc' }"><ArrowDown /></el-icon>
|
||||
</div>
|
||||
</span>
|
||||
</li>
|
||||
@@ -55,24 +48,21 @@
|
||||
</div>
|
||||
<div class="goods-show-price">
|
||||
<span>
|
||||
<span class="seckill-price text-danger">{{
|
||||
item.price | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="seckill-price text-danger">{{ $filters.unitPrice(item.price, "¥") }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="goods-show-detail">
|
||||
<Tag
|
||||
<el-tag
|
||||
v-if="item.salesModel === 'WHOLESALE'"
|
||||
class="goods-show-tag"
|
||||
color="purple"
|
||||
>
|
||||
批发
|
||||
</Tag>
|
||||
</el-tag>
|
||||
<span>{{ item.goodsName }}</span>
|
||||
</div>
|
||||
<div class="goods-show-num">
|
||||
已有<span>{{ item.commentNum || 0 }}</span
|
||||
>人评价
|
||||
已有<span>{{ item.commentNum || 0 }}</span>人评价
|
||||
</div>
|
||||
<div class="goods-show-seller">
|
||||
<span class="text-bottom" style="color: #e4393c">{{
|
||||
@@ -81,49 +71,48 @@
|
||||
</div>
|
||||
|
||||
<div class="goods-show-right">
|
||||
<Tag
|
||||
<el-tag
|
||||
class="goods-show-tag"
|
||||
color="red"
|
||||
v-if="item.selfOperated"
|
||||
>
|
||||
自营
|
||||
</Tag>
|
||||
<Tag
|
||||
</el-tag>
|
||||
<el-tag
|
||||
class="goods-show-tag"
|
||||
color="blue"
|
||||
v-if="item.goodsType === 'VIRTUAL_GOODS'"
|
||||
>
|
||||
虚拟
|
||||
</Tag>
|
||||
<Tag
|
||||
</el-tag>
|
||||
<el-tag
|
||||
class="goods-show-tag"
|
||||
color="blue"
|
||||
v-else-if="item.goodsType === 'PHYSICAL_GOODS'"
|
||||
>
|
||||
实物
|
||||
</Tag>
|
||||
</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="goods-page">
|
||||
<Page
|
||||
show-total
|
||||
show-sizer
|
||||
@on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
<el-pagination
|
||||
@current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:total="total"
|
||||
:page-size="params.pageSize"
|
||||
></Page>
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="loading"></Spin>
|
||||
<el-skeleton size="large" fix v-if="loading"></el-skeleton>
|
||||
<BaseFooter></BaseFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ArrowDown, ArrowUp } from '@element-plus/icons-vue';
|
||||
import GoodsClassNav from "@/components/nav/GoodsClassNav";
|
||||
import * as apiGoods from "@/api/goods";
|
||||
export default {
|
||||
@@ -347,7 +336,7 @@ export default {
|
||||
}
|
||||
span > div {
|
||||
display: inline-block;
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
&:nth-child(1) {
|
||||
@@ -379,7 +368,7 @@ export default {
|
||||
text-decoration: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.goods-list-tool .ivu-icon {
|
||||
.goods-list-tool .el-icon {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
@@ -1,27 +1,25 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<Modal v-model="showCpmodel" width="350">
|
||||
<el-dialog v-model="showCpmodel" width="350">
|
||||
<template #header>
|
||||
<p style="color:black;text-align:left">
|
||||
<!-- <Icon type="ios-information-circle"></Icon> -->
|
||||
<!-- <el-icon><InfoFilled /></el-icon> -->
|
||||
<span>活动优惠券</span>
|
||||
</p>
|
||||
</template>
|
||||
<template>
|
||||
<Scroll :on-reach-bottom="handleReachBottom">
|
||||
<Card dis-hover v-for="(item, index) in autoCoupList" :key="index" style="margin: 10px 15px">
|
||||
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color" style="font-size: 15px;">¥<span class="price">{{item.price | unitPrice}}</span></span>
|
||||
<div class="coupon-scroll" @scroll="handleReachBottom">
|
||||
<el-card shadow="never" v-for="(item, index) in autoCoupList" :key="index" style="margin: 10px 15px">
|
||||
<span v-if="item.couponType === 'PRICE'" class="fontsize_12 global_color" style="font-size: 15px;">¥<span class="price">{{ $filters.unitPrice(item.price) }}</span></span>
|
||||
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color" style="font-size: 15px;"><span class="price">{{item.discount}}</span>折</span>
|
||||
<span class="describe" style="font-size: 15px;margin-left: 5px;">满{{item.consumeThreshold}}元可用</span>
|
||||
<p style="font-size: 10px;">使用范围:{{useScope(item.scopeType, item.storeName)}}</p>
|
||||
<p style="font-size: 10px;">有效期:{{item.endTime}}</p>
|
||||
</Card>
|
||||
</Scroll>
|
||||
</template>
|
||||
</el-card>
|
||||
</div>
|
||||
<template #footer>
|
||||
<Button type="error" @click="showCpmodel=false">确定</Button>
|
||||
<el-button type="danger" @click="showCpmodel=false">确定</el-button>
|
||||
</template>
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 固定头部 -->
|
||||
<hover-search class="hover-search" :class="{show: topSearchShow}"></hover-search>
|
||||
@@ -43,6 +41,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { InfoFilled } from '@element-plus/icons-vue';
|
||||
import Search from '@/components/Search';
|
||||
import ModelForm from '@/components/indexDecorate/ModelForm';
|
||||
import HoverSearch from '@/components/header/hoverSearch';
|
||||
@@ -196,12 +195,10 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Search,
|
||||
components: { Search,
|
||||
ModelForm,
|
||||
HoverSearch,
|
||||
fixedBar
|
||||
}
|
||||
fixedBar, InfoFilled }
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
<!-- 登录主体 包含轮播图 登录模块 -->
|
||||
<div class="login-container">
|
||||
<!-- 轮播 -->
|
||||
<Carousel loop :autoplay-speed="5000" class="login-carousel" arrow="never">
|
||||
<CarouselItem>
|
||||
<el-carousel :interval="5000" arrow="never" class="login-carousel" height="550px">
|
||||
<el-carousel-item>
|
||||
<div class="demo-carousel" @click='$refs.verify.show = false'>
|
||||
<img src="https://lili-system.oss-cn-beijing.aliyuncs.com/background.jpg" />
|
||||
</div>
|
||||
</CarouselItem>
|
||||
</Carousel>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
<!-- 登录模块 -->
|
||||
<div class="form-box" @click='$refs.verify.show = false'>
|
||||
<div class="account-number">
|
||||
@@ -34,7 +34,7 @@
|
||||
<span>
|
||||
二维码已失效
|
||||
</span>
|
||||
<Button size='small' @click="createPCLoginSession">刷新二维码</Button>
|
||||
<el-button size='small' @click="createPCLoginSession">刷新二维码</el-button>
|
||||
</div>
|
||||
<vue-qr
|
||||
:text="qrCode"
|
||||
@@ -69,45 +69,45 @@
|
||||
<div>
|
||||
<div v-show="!scannerCodeLoginFLag">
|
||||
<!-- 账号密码登录 -->
|
||||
<Form ref="formInline" :model="formData" :rules="ruleInline" v-show="type === true"
|
||||
<el-form ref="formInline" :model="formData" :rules="ruleInline" v-show="type === true"
|
||||
@click.self='$refs.verify.show = false'>
|
||||
<FormItem prop="username">
|
||||
<i-input type="text" v-model="formData.username" clearable placeholder="用户名">
|
||||
<Icon type="md-person" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="password">
|
||||
<i-input type="password" v-model="formData.password" clearable placeholder="密码">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="error" @click.stop="handleSubmit('formInline')" long>登录</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<el-form-item prop="username">
|
||||
<el-input type="text" v-model="formData.username" clearable placeholder="用户名">
|
||||
<template #prepend><el-icon><User /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input type="password" v-model="formData.password" clearable placeholder="密码">
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="danger" @click.stop="handleSubmit('formInline')" style="width:100%">登录</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 验证码登录 -->
|
||||
<Form ref="formSms" :model="formSms" :rules="ruleInline" v-show="type === false"
|
||||
<el-form ref="formSms" :model="formSms" :rules="ruleInline" v-show="type === false"
|
||||
@click.self='$refs.verify.show = false'>
|
||||
<FormItem prop="mobile">
|
||||
<i-input type="text" v-model="formSms.mobile" clearable placeholder="手机号">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="code">
|
||||
<i-input type="text" v-model="formSms.code" placeholder="手机验证码">
|
||||
<Icon type="ios-text-outline" style="font-weight: bold" slot="prepend"/>
|
||||
<Button slot="append" @click="sendCode">{{ codeMsg }}</Button>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button @click.stop="verifyBtnClick" long
|
||||
<el-form-item prop="mobile">
|
||||
<el-input type="text" v-model="formSms.mobile" clearable placeholder="手机号">
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="code">
|
||||
<el-input type="text" v-model="formSms.code" placeholder="手机验证码">
|
||||
<template #prepend><el-icon style="font-weight: bold"><Document /></el-icon></template>
|
||||
<template #append><el-button @click="sendCode">{{ codeMsg }}</el-button></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click.stop="verifyBtnClick" style="width:100%"
|
||||
:type="verifyStatus?'success':'default'">{{ verifyStatus ? '验证通过' : '点击完成安全验证' }}
|
||||
</Button>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="error" @click="handleSubmit('formSms')" long>登录</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="danger" @click="handleSubmit('formSms')" style="width:100%">登录</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="other">
|
||||
<div class="other-login">
|
||||
@@ -138,16 +138,16 @@
|
||||
<verify ref="verify" class="verify-con" verifyType="LOGIN" @change="verifyChange"></verify>
|
||||
</div>
|
||||
<div class="foot">
|
||||
<Row type="flex" justify="space-around" class="help">
|
||||
<div type="flex" justify="space-around" class="help">
|
||||
<router-link to="/article" class="item" target="_blank">帮助</router-link>
|
||||
<router-link to="/article?id=1371779927900160000" class="item" target="_blank">隐私</router-link>
|
||||
<router-link to="/article?id=1371992704333905920" class="item" target="_blank">条款</router-link>
|
||||
</Row>
|
||||
<Row type="flex" justify="center" class="copyright">
|
||||
</div>
|
||||
<div type="flex" justify="center" class="copyright">
|
||||
Copyright © {{year}} - Present
|
||||
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">{{config.title}}</a>
|
||||
版权所有
|
||||
</Row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -162,12 +162,16 @@ import { webLogin, loginCallback,sCLogin,getSCLoginCode} from "@/api/login.js";
|
||||
import storage from "@/plugins/storage.js";
|
||||
import verify from "@/components/verify";
|
||||
import vueQr from "vue-qr";
|
||||
import { User, Lock, Document } from "@element-plus/icons-vue";
|
||||
|
||||
export default {
|
||||
name: "Login",
|
||||
components: {
|
||||
verify,
|
||||
vueQr
|
||||
vueQr,
|
||||
User,
|
||||
Lock,
|
||||
Document,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -413,7 +417,7 @@ export default {
|
||||
});
|
||||
},
|
||||
},
|
||||
destroyed() {
|
||||
beforeUnmount() {
|
||||
this.clearQRLoginInfo();
|
||||
},
|
||||
mounted() {
|
||||
|
||||
@@ -10,12 +10,10 @@
|
||||
<p :alt="storeMsg.storeDesc" class="ellipsis" v-html="storeMsg.storeDesc"></p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="hover-pointer" @click="collect"><Icon :color="storeCollected ? '#ed3f14' : '#fff'"
|
||||
type="ios-heart"/>{{
|
||||
<span class="hover-pointer" @click="collect"><el-icon :color="storeCollected ? '#ed3f14' : '#fff'"><StarFilled /></el-icon>{{
|
||||
storeCollected ? '已收藏店铺' : '收藏店铺'
|
||||
}}</span>
|
||||
<span class="hover-pointer ml_10" style="width:80px" @click="IMService(storeMsg.storeId,null,null)"><Icon
|
||||
custom="icomoon icon-customer-service"/>联系客服</span>
|
||||
<span class="hover-pointer ml_10" style="width:80px" @click="IMService(storeMsg.storeId,null,null)"><i class="icomoon icon-customer-service"></i>联系客服</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="store-category">
|
||||
@@ -27,22 +25,21 @@
|
||||
首页
|
||||
</li>
|
||||
<li v-for="(cate, index) in cateList" :key="index" class="cate-item">
|
||||
<Dropdown v-if="cate.children.length">
|
||||
<el-dropdown v-if="cate.children.length" trigger="hover">
|
||||
<div @click.self="searchByCate(cate)">
|
||||
{{ cate.labelName }}
|
||||
<Icon type="ios-arrow-down"></Icon>
|
||||
<el-icon><ArrowDown /></el-icon>
|
||||
</div>
|
||||
<DropdownMenu slot="list">
|
||||
<DropdownItem
|
||||
v-for="sec in cate.children"
|
||||
:key="sec.id"
|
||||
:name="sec.id"
|
||||
@click.native="searchByCate(sec)"
|
||||
>{{ sec.labelName }}
|
||||
</DropdownItem
|
||||
>
|
||||
</DropdownMenu>
|
||||
</Dropdown>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item
|
||||
v-for="sec in cate.children"
|
||||
:key="sec.id"
|
||||
@click="searchByCate(sec)"
|
||||
>{{ sec.labelName }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<span v-else @click.self="searchByCate(cate)">{{
|
||||
cate.labelName
|
||||
}}</span>
|
||||
@@ -74,28 +71,23 @@
|
||||
</div>
|
||||
<div class="goods-show-price">
|
||||
<span>
|
||||
<span class="seckill-price text-danger">{{
|
||||
item.price | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="seckill-price text-danger">{{ $filters.unitPrice(item.price, "¥") }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="goods-show-detail">
|
||||
<span>{{ item.goodsName }}</span>
|
||||
</div>
|
||||
<div class="goods-show-num">
|
||||
已有<span>{{ item.commentNum || 0 }}</span
|
||||
>人评价
|
||||
已有<span>{{ item.commentNum || 0 }}</span>人评价
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="goods-page">
|
||||
<Page
|
||||
:page-size="params.pageSize"
|
||||
<el-pagination :page-size="params.pageSize"
|
||||
:total="total"
|
||||
show-sizer
|
||||
@on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
></Page>
|
||||
@current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
layout="sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -107,6 +99,7 @@
|
||||
|
||||
<script>
|
||||
|
||||
import { ArrowDown, StarFilled } from '@element-plus/icons-vue';
|
||||
import {getCateById, getDetailById} from "@/api/shopentry";
|
||||
import {cancelStoreCollect, collectStore} from "@/api/member";
|
||||
import {goodsList} from "@/api/goods";
|
||||
@@ -119,11 +112,7 @@ import imTalk from '@/components/mixes/talkIm'
|
||||
|
||||
export default {
|
||||
name: "Merchant",
|
||||
components: {
|
||||
Search,
|
||||
ModelForm,
|
||||
HoverSearch,
|
||||
},
|
||||
components: { Search, ModelForm, HoverSearch, StarFilled, ArrowDown },
|
||||
mixins: [imTalk],
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -11,67 +11,63 @@
|
||||
</div>
|
||||
<div class="login-container">
|
||||
<!-- 注册 -->
|
||||
<Form
|
||||
<el-form
|
||||
ref="formRegist"
|
||||
:model="formRegist"
|
||||
:rules="ruleInline"
|
||||
style="width:300px;"
|
||||
>
|
||||
<FormItem prop="username">
|
||||
<i-input
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="formRegist.username"
|
||||
clearable
|
||||
placeholder="用户名"
|
||||
>
|
||||
<Icon type="md-person" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="password">
|
||||
<i-input
|
||||
<template #prepend><el-icon><User /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
type="password"
|
||||
v-model="formRegist.password"
|
||||
clearable
|
||||
placeholder="请输入大于6位密码"
|
||||
>
|
||||
<Icon type="md-lock" slot="prepend"> </Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="mobilePhone">
|
||||
<i-input
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="mobilePhone">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="formRegist.mobilePhone"
|
||||
clearable
|
||||
placeholder="手机号"
|
||||
>
|
||||
<Icon type="md-phone-portrait" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem prop="code">
|
||||
<i-input
|
||||
<template #prepend><el-icon><Iphone /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="code">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="formRegist.code"
|
||||
clearable
|
||||
placeholder="手机验证码"
|
||||
>
|
||||
<Icon
|
||||
type="ios-text-outline"
|
||||
style="font-weight: bold"
|
||||
slot="prepend"
|
||||
/>
|
||||
<Button slot="append" @click="sendCode">{{ codeMsg }}</Button>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button @click="verifyBtnClick" long :type="verifyStatus?'success':'default'">{{verifyStatus?'验证通过':'点击完成安全验证'}}</Button>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="error" size="large" @click="handleRegist" long
|
||||
>注册</Button
|
||||
<template #prepend><el-icon style="font-weight: bold"><Document /></el-icon></template>
|
||||
<template #append><el-button @click="sendCode">{{ codeMsg }}</el-button></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="verifyBtnClick" style="width:100%" :type="verifyStatus?'success':'default'">{{verifyStatus?'验证通过':'点击完成安全验证'}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="danger" size="large" @click="handleRegist" style="width:100%"
|
||||
>注册</el-button
|
||||
>
|
||||
</FormItem>
|
||||
<FormItem><span class="color999 ml_20">点击注册,表示您同意《<router-link to="/article?id=1371992704333905920" target="_blank">商城用户协议</router-link>》</span></FormItem>
|
||||
</Form>
|
||||
</el-form-item>
|
||||
<el-form-item><span class="color999 ml_20">点击注册,表示您同意《<router-link to="/article?id=1371992704333905920" target="_blank">商城用户协议</router-link>》</span></el-form-item>
|
||||
</el-form>
|
||||
<!-- 拼图验证码 -->
|
||||
<Verify
|
||||
ref="verify"
|
||||
@@ -82,16 +78,16 @@
|
||||
<div class="login-btn">已有账号?<a @click="$router.push('login')">立即登录</a></div>
|
||||
</div>
|
||||
<div class="foot">
|
||||
<Row type="flex" justify="space-around" class="help">
|
||||
<div type="flex" justify="space-around" class="help">
|
||||
<router-link to="/article" class="item" target="_blank">帮助</router-link>
|
||||
<router-link to="/article?id=1371779927900160000" class="item" target="_blank">隐私</router-link>
|
||||
<router-link to="/article?id=1371992704333905920" class="item" target="_blank">条款</router-link>
|
||||
</Row>
|
||||
<Row type="flex" justify="center" class="copyright">
|
||||
</div>
|
||||
<div type="flex" justify="center" class="copyright">
|
||||
Copyright © {{year}} - Present
|
||||
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">{{config.title}}</a>
|
||||
版权所有
|
||||
</Row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -103,9 +99,10 @@ import { md5 } from '@/plugins/md5.js';
|
||||
import * as apiLogin from '@/api/login.js';
|
||||
import { sendSms } from '@/api/common.js';
|
||||
import Verify from '@/components/verify';
|
||||
import { User, Lock, Iphone, Document } from '@element-plus/icons-vue';
|
||||
export default {
|
||||
name: 'SignUp',
|
||||
components: { Verify },
|
||||
components: { Verify, User, Lock, Iphone, Document },
|
||||
data () {
|
||||
return {
|
||||
config:require('@/config'),
|
||||
@@ -254,7 +251,7 @@ export default {
|
||||
|
||||
.other-login {
|
||||
margin: 0 auto;
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,86 +5,81 @@
|
||||
|
||||
<div class="title-bg"><p>文章帮助中心</p></div>
|
||||
<div class="container width_1200">
|
||||
<Layout class="layoutAll">
|
||||
<Sider class="side-bar" ref="side" :collapsed-width="78">
|
||||
<div class="layoutAll">
|
||||
<el-aside class="side-bar" width="200px">
|
||||
<div class="article-cate">文章分类列表</div>
|
||||
<Menu
|
||||
<el-menu
|
||||
class="side-menu"
|
||||
theme="light"
|
||||
width="auto"
|
||||
ref='menu'
|
||||
:active-name="activeName"
|
||||
:open-names="openName"
|
||||
@on-select="onSelect"
|
||||
:key="menuKey"
|
||||
:default-active="String(activeName)"
|
||||
:default-openeds="openName"
|
||||
@select="onSelect"
|
||||
>
|
||||
<!-- 循环导航栏 -->
|
||||
<Submenu
|
||||
v-show="menu.children"
|
||||
<el-sub-menu
|
||||
v-for="(menu, index) in list"
|
||||
v-show="menu.children"
|
||||
:key="index"
|
||||
:name="menu.articleCategoryName"
|
||||
:index="menu.articleCategoryName"
|
||||
>
|
||||
<template slot="title">
|
||||
<template #title>
|
||||
<span>{{ menu.articleCategoryName }}</span>
|
||||
</template>
|
||||
<MenuItem
|
||||
<el-menu-item
|
||||
v-for="(chlidren, i) in menu.children"
|
||||
:key="i"
|
||||
:name="chlidren.id"
|
||||
>{{ chlidren.articleCategoryName }}</MenuItem
|
||||
>
|
||||
</Submenu>
|
||||
</Menu>
|
||||
</Sider>
|
||||
<Layout class="layout ml_10">
|
||||
<Content class="content">
|
||||
<ul class="article-list" v-show="showList">
|
||||
<li v-for="(article, index) in articleList" :key="index" @click="getDetail(article.id)">
|
||||
{{article.title}}
|
||||
</li>
|
||||
</ul>
|
||||
<transition mode="out-in">
|
||||
<div v-show="!showList">
|
||||
<a class="back-btn" @click="showList = true"><返回上一级</a>
|
||||
<h2 class="mt_10 mb_10">{{detail.title}}</h2>
|
||||
<div class="mt_10 mb_10" v-html="detail.content"></div>
|
||||
</div>
|
||||
</transition>
|
||||
</Content>
|
||||
</Layout>
|
||||
</Layout>
|
||||
:index="String(chlidren.id)"
|
||||
>{{ chlidren.articleCategoryName }}</el-menu-item>
|
||||
</el-sub-menu>
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
<el-main class="content ml_10">
|
||||
<ul class="article-list" v-show="showList">
|
||||
<li v-for="(article, index) in articleList" :key="index" @click="getDetail(article.id)">
|
||||
{{ article.title }}
|
||||
</li>
|
||||
</ul>
|
||||
<transition mode="out-in">
|
||||
<div v-show="!showList">
|
||||
<a class="back-btn" @click="showList = true"><返回上一级</a>
|
||||
<h2 class="mt_10 mb_10">{{ detail.title }}</h2>
|
||||
<div class="mt_10 mb_10" v-html="detail.content"></div>
|
||||
</div>
|
||||
</transition>
|
||||
</el-main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {articleCateList, articleDetail, articleList} from '@/api/common.js'
|
||||
import { articleCateList, articleDetail, articleList } from '@/api/common.js'
|
||||
|
||||
export default {
|
||||
name: 'Home',
|
||||
name: 'ArticleIndex',
|
||||
data () {
|
||||
return {
|
||||
list: [], // 分类列表
|
||||
detail: '', // 文章详情
|
||||
articleList: [], // 分类下的文章列表
|
||||
activeName: '1347456734864367616', // 左侧激活项
|
||||
openName: [], // 展开的名称
|
||||
params: { // 请求参数
|
||||
list: [],
|
||||
detail: '',
|
||||
articleList: [],
|
||||
activeName: '1347456734864367616',
|
||||
openName: [],
|
||||
menuKey: 0,
|
||||
params: {
|
||||
pageNumber: 1,
|
||||
pageSize: 100,
|
||||
categoryId: '',
|
||||
sort: 'sort'
|
||||
},
|
||||
showList: true // 展示文章列表
|
||||
showList: true
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 每次点击左侧bar的callback
|
||||
onSelect (id) {
|
||||
this.getList(id)
|
||||
this.detail = ''
|
||||
this.showList = true
|
||||
},
|
||||
getCateList () { // 文章分类列表
|
||||
getCateList () {
|
||||
articleCateList().then(res => {
|
||||
if (res.success) {
|
||||
this.list = res.result
|
||||
@@ -105,15 +100,12 @@ export default {
|
||||
this.activeName = this.list[0].children[0].id
|
||||
this.openName.push(this.list[0].articleCategoryName)
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.menu.updateOpened()
|
||||
this.$refs.menu.updateActiveName()
|
||||
})
|
||||
this.menuKey++
|
||||
this.getList(this.activeName)
|
||||
}
|
||||
})
|
||||
},
|
||||
getList (id) { // 文章列表
|
||||
getList (id) {
|
||||
this.params.categoryId = id
|
||||
articleList(this.params).then(res => {
|
||||
if (res.success) {
|
||||
@@ -121,7 +113,7 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
async getDetail (id) { // 文章详情
|
||||
async getDetail (id) {
|
||||
await articleDetail(id).then(res => {
|
||||
if (res.success) {
|
||||
this.detail = res.result
|
||||
@@ -162,6 +154,7 @@ export default {
|
||||
}
|
||||
|
||||
.layoutAll {
|
||||
display: flex;
|
||||
min-height: 1200px;
|
||||
@include background_color($light_background_color);
|
||||
}
|
||||
@@ -177,7 +170,6 @@ export default {
|
||||
|
||||
.layout-footer-center {
|
||||
padding: 0px 15px;
|
||||
|
||||
padding-bottom: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -191,7 +183,6 @@ export default {
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
color: #fff;
|
||||
line-height: 100px;
|
||||
margin: 0 auto;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
@@ -3,87 +3,89 @@
|
||||
<card _Title="账户安全"/>
|
||||
<div class="safeList">
|
||||
<!-- 密码 -->
|
||||
<Row class="safeItem">
|
||||
<Col :span="2">
|
||||
<Icon size="40" type="md-key"/>
|
||||
</Col>
|
||||
<Col :span="16">
|
||||
<div class="safeItem">
|
||||
<div :span="2">
|
||||
<el-icon :size="40"><Key /></el-icon>
|
||||
</div>
|
||||
<div :span="16">
|
||||
<div class="setDivItem">登录密码</div>
|
||||
<div class="setDivItem theme">互联网账号存在被盗风险,建议您定期更改密码以保护账户安全。</div>
|
||||
</Col>
|
||||
<Col :span="4">
|
||||
<Button @click="modifyPwd">修改密码</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
<div :span="4">
|
||||
<el-button @click="modifyPwd">修改密码</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Row class="safeItem">
|
||||
<Col :span="2">
|
||||
<Icon size="40" type="md-link" />
|
||||
</Col>
|
||||
<Col :span="16">
|
||||
<div class="safeItem">
|
||||
<div :span="2">
|
||||
<el-icon :size="40"><Link /></el-icon>
|
||||
</div>
|
||||
<div :span="16">
|
||||
<div class="setDivItem">第三方账户绑定</div>
|
||||
<div class="setDivItem theme">绑定后可使用第三方账号快捷登录。</div>
|
||||
<div class="connectList">
|
||||
<div class="connectRow">
|
||||
<div class="connectRowLeft">
|
||||
<span class="connectName">{{ wechatConnect.label }}</span>
|
||||
<Tag v-if="isBound(wechatConnect.type)" color="success">已绑定</Tag>
|
||||
<Tag v-else>未绑定</Tag>
|
||||
<el-tag v-if="isBound(wechatConnect.type)" color="success">已绑定</el-tag>
|
||||
<el-tag v-else>未绑定</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="connectLoading"></Spin>
|
||||
<el-skeleton size="large" fix v-if="connectLoading"></el-skeleton>
|
||||
</div>
|
||||
</Col>
|
||||
<Col :span="4">
|
||||
<Button v-if="!isBound(wechatConnect.type)" type="primary" @click="openBindModal(wechatConnect)">绑定</Button>
|
||||
<Button v-else @click="confirmUnbind(wechatConnect)">解绑</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
<div :span="4">
|
||||
<el-button v-if="!isBound(wechatConnect.type)" type="primary" @click="openBindModal(wechatConnect)">绑定</el-button>
|
||||
<el-button v-else @click="confirmUnbind(wechatConnect)">解绑</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Modal
|
||||
<el-dialog
|
||||
v-model="bindModalVisible"
|
||||
title="绑定第三方账户"
|
||||
:mask-closable="false"
|
||||
:close-on-click-modal="false"
|
||||
:footer-hide="bindForm.type === 'WECHAT'"
|
||||
:ok-text="bindModalOkText"
|
||||
:loading="bindSubmitLoading"
|
||||
@on-ok="submitBind"
|
||||
@on-cancel="resetBindForm"
|
||||
@ok="submitBind"
|
||||
@cancel="resetBindForm"
|
||||
>
|
||||
<Form :label-width="110">
|
||||
<FormItem label="类型">
|
||||
<Input v-model="bindForm.typeLabel" disabled />
|
||||
</FormItem>
|
||||
<el-form label-width="110px">
|
||||
<el-form-item label="类型">
|
||||
<el-input v-model="bindForm.typeLabel" disabled />
|
||||
</el-form-item>
|
||||
|
||||
<FormItem v-if="bindForm.type === 'WECHAT'" label="公众号二维码">
|
||||
<el-form-item v-if="bindForm.type === 'WECHAT'" label="公众号二维码">
|
||||
<div class="wechatQrBox">
|
||||
<div class="wechatQrImgBox">
|
||||
<Spin fix v-if="qrCodeLoading"></Spin>
|
||||
<el-skeleton fix v-if="qrCodeLoading"></el-skeleton>
|
||||
<img v-if="qrCodeSrc" class="wechatQrImg" :src="qrCodeSrc" alt="微信公众号二维码" />
|
||||
<div v-else class="wechatQrEmpty">二维码获取失败,请刷新重试</div>
|
||||
</div>
|
||||
<div class="wechatQrActions">
|
||||
<Button @click="fetchWechatQrCode">刷新二维码</Button>
|
||||
<Button type="primary" @click="submitBind">我已完成绑定</Button>
|
||||
<el-button @click="fetchWechatQrCode">刷新二维码</el-button>
|
||||
<el-button type="primary" @click="submitBind">我已完成绑定</el-button>
|
||||
</div>
|
||||
<div class="wechatQrTip">请使用微信扫码关注/授权,完成后点击“我已完成绑定”检测绑定状态</div>
|
||||
</div>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem v-if="bindForm.type !== 'WECHAT'" label="OpenID/UnionID">
|
||||
<Input v-model="bindForm.unionID" placeholder="请输入 OpenID/UnionID" />
|
||||
</FormItem>
|
||||
</Form>
|
||||
</Modal>
|
||||
<el-form-item v-if="bindForm.type !== 'WECHAT'" label="OpenID/UnionID">
|
||||
<el-input v-model="bindForm.unionID" placeholder="请输入 OpenID/UnionID" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Key, Link } from '@element-plus/icons-vue';
|
||||
// import { getPwdStatus } from '@/api/account';
|
||||
import storage from '@/plugins/storage'
|
||||
import { bindThirdAccount, getThirdAccountBindList, getWechatH5QrCode, unbindThirdAccount } from '@/api/login.js'
|
||||
export default {
|
||||
components: { Key, Link },
|
||||
name: 'AccountSafe',
|
||||
data () {
|
||||
return {
|
||||
@@ -264,7 +266,8 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
::v-deep .ivu-col-span-2, .ivu-col-span-4 {
|
||||
.safeItem > div:first-child,
|
||||
.safeItem > div:last-child {
|
||||
text-align: center;
|
||||
color: $theme_color;
|
||||
}
|
||||
@@ -281,9 +284,8 @@ export default {
|
||||
border-bottom: 1px solid $border_color;
|
||||
padding: 16px 0;
|
||||
|
||||
::v-deep .ivu-col {
|
||||
> div {
|
||||
padding: 8px 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
<div class="order">
|
||||
<div class="order-title">
|
||||
<Row class="order-row title">
|
||||
<i-col span="12">订单详情</i-col>
|
||||
<i-col span="4">收货人</i-col>
|
||||
<i-col span="4">评价</i-col>
|
||||
<i-col span="6"></i-col>
|
||||
</Row>
|
||||
<div class="order-row title">
|
||||
<div span="12">订单详情</div>
|
||||
<div span="4">收货人</div>
|
||||
<div span="4">评价</div>
|
||||
<div span="6"></div>
|
||||
</div>
|
||||
</div>
|
||||
<empty v-if="list.length === 0" />
|
||||
|
||||
@@ -20,40 +20,39 @@
|
||||
<span class="color999 ml_10">{{item.createTime}}</span>
|
||||
<span class="hover-pointer fontsize_12 eval-detail" @click="evaluateDetail(item.id)">评价详情</span>
|
||||
</div>
|
||||
<Row class="order-item-view">
|
||||
<i-col span="12" class="item-view-name">
|
||||
<div class="order-item-view">
|
||||
<div span="12" class="item-view-name">
|
||||
<div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||
<img :src="item.goodsImage" alt="" />
|
||||
</div>
|
||||
<div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||
{{item.goodsName}}
|
||||
</div>
|
||||
</i-col>
|
||||
<i-col span="4">{{item.createBy | secrecyMobile}}</i-col>
|
||||
<i-col span="4">
|
||||
</div>
|
||||
<div span="4">{{ $filters.secrecyMobile(item.createBy ) }}</div>
|
||||
<div span="4">
|
||||
{{item.grade==='GOOD'?'好评' : item.grade === 'WORSE'?'差评' : '中评'}}
|
||||
</i-col>
|
||||
<i-col span="4">
|
||||
<Tooltip transfer>
|
||||
</div>
|
||||
<div span="4">
|
||||
<el-tooltip>
|
||||
<div class="content">{{item.content}}</div>
|
||||
<div style="white-space: normal;word-break:break-all" slot="content">
|
||||
{{item.content}}
|
||||
</div>
|
||||
</Tooltip>
|
||||
</i-col>
|
||||
</Row>
|
||||
<template #content>
|
||||
<div style="white-space: normal;word-break:break-all">
|
||||
{{item.content}}
|
||||
</div>
|
||||
</template>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Spin v-if="loading"></Spin>
|
||||
<el-skeleton v-if="loading"></el-skeleton>
|
||||
</div>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page :total="total" @on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer>
|
||||
</Page>
|
||||
<el-pagination :total="total" @current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize" layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<Alert class="l_title" show-icon type="warning">我的申诉信息</Alert>
|
||||
<el-alert class="l_title" show-icon type="warning">我的申诉信息</el-alert>
|
||||
<table cellspacing="0" cellpadding='0' border="1">
|
||||
<tr>
|
||||
<td>投诉商品</td>
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="demo-upload-list" v-for="(img, index) in detail.images.split(',')" :key="index">
|
||||
<img :src="img">
|
||||
<div class="demo-upload-list-cover">
|
||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||
<el-icon @click="handleView(img)"><View /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -41,7 +41,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<Alert class="l_title" show-icon type="warning">商家申诉信息</Alert>
|
||||
<el-alert class="l_title" show-icon type="warning">商家申诉信息</el-alert>
|
||||
<table cellspacing="0" cellpadding='0' border="1">
|
||||
<tr>
|
||||
<td>申诉时间</td>
|
||||
@@ -60,7 +60,7 @@
|
||||
<div class="demo-upload-list" v-for="(img, index) in detail.appealImages.split(',')" :key="index">
|
||||
<img :src="img">
|
||||
<div class="demo-upload-list-cover">
|
||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||
<el-icon @click="handleView(img)"><View /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -70,7 +70,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<Alert class="l_title" show-icon type="warning">平台仲裁</Alert>
|
||||
<el-alert class="l_title" show-icon type="warning">平台仲裁</el-alert>
|
||||
<table cellspacing="0" cellpadding='0' border="1">
|
||||
<tr>
|
||||
<td>仲裁意见</td>
|
||||
@@ -78,7 +78,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<Alert class="l_title" show-icon type="warning">对话详情</Alert>
|
||||
<el-alert class="l_title" show-icon type="warning">对话详情</el-alert>
|
||||
<div class="speak-way" v-if="detail.orderComplaintCommunications && detail.orderComplaintCommunications.length">
|
||||
<div
|
||||
class="speak-msg seller"
|
||||
@@ -108,22 +108,24 @@
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<Button type="primary" :loading="submitLoading" @click="handleSubmit" style="margin-left: 5px">
|
||||
<el-button type="primary" :loading="submitLoading" @click="handleSubmit" style="margin-left: 5px">
|
||||
回复
|
||||
</Button>
|
||||
</el-button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<Modal title="View Image" v-model="visible">
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewImage" v-if="visible" style="width: 100%">
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { View } from '@element-plus/icons-vue';
|
||||
import {getComplainDetail} from '@/api/member.js';
|
||||
import {communication} from '@/api/order';
|
||||
export default {
|
||||
components: { View },
|
||||
data () {
|
||||
return {
|
||||
detail: {}, // 评价详情
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
<div class="order">
|
||||
<div class="order-title">
|
||||
<Row class="order-row title">
|
||||
<i-col span="12">商品信息</i-col>
|
||||
<i-col span="4">投诉状态</i-col>
|
||||
<i-col span="4">投诉主题</i-col>
|
||||
<i-col span="6"></i-col>
|
||||
</Row>
|
||||
<div class="order-row title">
|
||||
<div span="12">商品信息</div>
|
||||
<div span="4">投诉状态</div>
|
||||
<div span="4">投诉主题</div>
|
||||
<div span="6"></div>
|
||||
</div>
|
||||
</div>
|
||||
<empty v-if="list.length === 0" />
|
||||
|
||||
@@ -21,40 +21,39 @@
|
||||
<span class="hover-pointer fontsize_12 eval-detail" @click="goDetail(item.id)">投诉详情</span>
|
||||
<span class="hover-pointer fontsize_12 eval-detail" style="right: 90px" v-if="item.complainStatus === 'APPLYING' || item.complainStatus === 'NEW'" @click="cancel(item.id)">取消投诉</span>
|
||||
</div>
|
||||
<Row class="order-item-view">
|
||||
<i-col span="12" class="item-view-name">
|
||||
<div class="order-item-view">
|
||||
<div span="12" class="item-view-name">
|
||||
<div class="order-img hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||
<img :src="item.goodsImage" alt="" />
|
||||
</div>
|
||||
<div class="order-name hover-color" @click="linkTo(`/goodsDetail?goodsId=${item.goodsId}&skuId=${item.skuId}`)">
|
||||
{{item.goodsName}}
|
||||
</div>
|
||||
</i-col>
|
||||
<i-col span="4">{{statusLabel[item.complainStatus]}}</i-col>
|
||||
<i-col span="4">
|
||||
</div>
|
||||
<div span="4">{{statusLabel[item.complainStatus]}}</div>
|
||||
<div span="4">
|
||||
<div class="content">{{item.complainTopic}}</div>
|
||||
</i-col>
|
||||
<i-col span="4">
|
||||
<Tooltip >
|
||||
</div>
|
||||
<div span="4">
|
||||
<el-tooltip>
|
||||
<div class="content">{{item.content}}</div>
|
||||
<div style="white-space: normal;" slot="content">
|
||||
{{item.content}}
|
||||
</div>
|
||||
</Tooltip>
|
||||
</i-col>
|
||||
</Row>
|
||||
<template #content>
|
||||
<div style="white-space: normal;">
|
||||
{{item.content}}
|
||||
</div>
|
||||
</template>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Spin v-if="loading"></Spin>
|
||||
<el-skeleton v-if="loading"></el-skeleton>
|
||||
</div>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page :total="total" @on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer>
|
||||
</Page>
|
||||
<el-pagination :total="total" @current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize" layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -4,39 +4,38 @@
|
||||
<!-- 分销申请 -->
|
||||
|
||||
<div v-if="status === 0">
|
||||
<Alert type="warning">分销商申请</Alert>
|
||||
<Form ref="form" :model="applyForm" :rules="rules">
|
||||
<FormItem label="姓名" prop="name">
|
||||
<Input v-model="applyForm.name"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="身份证号" prop="idNumber">
|
||||
<Input v-model="applyForm.idNumber"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="银行开户行" prop="settlementBankBranchName">
|
||||
<Input v-model="applyForm.settlementBankBranchName"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="银行开户名" prop="settlementBankAccountName">
|
||||
<Input v-model="applyForm.settlementBankAccountName"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="银行账号" prop="settlementBankAccountNum">
|
||||
<Input v-model="applyForm.settlementBankAccountNum"></Input>
|
||||
</FormItem>
|
||||
<el-alert type="warning">分销商申请</el-alert>
|
||||
<el-form ref="form" :model="applyForm" :rules="rules">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="applyForm.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input v-model="applyForm.idNumber"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="银行开户行" prop="settlementBankBranchName">
|
||||
<el-input v-model="applyForm.settlementBankBranchName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="银行开户名" prop="settlementBankAccountName">
|
||||
<el-input v-model="applyForm.settlementBankAccountName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="银行账号" prop="settlementBankAccountNum">
|
||||
<el-input v-model="applyForm.settlementBankAccountNum"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem>
|
||||
<Button type="primary" :loading="applyLoading" @click="apply"
|
||||
>提交申请</Button
|
||||
<el-form-item>
|
||||
<el-button type="primary" :loading="applyLoading" @click="apply"
|
||||
>提交申请</el-button
|
||||
>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 分销审核 -->
|
||||
<div v-if="status === 1">
|
||||
<Alert type="success">
|
||||
您提交的信息正在审核
|
||||
<template slot="desc"
|
||||
>提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
|
||||
>
|
||||
</Alert>
|
||||
<el-alert
|
||||
type="success"
|
||||
title="您提交的信息正在审核"
|
||||
description="提交认证申请后,工作人员将在三个工作日进行核对完成审核"
|
||||
/>
|
||||
</div>
|
||||
<!-- 分销提现、商品、订单 -->
|
||||
<div v-if="status === 2">
|
||||
@@ -54,211 +53,173 @@
|
||||
<div class="mb_20 account-price">
|
||||
<span class="subTips">可提现金额:</span>
|
||||
<span class="fontsize_48 global_color"
|
||||
>¥{{ result.canRebate | unitPrice }}</span
|
||||
>
|
||||
>¥{{ $filters.unitPrice(result.canRebate) }}</span>
|
||||
<span class="subTips">冻结金额:</span>
|
||||
<span class="">¥{{ result.commissionFrozen | unitPrice }}</span>
|
||||
<span class="">¥{{ $filters.unitPrice(result.commissionFrozen) }}</span>
|
||||
<span class="subTips">返利总金额:</span>
|
||||
<span class="">¥{{ result.rebateTotal | unitPrice }}</span>
|
||||
<Button
|
||||
<span class="">¥{{ $filters.unitPrice(result.rebateTotal) }}</span>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
class="ml_20"
|
||||
@click="withdrawApplyModal = true"
|
||||
>申请提现</Button
|
||||
>申请提现</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<Tabs :value="tabName" @on-click="tabPaneChange">
|
||||
<TabPane label="已选商品" name="goodsChecked">
|
||||
<Table stripe :columns="goodsColumns" :data="goodsData.records">
|
||||
<template slot-scope="{ row }" slot="name">
|
||||
<div
|
||||
class="goods-msg"
|
||||
@click="
|
||||
linkTo(
|
||||
`/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`
|
||||
)
|
||||
"
|
||||
>
|
||||
<img
|
||||
style="vertical-align: top"
|
||||
:src="row.thumbnail"
|
||||
width="60"
|
||||
height="60"
|
||||
alt=""
|
||||
/> {{ row.goodsName }}
|
||||
</div>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="price">
|
||||
<span> ¥{{ row.price | unitPrice }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="commission">
|
||||
<span> ¥{{ row.commission | unitPrice }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="action">
|
||||
<Button
|
||||
type="success"
|
||||
size="small"
|
||||
style="margin-right: 5px"
|
||||
@click="fenxiao(row)"
|
||||
>分销商品</Button
|
||||
>
|
||||
<Button
|
||||
type="error"
|
||||
size="small"
|
||||
@click="selectGoods(row.id, false)"
|
||||
>取消选择</Button
|
||||
>
|
||||
</template>
|
||||
</Table>
|
||||
<el-tabs v-model="tabName" @tab-click="(tab) => tabPaneChange(tab.paneName)">
|
||||
<el-tab-pane label="已选商品" name="goodsChecked">
|
||||
<el-table stripe :data="goodsData.records || []">
|
||||
<el-table-column label="商品名称" width="400">
|
||||
<template #default="{ row }">
|
||||
<div
|
||||
class="goods-msg"
|
||||
@click="linkTo(`/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`)"
|
||||
>
|
||||
<img style="vertical-align: top" :src="row.thumbnail" width="60" height="60" alt="" />
|
||||
{{ row.goodsName }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品价格">
|
||||
<template #default="{ row }">
|
||||
<span> ¥{{ $filters.unitPrice(row.price) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="佣金">
|
||||
<template #default="{ row }">
|
||||
<span> ¥{{ $filters.unitPrice(row.commission) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button type="success" size="small" style="margin-right: 5px" @click="fenxiao(row)">分销商品</el-button>
|
||||
<el-button type="danger" size="small" @click="selectGoods(row.id, false)">取消选择</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="params.pageNumber"
|
||||
<el-pagination :current-page="params.pageNumber"
|
||||
:total="goodsData.total"
|
||||
:page-size="params.pageSize"
|
||||
@on-change="changePage"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
@current-change="changePage"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
<TabPane label="未选商品" name="goodsUncheck">
|
||||
<Table stripe :columns="goodsColumns" :data="goodsData.records">
|
||||
<template slot-scope="{ row }" slot="name">
|
||||
<div
|
||||
class="goods-msg"
|
||||
@click="
|
||||
linkTo(
|
||||
`/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`
|
||||
)
|
||||
"
|
||||
>
|
||||
<img
|
||||
style="vertical-align: top"
|
||||
:src="row.thumbnail"
|
||||
width="60"
|
||||
height="60"
|
||||
alt=""
|
||||
/> {{ row.goodsName }}
|
||||
</div>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="price">
|
||||
<span> ¥{{ row.price | unitPrice }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="commission">
|
||||
<span> ¥{{ row.commission | unitPrice }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="action">
|
||||
<Button
|
||||
type="primary"
|
||||
size="small"
|
||||
style="margin-right: 5px"
|
||||
@click="selectGoods(row.id, true)"
|
||||
>选择商品</Button
|
||||
>
|
||||
</template>
|
||||
</Table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="未选商品" name="goodsUncheck">
|
||||
<el-table stripe :data="goodsData.records || []">
|
||||
<el-table-column label="商品名称" width="400">
|
||||
<template #default="{ row }">
|
||||
<div
|
||||
class="goods-msg"
|
||||
@click="linkTo(`/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`)"
|
||||
>
|
||||
<img style="vertical-align: top" :src="row.thumbnail" width="60" height="60" alt="" />
|
||||
{{ row.goodsName }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品价格">
|
||||
<template #default="{ row }">
|
||||
<span> ¥{{ $filters.unitPrice(row.price) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="佣金">
|
||||
<template #default="{ row }">
|
||||
<span> ¥{{ $filters.unitPrice(row.commission) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="120">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" size="small" style="margin-right: 5px" @click="selectGoods(row.id, true)">选择商品</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="params.pageNumber"
|
||||
<el-pagination :current-page="params.pageNumber"
|
||||
:total="goodsData.total"
|
||||
:page-size="params.pageSize"
|
||||
@on-change="changePage"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
@current-change="changePage"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
<TabPane label="提现记录" name="log">
|
||||
<Table stripe :columns="logColumns" :data="logData.records">
|
||||
<template slot-scope="{ row }" slot="sn">
|
||||
<span>{{ row.sn }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="time">
|
||||
<span>{{ row.createTime }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="price">
|
||||
<span
|
||||
v-if="row.distributionCashStatus == 'VIA_AUDITING'"
|
||||
style="color: green"
|
||||
>
|
||||
+¥{{ row.price | unitPrice }}</span
|
||||
>
|
||||
<span v-else style="color: red">
|
||||
-¥{{ row.price | unitPrice }}</span
|
||||
>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="status">
|
||||
<span>
|
||||
{{
|
||||
row.distributionCashStatus == "APPLY"
|
||||
? "待处理"
|
||||
: row.distributionCashStatus == "VIA_AUDITING"
|
||||
? "通过"
|
||||
: "拒绝"
|
||||
}}</span
|
||||
>
|
||||
</template>
|
||||
</Table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="提现记录" name="log">
|
||||
<el-table stripe :data="logData.records || []">
|
||||
<el-table-column prop="sn" label="编号" />
|
||||
<el-table-column prop="createTime" label="申请时间" />
|
||||
<el-table-column label="提现金额">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.distributionCashStatus == 'VIA_AUDITING'" style="color: green">
|
||||
+¥{{ $filters.unitPrice(row.price) }}
|
||||
</span>
|
||||
<span v-else style="color: red">
|
||||
-¥{{ $filters.unitPrice(row.price) }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现状态">
|
||||
<template #default="{ row }">
|
||||
<span>
|
||||
{{
|
||||
row.distributionCashStatus == "APPLY"
|
||||
? "待处理"
|
||||
: row.distributionCashStatus == "VIA_AUDITING"
|
||||
? "通过"
|
||||
: "拒绝"
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="logParams.pageNumber"
|
||||
<el-pagination :current-page="logParams.pageNumber"
|
||||
:total="logData.total"
|
||||
:page-size="logParams.pageSize"
|
||||
@on-change="changePageLog"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
@current-change="changePageLog"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
</Tabs>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
<!-- 未开放 -->
|
||||
<div v-if="status === 3">
|
||||
<Alert type="error">
|
||||
分销功能暂未开启
|
||||
<template slot="desc"
|
||||
>提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
|
||||
>
|
||||
</Alert>
|
||||
<el-alert type="danger" title="分销功能暂未开启" />
|
||||
</div>
|
||||
<!-- 分销资格被清退 -->
|
||||
<div v-if="status === 4">
|
||||
<Alert type="error">
|
||||
<el-alert type="danger">
|
||||
您的分销资格已被清退。请联系管理员或进行申诉
|
||||
|
||||
<Button style="margin-left: 50px;" type="warning" @click="repaying">申诉</Button>
|
||||
</Alert>
|
||||
<el-button style="margin-left: 50px;" type="warning" @click="repaying">申诉</el-button>
|
||||
</el-alert>
|
||||
</div>
|
||||
<!-- 分销申诉审核 -->
|
||||
<div v-if="status === 5">
|
||||
<Alert type="success">
|
||||
您提交的申诉正在审核
|
||||
<template slot="desc"
|
||||
>提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
|
||||
>
|
||||
</Alert>
|
||||
<el-alert
|
||||
type="success"
|
||||
title="您提交的申诉正在审核"
|
||||
description="提交认证申请后,工作人员将在三个工作日进行核对完成审核"
|
||||
/>
|
||||
</div>
|
||||
<Modal v-model="withdrawApplyModal" width="530">
|
||||
<p slot="header">
|
||||
<Icon type="edit"></Icon>
|
||||
<el-dialog v-model="withdrawApplyModal" width="530">
|
||||
<template #header><p>
|
||||
<el-icon><Edit /></el-icon>
|
||||
<span>提现金额</span>
|
||||
</p>
|
||||
</p></template>
|
||||
<div>
|
||||
<Input v-model="withdrawPrice" size="large" number maxlength="9"
|
||||
><span slot="append">元</span></Input
|
||||
<el-input v-model="withdrawPrice" size="large" number maxlength="9"
|
||||
><template #append><span>元</span></template></el-input
|
||||
>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: center">
|
||||
<Button type="primary" size="large" @click="withdraw">提现</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<Modal v-model="qrcodeShow" title="分销商品" width="800">
|
||||
<Alert type="warning"> 下载二维码或者复制链接分享商品 </Alert>
|
||||
<template #footer><div style="text-align: center">
|
||||
<el-button type="primary" size="large" @click="withdraw">提现</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="qrcodeShow" title="分销商品" width="800">
|
||||
<el-alert type="warning"> 下载二维码或者复制链接分享商品 </el-alert>
|
||||
<div class="qrcode">
|
||||
<div style="width: 150px; height: 150px; border: 1px solid #eee">
|
||||
<vue-qr
|
||||
@@ -270,8 +231,8 @@
|
||||
:size="150"
|
||||
></vue-qr>
|
||||
<div class="qrcode-platform">PC端</div>
|
||||
<Button class="download-btn" type="success" @click="downloadQrcode"
|
||||
>下载二维码</Button
|
||||
<el-button class="download-btn" type="success" @click="downloadQrcode"
|
||||
>下载二维码</el-button
|
||||
>
|
||||
</div>
|
||||
<div style="width: 150px; height: 150px; border: 1px solid #eee">
|
||||
@@ -284,20 +245,20 @@
|
||||
:size="150"
|
||||
></vue-qr>
|
||||
<div class="qrcode-platform">移动应用端</div>
|
||||
<Button class="download-btn" type="success" @click="downloadQrcodeH5"
|
||||
>下载二维码</Button
|
||||
<el-button class="download-btn" type="success" @click="downloadQrcodeH5"
|
||||
>下载二维码</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt_10" style="margin-top: 100px;">
|
||||
商品链接:<Input style="width: 600px" v-model="qrcode"></Input>
|
||||
</div>
|
||||
</Modal>
|
||||
商品链接:<el-input style="width: 600px" v-model="qrcode"></el-input>
|
||||
</div></el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Edit } from '@element-plus/icons-vue';
|
||||
import {
|
||||
distribution,
|
||||
applyDistribution,
|
||||
@@ -311,7 +272,7 @@ import { checkBankno } from "@/plugins/Foundation";
|
||||
import vueQr from "vue-qr";
|
||||
export default {
|
||||
name: "Distribution",
|
||||
components: { vueQr },
|
||||
components: { vueQr, Edit },
|
||||
data() {
|
||||
return {
|
||||
config:require('@/config'),
|
||||
@@ -358,20 +319,6 @@ export default {
|
||||
withdrawPrice: 0, // 提现金额
|
||||
goodsData: {}, // 商品数据
|
||||
logData: {}, // 日志数据
|
||||
goodsColumns: [
|
||||
// 商品表头
|
||||
{ title: "商品名称", slot: "name", width: 400 },
|
||||
{ title: "商品价格", slot: "price" },
|
||||
{ title: "佣金", slot: "commission" },
|
||||
{ title: "操作", slot: "action", minWidth: 120 },
|
||||
],
|
||||
logColumns: [
|
||||
// 日志表头
|
||||
{ title: "编号", slot: "sn" },
|
||||
{ title: "申请时间", slot: "time" },
|
||||
{ title: "提现金额", slot: "price" },
|
||||
{ title: "提现状态", slot: "status" },
|
||||
],
|
||||
params: {
|
||||
// 商品请求参数
|
||||
pageNumber: 1,
|
||||
@@ -584,7 +531,7 @@ export default {
|
||||
margin-left: 25px;
|
||||
margin-top: 5px
|
||||
}
|
||||
::v-deep .ivu-alert-message {
|
||||
:deep(.el-alert__content) {
|
||||
p {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
@@ -17,22 +17,22 @@
|
||||
</div>
|
||||
<div v-else class="goodsTitle hover-pointer" @click="buynow(item.skuId, item.goodsId,item.id)" >
|
||||
{{ item.storeName }}
|
||||
<Tag color="error" class="operated" v-if="item.selfOperated">商家自营</Tag>
|
||||
<el-tag color="error" class="operated" v-if="item.selfOperated">商家自营</el-tag>
|
||||
</div>
|
||||
<div class="goodsPrice">
|
||||
<span v-if="params.type === 'GOODS'">{{ item.price | unitPrice('¥') }}</span>
|
||||
<span v-if="params.type === 'GOODS'">{{ $filters.unitPrice(item.price, '¥') }}</span>
|
||||
|
||||
</div>
|
||||
<div class="goodsBuy">
|
||||
<Button size="small" type="primary" @click="buynow(item.skuId, item.goodsId)"
|
||||
v-if="params.type === 'GOODS'">立即购买</Button>
|
||||
<Button size="small" type="primary" @click="goShop(item.id)" v-else>店铺购买</Button>
|
||||
<Button size="small" v-if="params.type === 'GOODS'" @click="cancel(item.skuId)">取消收藏</Button>
|
||||
<Button size="small" v-if="params.type === 'STORE'" @click="cancelStore(item.id)">取消收藏</Button>
|
||||
<el-button size="small" type="primary" @click="buynow(item.skuId, item.goodsId)"
|
||||
v-if="params.type === 'GOODS'">立即购买</el-button>
|
||||
<el-button size="small" type="primary" @click="goShop(item.id)" v-else>店铺购买</el-button>
|
||||
<el-button size="small" v-if="params.type === 'GOODS'" @click="cancel(item.skuId)">取消收藏</el-button>
|
||||
<el-button size="small" v-if="params.type === 'STORE'" @click="cancelStore(item.id)">取消收藏</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="spinShow"></Spin>
|
||||
<el-skeleton size="large" fix v-if="spinShow"></el-skeleton>
|
||||
</div>
|
||||
<empty v-else />
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="gradeNameRow">
|
||||
<span class="gradeNameText">{{ currentGrade.gradeName || '暂无等级' }}</span>
|
||||
<span v-if="currentGradeBenefits.length" class="benefitTagsInline">
|
||||
<Tag v-for="b in currentGradeBenefits" :key="b.id" class="benefitTag" color="blue">{{ b.benefitName || '-' }}</Tag>
|
||||
<el-tag v-for="b in currentGradeBenefits" :key="b.id" class="benefitTag" color="blue">{{ b.benefitName || '-' }}</el-tag>
|
||||
</span>
|
||||
</div>
|
||||
<div class="gradeExp">
|
||||
@@ -24,54 +24,58 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Tabs value="rules">
|
||||
<TabPane label="获取经验值方式" name="rules">
|
||||
<Table :columns="ruleColumns" :data="ruleList" :loading="rulesLoading">
|
||||
<template slot-scope="{ row }" slot="ruleItem">
|
||||
<div class="ruleItem">
|
||||
<div class="ruleTop">
|
||||
<div class="ruleName">
|
||||
<span>{{ row.ruleName || row.ruleKey || '-' }}</span>
|
||||
<el-tabs value="rules">
|
||||
<el-tab-pane label="获取经验值方式" name="rules">
|
||||
<el-table v-loading="rulesLoading" :data="ruleList">
|
||||
<el-table-column label="获取方式" min-width="720">
|
||||
<template #default="{ row }">
|
||||
<div class="ruleItem">
|
||||
<div class="ruleTop">
|
||||
<div class="ruleName">
|
||||
<span>{{ row.ruleName || row.ruleKey || '-' }}</span>
|
||||
</div>
|
||||
<el-tag v-if="row.completed === true" color="success">已完成</el-tag>
|
||||
<el-tag v-else color="default">未完成</el-tag>
|
||||
</div>
|
||||
<div class="ruleDesc">{{ getRuleDesc(row.ruleKey) }}</div>
|
||||
<div class="ruleMeta">
|
||||
<span class="metaItem">单次获得:<b>+{{ row.value == null ? 0 : row.value }}</b></span>
|
||||
<span v-if="row.maxValue != null && Number(row.maxValue) > 0" class="metaItem">限额:<b>{{ row.maxValue }}</b></span>
|
||||
<span class="metaItem">已获得:<b>{{ row.gainedExperience == null ? 0 : row.gainedExperience }}</b></span>
|
||||
</div>
|
||||
<Tag v-if="row.completed === true" color="success">已完成</Tag>
|
||||
<Tag v-else color="default">未完成</Tag>
|
||||
</div>
|
||||
<div class="ruleDesc">{{ getRuleDesc(row.ruleKey) }}</div>
|
||||
<div class="ruleMeta">
|
||||
<span class="metaItem">单次获得:<b>+{{ row.value == null ? 0 : row.value }}</b></span>
|
||||
<span v-if="row.maxValue != null && Number(row.maxValue) > 0" class="metaItem">限额:<b>{{ row.maxValue }}</b></span>
|
||||
<span class="metaItem">已获得:<b>{{ row.gainedExperience == null ? 0 : row.gainedExperience }}</b></span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</Table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="rulesDesc" v-if="rulesDescription">{{ rulesDescription }}</div>
|
||||
</TabPane>
|
||||
<TabPane label="经验值记录" name="logs">
|
||||
<Table :columns="logColumns" :data="experienceLogs.records || []" :loading="logLoading">
|
||||
<template slot-scope="{ row }" slot="rule">
|
||||
<span>{{ getRuleName(row.ruleKey) }}</span>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="delta">
|
||||
<div :style="{color: getLogDeltaColor(row)}">
|
||||
<span v-if="getLogDeltaSign(row) === '+'">+</span>{{ getLogDeltaAbsValue(row) }}
|
||||
</div>
|
||||
</template>
|
||||
</Table>
|
||||
<Page
|
||||
style="float:right;margin-top:10px"
|
||||
:current="params.pageNumber"
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="经验值记录" name="logs">
|
||||
<el-table v-loading="logLoading" :data="experienceLogs.records || []">
|
||||
<el-table-column prop="createTime" label="时间" align="center" min-width="160" />
|
||||
<el-table-column label="规则" align="center" min-width="160">
|
||||
<template #default="{ row }">
|
||||
<span>{{ getRuleName(row.ruleKey) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="变动值" align="center" min-width="120">
|
||||
<template #default="{ row }">
|
||||
<div :style="{ color: getLogDeltaColor(row) }">
|
||||
<span v-if="getLogDeltaSign(row) === '+'">+</span>{{ getLogDeltaAbsValue(row) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination style="float:right;margin-top:10px"
|
||||
:current-page="params.pageNumber"
|
||||
:total="experienceLogs.total || 0"
|
||||
:page-size="params.pageSize"
|
||||
@on-change="changePage"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
</TabPane>
|
||||
</Tabs>
|
||||
@current-change="changePage"
|
||||
@size-change="changePageSize"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -100,34 +104,7 @@ export default {
|
||||
pageNumber: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
experienceLogs: {},
|
||||
ruleColumns: [
|
||||
{
|
||||
title: '获取方式',
|
||||
slot: 'ruleItem',
|
||||
minWidth: 720
|
||||
}
|
||||
],
|
||||
logColumns: [
|
||||
{
|
||||
title: '时间',
|
||||
key: 'createTime',
|
||||
align: 'center',
|
||||
minWidth: 160
|
||||
},
|
||||
{
|
||||
title: '规则',
|
||||
slot: 'rule',
|
||||
align: 'center',
|
||||
minWidth: 160
|
||||
},
|
||||
{
|
||||
title: '变动值',
|
||||
slot: 'delta',
|
||||
align: 'center',
|
||||
minWidth: 120
|
||||
}
|
||||
]
|
||||
experienceLogs: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
@@ -2,77 +2,78 @@
|
||||
<div class="wrapper">
|
||||
<card _Title="账户安全"/>
|
||||
<!-- 手机号验证 -->
|
||||
<Form ref="formData" :model="formData" label-position="left" :label-width="100" :rules="ruleInLines"
|
||||
<el-form ref="formData" :model="formData" label-position="left" label-width="100px" :rules="ruleInLines"
|
||||
v-if="(status == 2 || status == 3) && !showPwd">
|
||||
<FormItem label="手机号">
|
||||
<el-form-item label="手机号">
|
||||
<div class="phone">1234567890</div>
|
||||
</FormItem>
|
||||
<FormItem label="图片验证码" prop="picture" style="width: 350px">
|
||||
<i-input v-model="formData.picture" size="large" maxlength="4"></i-input>
|
||||
</FormItem>
|
||||
<FormItem label="短信验证码" prop="msg">
|
||||
<i-input v-model="formData.msg" size="large" maxlength="6" style="width: 250px">
|
||||
<span slot="append">输入验证码</span>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<div slot="footer" v-if="(status == 2 || status == 3) && !showPwd" style="text-align: center;width: 50%">
|
||||
<Button type="primary" class="ml_10" @click="submitRegister">下一步</Button>
|
||||
</el-form-item>
|
||||
<el-form-item label="图片验证码" prop="picture" style="width: 350px">
|
||||
<el-input v-model="formData.picture" size="large" maxlength="4"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信验证码" prop="msg">
|
||||
<el-input v-model="formData.msg" size="large" maxlength="6" style="width: 250px">
|
||||
<template #append><span>输入验证码</span></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div v-if="(status == 2 || status == 3) && !showPwd" style="text-align: center;width: 50%">
|
||||
<el-button type="primary" class="ml_10" @click="submitRegister">下一步</el-button>
|
||||
</div>
|
||||
|
||||
<!-- 修改 -->
|
||||
<Form ref="formRegister" :model="formRegister" :rules="ruleInline" :label-width="80" v-if="status == 1 && !showPwd">
|
||||
<FormItem label="旧密码" prop="password">
|
||||
<i-input type="password" v-model="formRegister.password" clearable size="large" placeholder="请输入旧密码"
|
||||
<el-form ref="formRegister" :model="formRegister" :rules="ruleInline" label-width="80px" v-if="status == 1 && !showPwd">
|
||||
<el-form-item label="旧密码" prop="password">
|
||||
<el-input type="password" v-model="formRegister.password" clearable size="large" placeholder="请输入旧密码"
|
||||
style="width: 300px"
|
||||
maxlength="12">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem label="新密码" prop="newPassword">
|
||||
<i-input type="password" v-model="formRegister.newPassword" clearable size="large" placeholder="请输入新密码"
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码" prop="newPassword">
|
||||
<el-input type="password" v-model="formRegister.newPassword" clearable size="large" placeholder="请输入新密码"
|
||||
style="width: 300px"
|
||||
maxlength="12">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem label="确认密码" prop="againPassword">
|
||||
<i-input type="password" v-model="formRegister.againPassword" clearable size="large" placeholder="请输入确认密码"
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="againPassword">
|
||||
<el-input type="password" v-model="formRegister.againPassword" clearable size="large" placeholder="请输入确认密码"
|
||||
style="width: 300px"
|
||||
maxlength="12">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
</Form>
|
||||
<div slot="footer" v-if="status == 1 && !showPwd" style="width: 50%;text-align: center">
|
||||
<Button type="primary" class="ml_10" @click="handleRegist">修改</Button>
|
||||
</el-form>
|
||||
<div v-if="status == 1 && !showPwd" style="width: 50%;text-align: center">
|
||||
<el-button type="primary" class="ml_10" @click="handleRegist">修改</el-button>
|
||||
</div>
|
||||
<!-- 设置&修改的第二种情况 -->
|
||||
<Form ref="formDataUpdate" :model="formDataUpdate" label-position="left" :label-width="100" :rules="ruleIn"
|
||||
<el-form ref="formDataUpdate" :model="formDataUpdate" label-position="left" label-width="100px" :rules="ruleIn"
|
||||
v-if="showPwd">
|
||||
<FormItem label="新密码" prop="newPassword">
|
||||
<i-input type="password" v-model="formDataUpdate.newPassword" clearable size="large" placeholder="请输入新密码"
|
||||
<el-form-item label="新密码" prop="newPassword">
|
||||
<el-input type="password" v-model="formDataUpdate.newPassword" clearable size="large" placeholder="请输入新密码"
|
||||
style="width: 300px"
|
||||
maxlength="12">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem label="确认密码" prop="againPassword">
|
||||
<i-input type="password" v-model="formDataUpdate.againPassword" clearable size="large" placeholder="请输入确认密码"
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="againPassword">
|
||||
<el-input type="password" v-model="formDataUpdate.againPassword" clearable size="large" placeholder="请输入确认密码"
|
||||
style="width: 300px"
|
||||
maxlength="12">
|
||||
<Icon type="md-lock" slot="prepend"></Icon>
|
||||
</i-input>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<div slot="footer" v-if="showPwd" style="text-align: center;width: 50%">
|
||||
<Button type="primary" class="ml_10" @click="setPassword">设置</Button>
|
||||
<template #prepend><el-icon><Lock /></el-icon></template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div v-if="showPwd" style="text-align: center;width: 50%">
|
||||
<el-button type="primary" class="ml_10" @click="setPassword">设置</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Lock } from '@element-plus/icons-vue';
|
||||
import {
|
||||
setPwd,
|
||||
editPwd
|
||||
@@ -80,6 +81,7 @@ import {
|
||||
import {md5} from '@/plugins/md5.js'
|
||||
|
||||
export default {
|
||||
components: { Lock },
|
||||
name: 'modifyPwd',
|
||||
data () {
|
||||
return {
|
||||
|
||||
@@ -6,26 +6,27 @@
|
||||
<span>累计获得:<span>{{ pointObj.totalPoint || 0 }}</span></span>
|
||||
</div>
|
||||
<h3>积分日志</h3>
|
||||
<Table :columns="logColumns" :data="logData.records">
|
||||
<template slot-scope="{ row }" slot="point">
|
||||
<div :style="{color:row.pointType === 'INCREASE' ? 'green' : 'red'}">
|
||||
<span v-if="row.pointType === 'INCREASE'">+</span>{{ row.variablePoint }}
|
||||
</div>
|
||||
</template>
|
||||
</Table>
|
||||
<el-table :data="logData.records || []">
|
||||
<el-table-column prop="content" label="日志内容" align="center" />
|
||||
<el-table-column prop="createTime" label="时间" align="center" />
|
||||
<el-table-column label="积分明细" align="center">
|
||||
<template #default="{ row }">
|
||||
<div :style="{ color: row.pointType === 'INCREASE' ? 'green' : 'red' }">
|
||||
<span v-if="row.pointType === 'INCREASE'">+</span>{{ row.variablePoint }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<Page
|
||||
style="float:right;margin-top:10px"
|
||||
:current="params.pageNumber"
|
||||
<el-pagination style="float:right;margin-top:10px"
|
||||
:current-page="params.pageNumber"
|
||||
:total="logData.total"
|
||||
:page-size="params.pageSize"
|
||||
@on-change="changePage"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
@current-change="changePage"
|
||||
@size-change="changePageSize"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -42,23 +43,6 @@ export default {
|
||||
pageNumber: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
logColumns: [ // table展示数据
|
||||
{
|
||||
title: '日志内容',
|
||||
key: 'content',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '时间',
|
||||
key: 'createTime',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '积分明细',
|
||||
slot: 'point',
|
||||
align: 'center'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<card _Title="用户信息" />
|
||||
<Form :model="formItem" :rules="rules" ref="form" :label-width="80">
|
||||
<FormItem label="头像">
|
||||
<Avatar v-if="formItem.face" :src="formItem.face" size="80"/>
|
||||
<Avatar v-else icon="ios-person" size="80"/>
|
||||
<Upload
|
||||
<el-form :model="formItem" :rules="rules" ref="form" label-width="80px">
|
||||
<el-form-item label="头像">
|
||||
<el-avatar v-if="formItem.face" :src="formItem.face" :size="80" />
|
||||
<el-avatar v-else :size="80"><el-icon><User /></el-icon></el-avatar>
|
||||
<el-upload
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:format="['jpg','jpeg','png']"
|
||||
:action="action"
|
||||
:headers="accessToken"
|
||||
>
|
||||
<Button class="mt_10">上传头像</Button>
|
||||
</Upload>
|
||||
</FormItem>
|
||||
<FormItem label="昵称" prop="nickName">
|
||||
<Input class="wrapper-user-name" style="width:187px" v-model="formItem.nickName" placeholder="" />
|
||||
</FormItem>
|
||||
<el-button class="mt_10">上传头像</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="昵称" prop="nickName">
|
||||
<el-input class="wrapper-user-name" style="width:187px" v-model="formItem.nickName" placeholder="" />
|
||||
</el-form-item>
|
||||
|
||||
<FormItem label="生日">
|
||||
<DatePicker type="date" placeholder="选择您的生日" v-model="formItem.birthday"></DatePicker>
|
||||
</FormItem>
|
||||
<FormItem label="性别">
|
||||
<RadioGroup v-model="formItem.sex" type="button" button-style="solid">
|
||||
<Radio :label="1">男</Radio>
|
||||
<Radio :label="0">女</Radio>
|
||||
</RadioGroup>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="primary" @click="save">确认修改</Button>
|
||||
<el-form-item label="生日">
|
||||
<el-date-picker type="date" placeholder="选择您的生日" v-model="formItem.birthday"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-radio-group v-model="formItem.sex" type="button" button-style="solid">
|
||||
<el-radio :label="1">男</el-radio>
|
||||
<el-radio :label="0">女</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="save">确认修改</el-button>
|
||||
|
||||
</FormItem>
|
||||
</Form>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -40,7 +40,9 @@
|
||||
import { editMemberInfo } from '@/api/account.js';
|
||||
import { commonUrl } from '@/plugins/request.js';
|
||||
import storage from '@/plugins/storage.js';
|
||||
import { User } from '@element-plus/icons-vue';
|
||||
export default {
|
||||
components: { User },
|
||||
name: 'Profile',
|
||||
data () {
|
||||
return {
|
||||
@@ -103,7 +105,7 @@ export default {
|
||||
})
|
||||
},
|
||||
handleSuccess (res, file) { // 上传成功
|
||||
this.$set(this.formItem, 'face', res.result)
|
||||
this.formItem['face'] = res.result
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
<div class="delivery-rate">
|
||||
<div class="fontsize_16">物流服务评价:</div>
|
||||
<div class="color999">
|
||||
<span>物流评价:<Rate v-model="form.deliveryScore" /></span>
|
||||
<span>服务评价:<Rate v-model="form.serviceScore" /></span>
|
||||
<span>描述评价:<Rate v-model="form.descriptionScore" /></span>
|
||||
<span>物流评价:<el-rate v-model="form.deliveryScore" /></span>
|
||||
<span>服务评价:<el-rate v-model="form.serviceScore" /></span>
|
||||
<span>描述评价:<el-rate v-model="form.descriptionScore" /></span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 添加订单评价 左侧商品详情 右侧评价框 -->
|
||||
@@ -22,28 +22,28 @@
|
||||
<div class="goods-con">
|
||||
<img :src="orderGoods.image" class="hover-pointer" alt="" width="100" @click="goGoodsDetail(orderGoods.skuId, orderGoods.goodsId)">
|
||||
<p class="hover-pointer color999" @click="goGoodsDetail(orderGoods.skuId, orderGoods.goodsId)">{{orderGoods.goodsName}}</p>
|
||||
<p>{{orderGoods.goodsPrice | unitPrice('¥')}}</p>
|
||||
<p>{{ $filters.unitPrice(orderGoods.goodsPrice, '¥') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="eval-con">
|
||||
<div>
|
||||
<span class="color999">商品评价:</span>
|
||||
<RadioGroup style="margin-bottom:5px;color:#999" v-model="orderGoods.grade" type="button" button-style="solid">
|
||||
<Radio label="GOOD">好评</Radio>
|
||||
<Radio label="MODERATE">中评</Radio>
|
||||
<Radio label="WORSE">差评</Radio>
|
||||
</RadioGroup>
|
||||
<Input type="textarea" maxlength="500" show-word-limit :rows="4" v-model="orderGoods.content" />
|
||||
<el-radio-group style="margin-bottom:5px;color:#999" v-model="orderGoods.grade" type="button" button-style="solid">
|
||||
<el-radio label="GOOD">好评</el-radio>
|
||||
<el-radio label="MODERATE">中评</el-radio>
|
||||
<el-radio label="WORSE">差评</el-radio>
|
||||
</el-radio-group>
|
||||
<el-input type="textarea" maxlength="500" show-word-limit :rows="4" v-model="orderGoods.content" />
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;">
|
||||
<div class="demo-upload-list" v-for="(img, index) in orderGoods.uploadList" :key="index">
|
||||
<img :src="img">
|
||||
<div class="demo-upload-list-cover">
|
||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||
<Icon type="ios-trash-outline" @click.native="handleRemove(index)"></Icon>
|
||||
<el-icon @click="handleView(img)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index)"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Upload
|
||||
<el-upload
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:before-upload="handleBeforeUpload"
|
||||
@@ -52,25 +52,27 @@
|
||||
:headers="accessToken"
|
||||
style="display: inline-block;width:58px;">
|
||||
<div class="hover-pointer icon-upload" style="">
|
||||
<Icon type="ios-camera" size="20"></Icon>
|
||||
<el-icon :size="20"><Camera /></el-icon>
|
||||
</div>
|
||||
</Upload>
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<Button type="primary" class="mt_10" :loading="loading" @click="save">发表</Button>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
<el-button type="primary" class="mt_10" :loading="loading" @click="save">发表</el-button>
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewImage" v-if="visible" style="width: 100%">
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Camera, Delete, View } from '@element-plus/icons-vue';
|
||||
import { orderDetail } from '@/api/order.js';
|
||||
import { addEvaluation } from '@/api/member.js';
|
||||
import { commonUrl } from '@/plugins/request.js';
|
||||
import storage from '@/plugins/storage';
|
||||
export default {
|
||||
components: { Camera, Delete, View },
|
||||
data () {
|
||||
return {
|
||||
order: {}, // 订单详情
|
||||
@@ -92,7 +94,7 @@ export default {
|
||||
orderDetail(this.$route.query.sn).then(res => {
|
||||
this.order = res.result
|
||||
this.orderGoods = res.result.orderItems[this.$route.query.index]
|
||||
this.$set(this.orderGoods, 'grade', 'GOOD')
|
||||
this.orderGoods['grade'] = 'GOOD'
|
||||
this.orderGoods.uploadList = []
|
||||
})
|
||||
},
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
<div class="title">
|
||||
<card _Title="评价详情" :_Size="16"></card>
|
||||
<p>
|
||||
<span class="color999">创建人:</span
|
||||
><span>{{ orderGoods.createBy | secrecyMobile }}</span>
|
||||
<span class="color999">创建人:</span><span>{{ $filters.secrecyMobile( orderGoods.createBy ) }}</span>
|
||||
<span class="color999 ml_20">{{ orderGoods.createTime }}</span>
|
||||
</p>
|
||||
</div>
|
||||
@@ -12,10 +11,10 @@
|
||||
<div class="delivery-rate">
|
||||
<div class="fontsize_16">物流服务评价:</div>
|
||||
<div class="color999">
|
||||
<span>物流评价:<Rate disabled :value="Number(orderGoods.deliveryScore)" /></span>
|
||||
<span>服务评价:<Rate disabled :value="Number(orderGoods.serviceScore)" /></span>
|
||||
<span>物流评价:<el-rate disabled :value="Number(orderGoods.deliveryScore)" /></span>
|
||||
<span>服务评价:<el-rate disabled :value="Number(orderGoods.serviceScore)" /></span>
|
||||
<span
|
||||
>服务评价:<Rate disabled :value="Number(orderGoods.descriptionScore)"
|
||||
>服务评价:<el-rate disabled :value="Number(orderGoods.descriptionScore)"
|
||||
/></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,17 +40,17 @@
|
||||
<div class="eval-con">
|
||||
<div>
|
||||
<span class="color999">商品评价:</span>
|
||||
<RadioGroup
|
||||
<el-radio-group
|
||||
style="margin-bottom: 5px; color: #999"
|
||||
v-model="orderGoods.grade"
|
||||
type="button"
|
||||
button-style="solid"
|
||||
>
|
||||
<Radio label="GOOD" disabled>好评</Radio>
|
||||
<Radio label="MODERATE" disabled>中评</Radio>
|
||||
<Radio label="WORSE" disabled>差评</Radio>
|
||||
</RadioGroup>
|
||||
<Input
|
||||
<el-radio label="GOOD" disabled>好评</el-radio>
|
||||
<el-radio label="MODERATE" disabled>中评</el-radio>
|
||||
<el-radio label="WORSE" disabled>差评</el-radio>
|
||||
</el-radio-group>
|
||||
<el-input
|
||||
type="textarea"
|
||||
maxlength="500"
|
||||
readonly
|
||||
@@ -64,7 +63,7 @@
|
||||
<template v-if="orderGoods.images">
|
||||
<div class="demo-upload-list" v-for="(img, index) in orderGoods.images.split(',')" :key="index">
|
||||
<img :src="img" />
|
||||
<div class="demo-upload-list-cover"><Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon></div>
|
||||
<div class="demo-upload-list-cover"><el-icon @click="handleView(img)"><View /></el-icon></div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@@ -75,7 +74,7 @@
|
||||
<template v-if="orderGoods.replyImage">
|
||||
<div class="demo-upload-list" v-for="(img, index) in orderGoods.replyImage.split(',')" :key="index">
|
||||
<img :src="img" />
|
||||
<div class="demo-upload-list-cover"><Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon></div>
|
||||
<div class="demo-upload-list-cover"><el-icon @click="handleView(img)"><View /></el-icon></div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@@ -84,14 +83,16 @@
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewImage" v-if="visible" style="width: 100%" />
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { View } from '@element-plus/icons-vue';
|
||||
import { evaluationDetail } from "@/api/member.js";
|
||||
export default {
|
||||
components: { View },
|
||||
data() {
|
||||
return {
|
||||
order: {}, // 订单详情
|
||||
|
||||
@@ -2,21 +2,39 @@
|
||||
<div class="msg-list">
|
||||
<card _Title="我的消息" :_Tabs="status" :_Size="16" @_Change="statusChange"/>
|
||||
|
||||
<Table v-if="params.status != 'ALREADY_REMOVE' " :columns="messageColumns" :data="messageData.records"></Table>
|
||||
<Table v-if="params.status == 'ALREADY_REMOVE' " :columns="messageDelColumns" :data="messageData.records"></Table>
|
||||
<!-- 分页 -->
|
||||
<Page
|
||||
<el-table v-if="params.status != 'ALREADY_REMOVE'" :data="messageData.records || []">
|
||||
<el-table-column prop="title" label="消息标题" align="left" show-overflow-tooltip />
|
||||
<el-table-column prop="content" label="消息内容" align="left" show-overflow-tooltip />
|
||||
<el-table-column prop="createTime" label="发送时间" align="left" width="240" />
|
||||
<el-table-column label="操作" align="center" fixed="right" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="row.status === 'UN_READY'"
|
||||
type="primary"
|
||||
size="small"
|
||||
style="margin-right: 5px"
|
||||
@click="setRead(row.id)"
|
||||
>已读</el-button>
|
||||
<el-button type="danger" size="small" @click="removeMessage(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-else :data="messageData.records || []">
|
||||
<el-table-column prop="title" label="消息标题" align="left" show-overflow-tooltip />
|
||||
<el-table-column prop="content" label="消息内容" align="left" show-overflow-tooltip />
|
||||
<el-table-column prop="createTime" label="发送时间" align="left" width="240" />
|
||||
</el-table>
|
||||
<el-pagination
|
||||
style="float:right;margin-top:10px"
|
||||
:current="params.pageNumber"
|
||||
:current-page="params.pageNumber"
|
||||
:total="messageData.total"
|
||||
:page-size="params.pageSize"
|
||||
@on-change="changePage"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
size="small"
|
||||
show-total
|
||||
show-elevator
|
||||
></Page>
|
||||
@current-change="changePage"
|
||||
@size-change="changePageSize"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
small
|
||||
layout="total, prev, pager, next, jumper"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -24,146 +42,37 @@ import {memberMsgList, readMemberMsg, delMemberMsg} from '@/api/member.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
messageData: {}, // 消息数据
|
||||
messageData: {},
|
||||
status: ['未读', '已读', '回收站'],
|
||||
params: { // 请求参数
|
||||
params: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
status: 'UN_READY'
|
||||
},
|
||||
messageDelColumns: [ // table展示数据
|
||||
{
|
||||
title: '消息标题',
|
||||
key: 'title',
|
||||
align: 'left',
|
||||
tooltip: true,
|
||||
},
|
||||
{
|
||||
title: '消息内容',
|
||||
key: 'content',
|
||||
align: 'left',
|
||||
tooltip: true
|
||||
},
|
||||
{
|
||||
title: '发送时间',
|
||||
key: 'createTime',
|
||||
align: 'left',
|
||||
width: 240
|
||||
},
|
||||
],
|
||||
messageColumns: [ // table展示数据
|
||||
{
|
||||
title: '消息标题',
|
||||
key: 'title',
|
||||
align: 'left',
|
||||
tooltip: true,
|
||||
},
|
||||
{
|
||||
title: '消息内容',
|
||||
key: 'content',
|
||||
align: 'left',
|
||||
tooltip: true
|
||||
},
|
||||
{
|
||||
title: '发送时间',
|
||||
key: 'createTime',
|
||||
align: 'left',
|
||||
width: 240
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
key: 'action',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 150,
|
||||
render: (h, params) => {
|
||||
if (params.row.status === 'UN_READY') {
|
||||
return h('div', [
|
||||
h(
|
||||
'Button',
|
||||
{
|
||||
props: {
|
||||
type: 'info',
|
||||
size: 'small'
|
||||
},
|
||||
style: {
|
||||
marginRight: '5px'
|
||||
},
|
||||
on: {
|
||||
click: () => {
|
||||
this.setRead(params.row.id);
|
||||
}
|
||||
}
|
||||
},
|
||||
'已读'
|
||||
), h(
|
||||
'Button',
|
||||
{
|
||||
props: {
|
||||
size: 'small',
|
||||
type: 'error'
|
||||
},
|
||||
on: {
|
||||
click: () => {
|
||||
this.removeMessage(params.row.id);
|
||||
}
|
||||
}
|
||||
},
|
||||
'删除'
|
||||
)
|
||||
]);
|
||||
} else if (params.row.status === 'ALREADY_READY') {
|
||||
return h('div', [
|
||||
h(
|
||||
'Button',
|
||||
{
|
||||
props: {
|
||||
size: 'small',
|
||||
type: 'error'
|
||||
},
|
||||
on: {
|
||||
click: () => {
|
||||
this.removeMessage(params.row.id);
|
||||
}
|
||||
}
|
||||
},
|
||||
'删除'
|
||||
)
|
||||
]);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 消息状态发生变化
|
||||
statusChange (index) {
|
||||
if (index === 0) { this.params.status = 'UN_READY' }
|
||||
if (index === 1) { this.params.status = 'ALREADY_READY' }
|
||||
if (index === 2) { this.params.status = 'ALREADY_REMOVE' }
|
||||
this.getList()
|
||||
},
|
||||
// 修改页码
|
||||
changePage (v) {
|
||||
this.params.pageNumber = v;
|
||||
this.getList();
|
||||
},
|
||||
// 修改页数
|
||||
changePageSize (v) {
|
||||
this.params.pageSize = v;
|
||||
this.getList();
|
||||
},
|
||||
getList () { // 获取消息列表
|
||||
getList () {
|
||||
memberMsgList(this.params).then(res => {
|
||||
if (res.success) {
|
||||
this.messageData = res.result;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 设置消息已读
|
||||
setRead (id) {
|
||||
readMemberMsg(id).then(res => {
|
||||
if (res.success) {
|
||||
@@ -171,15 +80,12 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 消息放入回收站
|
||||
removeMessage (id) {
|
||||
this.$Modal.confirm({
|
||||
title: '确认删除',
|
||||
// 记得确认修改此处
|
||||
content: '确认要删除此消息?',
|
||||
loading: true,
|
||||
onOk: () => {
|
||||
// 删除
|
||||
delMemberMsg(id).then((res) => {
|
||||
this.$Modal.remove();
|
||||
if (res.success) {
|
||||
|
||||
@@ -2,33 +2,33 @@
|
||||
<div>
|
||||
<card _Title="收货地址" />
|
||||
<div class="add-box">
|
||||
<Form :model="formData" ref="form" label-position="left" :label-width="100" :rules="ruleInline">
|
||||
<FormItem label="收件人" prop="name">
|
||||
<i-input v-model="formData.name" placeholder="请输入收件人姓名" style="width: 600px"></i-input>
|
||||
</FormItem>
|
||||
<FormItem label="收件地区" prop="address">
|
||||
<el-form :model="formData" ref="form" label-position="left" label-width="100px" :rules="ruleInline">
|
||||
<el-form-item label="收件人" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入收件人姓名" style="width: 600px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="收件地区" prop="address">
|
||||
<span>{{ formData.address || '暂无地址' }}</span>
|
||||
|
||||
<Button type="default" style="margin-left: 10px;" size="small" @click="$refs.map.open()">选择</Button>
|
||||
</FormItem>
|
||||
<FormItem label="详细地址" prop="detail">
|
||||
<i-input v-model="formData.detail" placeholder="请输入详细地址" style="width: 600px"></i-input>
|
||||
</FormItem>
|
||||
<FormItem label="手机号码" prop="mobile">
|
||||
<i-input v-model="formData.mobile" placeholder="请输入收件人手机号" style="width: 600px"></i-input>
|
||||
</FormItem>
|
||||
<FormItem label="地址别名">
|
||||
<i-input v-model="formData.alias" length :maxlength="4" placeholder="请输入地址别名,例如公司" style="width: 600px">
|
||||
</i-input>
|
||||
</FormItem>
|
||||
<FormItem label="默认地址">
|
||||
<i-switch v-model="formData.isDefault" />
|
||||
</FormItem>
|
||||
</Form>
|
||||
<el-button type="default" style="margin-left: 10px;" size="small" @click="$refs.map.open()">选择</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细地址" prop="detail">
|
||||
<el-input v-model="formData.detail" placeholder="请输入详细地址" style="width: 600px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="mobile">
|
||||
<el-input v-model="formData.mobile" placeholder="请输入收件人手机号" style="width: 600px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="地址别名">
|
||||
<el-input v-model="formData.alias" length :maxlength="4" placeholder="请输入地址别名,例如公司" style="width: 600px">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="默认地址">
|
||||
<el-switch v-model="formData.isDefault" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="mt_20">
|
||||
<Button type="primary" class="mr_10" :loading="loading" @click="save">保存收货地址</Button>
|
||||
<Button @click="$router.back()">返回</Button>
|
||||
<el-button type="primary" class="mr_10" :loading="loading" @click="save">保存收货地址</el-button>
|
||||
<el-button @click="$router.back()">返回</el-button>
|
||||
</div>
|
||||
|
||||
<multipleMap ref="map" @callback="getAddress" />
|
||||
@@ -124,15 +124,15 @@ export default {
|
||||
if(val.type === 'select'){
|
||||
const paths = val.data.map(item => item.name).join(',')
|
||||
const ids = val.data.map(item => item.id).join(',')
|
||||
this.$set(this.formData,'address',paths)
|
||||
this.$set(this.formData,'consigneeAddressIdPath',ids)
|
||||
this.formData['address'] = paths
|
||||
this.formData['consigneeAddressIdPath'] = ids
|
||||
const coord = val.data[val.data.length - 1].center.split(',')
|
||||
this.formData.lat = coord[1]
|
||||
this.formData.lon = coord[0]
|
||||
}else{
|
||||
this.$set(this.formData, "address", val.data.addr);
|
||||
this.$set(this.formData, "consigneeAddressIdPath", val.data.addrId);
|
||||
this.$set(this.formData, "detail", val.data.address);
|
||||
this.formData["address"] = val.data.addr;
|
||||
this.formData["consigneeAddressIdPath"] = val.data.addrId;
|
||||
this.formData["detail"] = val.data.address;
|
||||
this.formData.lat = val.data.position.lat;
|
||||
this.formData.lon = val.data.position.lng;
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
<!-- 搜索 筛选 -->
|
||||
<div class="mb_20 box">
|
||||
<div class="global_float_right">
|
||||
<Input
|
||||
<el-input
|
||||
class="width_300"
|
||||
search
|
||||
enter-button
|
||||
|
||||
|
||||
v-model="params.keywords"
|
||||
@on-search="getList"
|
||||
@keyup.enter="getList"
|
||||
placeholder="请输入订单号搜索"
|
||||
/>
|
||||
</div>
|
||||
@@ -18,18 +18,18 @@
|
||||
<!-- 列表 -->
|
||||
<empty v-if="orderList.length === 0"/>
|
||||
<div class="order-content" v-else>
|
||||
<template v-for="(order, onderIndex) in orderList">
|
||||
<div class="order-list" :key="onderIndex">
|
||||
<template v-for="(order, onderIndex) in orderList" :key="order.sn || onderIndex">
|
||||
<div class="order-list">
|
||||
<div class="order-header">
|
||||
<div>
|
||||
<div v-if="order.serviceStatus">{{ filterOrderStatus(order.serviceStatus) }}</div>
|
||||
<div>
|
||||
售后单号:{{ order.sn }} {{ order.createTime }}
|
||||
{{ order.memberName | secrecyMobile }}
|
||||
{{ $filters.secrecyMobile( order.memberName ) }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>申请退款金额:<span class="global_color">{{ order.applyRefundPrice | unitPrice("¥") }}</span></span>
|
||||
<span>申请退款金额:<span class="global_color">{{ $filters.unitPrice(order.applyRefundPrice, "¥") }}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-body">
|
||||
@@ -47,33 +47,31 @@
|
||||
</div>
|
||||
<div>
|
||||
<!-- 订单基础操作 -->
|
||||
<Button @click="goDetail(order.sn)" type="info" size="small">售后详情</Button>
|
||||
<Button @click="openModal(order)"
|
||||
<el-button @click="goDetail(order.sn)" type="info" size="small">售后详情</el-button>
|
||||
<el-button @click="openModal(order)"
|
||||
v-if="order.serviceStatus == 'PASS' &&
|
||||
order.serviceType != 'RETURN_MONEY'"
|
||||
type="warning" size="small">提交物流
|
||||
</Button>
|
||||
<Button @click="cancel(order.sn)" type="error" v-if="order.afterSaleAllowOperationVO.cancel" size="small">
|
||||
</el-button>
|
||||
<el-button @click="cancel(order.sn)" type="danger" v-if="order.afterSaleAllowOperationVO.cancel" size="small">
|
||||
取消售后
|
||||
</Button>
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<Spin size="large" fix v-if="spinShow"></Spin>
|
||||
<el-skeleton size="large" fix v-if="spinShow"></el-skeleton>
|
||||
</div>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page :total="total" @on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-sizer>
|
||||
</Page>
|
||||
<el-pagination :total="total" @current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize" layout="sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
<Modal v-model="logisticsShow" width="530">
|
||||
<p slot="header">
|
||||
<el-dialog v-model="logisticsShow" width="530">
|
||||
<template #header><p>
|
||||
<span>提交物流信息</span>
|
||||
</p>
|
||||
</p></template>
|
||||
<div>
|
||||
<div class="goods-list modal-goods">
|
||||
<img @click="goodsDetail(singleOrder.skuId, singleOrder.goodsId)" class="hover-color"
|
||||
@@ -84,31 +82,30 @@
|
||||
</div>
|
||||
<div class="mt_10">
|
||||
<span class="global_color"
|
||||
>{{ singleOrder.flowPrice | unitPrice("¥") }} </span
|
||||
>x {{ singleOrder.num }}
|
||||
>{{ $filters.unitPrice(singleOrder.flowPrice, "¥") }} </span>x {{ singleOrder.num }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Form ref="form" :model="form" label-position="left" :label-width="100" :rules="rules">
|
||||
<FormItem label="物流公司" prop="logisticsId">
|
||||
<Select v-model="form.logisticsId" placeholder="请选择物流公司">
|
||||
<Option v-for="item in companyList" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
<FormItem label="物流单号" prop="logisticsNo">
|
||||
<Input v-model="form.logisticsNo" placeholder="请填写物流单号"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="发货时间" prop="mDeliverTime">
|
||||
<DatePicker type="date" style="width:100%" v-model="form.mDeliverTime" @on-change="changeTime"
|
||||
format="yyyy-MM-dd" placeholder="选择发货时间"></DatePicker>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<el-form ref="form" :model="form" label-position="left" label-width="100px" :rules="rules">
|
||||
<el-form-item label="物流公司" prop="logisticsId">
|
||||
<el-select v-model="form.logisticsId" placeholder="请选择物流公司">
|
||||
<el-option v-for="item in companyList" :value="item.id" :key="item.id">{{ item.name }}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物流单号" prop="logisticsNo">
|
||||
<el-input v-model="form.logisticsNo" placeholder="请填写物流单号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="发货时间" prop="mDeliverTime">
|
||||
<el-date-picker type="date" style="width:100%" v-model="form.mDeliverTime" @change="changeTime"
|
||||
format="yyyy-MM-dd" placeholder="选择发货时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: right">
|
||||
<Button @click="logisticsShow = false">关闭</Button>
|
||||
<Button type="primary" :loading="submitLoading" @click="submitDelivery">提交</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<template #footer><div style="text-align: right">
|
||||
<el-button @click="logisticsShow = false">关闭</el-button>
|
||||
<el-button type="primary" :loading="submitLoading" @click="submitDelivery">提交</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -324,7 +321,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
color: #ff8f23;
|
||||
cursor: pointer;
|
||||
|
||||
@@ -337,7 +334,7 @@ export default {
|
||||
> div:nth-child(3) {
|
||||
width: 100px;
|
||||
|
||||
.ivu-btn {
|
||||
.el-button {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
<div class="order-detail">
|
||||
<card _Title="售后详情" :_Size="16"></card>
|
||||
<!-- 操作按钮 -->
|
||||
<Card class="mb_10" v-if="(afterSale.serviceStatus == 'PASS' &&
|
||||
<el-card class="mb_10" shadow="never" v-if="(afterSale.serviceStatus == 'PASS' &&
|
||||
afterSale.serviceType != 'RETURN_MONEY') || (afterSale.afterSaleAllowOperationVO && afterSale.afterSaleAllowOperationVO.cancel)">
|
||||
<Button type="success" @click="openModal" v-if="afterSale.serviceStatus == 'PASS' &&
|
||||
afterSale.serviceType != 'RETURN_MONEY'" size="small">提交物流</Button>
|
||||
<Button type="error" @click="cancel(afterSale.sn)" v-if="afterSale.afterSaleAllowOperationVO && afterSale.afterSaleAllowOperationVO.cancel" size="small">取消售后</Button>
|
||||
</Card>
|
||||
<el-button type="success" @click="openModal" v-if="afterSale.serviceStatus == 'PASS' &&
|
||||
afterSale.serviceType != 'RETURN_MONEY'" size="small">提交物流</el-button>
|
||||
<el-button type="danger" @click="cancel(afterSale.sn)" v-if="afterSale.afterSaleAllowOperationVO && afterSale.afterSaleAllowOperationVO.cancel" size="small">取消售后</el-button>
|
||||
</el-card>
|
||||
<div class="order-card">
|
||||
<h3>{{afterSale.serviceName}}</h3>
|
||||
<p class="global_color fontsize_18">{{ afterSale.orderStatusValue }}</p>
|
||||
@@ -25,14 +25,13 @@
|
||||
</div>
|
||||
<div class="order-card">
|
||||
<h3>售后进程</h3>
|
||||
<Steps class="progress" :current="logList.length" direction="vertical">
|
||||
<Step
|
||||
:content="'操作人:'+ log.operatorName + ' ' + log.createTime"
|
||||
<el-steps class="progress" :current="logList.length" direction="vertical">
|
||||
<el-step :content="'操作人:'+ log.operatorName + ' ' + log.createTime"
|
||||
:title="log.message"
|
||||
v-for="(log, index) in logList"
|
||||
:key="index"
|
||||
></Step>
|
||||
</Steps>
|
||||
></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div class="order-card">
|
||||
<h3 class="mb_10">服务单信息</h3>
|
||||
@@ -41,10 +40,10 @@
|
||||
<td>退款方式</td><td>{{afterSale.refundWay == 'ORIGINAL' ? '原路退回' : '账号退款'}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>申请退款金额</td><td>{{afterSale.applyRefundPrice | unitPrice('¥')}}</td>
|
||||
<td>申请退款金额</td><td>{{ $filters.unitPrice(afterSale.applyRefundPrice, '¥') }}</td>
|
||||
</tr>
|
||||
<tr v-if="afterSale.actualRefundPrice">
|
||||
<td>实际退款金额</td><td>{{afterSale.actualRefundPrice | unitPrice('¥')}}</td>
|
||||
<td>实际退款金额</td><td>{{ $filters.unitPrice(afterSale.actualRefundPrice, '¥') }}</td>
|
||||
</tr>
|
||||
<template v-if="afterSale.refundWay === 'OFFLINE'">
|
||||
<tr>
|
||||
@@ -74,30 +73,30 @@
|
||||
<img :src="img" width="200" height="200" @click="perviewImg(img)" class="hover-pointer" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<Modal v-model="logisticsShow" width="530">
|
||||
<p slot="header">
|
||||
<el-dialog v-model="logisticsShow" width="530">
|
||||
<template #header><p>
|
||||
<span>提交物流信息</span>
|
||||
</p>
|
||||
</p></template>
|
||||
<div>
|
||||
<Form ref="form" :model="form" label-position="left" :label-width="100" :rules="rules">
|
||||
<FormItem label="物流公司" prop="logisticsId">
|
||||
<Select v-model="form.logisticsId" placeholder="请选择物流公司">
|
||||
<Option v-for="item in companyList" :value="item.id" :key="item.id">{{ item.name }}</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
<FormItem label="物流单号" prop="logisticsNo">
|
||||
<Input v-model="form.logisticsNo" placeholder="请填写物流单号"></Input>
|
||||
</FormItem>
|
||||
<FormItem label="发货时间" prop="mDeliverTime">
|
||||
<DatePicker type="date" style="width:100%" v-model="form.mDeliverTime" @on-change="changeTime" format="yyyy-MM-dd" placeholder="选择发货时间"></DatePicker>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<el-form ref="form" :model="form" label-position="left" label-width="100px" :rules="rules">
|
||||
<el-form-item label="物流公司" prop="logisticsId">
|
||||
<el-select v-model="form.logisticsId" placeholder="请选择物流公司">
|
||||
<el-option v-for="item in companyList" :value="item.id" :key="item.id">{{ item.name }}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物流单号" prop="logisticsNo">
|
||||
<el-input v-model="form.logisticsNo" placeholder="请填写物流单号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="发货时间" prop="mDeliverTime">
|
||||
<el-date-picker type="date" style="width:100%" v-model="form.mDeliverTime" @change="changeTime" format="yyyy-MM-dd" placeholder="选择发货时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: right">
|
||||
<Button @click="logisticsShow = false">关闭</Button>
|
||||
<Button type="primary" :loading="submitLoading" @click="submitDelivery">提交</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<template #footer><div style="text-align: right">
|
||||
<el-button @click="logisticsShow = false">关闭</el-button>
|
||||
<el-button type="primary" :loading="submitLoading" @click="submitDelivery">提交</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -139,7 +138,7 @@ export default {
|
||||
if (pattern3.test(this.afterSale.reason)) {
|
||||
this.getReason(this.afterSale.serviceType)
|
||||
} else {
|
||||
this.$set(this.afterSale, 'reasonName', this.afterSale.reason)
|
||||
this.afterSale['reasonName'] = this.afterSale.reason
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -150,7 +149,7 @@ export default {
|
||||
this.reasonList = res.result
|
||||
this.reasonList.forEach(e => {
|
||||
if (e.id === this.afterSale.reason) {
|
||||
this.$set(this.afterSale, 'reasonName', e.reason)
|
||||
this.afterSale['reasonName'] = e.reason
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,49 +1,51 @@
|
||||
<template>
|
||||
<div class="apply-after-sale">
|
||||
<card _Title="申请售后"></card>
|
||||
<Table
|
||||
border
|
||||
:columns="columns"
|
||||
:data="goodsData"
|
||||
>
|
||||
<template slot-scope="{ row }" slot="goodsName">
|
||||
<div style="padding:5px;display:flex;">
|
||||
<img :src="row.image" style="vertical-align: top;" width="60" height="60" alt=""> <span class="ml_10">{{row.goodsName}}</span>
|
||||
</div>
|
||||
</template>
|
||||
<template slot-scope="{ row }" slot="goodsPrice">
|
||||
<div>{{row.applyRefundPrice | unitPrice('¥')}}</div>
|
||||
</template>
|
||||
</Table>
|
||||
<el-table :data="goodsData" border>
|
||||
<el-table-column label="商品名称">
|
||||
<template #default="{ row }">
|
||||
<div style="padding:5px;display:flex;">
|
||||
<img :src="row.image" style="vertical-align: top;" width="60" height="60" alt="">
|
||||
<span class="ml_10">{{ row.goodsName }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="价格">
|
||||
<template #default="{ row }">
|
||||
<div>{{ $filters.unitPrice(row.applyRefundPrice, '¥') }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="num" label="购买数量" />
|
||||
</el-table>
|
||||
<div>
|
||||
<Form :model="form" ref="form" class="mt_10" :rules="rules" :label-width="80">
|
||||
<FormItem label="售后类别">
|
||||
<RadioGroup v-model="form.serviceType" @on-change="changeReason" type="button" button-style="solid">
|
||||
<Radio v-if="info.returnGoods" label="RETURN_GOODS">退货</Radio>
|
||||
<Radio v-if="info.returnMoney" label="RETURN_MONEY">退款</Radio>
|
||||
</RadioGroup>
|
||||
</FormItem>
|
||||
<FormItem label="提交数量" prop="num">
|
||||
<Input type="number" v-model="form.num" style="width:260px" />
|
||||
</FormItem>
|
||||
<FormItem label="提交原因" prop="reason">
|
||||
<Select v-model="form.reason" style="width:260px">
|
||||
<Option v-for="item in reasonList" :value="item.id" :key="item.id">{{ item.reason }}</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
<FormItem label="问题描述" prop="problemDesc">
|
||||
<Input type="textarea" :rows="4" maxlength="500" style="width:260px" show-word-limit v-model="form.problemDesc" />
|
||||
</FormItem>
|
||||
<FormItem label="图片信息">
|
||||
<el-form :model="form" ref="form" class="mt_10" :rules="rules" label-width="80px">
|
||||
<el-form-item label="售后类别">
|
||||
<el-radio-group v-model="form.serviceType" @change="changeReason" type="button" button-style="solid">
|
||||
<el-radio v-if="info.returnGoods" label="RETURN_GOODS">退货</el-radio>
|
||||
<el-radio v-if="info.returnMoney" label="RETURN_MONEY">退款</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="提交数量" prop="num">
|
||||
<el-input type="number" v-model="form.num" style="width:260px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="提交原因" prop="reason">
|
||||
<el-select v-model="form.reason" style="width:260px">
|
||||
<el-option v-for="item in reasonList" :value="item.id" :key="item.id">{{ item.reason }}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="问题描述" prop="problemDesc">
|
||||
<el-input type="textarea" :rows="4" maxlength="500" style="width:260px" show-word-limit v-model="form.problemDesc" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图片信息">
|
||||
<div style="display:flex;align-items:center;">
|
||||
<div class="demo-upload-list" v-for="(img, index) in uploadList" :key="index">
|
||||
<img :src="img">
|
||||
<div class="demo-upload-list-cover">
|
||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||
<Icon type="ios-trash-outline" @click.native="handleRemove(index)"></Icon>
|
||||
<el-icon @click="handleView(img)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index)"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Upload
|
||||
<el-upload
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:before-upload="handleBeforeUpload"
|
||||
@@ -52,44 +54,46 @@
|
||||
:headers="accessToken"
|
||||
style="display: inline-block;width:58px;">
|
||||
<div class="hover-pointer icon-upload" style="">
|
||||
<Icon type="md-add" size="20"></Icon>
|
||||
<el-icon :size="20"><Plus /></el-icon>
|
||||
</div>
|
||||
</Upload>
|
||||
</el-upload>
|
||||
</div>
|
||||
</FormItem>
|
||||
<FormItem label="退款方式">
|
||||
</el-form-item>
|
||||
<el-form-item label="退款方式">
|
||||
<div>{{info.refundWay == 'ORIGINAL' ? '原路退回' : '账号退款'}}</div>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
<template v-if="info.accountType === 'BANK_TRANSFER' && info.applyRefundPrice != 0">
|
||||
<FormItem label="开户行" prop="bankDepositName">
|
||||
<Input v-model="form.bankDepositName" type="text" placeholder="请输入银行开户行" style="width:260px" />
|
||||
</FormItem>
|
||||
<FormItem label="开户名" prop="bankAccountName">
|
||||
<Input v-model="form.bankAccountName" type="text" placeholder="请输入银行开户名" style="width:260px" />
|
||||
</FormItem>
|
||||
<FormItem label="银行账号" prop="bankAccountNumber">
|
||||
<Input v-model="form.bankAccountNumber" type="text" placeholder="请输入银行账号" style="width:260px" />
|
||||
</FormItem>
|
||||
<el-form-item label="开户行" prop="bankDepositName">
|
||||
<el-input v-model="form.bankDepositName" type="text" placeholder="请输入银行开户行" style="width:260px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="开户名" prop="bankAccountName">
|
||||
<el-input v-model="form.bankAccountName" type="text" placeholder="请输入银行开户名" style="width:260px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="银行账号" prop="bankAccountNumber">
|
||||
<el-input v-model="form.bankAccountNumber" type="text" placeholder="请输入银行账号" style="width:260px" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
<FormItem label="返回方式" v-if="form.serviceType === 'RETURN_GOODS'">
|
||||
<el-form-item label="返回方式" v-if="form.serviceType === 'RETURN_GOODS'">
|
||||
<div>快递至第三方卖家</div>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="primary" @click="apply">提交申请</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="apply">提交申请</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewImage" v-if="visible" style="width: 100%">
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Delete, Plus, View } from '@element-plus/icons-vue';
|
||||
import { afterSaleReason, afterSaleInfo, applyAfterSale } from '@/api/member.js'
|
||||
import { commonUrl } from '@/plugins/request.js';
|
||||
import storage from '@/plugins/storage';
|
||||
import * as RegExp from '@/plugins/RegExp'
|
||||
export default {
|
||||
components: { Delete, Plus, View },
|
||||
data () {
|
||||
const checkNum = (rule, value, callback) => {
|
||||
if (value === '') {
|
||||
@@ -104,11 +108,6 @@ export default {
|
||||
}
|
||||
};
|
||||
return {
|
||||
columns: [ // 表格表头
|
||||
{title: '商品名称', slot: 'goodsName'},
|
||||
{title: '价格', slot: 'goodsPrice'},
|
||||
{title: '购买数量', key: 'num'}
|
||||
],
|
||||
goodsData: [], // 商品数据
|
||||
reasonList: [], // 售后原因列表
|
||||
info: {}, // 售后信息
|
||||
|
||||
@@ -12,26 +12,26 @@
|
||||
<div class="goods-con">
|
||||
<img :src="orderGoods.image" class="hover-pointer" alt="" width="100" @click="goGoodsDetail(orderGoods.skuId, orderGoods.goodsId)">
|
||||
<p class="hover-pointer color999" @click="goGoodsDetail(orderGoods.skuId, orderGoods.goodsId)">{{orderGoods.goodsName}}</p>
|
||||
<p>{{orderGoods.goodsPrice | unitPrice('¥')}}</p>
|
||||
<p>{{ $filters.unitPrice(orderGoods.goodsPrice, '¥') }}</p>
|
||||
</div>
|
||||
|
||||
<div class="eval-con">
|
||||
<div>
|
||||
<span class="color999">投诉主题:</span>
|
||||
<Select v-model="form.complainTopic" style="width:260px;margin-bottom:10px">
|
||||
<Option v-for="item in reasonList" :value="item.reason" :key="item.id">{{ item.reason }}</Option>
|
||||
</Select>
|
||||
<Input type="textarea" maxlength="500" show-word-limit :rows="4" placeholder="请输入投诉内容" v-model="form.content" />
|
||||
<el-select v-model="form.complainTopic" style="width:260px;margin-bottom:10px">
|
||||
<el-option v-for="item in reasonList" :value="item.reason" :key="item.id">{{ item.reason }}</el-option>
|
||||
</el-select>
|
||||
<el-input type="textarea" maxlength="500" show-word-limit :rows="4" placeholder="请输入投诉内容" v-model="form.content" />
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;">
|
||||
<div class="demo-upload-list" v-for="(img, index) in orderGoods.uploadList" :key="index">
|
||||
<img :src="img">
|
||||
<div class="demo-upload-list-cover">
|
||||
<Icon type="ios-eye-outline" @click.native="handleView(img)"></Icon>
|
||||
<Icon type="ios-trash-outline" @click.native="handleRemove(index)"></Icon>
|
||||
<el-icon @click="handleView(img)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index)"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<Upload
|
||||
<el-upload
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
:before-upload="handleBeforeUpload"
|
||||
@@ -40,25 +40,27 @@
|
||||
:headers="accessToken"
|
||||
style="display: inline-block;width:58px;">
|
||||
<div class="hover-pointer icon-upload" style="">
|
||||
<Icon type="ios-camera" size="20"></Icon>
|
||||
<el-icon :size="20"><Camera /></el-icon>
|
||||
</div>
|
||||
</Upload>
|
||||
</el-upload>
|
||||
<div class="describe">上传投诉凭证,最多5张</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Button type="primary" class="mt_10" :loading="loading" @click="save">提交</Button>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
<el-button type="primary" class="mt_10" :loading="loading" @click="save">提交</el-button>
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewImage" v-if="visible" style="width: 100%">
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Camera, Delete, View } from '@element-plus/icons-vue';
|
||||
import { orderDetail } from '@/api/order.js';
|
||||
import { afterSaleReason, handleComplain } from '@/api/member.js';
|
||||
import { commonUrl } from '@/plugins/request.js';
|
||||
import storage from '@/plugins/storage';
|
||||
export default {
|
||||
components: { Camera, Delete, View },
|
||||
data () {
|
||||
return {
|
||||
order: {}, // 订单详情
|
||||
@@ -85,7 +87,7 @@ export default {
|
||||
afterSaleReason('COMPLAIN').then(res => {
|
||||
if (res.success) {
|
||||
this.reasonList = res.result
|
||||
this.$set(this.form, 'complainTopic', res.result[0].reason)
|
||||
this.form['complainTopic'] = res.result[0].reason
|
||||
this.$forceUpdate()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
<div class="address-header">
|
||||
<span>
|
||||
{{ item.name }}
|
||||
<Tag class="ml_10" v-if="item.isDefault" color="red">默认地址</Tag>
|
||||
<Tag class="ml_10" v-if="item.alias" color="warning">{{item.alias}}</Tag>
|
||||
<el-tag class="ml_10" v-if="item.isDefault" color="red">默认地址</el-tag>
|
||||
<el-tag class="ml_10" v-if="item.alias" color="warning">{{item.alias}}</el-tag>
|
||||
</span>
|
||||
<div class="address-action">
|
||||
<span @click="edit(item.id)"><Icon type="edit"></Icon>修改</span>
|
||||
<span @click="del(item.id)"><Icon type="trash-a"></Icon>删除</span>
|
||||
<span @click="edit(item.id)"><el-icon><Edit /></el-icon>修改</span>
|
||||
<span @click="del(item.id)"><el-icon><Delete /></el-icon>删除</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="address-content">
|
||||
@@ -18,8 +18,7 @@
|
||||
<span class="address-content-title"> 收 货 人 :</span> {{ item.name }}
|
||||
</p>
|
||||
<p>
|
||||
<span class="address-content-title">收货地区:</span
|
||||
>{{ item.consigneeAddressPath | unitAddress }}
|
||||
<span class="address-content-title">收货地区:</span>{{ $filters.unitAddress(item.consigneeAddressPath) }}
|
||||
</p>
|
||||
<p>
|
||||
<span class="address-content-title">详细地址:</span> {{ item.detail }}
|
||||
@@ -33,10 +32,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Delete, Edit } from '@element-plus/icons-vue';
|
||||
import card from '@/components/card';
|
||||
import { memberAddress, delMemberAddress } from '@/api/address.js';
|
||||
|
||||
export default {
|
||||
components: { Delete, Edit },
|
||||
name: 'MyAddress',
|
||||
|
||||
data () {
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<!-- 搜索 筛选 -->
|
||||
<div class="mb_24 box" v-if="!homePage">
|
||||
<div class="global_float_right" >
|
||||
<Input
|
||||
<el-input
|
||||
class="width_300"
|
||||
search
|
||||
enter-button
|
||||
|
||||
|
||||
v-model="params.keywords"
|
||||
@on-search="getList"
|
||||
@keyup.enter="getList"
|
||||
placeholder="请输入订单号搜索"
|
||||
/>
|
||||
</div>
|
||||
@@ -32,8 +32,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<Button v-if="order.orderStatus === 'COMPLETED'" @click="delOrder(order.sn)" class="del-btn mr_10 fontsize_16" style="margin-top:-5px;" type="text" icon="ios-trash-outline" size="small"></Button>
|
||||
<span>{{ order.flowPrice | unitPrice("¥") }}</span>
|
||||
<el-button v-if="order.orderStatus === 'COMPLETED'" @click="delOrder(order.sn)" class="del-btn mr_10 fontsize_16" style="margin-top:-5px;" type="text" icon="ios-trash-outline" size="small"></el-button>
|
||||
<span>{{ $filters.unitPrice(order.flowPrice, "¥") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-body">
|
||||
@@ -51,11 +51,11 @@
|
||||
<div>
|
||||
<div class="hover-color" @click="goodsDetail(goods.skuId, goods.goodsId)">{{ goods.name }}</div>
|
||||
<div class="mt_10">
|
||||
<span class="global_color">{{ goods.goodsPrice | unitPrice("¥") }} </span>x {{ goods.num }}
|
||||
<span class="global_color">{{ $filters.unitPrice(goods.goodsPrice, "¥") }} </span>x {{ goods.num }}
|
||||
<span style="margin-left: 10px;color: #ff9900;">{{refundPriceList(goods.isRefund)}}</span>
|
||||
</div>
|
||||
<Button v-if="goods.commentStatus == 'UNFINISHED'" @click="comment(order.sn, goodsIndex)" size="small" type="success" class="fontsize_12" style="position:relative;top:-22px;left:190px;margin-right:10px">评价</Button>
|
||||
<Button v-if="goods.complainStatus == 'NO_APPLY'" @click="complain(order.sn, goodsIndex)" type="warning" class="fontsize_12" size="small" style="position:relative;top:-22px;left:190px">投诉</Button>
|
||||
<el-button v-if="goods.commentStatus == 'UNFINISHED'" @click="comment(order.sn, goodsIndex)" size="small" type="success" class="fontsize_12" style="position:relative;top:-22px;left:190px;margin-right:10px">评价</el-button>
|
||||
<el-button v-if="goods.complainStatus == 'NO_APPLY'" @click="complain(order.sn, goodsIndex)" type="warning" class="fontsize_12" size="small" style="position:relative;top:-22px;left:190px">投诉</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -64,47 +64,41 @@
|
||||
</div>
|
||||
<div>
|
||||
<!-- 订单基础操作 -->
|
||||
<Button @click="orderDetail(order.sn)" type="info" size="small">订单详情</Button>
|
||||
<Button @click="handleCancelOrder(order.sn)" type="error" v-if="order.allowOperationVO.cancel" size="small">取消订单</Button>
|
||||
<Button @click="goPay(order.sn)" size="small" type="success" v-if="order.allowOperationVO.pay">去支付</Button>
|
||||
<Button @click="received(order.sn)" size="small" type="warning" v-if="order.allowOperationVO.rog">确认收货</Button>
|
||||
<el-button @click="orderDetail(order.sn)" type="info" size="small">订单详情</el-button>
|
||||
<el-button @click="handleCancelOrder(order.sn)" type="danger" v-if="order.allowOperationVO.cancel" size="small">取消订单</el-button>
|
||||
<el-button @click="goPay(order.sn)" size="small" type="success" v-if="order.allowOperationVO.pay">去支付</el-button>
|
||||
<el-button @click="received(order.sn)" size="small" type="warning" v-if="order.allowOperationVO.rog">确认收货</el-button>
|
||||
<!-- 售后 -->
|
||||
<Button v-if="order.groupAfterSaleStatus && (order.groupAfterSaleStatus.includes('NOT_APPLIED')|| order.groupAfterSaleStatus.includes('PART_AFTER_SALE'))"
|
||||
@click="applyAfterSale(order.orderItems)" size="small">申请售后</Button>
|
||||
<el-button v-if="order.groupAfterSaleStatus && (order.groupAfterSaleStatus.includes('NOT_APPLIED')|| order.groupAfterSaleStatus.includes('PART_AFTER_SALE'))"
|
||||
@click="applyAfterSale(order.orderItems)" size="small">申请售后</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="spinShow"></Spin>
|
||||
<el-skeleton size="large" fix v-if="spinShow"></el-skeleton>
|
||||
</div>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size" v-if="!homePage">
|
||||
<Page :total="total" @on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer>
|
||||
</Page>
|
||||
<el-pagination :total="total" @current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize" layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
<!-- 选择售后商品 -->
|
||||
<Modal v-model="afterSaleModal" title="请选择申请售后的商品">
|
||||
<el-dialog v-model="afterSaleModal" title="请选择申请售后的商品">
|
||||
<div>
|
||||
<Table
|
||||
border
|
||||
:columns="afterSaleColumns"
|
||||
:data="afterSaleArr"
|
||||
@on-row-click="afterSaleSelect"
|
||||
>
|
||||
</Table>
|
||||
<el-table :data="afterSaleArr" border @row-click="afterSaleSelect">
|
||||
<el-table-column prop="name" label="商品名称" />
|
||||
<el-table-column prop="goodsPrice" label="价格" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div slot="footer"></div>
|
||||
</Modal>
|
||||
<Modal v-model="cancelAvail" title="请选择取消订单原因" @on-ok="sureCancel" @on-cancel="cancelAvail = false">
|
||||
<RadioGroup v-model="cancelParams.reason" vertical type="button" button-style="solid">
|
||||
<Radio :label="item.reason" v-for="item in cancelReason" :key="item.id">
|
||||
<template #footer><div></div></template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="cancelAvail" title="请选择取消订单原因" @ok="sureCancel" @cancel="cancelAvail = false">
|
||||
<el-radio-group v-model="cancelParams.reason" vertical type="button" button-style="solid">
|
||||
<el-radio :label="item.reason" v-for="item in cancelReason" :key="item.id">
|
||||
{{item.reason}}
|
||||
</Radio>
|
||||
</RadioGroup>
|
||||
</Modal>
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -140,10 +134,6 @@ export default {
|
||||
total: 0, // 数据总数
|
||||
spinShow: false, // 加载状态
|
||||
afterSaleModal: false, // 选择售后商品模态框
|
||||
afterSaleColumns: [ // 售后商品表头
|
||||
{title: '商品名称', key: 'name'},
|
||||
{title: '价格', key: 'goodsPrice'}
|
||||
],
|
||||
afterSaleArr: [], // 售后商品列表
|
||||
cancelAvail: false, // 取消订单modal控制
|
||||
cancelReason: [] // 取消订单原因
|
||||
@@ -374,7 +364,7 @@ export default {
|
||||
color: $theme_color;
|
||||
}
|
||||
}
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
color: #ff8f23;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
@@ -385,7 +375,7 @@ export default {
|
||||
|
||||
> div:nth-child(3) {
|
||||
width: 100px;
|
||||
.ivu-btn {
|
||||
.el-button {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,35 @@
|
||||
<template>
|
||||
<div class="order-detail" v-if="order.order">
|
||||
<card _Title="订单详情" :_Size="16"></card>
|
||||
<Card
|
||||
<el-card
|
||||
class="mb_10"
|
||||
shadow="never"
|
||||
v-if="
|
||||
order.allowOperationVO.pay ||
|
||||
order.allowOperationVO.rog ||
|
||||
order.allowOperationVO.cancel
|
||||
"
|
||||
>
|
||||
<Button
|
||||
<el-button
|
||||
type="success"
|
||||
@click="goPay(order.order.sn)"
|
||||
size="small"
|
||||
v-if="order.allowOperationVO.pay"
|
||||
>去支付</Button
|
||||
>
|
||||
<Button
|
||||
>去支付</el-button>
|
||||
<el-button
|
||||
type="info"
|
||||
@click="received(order.order.sn)"
|
||||
size="small"
|
||||
v-if="order.allowOperationVO.rog"
|
||||
>确认收货</Button
|
||||
>
|
||||
<Button
|
||||
type="error"
|
||||
>确认收货</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
@click="handleCancelOrder(order.order.sn)"
|
||||
v-if="order.allowOperationVO.cancel"
|
||||
size="small"
|
||||
>取消订单</Button
|
||||
>
|
||||
<Button v-if="order.allowOperationVO.showLogistics || orderPackage.length > 0 || logistics" type="info" @click="logisticsList()" size="small">查看物流</Button>
|
||||
</Card>
|
||||
>取消订单</el-button>
|
||||
<el-button v-if="order.allowOperationVO.showLogistics || orderPackage.length > 0 || logistics" type="info" @click="logisticsList()" size="small">查看物流</el-button>
|
||||
</el-card>
|
||||
<p class="verificationCode" v-if="order.order.verificationCode">
|
||||
核验码:<span>{{ order.order.verificationCode }}</span>
|
||||
</p>
|
||||
@@ -41,25 +39,24 @@
|
||||
<div style="color: #999" class="operation-time">
|
||||
操作时间:{{ order.order.updateTime || order.order.createTime }}
|
||||
</div>
|
||||
<Steps
|
||||
<el-steps
|
||||
class="progress"
|
||||
:current="progressList.length"
|
||||
direction="vertical"
|
||||
>
|
||||
<Step
|
||||
:title="progress.message"
|
||||
<el-step :title="progress.message"
|
||||
:content="progress.createTime"
|
||||
v-for="(progress, index) in progressList"
|
||||
:key="index"
|
||||
></Step>
|
||||
</Steps>
|
||||
></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div class="order-card" v-if="order.order.deliveryMethod === 'LOGISTICS' && order.order.orderType !== 'VIRTUAL'">
|
||||
<h3>收货人信息</h3>
|
||||
<p>收货人:{{ order.order.consigneeName }}</p>
|
||||
<p>手机号码:{{ order.order.consigneeMobile | secrecyMobile }}</p>
|
||||
<p>手机号码:{{ $filters.secrecyMobile( order.order.consigneeMobile ) }}</p>
|
||||
<p>
|
||||
收货地址:{{ order.order.consigneeAddressPath | unitAddress }}
|
||||
收货地址:{{ $filters.unitAddress(order.order.consigneeAddressPath) }}
|
||||
{{ order.order.consigneeDetail }}
|
||||
</p>
|
||||
</div>
|
||||
@@ -128,9 +125,9 @@
|
||||
收票人邮箱:{{ order.receipt.receiptEmail }}
|
||||
</p>
|
||||
<div v-if="Number(order.receipt.receiptStatus) === 1" class="receipt-action">
|
||||
<Button size="small" type="primary" ghost @click="viewReceiptInvoice(order.receipt)">
|
||||
<el-button size="small" type="primary" ghost @click="viewReceiptInvoice(order.receipt)">
|
||||
查看发票
|
||||
</Button>
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<div v-else style="color: #999; margin-left: 5px">未开发票</div>
|
||||
@@ -171,13 +168,13 @@
|
||||
</div>
|
||||
</td>
|
||||
<td>{{ goods.id }}</td>
|
||||
<td>{{ goods.goodsPrice | unitPrice("¥") }}</td>
|
||||
<td>{{ $filters.unitPrice(goods.goodsPrice, "¥") }}</td>
|
||||
<td>{{ goods.num }}</td>
|
||||
<td>{{refundPriceList(goods.isRefund)}}</td>
|
||||
<td>{{ goods.refundPrice | unitPrice("¥") }}</td>
|
||||
<td>{{ (goods.goodsPrice * goods.num) | unitPrice("¥") }}</td>
|
||||
<td>{{ $filters.unitPrice(goods.refundPrice, "¥") }}</td>
|
||||
<td>{{ $filters.unitPrice((goods.goodsPrice * goods.num), "¥") }}</td>
|
||||
<td>
|
||||
<Button
|
||||
<el-button
|
||||
v-if="
|
||||
goods.afterSaleStatus.includes('NOT_APPLIED') ||
|
||||
goods.afterSaleStatus.includes('PART_AFTER_SALE')
|
||||
@@ -186,23 +183,23 @@
|
||||
type="info"
|
||||
size="small"
|
||||
class="mb_5"
|
||||
>申请售后</Button
|
||||
>申请售后</el-button
|
||||
>
|
||||
<Button
|
||||
<el-button
|
||||
v-if="goods.commentStatus == 'UNFINISHED'"
|
||||
@click="comment(order.order.sn, goodsIndex)"
|
||||
size="small"
|
||||
type="success"
|
||||
class="fontsize_12 mb_5"
|
||||
>评价</Button
|
||||
>评价</el-button
|
||||
>
|
||||
<Button
|
||||
<el-button
|
||||
v-if="goods.complainStatus == 'NO_APPLY'"
|
||||
@click="complain(order.order.sn, goodsIndex)"
|
||||
type="warning"
|
||||
class="fontsize_12"
|
||||
size="small"
|
||||
>投诉</Button
|
||||
>投诉</el-button
|
||||
>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -214,68 +211,52 @@
|
||||
<span>商品件数:</span><span>{{ order.order.goodsNum }}件</span>
|
||||
</div>
|
||||
<div>
|
||||
<span>商品总价:</span
|
||||
><span>{{ order.order.goodsPrice | unitPrice("¥") }}</span
|
||||
><br />
|
||||
<span>商品总价:</span><span>{{ $filters.unitPrice(order.order.goodsPrice, "¥") }}</span><br />
|
||||
</div>
|
||||
<div v-if="order.order.orderType !== 'VIRTUAL'">
|
||||
<span>运费:</span
|
||||
><span>+{{ order.order.freightPrice | unitPrice("¥") }}</span
|
||||
><br />
|
||||
<span>运费:</span><span>+{{ $filters.unitPrice(order.order.freightPrice, "¥") }}</span><br />
|
||||
</div>
|
||||
<div v-if="order.order.priceDetailDTO.couponPrice">
|
||||
<span>优惠券:</span
|
||||
><span
|
||||
>-{{
|
||||
order.order.priceDetailDTO.couponPrice || 0 | unitPrice("¥")
|
||||
}}</span
|
||||
>
|
||||
<span>优惠券:</span><span
|
||||
>-{{ $filters.unitPrice(order.order.priceDetailDTO.couponPrice || 0, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="order.order.priceDetailDTO.giftCardPrice">
|
||||
<span>礼品卡抵扣:</span
|
||||
><span
|
||||
>-{{
|
||||
order.order.priceDetailDTO.giftCardPrice || 0 | unitPrice("¥")
|
||||
}}</span
|
||||
>
|
||||
<span>礼品卡抵扣:</span><span
|
||||
>-{{ $filters.unitPrice(order.order.priceDetailDTO.giftCardPrice || 0, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="order.order.discountPrice">
|
||||
<span>活动优惠:</span
|
||||
><span>-{{ order.order.discountPrice | unitPrice("¥") }}</span>
|
||||
<span>活动优惠:</span><span>-{{ $filters.unitPrice(order.order.discountPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="order.order.priceDetailDTO.updatePrice">
|
||||
<span>修改价格:</span
|
||||
><span>{{ order.order.priceDetailDTO.updatePrice | unitPrice("¥") }}</span>
|
||||
<span>修改价格:</span><span>{{ $filters.unitPrice(order.order.priceDetailDTO.updatePrice, "¥") }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span>应付金额:</span>
|
||||
<span class="actrual-price">{{
|
||||
order.order.flowPrice | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="actrual-price">{{ $filters.unitPrice(order.order.flowPrice, "¥") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Modal
|
||||
<el-dialog
|
||||
v-model="cancelAvail"
|
||||
title="请选择取消订单原因"
|
||||
@on-ok="sureCancel"
|
||||
@on-cancel="cancelAvail = false"
|
||||
@ok="sureCancel"
|
||||
@cancel="cancelAvail = false"
|
||||
>
|
||||
<RadioGroup
|
||||
<el-radio-group
|
||||
v-model="cancelParams.reason"
|
||||
vertical
|
||||
type="button"
|
||||
button-style="solid"
|
||||
>
|
||||
<Radio :label="item.reason" v-for="item in cancelReason" :key="item.id">
|
||||
<el-radio :label="item.reason" v-for="item in cancelReason" :key="item.id">
|
||||
{{ item.reason }}
|
||||
</Radio>
|
||||
</RadioGroup>
|
||||
</Modal>
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-dialog>
|
||||
|
||||
<!--查询物流-->
|
||||
<Modal v-model="logisticsModal" width="40">
|
||||
<p slot="header"><span>查询物流</span></p>
|
||||
<el-dialog v-model="logisticsModal" width="40">
|
||||
<template #header><p><span>查询物流</span></p></template>
|
||||
<div class="layui-layer-wrap">
|
||||
<dl>
|
||||
<dt>订单号:</dt>
|
||||
@@ -331,10 +312,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: right">
|
||||
<Button @click="logisticsModal = false">取消</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<template #footer><div style="text-align: right">
|
||||
<el-button @click="logisticsModal = false">取消</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
@@ -455,7 +436,7 @@ export default {
|
||||
if (receiptId) {
|
||||
const receiptRes = await receiptDetail(receiptId);
|
||||
if (receiptRes && receiptRes.success && receiptRes.result) {
|
||||
this.$set(this.order, "receipt", receiptRes.result);
|
||||
this.order["receipt"] = receiptRes.result;
|
||||
}
|
||||
}
|
||||
this.progressList = res.result.orderLogs;
|
||||
@@ -592,7 +573,7 @@ export default {
|
||||
color: $theme_color;
|
||||
}
|
||||
}
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
color: #ff8f23;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
@@ -698,15 +679,15 @@ table {
|
||||
.layui-layer-wrap > .div-express-log {
|
||||
max-height: 300px;
|
||||
}
|
||||
::v-deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar{
|
||||
:deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar{
|
||||
width: 1px;
|
||||
height: 5px;
|
||||
}
|
||||
::v-deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar-thumb{
|
||||
:deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar-thumb{
|
||||
border-radius: 1em;
|
||||
background-color: rgba(50,50,50,.3);
|
||||
}
|
||||
::v-deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar-track{
|
||||
:deep .layui-layer-wrap > .div-express-log::-webkit-scrollbar-track{
|
||||
border-radius: 1em;
|
||||
background-color: rgba(50,50,50,.1);
|
||||
}
|
||||
|
||||
@@ -9,14 +9,11 @@
|
||||
<span
|
||||
v-if="item.couponType === 'PRICE'"
|
||||
class="fontsize_12 global_color"
|
||||
>¥<span class="price">{{ item.price | unitPrice }}</span></span
|
||||
>
|
||||
>¥<span class="price">{{ $filters.unitPrice(item.price) }}</span></span>
|
||||
<span
|
||||
v-if="item.couponType === 'DISCOUNT'"
|
||||
class="fontsize_12 global_color"
|
||||
><span class="price">{{ item.discount }}</span
|
||||
>折</span
|
||||
>
|
||||
><span class="price">{{ item.discount }}</span>折</span>
|
||||
<span class="describe">满{{ item.consumeThreshold }}元可用</span>
|
||||
</div>
|
||||
<p>使用范围:{{ useScope(item.scopeType, item.storeName) }}</p>
|
||||
@@ -33,17 +30,13 @@
|
||||
<i class="circle-bottom"></i>
|
||||
</li>
|
||||
</ul>
|
||||
<Page
|
||||
:total="total"
|
||||
@on-change="changePageNum"
|
||||
<el-pagination :total="total"
|
||||
@current-change="changePageNum"
|
||||
class="pageration"
|
||||
@on-page-size-change="changePageSize"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer
|
||||
>
|
||||
</Page>
|
||||
<Spin v-if="loading" fix></Spin>
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
<el-skeleton v-if="loading" fix></el-skeleton>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -5,164 +5,202 @@
|
||||
<div class="box">
|
||||
<div class="mb_20 account-price">
|
||||
<span class="subTips">账户余额:</span>
|
||||
<span class="global_color mr_10" style="font-size:26px">¥{{ memberDeposit | unitPrice }}</span>
|
||||
<span class="global_color mr_10" style="font-size:26px">¥{{ $filters.unitPrice(memberDeposit) }}</span>
|
||||
<span class="subTips">冻结金额:</span>
|
||||
<span class="">¥{{ frozenDeposit | unitPrice }}</span>
|
||||
<span class="">¥{{ $filters.unitPrice(frozenDeposit) }}</span>
|
||||
</div>
|
||||
<div class="account-btns">
|
||||
<Button type="primary" @click="recharge">在线充值</Button>
|
||||
<Button @click="withdrawalApply">申请提现</Button>
|
||||
<el-button type="primary" @click="recharge">在线充值</el-button>
|
||||
<el-button @click="withdrawalApply">申请提现</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<Modal v-model="modal" width="530">
|
||||
<p slot="header">
|
||||
<Icon type="edit"></Icon>
|
||||
<el-dialog v-model="modal" width="530">
|
||||
<template #header><p>
|
||||
<el-icon><Edit /></el-icon>
|
||||
<span>充值金额</span>
|
||||
</p>
|
||||
</p></template>
|
||||
<div>
|
||||
<Form
|
||||
<el-form
|
||||
ref="formData"
|
||||
:label-width="100"
|
||||
label-width="100px"
|
||||
:model="formData"
|
||||
:rules="formValidate"
|
||||
label-position="left"
|
||||
>
|
||||
<FormItem label="充值金额" prop="price">
|
||||
<Input v-model="formData.price" maxlength="9" number size="large"
|
||||
><span slot="append">元</span></Input>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<el-form-item label="充值金额" prop="price">
|
||||
<el-input v-model="formData.price" maxlength="9" number size="large"
|
||||
><template #append><span>元</span></template></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: center">
|
||||
<Button size="large" type="success" @click="rechargePrice">充值</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<template #footer><div style="text-align: center">
|
||||
<el-button size="large" type="success" @click="rechargePrice">充值</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
<!-- 提现申请 -->
|
||||
<Modal v-model="withdrawApplyModal" width="530">
|
||||
<p slot="header">
|
||||
<Icon type="edit"></Icon>
|
||||
<el-dialog v-model="withdrawApplyModal" width="530">
|
||||
<template #header><p>
|
||||
<el-icon><Edit /></el-icon>
|
||||
<span>提现金额</span>
|
||||
</p>
|
||||
</p></template>
|
||||
<div>
|
||||
<Form
|
||||
<el-form
|
||||
ref="withdrawApplyFormData"
|
||||
:label-width="120"
|
||||
label-width="120px"
|
||||
:model="withdrawApplyFormData"
|
||||
:rules="withdrawApplyFormValidate"
|
||||
>
|
||||
<FormItem label="提现类型" prop="type">
|
||||
<Select v-model="withdrawApplyFormData.type" disabled>
|
||||
<Option value="ALI">支付宝</Option>
|
||||
<Option value="WECHAT">微信</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
<FormItem label="提现金额" prop="price">
|
||||
<Input
|
||||
<el-form-item label="提现类型" prop="type">
|
||||
<el-select v-model="withdrawApplyFormData.type" disabled>
|
||||
<el-option value="ALI">支付宝</el-option>
|
||||
<el-option value="WECHAT">微信</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="提现金额" prop="price">
|
||||
<el-input
|
||||
v-model="withdrawApplyFormData.price"
|
||||
maxlength="9"
|
||||
number
|
||||
size="large"
|
||||
><span slot="append">元</span></Input>
|
||||
><template #append><span>元</span></template></el-input>
|
||||
<span style="color: red">最低提现金额 {{ withdrawApplyFormData.minPrice }}元</span>
|
||||
</FormItem>
|
||||
<FormItem v-if="withdrawApplyFormData.type === 'ALI'" label="真实姓名" prop="realName">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item v-if="withdrawApplyFormData.type === 'ALI'" label="真实姓名" prop="realName">
|
||||
<el-input
|
||||
v-model="withdrawApplyFormData.realName"
|
||||
maxlength="9"
|
||||
number
|
||||
size="large"
|
||||
></Input>
|
||||
</FormItem>
|
||||
<FormItem v-if="withdrawApplyFormData.type === 'ALI'" label="第三方登录账号" prop="connectNumber">
|
||||
<Input
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="withdrawApplyFormData.type === 'ALI'" label="第三方登录账号" prop="connectNumber">
|
||||
<el-input
|
||||
v-model="withdrawApplyFormData.connectNumber"
|
||||
maxlength="9"
|
||||
number
|
||||
size="large"
|
||||
></Input>
|
||||
</FormItem>
|
||||
</Form>
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div slot="footer" style="text-align: center">
|
||||
<Button size="large" type="success" @click="withdrawal">提现</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<template #footer><div style="text-align: center">
|
||||
<el-button size="large" type="success" @click="withdrawal">提现</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
<!-- 余额日志 -->
|
||||
<Tabs value="log" @on-click="tabPaneChange">
|
||||
<TabPane label="余额日志" name="log">
|
||||
<Table :columns="logColumns" :data="logColumnsData.records"></Table>
|
||||
<el-tabs v-model="activeWalletTab" @tab-click="(tab) => tabPaneChange(tab.paneName)">
|
||||
<el-tab-pane label="余额日志" name="log">
|
||||
<el-table :data="logColumnsData.records || []">
|
||||
<el-table-column prop="createTime" label="时间" width="190" />
|
||||
<el-table-column label="金额" width="180">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.money > 0" style="color: green">{{ $filters.unitPrice(row.money, '+ ¥') }}</span>
|
||||
<span v-else-if="row.money < 0" style="color: red">{{ $filters.unitPrice(0 - row.money, '- ¥') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="detail" label="变动日志" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="walletForm.pageNumber"
|
||||
<el-pagination :current-page="walletForm.pageNumber"
|
||||
:page-size="walletForm.pageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
:total="logColumnsData.total"
|
||||
show-sizer
|
||||
show-total
|
||||
size="small"
|
||||
transfer
|
||||
@on-change="changePage"
|
||||
@on-page-size-change="changePageSize"
|
||||
></Page>
|
||||
small
|
||||
@current-change="changePage"
|
||||
@size-change="changePageSize"
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
</el-tab-pane>
|
||||
<!-- 充值记录 -->
|
||||
<TabPane label="充值记录" name="recharge">
|
||||
<Table
|
||||
:columns="rechargeListColumns"
|
||||
:data="rechargeListData.records"
|
||||
></Table>
|
||||
<el-tab-pane label="充值记录" name="recharge">
|
||||
<el-table :data="rechargeListData.records || []">
|
||||
<el-table-column prop="createTime" label="充值时间" width="168" />
|
||||
<el-table-column prop="rechargeSn" label="支付单号" width="200" />
|
||||
<el-table-column label="充值金额">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.payStatus === 'PAID'" style="color: green">{{ $filters.unitPrice(row.rechargeMoney, '+ ¥') }}</span>
|
||||
<span v-else>{{ $filters.unitPrice(row.rechargeMoney, '¥') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付状态">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.payStatus === 'PAID'">已付款</span>
|
||||
<span v-else-if="row.payStatus === 'UNPAID'">未付款</span>
|
||||
<span v-else-if="row.payStatus === 'CANCEL'">已取消</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付方式">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.rechargeWay === 'ALIPAY'">支付宝</span>
|
||||
<span v-else-if="row.rechargeWay === 'WECHAT'">微信</span>
|
||||
<span v-else-if="row.rechargeWay === 'BANK_TRANSFER'">线下转账</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="payTime" label="支付时间" width="180" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="rechargeForm.pageNumber"
|
||||
<el-pagination :current-page="rechargeForm.pageNumber"
|
||||
:page-size="rechargeForm.pageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
:total="rechargeListData.total"
|
||||
show-sizer
|
||||
show-total
|
||||
size="small"
|
||||
transfer
|
||||
@on-change="rechargeChangePage"
|
||||
@on-page-size-change="rechargeChangePageSize"
|
||||
></Page>
|
||||
small
|
||||
@current-change="rechargeChangePage"
|
||||
@size-change="rechargeChangePageSize"
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
</el-tab-pane>
|
||||
|
||||
<TabPane label="提现记录" name="withdrawApply">
|
||||
<Table
|
||||
:columns="withdrawApplyColumns"
|
||||
:data="withdrawApplyColumnsListData.records"
|
||||
></Table>
|
||||
<el-tab-pane label="提现记录" name="withdrawApply">
|
||||
<el-table :data="withdrawApplyColumnsListData.records || []">
|
||||
<el-table-column prop="createTime" label="申请时间" width="168" />
|
||||
<el-table-column prop="sn" label="提现单号" width="200" />
|
||||
<el-table-column label="提现金额" width="110">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.applyStatus === 'VIA_AUDITING'" style="color: green">{{ $filters.unitPrice(row.applyMoney, '+ ¥') }}</span>
|
||||
<span v-else>{{ $filters.unitPrice(row.applyMoney, '¥') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提现状态" width="95">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.applyStatus === 'APPLY'">申请中</span>
|
||||
<span v-else-if="row.applyStatus === 'VIA_AUDITING'">审核通过</span>
|
||||
<span v-else-if="row.applyStatus === 'SUCCESS'">提现成功</span>
|
||||
<span v-else-if="row.applyStatus === 'ERROR'">提现失败</span>
|
||||
<span v-else>审核拒绝</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="inspectTime" label="审核时间" width="168" />
|
||||
<el-table-column prop="inspectRemark" label="审核备注" show-overflow-tooltip />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="withdrawApplyForm.pageNumber"
|
||||
<el-pagination :current-page="withdrawApplyForm.pageNumber"
|
||||
:page-size="withdrawApplyForm.pageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
:total="withdrawApplyColumnsListData.total"
|
||||
show-sizer
|
||||
show-total
|
||||
size="small"
|
||||
transfer
|
||||
@on-change="withdrawChangePage"
|
||||
@on-page-size-change="withdrawChangePageSize"
|
||||
></Page>
|
||||
small
|
||||
@current-change="withdrawChangePage"
|
||||
@size-change="withdrawChangePageSize"
|
||||
layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</TabPane>
|
||||
</Tabs>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getDepositLog, getMembersWallet, getRecharge, getWithdrawApply, recharge, withdrawalApply} from '@/api/member';
|
||||
import {withdrawalSettingVO} from "@/api/pay";
|
||||
import { Edit } from '@element-plus/icons-vue';
|
||||
|
||||
export default {
|
||||
name: 'MoneyManagement',
|
||||
components: { Edit },
|
||||
data() {
|
||||
return {
|
||||
activeWalletTab: "log",
|
||||
frozenDeposit: 0, // 冻结余额
|
||||
memberDeposit: 0, // 余额
|
||||
|
||||
@@ -225,172 +263,9 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
// 余额日志
|
||||
logColumns: [
|
||||
{
|
||||
title: '时间',
|
||||
width: 190,
|
||||
key: 'createTime'
|
||||
},
|
||||
{
|
||||
title: '金额',
|
||||
key: 'money',
|
||||
width: 180,
|
||||
render: (h, params) => {
|
||||
if (params.row.money > 0) {
|
||||
return h('div', [
|
||||
h(
|
||||
'span',
|
||||
{
|
||||
style: {
|
||||
color: 'green'
|
||||
}
|
||||
},
|
||||
this.$options.filters.unitPrice(params.row.money, '+ ¥')
|
||||
)
|
||||
]);
|
||||
} else if (params.row.money < 0) {
|
||||
return h('div', [
|
||||
h(
|
||||
'span',
|
||||
{
|
||||
style: {
|
||||
color: 'red'
|
||||
}
|
||||
},
|
||||
this.$options.filters.unitPrice(0 - params.row.money, '- ¥')
|
||||
)
|
||||
]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '变动日志',
|
||||
key: 'detail'
|
||||
}
|
||||
],
|
||||
logColumnsData: {}, // 余额日志
|
||||
// 充值记录
|
||||
rechargeListColumns: [
|
||||
{
|
||||
title: '充值时间',
|
||||
key: 'createTime',
|
||||
width: 168
|
||||
},
|
||||
{
|
||||
title: '支付单号',
|
||||
key: 'rechargeSn',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '充值金额',
|
||||
key: 'rechargeMoney',
|
||||
render: (h, params) => {
|
||||
if (params.row.payStatus === 'PAID') {
|
||||
return h('div', [h('span', {
|
||||
style: {
|
||||
color: 'green'
|
||||
}
|
||||
}, this.$options.filters.unitPrice(params.row.rechargeMoney, '+ ¥'))]);
|
||||
} else {
|
||||
return h('div', [h('span', this.$options.filters.unitPrice(params.row.rechargeMoney, '¥'))]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '支付状态',
|
||||
key: 'payStatus',
|
||||
render: (h, params) => {
|
||||
if (params.row.payStatus === 'PAID') {
|
||||
return h('div', [h('span', {}, '已付款')]);
|
||||
} else if (params.row.payStatus === 'UNPAID') {
|
||||
return h('div', [h('span', {}, '未付款')]);
|
||||
} else if (params.row.payStatus === 'CANCEL') {
|
||||
return h('div', [h('span', {}, '已取消')]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '支付方式',
|
||||
key: 'rechargeWay',
|
||||
render: (h, params) => {
|
||||
if (params.row.rechargeWay === 'ALIPAY') {
|
||||
return h('div', [h('span', {}, '支付宝')]);
|
||||
} else if (params.row.rechargeWay === 'WECHAT') {
|
||||
return h('div', [h('span', {}, '微信')]);
|
||||
} else if (params.row.rechargeWay === 'BANK_TRANSFER') {
|
||||
return h('div', [h('span', {}, '线下转账')]);
|
||||
} else {
|
||||
return h('div', [h('span', {}, '')]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '支付时间',
|
||||
key: 'payTime',
|
||||
width: 180
|
||||
}
|
||||
],
|
||||
rechargeListData: {}, // 充值记录数据
|
||||
// 提现记录
|
||||
withdrawApplyColumns: [
|
||||
{
|
||||
title: '申请时间',
|
||||
key: 'createTime',
|
||||
width: 168
|
||||
},
|
||||
{
|
||||
title: '提现单号',
|
||||
key: 'sn',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '提现金额',
|
||||
key: 'applyMoney',
|
||||
width: 110,
|
||||
render: (h, params) => {
|
||||
if (params.row.applyStatus === 'VIA_AUDITING') {
|
||||
return h('div', [h('span', {
|
||||
style: {
|
||||
color: 'green'
|
||||
}
|
||||
}, this.$options.filters.unitPrice(params.row.applyMoney, '+ ¥'))]);
|
||||
} else {
|
||||
return h('div', [h('span', this.$options.filters.unitPrice(params.row.applyMoney, '¥'))]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '提现状态',
|
||||
key: 'applyStatus',
|
||||
width: 95,
|
||||
render: (h, params) => {
|
||||
if (params.row.applyStatus === 'APPLY') {
|
||||
return h('div', [h('span', {}, '申请中')]);
|
||||
} else if (params.row.applyStatus === 'VIA_AUDITING') {
|
||||
return h('div', [h('span', {}, '审核通过')]);
|
||||
} else if (params.row.applyStatus === 'SUCCESS') {
|
||||
return h('div', [h('span', {}, '提现成功')]);
|
||||
} else if (params.row.applyStatus === 'ERROR') {
|
||||
return h('div', [h('span', {}, '提现失败')]);
|
||||
} else {
|
||||
return h('div', [h('span', {}, '审核拒绝')]);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '审核时间',
|
||||
key: 'inspectTime',
|
||||
width: 168
|
||||
},
|
||||
{
|
||||
title: '审核备注',
|
||||
key: 'inspectRemark',
|
||||
tooltip: true
|
||||
|
||||
}
|
||||
],
|
||||
withdrawApplyColumnsListData: {} // 提现记录
|
||||
logColumnsData: {},
|
||||
rechargeListData: {},
|
||||
withdrawApplyColumnsListData: {}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
@@ -548,7 +423,7 @@ export default {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.ivu-btn {
|
||||
.el-button {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,33 +4,33 @@
|
||||
|
||||
<div class="bind-section mb_20">
|
||||
<div class="section-title">兑换礼品卡</div>
|
||||
<Form ref="bindForm" :model="bindForm" :rules="bindRules" inline class="bind-form">
|
||||
<FormItem label="卡号" prop="cardNo" :label-width="60">
|
||||
<Input v-model="bindForm.cardNo" placeholder="请输入卡号" maxlength="64" style="width: 220px" />
|
||||
</FormItem>
|
||||
<FormItem label="兑换码" prop="cardSecret" :label-width="70">
|
||||
<Input
|
||||
<el-form ref="bindForm" :model="bindForm" :rules="bindRules" inline class="bind-form">
|
||||
<el-form-item label="卡号" prop="cardNo" label-width="60px">
|
||||
<el-input v-model="bindForm.cardNo" placeholder="请输入卡号" maxlength="64" style="width: 220px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="兑换码" prop="cardSecret" label-width="70px">
|
||||
<el-input
|
||||
v-model="bindForm.cardSecret"
|
||||
type="password"
|
||||
placeholder="请输入兑换码(卡密)"
|
||||
maxlength="128"
|
||||
style="width: 220px"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem :label-width="0">
|
||||
<Button type="primary" :loading="bindSubmitting" @click="submitBind">兑换</Button>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="0px">
|
||||
<el-button type="primary" :loading="bindSubmitting" @click="submitBind">兑换</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<Tabs v-model="statusTab" class="status-tabs mb_16" @on-click="onStatusTab">
|
||||
<TabPane label="可用" name="AVAILABLE" />
|
||||
<TabPane label="不可用" name="UNAVAILABLE" />
|
||||
<TabPane label="待激活" name="PENDING_ACTIVATION" />
|
||||
</Tabs>
|
||||
<el-tabs v-model="statusTab" class="status-tabs mb_16" @tab-click="(tab) => onStatusTab(tab.paneName)">
|
||||
<el-tab-pane label="可用" name="AVAILABLE" />
|
||||
<el-tab-pane label="不可用" name="UNAVAILABLE" />
|
||||
<el-tab-pane label="待激活" name="PENDING_ACTIVATION" />
|
||||
</el-tabs>
|
||||
|
||||
<div class="card-list-wrap">
|
||||
<Spin v-if="loading" fix />
|
||||
<el-skeleton v-if="loading" fix />
|
||||
<template v-if="!loading">
|
||||
<empty v-if="list.length === 0" />
|
||||
<div v-else class="gift-card-grid">
|
||||
@@ -51,7 +51,7 @@
|
||||
</div>
|
||||
<div class="gcc-card-body">
|
||||
<div class="gcc-row">
|
||||
当前余额:<span class="gcc-strong" v-if="item.balance != null">¥{{ item.balance | unitPrice }}</span><span class="gcc-strong" v-else>—</span>
|
||||
当前余额:<span class="gcc-strong" v-if="item.balance != null">¥{{ $filters.unitPrice(item.balance) }}</span><span class="gcc-strong" v-else>—</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
@@ -73,28 +73,23 @@
|
||||
</div>
|
||||
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:current="params.pageNumber"
|
||||
<el-pagination :current-page="params.pageNumber"
|
||||
:page-size="params.pageSize"
|
||||
:page-size-opts="[10, 20, 50]"
|
||||
:page-sizes="[10, 20, 50]"
|
||||
:total="total"
|
||||
show-sizer
|
||||
show-total
|
||||
size="small"
|
||||
transfer
|
||||
@on-change="changePage"
|
||||
@on-page-size-change="changePageSize"
|
||||
/>
|
||||
small
|
||||
@current-change="changePage"
|
||||
@size-change="changePageSize"
|
||||
layout="total, sizes, prev, pager, next" />
|
||||
</div>
|
||||
|
||||
<Modal v-model="noticeModal" title="使用须知" footer-hide width="520">
|
||||
<el-dialog v-model="noticeModal" title="使用须知" footer-hide width="520">
|
||||
<p class="gcc-notice-text">
|
||||
请在有效期内使用本礼品卡;消费时将优先使用卡内余额。具体使用范围以活动规则为准。如有疑问请联系客服。
|
||||
</p>
|
||||
<div class="gcc-notice-footer">
|
||||
<Button type="primary" @click="noticeModal = false">我知道了</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<el-button type="primary" @click="noticeModal = false">我知道了</el-button>
|
||||
</div></el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -314,7 +309,7 @@ export default {
|
||||
gap: 4px 8px;
|
||||
}
|
||||
.status-tabs {
|
||||
::v-deep .ivu-tabs-bar {
|
||||
:deep(.el-tabs__header) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="wrapper">
|
||||
<!-- 卡片组件 -->
|
||||
<card _Title="我的足迹" :_Size="16"></card>
|
||||
<Button class="del-btn" @click="clearAll" type="primary">删除全部</Button>
|
||||
<el-button class="del-btn" @click="clearAll" type="primary">删除全部</el-button>
|
||||
<!-- 订单列表 -->
|
||||
<empty v-if="list.length === 0" />
|
||||
<ul class="track-list" v-else>
|
||||
@@ -13,29 +13,28 @@
|
||||
>
|
||||
<img :src="item.thumbnail" :alt="item.thumbnail" width="200" height="200" />
|
||||
<p class="ellipsis">{{ item.goodsName }}</p>
|
||||
<p>{{ item.price | unitPrice("¥") }}</p>
|
||||
<p>{{ $filters.unitPrice(item.price, "¥") }}</p>
|
||||
<span class="del-icon" @click.stop="clearById(item.goodsId)">
|
||||
<Icon type="md-trash" />
|
||||
<el-icon><Delete /></el-icon>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 分页 -->
|
||||
<div class="page-size">
|
||||
<Page
|
||||
:total="total"
|
||||
@on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
<el-pagination :total="total"
|
||||
@current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-sizer
|
||||
>
|
||||
</Page>
|
||||
layout="sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Delete } from '@element-plus/icons-vue';
|
||||
import { tracksList, clearTracks, clearTracksById } from "@/api/member";
|
||||
export default {
|
||||
components: { Delete },
|
||||
name: "MyTrack",
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
</div>
|
||||
<div class="cart-steps">
|
||||
<span :class="stepIndex == 1 ? 'active' : ''">1.我的购物车</span>
|
||||
<Icon :class="stepIndex == 1 ? 'active-arrow' : ''" custom="icomoon icon-next"></Icon>
|
||||
<i class="icomoon icon-next" :class="stepIndex == 1 ? 'active-arrow' : ''"></i>
|
||||
<span :class="stepIndex == 1 ? 'active' : ''">2.填写订单信息</span>
|
||||
<Icon :class="stepIndex == 1 ? 'active-arrow' : ''" custom="icomoon icon-next"></Icon>
|
||||
<i class="icomoon icon-next" :class="stepIndex == 1 ? 'active-arrow' : ''"></i>
|
||||
<span :class="stepIndex == 2 ? 'active' : ''">3.成功提交订单</span>
|
||||
</div>
|
||||
</div>
|
||||
<Divider />
|
||||
<el-divider />
|
||||
<div class="content width_1200">
|
||||
<!-- 收货地址 -->
|
||||
<div class="address" v-if="selectedDeliverMethod === 'LOGISTICS' && goodsType !== 'VIRTUAL_GOODS'">
|
||||
@@ -30,13 +30,13 @@
|
||||
:key="index">
|
||||
<div>
|
||||
<span>{{ item.name }}</span>
|
||||
<Tag class="ml_10" v-if="item.isDefault" color="red">默认</Tag>
|
||||
<Tag class="ml_10" v-if="item.alias" color="warning">{{ item.alias }}
|
||||
</Tag>
|
||||
<el-tag class="ml_10" v-if="item.isDefault" color="red">默认</el-tag>
|
||||
<el-tag class="ml_10" v-if="item.alias" color="warning">{{ item.alias }}
|
||||
</el-tag>
|
||||
</div>
|
||||
<div>{{ item.mobile }}</div>
|
||||
<div>
|
||||
{{ item.consigneeAddressPath | unitAddress }} {{ item.detail }}
|
||||
{{ $filters.unitAddress(item.consigneeAddressPath) }} {{ item.detail }}
|
||||
</div>
|
||||
<div class="edit-btn" v-show="showEditBtn === index">
|
||||
<span @click.stop="editAddress(item.id)">修改</span>
|
||||
@@ -44,18 +44,18 @@
|
||||
</div>
|
||||
<div class="corner-icon" v-show="selectedAddress.id === item.id">
|
||||
<div></div>
|
||||
<Icon type="md-checkmark" />
|
||||
<el-icon><Check /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<div class="add-address" @click="editAddress('')">
|
||||
<Icon type="ios-add-circle-outline" />
|
||||
<el-icon><Plus /></el-icon>
|
||||
<div>添加新地址</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="more-addr" @click="moreAddr = !moreAddr" v-if="addressList.length > 3">
|
||||
{{ moreAddr ? "收起地址" : "更多地址" }}
|
||||
<Icon v-show="!moreAddr" type="md-arrow-dropdown" />
|
||||
<Icon v-show="moreAddr" type="md-arrow-dropup" />
|
||||
<el-icon :v-show="!moreAddr"><ArrowDown /></el-icon>
|
||||
<el-icon :v-show="moreAddr"><ArrowUp /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -73,18 +73,18 @@
|
||||
</div>
|
||||
<div>{{ item.mobile }}</div>
|
||||
<div>
|
||||
{{ item.address | unitAddress }} {{ item.detail }}
|
||||
{{ $filters.unitAddress(item.address) }} {{ item.detail }}
|
||||
</div>
|
||||
<div class="corner-icon" v-show="selectedStoreAddress.id === item.id">
|
||||
<div></div>
|
||||
<Icon type="md-checkmark" />
|
||||
<el-icon><Check /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="more-addr" @click="storeMoreAddr = !storeMoreAddr" v-if="addressList.length > 3">
|
||||
{{ storeMoreAddr ? "收起地址" : "更多地址" }}
|
||||
<Icon v-show="!storeMoreAddr" type="md-arrow-dropdown" />
|
||||
<Icon v-show="storeMoreAddr" type="md-arrow-dropup" />
|
||||
<el-icon :v-show="!storeMoreAddr"><ArrowDown /></el-icon>
|
||||
<el-icon :v-show="storeMoreAddr"><ArrowUp /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@@ -102,7 +102,7 @@
|
||||
<div>{{ item.label }}</div>
|
||||
<div class="corner-icon" v-show="selectedDeliverMethod === item.value">
|
||||
<div></div>
|
||||
<Icon type="md-checkmark" />
|
||||
<el-icon><Check /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -132,18 +132,14 @@
|
||||
goods.goodsSku.goodsName
|
||||
}}</span>
|
||||
</span>
|
||||
<span class="goods-price">{{
|
||||
goods.purchasePrice | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="goods-price">{{ $filters.unitPrice(goods.purchasePrice, "¥") }}</span>
|
||||
<span>x{{ goods.num }}</span>
|
||||
<span>{{ goods.goodsSku.quantity > 0 ? "有货" : "无货" }}</span>
|
||||
<span class="goods-price">{{
|
||||
goods.subTotal | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="goods-price">{{ $filters.unitPrice(goods.subTotal, "¥") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="order-mark">
|
||||
<Input type="textarea" maxlength="60" v-model="shop.remark" show-word-limit placeholder="订单备注" />
|
||||
<el-input type="textarea" maxlength="60" v-model="shop.remark" show-word-limit placeholder="订单备注" />
|
||||
<span style="font-size: 12px; color: #999">提示:请勿填写有关支付、收货、发票方面的信息</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -153,7 +149,7 @@
|
||||
<div class="invoice">
|
||||
<div class="card-head mt_20 mb_20">
|
||||
<span class="relative">发票信息<span class="inv-tips">
|
||||
<Icon type="ios-alert-outline" />开企业抬头发票须填写纳税人识别号,以免影响报销
|
||||
<el-icon><Warning /></el-icon>开企业抬头发票须填写纳税人识别号,以免影响报销
|
||||
</span></span>
|
||||
</div>
|
||||
<div class="inovice-content">
|
||||
@@ -175,9 +171,7 @@
|
||||
<li v-for="(item, index) in couponList" class="coupon-item" :key="index">
|
||||
<div class="c-left">
|
||||
<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">{{ $filters.unitPrice(item.price) }}</span></span>
|
||||
<span v-if="item.couponType === 'DISCOUNT'" class="fontsize_12 global_color"><span class="price">{{
|
||||
item.discount
|
||||
}}</span>折</span>
|
||||
@@ -201,12 +195,11 @@
|
||||
<div class="pay-gcc-title">
|
||||
使用礼品卡
|
||||
<span class="pay-gcc-deduct">
|
||||
(已抵扣 <span class="pay-gcc-deduct-num">{{ giftCardDeductAmount | unitPrice("¥") }}</span
|
||||
>)
|
||||
(已抵扣 <span class="pay-gcc-deduct-num">{{ $filters.unitPrice(giftCardDeductAmount, "¥") }}</span>)
|
||||
</span>
|
||||
</div>
|
||||
<a href="javascript:void(0)" class="pay-gcc-help" @click.prevent="giftCardNoticeModal = true">
|
||||
使用说明 <Icon type="ios-help-circle-outline" />
|
||||
使用说明 <el-icon><Help /></el-icon>
|
||||
</a>
|
||||
</div>
|
||||
<div class="pay-gcc-body">
|
||||
@@ -234,14 +227,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="pay-gcc-balance-row">
|
||||
<span class="pay-gcc-amt">¥{{ item.balance != null ? (item.balance | unitPrice) : "0.00" }}</span>
|
||||
<span class="pay-gcc-amt">¥{{ item.balance != null ? $filters.unitPrice(item.balance) : "0.00" }}</span>
|
||||
<span class="pay-gcc-bal-label">余额</span>
|
||||
</div>
|
||||
<div class="pay-gcc-no">{{ item.cardNo }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isGiftCardSelected(item)" class="pay-gcc-corner">
|
||||
<Icon type="md-checkmark" />
|
||||
<el-icon><Check /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -252,28 +245,26 @@
|
||||
<!-- 订单价格 -->
|
||||
<div class="order-price">
|
||||
<div>
|
||||
<span>{{ totalNum }}件商品,总商品金额:</span><span>{{ priceDetailDTO.goodsPrice | unitPrice("¥") }}</span>
|
||||
<span>{{ totalNum }}件商品,总商品金额:</span><span>{{ $filters.unitPrice(priceDetailDTO.goodsPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="priceDetailDTO.freightPrice > 0">
|
||||
<span>运费:</span><span>{{ priceDetailDTO.freightPrice | unitPrice("¥") }}</span>
|
||||
<span>运费:</span><span>{{ $filters.unitPrice(priceDetailDTO.freightPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="priceDetailDTO.discountPrice > 0">
|
||||
<span>优惠金额:</span><span>-{{ priceDetailDTO.discountPrice | unitPrice("¥") }}</span>
|
||||
<span>优惠金额:</span><span>-{{ $filters.unitPrice(priceDetailDTO.discountPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="priceDetailDTO.couponPrice > 0">
|
||||
<span>优惠券金额:</span><span>-{{ priceDetailDTO.couponPrice | unitPrice("¥") }}</span>
|
||||
<span>优惠券金额:</span><span>-{{ $filters.unitPrice(priceDetailDTO.couponPrice, "¥") }}</span>
|
||||
</div>
|
||||
<div v-if="giftCardDeductAmount > 0">
|
||||
<span>礼品卡抵扣:</span><span>-{{ giftCardDeductAmount | unitPrice("¥") }}</span>
|
||||
<span>礼品卡抵扣:</span><span>-{{ $filters.unitPrice(giftCardDeductAmount, "¥") }}</span>
|
||||
</div>
|
||||
|
||||
<div v-if="$route.query.way === 'POINTS'">
|
||||
<span>应付积分:</span><span class="actrual-price">{{ priceDetailDTO.payPoint }}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span>应付金额:</span><span class="actrual-price">{{
|
||||
priceDetailDTO.flowPrice | unitPrice("¥")
|
||||
}}</span>
|
||||
<span>应付金额:</span><span class="actrual-price">{{ $filters.unitPrice(priceDetailDTO.flowPrice, "¥") }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -281,7 +272,7 @@
|
||||
<div class="order-footer width_1200">
|
||||
<div class="pay ml_20" @click="pay">提交订单</div>
|
||||
<div class="pay-address" v-if="addressList.length && selectedDeliverMethod === 'LOGISTICS'">
|
||||
配送至:{{ selectedAddress.consigneeAddressPath | unitAddress }}
|
||||
配送至:{{ $filters.unitAddress(selectedAddress.consigneeAddressPath) }}
|
||||
{{ selectedAddress.detail }} 收货人:{{
|
||||
selectedAddress.name
|
||||
}} {{ selectedAddress.mobile }}
|
||||
@@ -295,18 +286,18 @@
|
||||
<invoice-modal ref="invModal" :invoiceData="invoiceData" @change="getInvMsg" />
|
||||
<!-- 选择地址模态框 -->
|
||||
<address-manage ref="address" :id="addrId" @change="addrChange"></address-manage>
|
||||
<Modal v-model="giftCardNoticeModal" title="礼品卡使用说明" footer-hide width="520">
|
||||
<el-dialog v-model="giftCardNoticeModal" title="礼品卡使用说明" footer-hide width="520">
|
||||
<p class="pay-gcc-notice-p">
|
||||
请在礼品卡有效期内使用;结算时勾选礼品卡即可按规则抵扣订单金额,可与优惠券等活动叠加规则以平台说明为准。放弃勾选或取消抵扣将恢复对应余额。
|
||||
</p>
|
||||
<div class="pay-gcc-notice-foot">
|
||||
<Button type="primary" @click="giftCardNoticeModal = false">我知道了</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<el-button type="primary" @click="giftCardNoticeModal = false">我知道了</el-button>
|
||||
</div></el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ArrowDown, ArrowUp, Check, Help, Plus, Warning } from '@element-plus/icons-vue';
|
||||
import invoiceModal from "@/components/invoiceModal";
|
||||
import addressManage from "@/components/addressManage";
|
||||
import { memberAddress, delMemberAddress } from "@/api/address";
|
||||
@@ -928,7 +919,7 @@ export default {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
@include content_color($light_content_color);
|
||||
font-size: 20px;
|
||||
margin: 0 15px;
|
||||
@@ -1008,7 +999,7 @@ export default {
|
||||
border-right: 20px solid $theme_color;
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -1045,7 +1036,7 @@ export default {
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
@@ -1091,7 +1082,7 @@ export default {
|
||||
border-right: 20px solid $theme_color;
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -1115,7 +1106,7 @@ export default {
|
||||
>span:nth-child(1) {
|
||||
font-weight: bold;
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
color: #ff8f23;
|
||||
|
||||
&:hover {
|
||||
@@ -1232,7 +1223,7 @@ export default {
|
||||
left: -9px;
|
||||
}
|
||||
|
||||
.ivu-icon {
|
||||
.el-icon {
|
||||
color: #ff8f23;
|
||||
margin-right: 3px;
|
||||
font-size: 16px;
|
||||
@@ -1333,7 +1324,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.ivu-divider {
|
||||
.el-divider {
|
||||
background: $theme_color;
|
||||
height: 2px;
|
||||
}
|
||||
@@ -1551,7 +1542,7 @@ export default {
|
||||
background: #e54d42;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.pay-gcc-corner .ivu-icon {
|
||||
.pay-gcc-corner .el-icon {
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
bottom: 3px;
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
<img src="../../assets/images/pay-success.png">
|
||||
</div>
|
||||
<div class="pay-btn">
|
||||
<Button type="primary" @click="$router.push('/')">继续逛逛</Button>
|
||||
<Button type="info" v-if="$route.query.orderType ==='RECHARGE'" @click="$router.push('/home/MoneyManagement')">查看余额</Button>
|
||||
<Button type="info" v-else @click="$router.push('/home/myOrder')">查看订单</Button>
|
||||
<el-button type="primary" @click="$router.push('/')">继续逛逛</el-button>
|
||||
<el-button type="info" v-if="$route.query.orderType ==='RECHARGE'" @click="$router.push('/home/MoneyManagement')">查看余额</el-button>
|
||||
<el-button type="info" v-else @click="$router.push('/home/myOrder')">查看订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -6,19 +6,11 @@
|
||||
<div class="left-tips">订单提交成功,请尽快付款!</div>
|
||||
<div class="left-tips-time">请您尽快完成支付,否则订单会被自动取消</div>
|
||||
<div class="left-tips-count-down">
|
||||
<mv-count-down :startTime="startTime" class="count-down"
|
||||
:endTime="endTime"
|
||||
:endText="endText"
|
||||
:dayTxt="'天'"
|
||||
:hourTxt="'小时'"
|
||||
:minutesTxt="'分钟'"
|
||||
:secondsTxt="'秒'"
|
||||
:isStart="isStart"></mv-count-down>
|
||||
|
||||
<span class="count-down">{{ countdownText }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="head-right">
|
||||
<div>应付金额 <span class="price">{{ payDetail.price | unitPrice }}</span>元</div>
|
||||
<div>应付金额 <span class="price">{{ $filters.unitPrice(payDetail.price) }}</span>元</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper-box">
|
||||
@@ -35,9 +27,9 @@
|
||||
<span>微信</span>
|
||||
</div>
|
||||
<div v-if="support.includes('WALLET') && $route.query.orderType !== 'RECHARGE'" class="-box-item" @click="handlePay('WALLET')">
|
||||
<Icon custom="icomoon icon-wallet" size="60"/>
|
||||
<i class="icomoon icon-wallet" style="font-size: 60px"></i>
|
||||
<span>余额支付</span>
|
||||
<span>当前剩余({{ walletValue | unitPrice('¥') }})</span>
|
||||
<span>当前剩余({{ $filters.unitPrice(walletValue, '¥') }})</span>
|
||||
</div>
|
||||
</div>
|
||||
<BaseFooter></BaseFooter>
|
||||
@@ -46,25 +38,34 @@
|
||||
<script>
|
||||
|
||||
import {tradeDetail, pay} from '@/api/pay.js';
|
||||
import MvCountDown from 'mv-count-down'
|
||||
import {Message} from 'view-design';
|
||||
import { Message } from '@/utils/message';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
MvCountDown
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
payDetail: {}, // 支付详情
|
||||
support: [], // 支持配送方式
|
||||
walletValue: 0, // 当前余额
|
||||
qrcode: '', // 支付二维码
|
||||
startTime: new Date().getTime(), // 开始时间(时间戳)
|
||||
endTime: 0, // 完成的时间(时间戳)
|
||||
endText: '订单已超时取消', // 倒计时完成的提示文本
|
||||
isStart: false // 控制倒计时开始的时机(异步请求完成开启)
|
||||
payDetail: {},
|
||||
support: [],
|
||||
walletValue: 0,
|
||||
qrcode: '',
|
||||
endTime: 0,
|
||||
endText: '订单已超时取消',
|
||||
isStart: false,
|
||||
now: Date.now(),
|
||||
countdownTimer: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
countdownText () {
|
||||
if (!this.isStart || !this.endTime) return '';
|
||||
const diff = this.endTime - this.now;
|
||||
if (diff <= 0) return this.endText;
|
||||
const days = Math.floor(diff / 86400000);
|
||||
const hours = Math.floor((diff % 86400000) / 3600000);
|
||||
const minutes = Math.floor((diff % 3600000) / 60000);
|
||||
const seconds = Math.floor((diff % 60000) / 1000);
|
||||
return `${days}天${hours}小时${minutes}分钟${seconds}秒`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 获取订单详情
|
||||
getTradeDetail () {
|
||||
@@ -118,7 +119,13 @@ export default {
|
||||
},
|
||||
mounted () {
|
||||
this.getTradeDetail();
|
||||
}
|
||||
this.countdownTimer = setInterval(() => {
|
||||
this.now = Date.now();
|
||||
}, 1000);
|
||||
},
|
||||
beforeUnmount () {
|
||||
if (this.countdownTimer) clearInterval(this.countdownTimer);
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="left-tips-time">请您尽快完成支付,否则订单会被自动取消</div>
|
||||
</div>
|
||||
<div class="head-right">
|
||||
<div>应付金额 <span class="price">{{$route.query.price | unitPrice}}</span>元</div>
|
||||
<div>应付金额 <span class="price">{{ $filters.unitPrice($route.query.price) }}</span>元</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
@@ -17,14 +17,14 @@
|
||||
<vue-qr :text="qrcode" :margin="0" colorDark="#000" colorLight="#fff" :size="200"></vue-qr>
|
||||
</div>
|
||||
<div class="intro">
|
||||
<Icon type="md-qr-scanner" /> 请使用{{params.paymentMethod === 'ALIPAY' ? '支付宝' : '微信'}}扫码付款
|
||||
<el-icon><Iphone /></el-icon> 请使用{{params.paymentMethod === 'ALIPAY' ? '支付宝' : '微信'}}扫码付款
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-div">
|
||||
<p class="mb_10">支付成功后自动跳转,如未跳转请点击按钮手动跳转。。。</p>
|
||||
<div>
|
||||
<Button @click="handlePay">重新支付</Button>
|
||||
<Button type="success" @click="$router.push('/payDone')">支付成功</Button>
|
||||
<el-button @click="handlePay">重新支付</el-button>
|
||||
<el-button type="success" @click="$router.push('/payDone')">支付成功</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<a @click="$router.back()">选择其他支付方式></a>
|
||||
@@ -33,10 +33,11 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Iphone } from '@element-plus/icons-vue';
|
||||
import vueQr from 'vue-qr';
|
||||
import { payCallback, pay } from '@/api/pay.js';
|
||||
export default {
|
||||
components: { vueQr },
|
||||
components: { vueQr, Iphone },
|
||||
data () {
|
||||
return {
|
||||
qrcode: '', // 二维码
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
<Search style="border-bottom:2px solid red;"></Search>
|
||||
<!-- <drawer></drawer> -->
|
||||
<div class="base-width cate-container">
|
||||
<Breadcrumb>
|
||||
<BreadcrumbItem to="/">首页</BreadcrumbItem>
|
||||
<BreadcrumbItem>{{goodsMsg.pointsGoodsCategoryName}}</BreadcrumbItem>
|
||||
</Breadcrumb>
|
||||
<el-breadcrumb>
|
||||
<el-breadcrumb-item to="/">首页</el-breadcrumb-item>
|
||||
<el-breadcrumb-item>{{goodsMsg.pointsGoodsCategoryName}}</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<!-- 商品信息展示 -->
|
||||
<div class="item-detail-show">
|
||||
@@ -15,7 +15,13 @@
|
||||
<div class="item-detail-left">
|
||||
<!-- 大图、放大镜 -->
|
||||
<div class="item-detail-big-img">
|
||||
<pic-zoom v-if="goodsSku.thumbnail" :url="goodsSku.thumbnail" :scale="2"></pic-zoom>
|
||||
<el-image
|
||||
v-if="goodsSku.thumbnail"
|
||||
:src="goodsSku.thumbnail"
|
||||
:preview-src-list="[goodsSku.thumbnail]"
|
||||
fit="contain"
|
||||
style="width: 100%; height: 400px"
|
||||
/>
|
||||
</div>
|
||||
<div class="item-detail-img-row">
|
||||
<div class="item-detail-img-small">
|
||||
@@ -49,7 +55,7 @@
|
||||
<p>数量</p>
|
||||
</div>
|
||||
<div class="item-select-row">
|
||||
<InputNumber :min="1" :disabled="goodsSku.quantity === 0" v-model="count"></InputNumber>
|
||||
<el-input-number :min="1" :disabled="goodsSku.quantity === 0" v-model="count"></el-input-number>
|
||||
<span class="inventory"> 库存{{goodsSku.quantity}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -62,7 +68,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="add-buy-car">
|
||||
<Button type="error" :loading="loading" :disabled="goodsSku.quantity === 0" @click="pointBuy">积分购买</Button>
|
||||
<el-button type="danger" :loading="loading" :disabled="goodsSku.quantity === 0" @click="pointBuy">积分购买</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -73,14 +79,13 @@
|
||||
<div v-html="goodsSku.intro" class="mt_10 ml_10" v-if="goodsSku.intro"></div>
|
||||
<div v-else style="margin:20px;">暂无商品介绍</div>
|
||||
</div>
|
||||
<Spin size="large" fix v-if="isLoading"></Spin>
|
||||
<el-skeleton size="large" fix v-if="isLoading"></el-skeleton>
|
||||
<BaseFooter></BaseFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Search from '@/components/Search';
|
||||
import PicZoom from 'vue-piczoom';
|
||||
import { addCartGoods } from '@/api/cart.js';
|
||||
import { pointGoodsDetail } from '@/api/promotion';
|
||||
export default {
|
||||
@@ -157,7 +162,7 @@ export default {
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Search, PicZoom
|
||||
Search,
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<Search></Search>
|
||||
<cateNav></cateNav>
|
||||
<h3 class="promotion-decorate">积分商品</h3>
|
||||
<Select @on-select="selectCate" size="small" class="cate-select-con" v-model="cateId">
|
||||
<Option v-for="(cate, index) in cateList" :value="cate.id" :key="index">{{cate.name}}</Option>
|
||||
</Select>
|
||||
<el-select @select="selectCate" size="small" class="cate-select-con" v-model="cateId">
|
||||
<el-option v-for="(cate, index) in cateList" :value="cate.id" :key="index">{{cate.name}}</el-option>
|
||||
</el-select>
|
||||
<!-- 列表 -->
|
||||
<div class="goods-list">
|
||||
<empty v-if="goodsList.length === 0" />
|
||||
@@ -29,8 +29,7 @@
|
||||
<span>{{ item.goodsSku.goodsName }}</span>
|
||||
</div>
|
||||
<div class="goods-show-num">
|
||||
已有<span>{{ item.commentNum || 0 }}</span
|
||||
>人评价
|
||||
已有<span>{{ item.commentNum || 0 }}</span>人评价
|
||||
</div>
|
||||
<div class="goods-show-seller">
|
||||
<span>{{ item.storeName }}</span>
|
||||
@@ -38,12 +37,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="page-size">
|
||||
<Page :total="total" @on-change="changePageNum"
|
||||
@on-page-size-change="changePageSize"
|
||||
:page-size="params.pageSize"
|
||||
show-total
|
||||
show-sizer>
|
||||
</Page>
|
||||
<el-pagination :total="total" @current-change="changePageNum"
|
||||
@size-change="changePageSize"
|
||||
:page-size="params.pageSize" layout="total, sizes, prev, pager, next"></el-pagination>
|
||||
</div>
|
||||
<BaseFooter></BaseFooter>
|
||||
</div>
|
||||
|
||||
@@ -32,12 +32,8 @@
|
||||
</div>
|
||||
<div class="goods-show-price">
|
||||
<span>
|
||||
<span class="seckill-price text-danger">{{
|
||||
item.price | unitPrice("¥")
|
||||
}}</span>
|
||||
<span style="color: #999; text-decoration: line-through">{{
|
||||
item.originalPrice | unitPrice("¥")
|
||||
}}</span>
|
||||
<span class="seckill-price text-danger">{{ $filters.unitPrice(item.price, "¥") }}</span>
|
||||
<span style="color: #999; text-decoration: line-through">{{ $filters.unitPrice(item.originalPrice, "¥") }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="goods-show-detail" style="margin-bottom: 20px">
|
||||
@@ -59,12 +55,15 @@
|
||||
(item.salesNum / (item.quantity)) * 100
|
||||
)
|
||||
: 100) + "%"
|
||||
}}</span><Progress hide-info stroke-color="#df0021" style="width: 110px" class="ml_10" :percent="item.quantity && item.quantity > 0
|
||||
? Math.ceil(
|
||||
(item.salesNum / (item.quantity)) * 100
|
||||
)
|
||||
: 100
|
||||
" />
|
||||
}}</span><el-progress
|
||||
:show-text="false"
|
||||
color="#df0021"
|
||||
style="width: 110px"
|
||||
class="ml_10"
|
||||
:percentage="item.quantity && item.quantity > 0
|
||||
? Math.ceil((item.salesNum / item.quantity) * 100)
|
||||
: 100"
|
||||
/>
|
||||
</div>
|
||||
<div class="goods-show-seller">
|
||||
<span>{{ item.storeName }}</span>
|
||||
@@ -88,8 +87,7 @@ export default {
|
||||
nowHour: new Date().getHours(), // 当前小时数
|
||||
};
|
||||
},
|
||||
beforeDestroy () {
|
||||
// 销毁前清除定时器
|
||||
beforeUnmount () {
|
||||
clearInterval(this.interval);
|
||||
},
|
||||
watch: {
|
||||
@@ -265,7 +263,7 @@ export default {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.ivu-progress-success .ivu-progress-bg {
|
||||
background-color: #111fff;
|
||||
.el-progress-bar__inner {
|
||||
background-color: #df0021;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,79 +1,78 @@
|
||||
<template>
|
||||
<div class="company-msg">
|
||||
<Form ref="firstForm" :model="form" :rules="rules" :label-width="140">
|
||||
<el-form ref="firstForm" :model="form" :rules="rules" label-width="140px">
|
||||
<h4>基础信息</h4>
|
||||
<FormItem prop="companyName" label="公司名称">
|
||||
<Input
|
||||
<el-form-item prop="companyName" label="公司名称">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.companyName"
|
||||
placeholder="请填写公司信息"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="companyAddressIdPath" label="公司所在地">
|
||||
</el-form-item>
|
||||
<el-form-item prop="companyAddressIdPath" label="公司所在地">
|
||||
<span>{{ form.companyAddressPath || '暂无地址' }}</span>
|
||||
<Button type="default" style="margin-left: 10px;" @click="$refs.map.open()">选择</Button>
|
||||
</FormItem>
|
||||
<FormItem prop="companyAddress" label="公司详细地址">
|
||||
<Input
|
||||
<el-button type="default" style="margin-left: 10px;" @click="$refs.map.open()">选择</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item prop="companyAddress" label="公司详细地址">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.companyAddress"
|
||||
placeholder="请填写公司详细信息"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="employeeNum" label="员工总数">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="employeeNum" label="员工总数">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.employeeNum"
|
||||
placeholder="请填写公司员工总数"
|
||||
><span slot="append">人</span>
|
||||
</Input>
|
||||
</FormItem>
|
||||
<FormItem prop="companyPhone" label="公司电话">
|
||||
<Input
|
||||
><template #append><span>人</span></template></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="companyPhone" label="公司电话">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.companyPhone"
|
||||
placeholder="请填写公司电话"
|
||||
></Input>
|
||||
</FormItem>
|
||||
<FormItem prop="registeredCapital" label="注册资金">
|
||||
<Input
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="registeredCapital" label="注册资金">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.registeredCapital"
|
||||
placeholder="请填写注册资金"
|
||||
><span slot="append">万元</span></Input>
|
||||
</FormItem>
|
||||
<FormItem prop="linkName" label="联系人姓名">
|
||||
<Input
|
||||
><template #append><span>万元</span></template></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="linkName" label="联系人姓名">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.linkName"
|
||||
placeholder="请填写联系人姓名"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="linkPhone" label="联系人电话">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="linkPhone" label="联系人电话">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.linkPhone"
|
||||
placeholder="请填写联系人电话"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="companyEmail" label="电子邮箱">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="companyEmail" label="电子邮箱">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.companyEmail"
|
||||
placeholder="请填写电子邮箱"
|
||||
/>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<h4>营业执照信息</h4>
|
||||
<FormItem prop="licenseNum" label="营业执照号">
|
||||
<Input
|
||||
<el-form-item prop="licenseNum" label="营业执照号">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.licenseNum"
|
||||
placeholder="请填写营业执照号"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="scope" label="法定经营范围">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="scope" label="法定经营范围">
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="form.scope"
|
||||
maxlength="200"
|
||||
@@ -81,9 +80,9 @@
|
||||
:rows="4"
|
||||
placeholder="请输入营业执照所示经营范围"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="licencePhoto" label="营业执照电子版">
|
||||
<Upload
|
||||
</el-form-item>
|
||||
<el-form-item prop="licencePhoto" label="营业执照电子版">
|
||||
<el-upload
|
||||
ref="uploadLicence"
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
@@ -97,8 +96,8 @@
|
||||
:action="action"
|
||||
:headers="accessToken"
|
||||
>
|
||||
<Button type="info" :loading="uploadLoading">证照上传</Button>
|
||||
</Upload>
|
||||
<el-button type="info" :loading="uploadLoading">证照上传</el-button>
|
||||
</el-upload>
|
||||
<div class="describe">
|
||||
请压缩图片在2M以内,格式为gif,jpg,png,并确保文字清晰,以免上传或审核失败
|
||||
</div>
|
||||
@@ -109,36 +108,30 @@
|
||||
>
|
||||
<img :src="item" width="100" alt="" />
|
||||
<div class="cover">
|
||||
<Icon
|
||||
type="ios-eye-outline"
|
||||
@click.native="handleView(item)"
|
||||
></Icon>
|
||||
<Icon
|
||||
type="ios-trash-outline"
|
||||
@click.native="handleRemove(index, 'licencePhoto')"
|
||||
></Icon>
|
||||
<el-icon @click="handleView(item)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index, 'licencePhoto')"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<h4>法人信息</h4>
|
||||
<FormItem prop="legalName" label="法人姓名">
|
||||
<Input
|
||||
<el-form-item prop="legalName" label="法人姓名">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.legalName"
|
||||
maxlength="20"
|
||||
placeholder="请输入法人姓名"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="legalId" label="法人证件号">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="legalId" label="法人证件号">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.legalId"
|
||||
placeholder="请输入法人证件号"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="legalPhoto" label="法人证件电子版">
|
||||
<Upload
|
||||
</el-form-item>
|
||||
<el-form-item prop="legalPhoto" label="法人证件电子版">
|
||||
<el-upload
|
||||
ref="uploadLegal"
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess1"
|
||||
@@ -152,8 +145,8 @@
|
||||
:action="action"
|
||||
:headers="accessToken"
|
||||
>
|
||||
<Button type="info" :loading="uploadLoading1">证照上传</Button>
|
||||
</Upload>
|
||||
<el-button type="info" :loading="uploadLoading1">证照上传</el-button>
|
||||
</el-upload>
|
||||
<div class="describe">
|
||||
请压缩图片在2M以内,身份证正反面两张照片,确保图片清晰无缺角
|
||||
</div>
|
||||
@@ -164,38 +157,33 @@
|
||||
>
|
||||
<img :src="item" width="100" alt="" />
|
||||
<div class="cover">
|
||||
<Icon
|
||||
type="ios-eye-outline"
|
||||
@click.native="handleView(item)"
|
||||
></Icon>
|
||||
<Icon
|
||||
type="ios-trash-outline"
|
||||
@click.native="handleRemove(index, 'legalPhoto')"
|
||||
></Icon>
|
||||
<el-icon @click="handleView(item)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index, 'legalPhoto')"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</FormItem>
|
||||
<FormItem>
|
||||
<Button type="primary" :loading="loading" @click="next"
|
||||
>填写财务资质信息</Button
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" :loading="loading" @click="next"
|
||||
>填写财务资质信息</el-button
|
||||
>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewPicture" v-if="visible" style="width: 100%" />
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
|
||||
<multipleMap ref="map" @callback="getAddress" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Delete, View } from '@element-plus/icons-vue';
|
||||
import { applyFirst } from '@/api/shopentry';
|
||||
import * as RegExp from '@/plugins/RegExp.js';
|
||||
import multipleMap from "@/components/map/multiple-map";
|
||||
import storage from '@/plugins/storage';
|
||||
import { commonUrl } from '@/plugins/request.js';
|
||||
export default {
|
||||
components: { multipleMap },
|
||||
components: { multipleMap, View, Delete },
|
||||
props: {
|
||||
content: {
|
||||
default: {},
|
||||
@@ -262,11 +250,11 @@ export default {
|
||||
if(val.type === 'select'){
|
||||
const paths = val.data.map(item => item.name).join(',')
|
||||
const ids = val.data.map(item => item.id).join(',')
|
||||
this.$set(this.form, 'companyAddressIdPath', ids)
|
||||
this.$set(this.form, 'companyAddressPath', paths)
|
||||
this.form['companyAddressIdPath'] = ids
|
||||
this.form['companyAddressPath'] = paths
|
||||
}else{
|
||||
this.$set(this.form, 'companyAddressIdPath', val.data.addrId)
|
||||
this.$set(this.form, 'companyAddressPath', val.data.addr)
|
||||
this.form['companyAddressIdPath'] = val.data.addrId
|
||||
this.form['companyAddressPath'] = val.data.addr
|
||||
}
|
||||
},
|
||||
|
||||
@@ -376,7 +364,7 @@ h4 {
|
||||
line-height: 40px;
|
||||
text-align: left;
|
||||
}
|
||||
.ivu-input-wrapper {
|
||||
.el-input {
|
||||
width: 300px;
|
||||
}
|
||||
.img-list {
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
<template>
|
||||
<div class="photo-msg">
|
||||
<Form ref="secondForm" :model="form" :rules="rules" :label-width="140">
|
||||
<el-form ref="secondForm" :model="form" :rules="rules" label-width="140px">
|
||||
<h4>基础信息</h4>
|
||||
<FormItem prop="settlementBankAccountName" label="银行开户名">
|
||||
<Input
|
||||
<el-form-item prop="settlementBankAccountName" label="银行开户名">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.settlementBankAccountName"
|
||||
placeholder="请填写银行开户名称"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="settlementBankAccountNum" label="银行账号">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="settlementBankAccountNum" label="银行账号">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.settlementBankAccountNum"
|
||||
placeholder="请填写银行账号"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="settlementBankBranchName" label="开户银行支行名称">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="settlementBankBranchName" label="开户银行支行名称">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.settlementBankBranchName"
|
||||
placeholder="请填写开户银行支行名称"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="settlementBankJointName" label="支行联行号">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="settlementBankJointName" label="支行联行号">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.settlementBankJointName"
|
||||
placeholder="请填写支行联行号"
|
||||
/>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem>
|
||||
<Button @click="$emit('change', 0)">返回</Button>
|
||||
<Button type="primary" :loading="loading" @click="next"
|
||||
>填写其他信息</Button
|
||||
<el-form-item>
|
||||
<el-button @click="$emit('change', 0)">返回</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="next"
|
||||
>填写其他信息</el-button
|
||||
>
|
||||
</FormItem>
|
||||
</Form>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -110,7 +110,7 @@ h4 {
|
||||
line-height: 40px;
|
||||
text-align: left;
|
||||
}
|
||||
.ivu-input-wrapper {
|
||||
.el-input {
|
||||
width: 300px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<div style="height: 20px"></div>
|
||||
<div class="content">
|
||||
<h1>店铺入驻</h1>
|
||||
<Steps :current="currentIndex" class="margin">
|
||||
<Step title="企业资质信息"></Step>
|
||||
<Step title="财务资质信息"></Step>
|
||||
<Step title="其他信息"></Step>
|
||||
<Step title="提交审核"></Step>
|
||||
</Steps>
|
||||
<el-steps :current="currentIndex" class="margin">
|
||||
<el-step title="企业资质信息"></el-step>
|
||||
<el-step title="财务资质信息"></el-step>
|
||||
<el-step title="其他信息"></el-step>
|
||||
<el-step title="提交审核"></el-step>
|
||||
</el-steps>
|
||||
<first-apply v-if="currentIndex == 0 && dataReview" :content="firstData" @change="nextPage"></first-apply>
|
||||
|
||||
<second-apply v-if="currentIndex == 1 && dataReview" :content="secondData" @change="nextPage"></second-apply>
|
||||
@@ -21,24 +21,24 @@
|
||||
<span v-if="storeDisable == 'CLOSED'">店铺已关闭,重申请联系管理员</span>
|
||||
<span v-if="storeDisable == 'REFUSED'">审核未通过,请修改资质信息,如有疑问请联系管理员</span>
|
||||
</div>
|
||||
<Button v-if="currentIndex === 3" @click="$router.push('/')">返回</Button>
|
||||
<el-button v-if="currentIndex === 3" @click="$router.push('/')">返回</el-button>
|
||||
|
||||
<Button type="primary" @click='currentIndex = 0'
|
||||
v-if="storeDisable === 'REFUSED' && currentIndex === 3">重新申请</Button>
|
||||
<el-button type="primary" @click='currentIndex = 0'
|
||||
v-if="storeDisable === 'REFUSED' && currentIndex === 3">重新申请</el-button>
|
||||
</div>
|
||||
|
||||
<Modal title="店铺入驻协议" v-model="showAgreement" width="1200" :closable="false" :mask-closable="false">
|
||||
<el-dialog title="店铺入驻协议" v-model="showAgreement" width="1200" :closable="false" :close-on-click-modal="false">
|
||||
<Scroll :on-reach-bottom="handleReachBottom">
|
||||
<div class="agreeent-con" v-html="agreementCon"></div>
|
||||
</Scroll>
|
||||
|
||||
<div slot="footer" style="text-align: center">
|
||||
<template #footer><div style="text-align: center">
|
||||
<p>
|
||||
<Checkbox v-model="checked">我已同意以上协议</Checkbox>
|
||||
<el-checkbox v-model="checked">我已同意以上协议</el-checkbox>
|
||||
</p>
|
||||
<Button type="primary" :disabled="!checked" class="margin" @click="showAgreement = false">同意协议填写资质信息</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
<el-button type="primary" :disabled="!checked" class="margin" @click="showAgreement = false">同意协议填写资质信息</el-button>
|
||||
</div></template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -182,7 +182,7 @@ export default {
|
||||
}
|
||||
.agreeent-con {
|
||||
max-height: 500px;
|
||||
::v-deep img{
|
||||
:deep img{
|
||||
max-width: 100%;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<div class="person-msg">
|
||||
<Form ref="thirdForm" :model="form" :rules="rules" :label-width="140">
|
||||
<el-form ref="thirdForm" :model="form" :rules="rules" label-width="140px">
|
||||
<h4>基础信息</h4>
|
||||
<FormItem prop="storeName" label="店铺名称">
|
||||
<Input
|
||||
<el-form-item prop="storeName" label="店铺名称">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.storeName"
|
||||
placeholder="请填写店铺名称"
|
||||
/>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem prop="storeLogo" label="店铺logo">
|
||||
<Upload
|
||||
<el-form-item prop="storeLogo" label="店铺logo">
|
||||
<el-upload
|
||||
ref="uploadLogo"
|
||||
:show-upload-list="false"
|
||||
:on-success="handleSuccess"
|
||||
@@ -25,8 +25,8 @@
|
||||
:action="action"
|
||||
:headers="accessToken"
|
||||
>
|
||||
<Button type="info" :loading="uploadLoading">上传logo</Button>
|
||||
</Upload>
|
||||
<el-button type="info" :loading="uploadLoading">上传logo</el-button>
|
||||
</el-upload>
|
||||
<div class="describe">请压缩图片在2M以内,格式为gif,jpg,png</div>
|
||||
<div
|
||||
class="img-list"
|
||||
@@ -35,45 +35,38 @@
|
||||
>
|
||||
<img :src="item" width="100" height="" alt="" />
|
||||
<div class="cover">
|
||||
<Icon
|
||||
type="ios-eye-outline"
|
||||
@click.native="handleView(item)"
|
||||
></Icon>
|
||||
<Icon
|
||||
type="ios-trash-outline"
|
||||
@click.native="handleRemove(index, 'storeLogo')"
|
||||
></Icon>
|
||||
<el-icon @click="handleView(item)"><View /></el-icon>
|
||||
<el-icon @click="handleRemove(index, 'storeLogo')"><Delete /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</FormItem>
|
||||
<FormItem prop="goodsManagementCategory" label="店铺经营类目">
|
||||
<Select
|
||||
</el-form-item>
|
||||
<el-form-item prop="goodsManagementCategory" label="店铺经营类目">
|
||||
<el-select
|
||||
v-model="form.goodsManagementCategory"
|
||||
multiple
|
||||
style="width: 300px"
|
||||
>
|
||||
<Option
|
||||
v-for="item in categoryList"
|
||||
<el-option v-for="item in categoryList"
|
||||
:value="item.id"
|
||||
:key="item.id"
|
||||
>{{ item.name }}</Option
|
||||
>{{ item.name }}</el-option
|
||||
>
|
||||
</Select>
|
||||
</FormItem>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem prop="storeAddressIdPath" label="店铺所在地">
|
||||
<el-form-item prop="storeAddressIdPath" label="店铺所在地">
|
||||
<span>{{ form.storeAddressPath || '暂无地址' }}</span>
|
||||
<Button type="default" style="margin-left: 10px;" @click="$refs.map.open()">选择</Button>
|
||||
</FormItem>
|
||||
<FormItem prop="storeAddressDetail" label="店铺详细地址">
|
||||
<Input
|
||||
<el-button type="default" style="margin-left: 10px;" @click="$refs.map.open()">选择</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item prop="storeAddressDetail" label="店铺详细地址">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="form.storeAddressDetail"
|
||||
placeholder="请填写店铺详细地址"
|
||||
/>
|
||||
</FormItem>
|
||||
<FormItem prop="storeDesc" label="店铺简介">
|
||||
<Input
|
||||
</el-form-item>
|
||||
<el-form-item prop="storeDesc" label="店铺简介">
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="form.storeDesc"
|
||||
maxlength="200"
|
||||
@@ -81,22 +74,23 @@
|
||||
:rows="4"
|
||||
placeholder="请输入店铺简介"
|
||||
/>
|
||||
</FormItem>
|
||||
</el-form-item>
|
||||
|
||||
<FormItem>
|
||||
<Button @click="$emit('change', 1)">返回</Button>
|
||||
<Button type="primary" :loading="loading" @click="next"
|
||||
>提交平台审核</Button
|
||||
<el-form-item>
|
||||
<el-button @click="$emit('change', 1)">返回</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="next"
|
||||
>提交平台审核</el-button
|
||||
>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<Modal title="View Image" v-model="visible">
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-dialog title="View Image" v-model="visible">
|
||||
<img :src="previewPicture" v-if="visible" style="width: 100%" />
|
||||
</Modal>
|
||||
</el-dialog>
|
||||
<multipleMap ref="map" @callback="getAddress" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Delete, View } from '@element-plus/icons-vue';
|
||||
import { applyThird } from '@/api/shopentry';
|
||||
import { getCategory } from '@/api/goods';
|
||||
|
||||
@@ -114,7 +108,7 @@ export default {
|
||||
type: Object
|
||||
}
|
||||
},
|
||||
components: { multipleMap },
|
||||
components: { multipleMap, View, Delete },
|
||||
data () {
|
||||
return {
|
||||
loading: false, // 加载状态
|
||||
@@ -211,17 +205,15 @@ export default {
|
||||
if(val.type === 'select'){
|
||||
const paths = val.data.map(item => item.name).join(',')
|
||||
const ids = val.data.map(item => item.id).join(',')
|
||||
this.$set(this.form, "storeAddressPath", paths);
|
||||
this.$set(this.form, "storeAddressIdPath", ids);
|
||||
this.form["storeAddressPath"] = paths;
|
||||
this.form["storeAddressIdPath"] = ids;
|
||||
this.form.storeCenter = val.data[val.data.length - 1].center
|
||||
}else{
|
||||
this.$set(this.form, "storeAddressPath", val.data.addr);
|
||||
this.$set(this.form, "storeAddressIdPath", val.data.addrId);
|
||||
this.$set(
|
||||
this.form,
|
||||
'storeCenter',
|
||||
val.data.position.lng + ',' + val.data.position.lat
|
||||
);
|
||||
this.form["storeAddressPath"] = val.data.addr;
|
||||
this.form["storeAddressIdPath"] = val.data.addrId;
|
||||
|
||||
this.form['storeCenter'] = val.data.position.lng + ',' + val.data.position.lat
|
||||
;
|
||||
}
|
||||
},
|
||||
// 获取商品分类
|
||||
@@ -264,7 +256,7 @@ h4 {
|
||||
line-height: 40px;
|
||||
text-align: left;
|
||||
}
|
||||
.ivu-input-wrapper {
|
||||
.el-input {
|
||||
width: 300px;
|
||||
}
|
||||
.img-list {
|
||||
|
||||
@@ -3,15 +3,13 @@
|
||||
<BaseHeader></BaseHeader>
|
||||
|
||||
<div class="container width_1200">
|
||||
<Layout class="layoutAll">
|
||||
<Sider class="side-bar" ref="side" :collapsed-width="78">
|
||||
<Menu
|
||||
<div class="layoutAll">
|
||||
<el-aside class="side-bar" width="200px">
|
||||
<el-menu
|
||||
class="side-menu"
|
||||
theme="light"
|
||||
width="auto"
|
||||
:active-name="$route.name"
|
||||
:open-names="['订单中心', '会员中心']"
|
||||
@on-select="onSelect"
|
||||
:default-active="$route.name"
|
||||
:default-openeds="['订单中心', '会员中心']"
|
||||
@select="onSelect"
|
||||
>
|
||||
<div class="user-icon">
|
||||
<div class="user-img">
|
||||
@@ -21,68 +19,60 @@
|
||||
v-if="userInfo.face"
|
||||
alt
|
||||
/>
|
||||
<Avatar icon="ios-person" class="mb_10" v-else size="96" />
|
||||
<el-avatar v-else :size="96" class="mb_10"><el-icon><User /></el-icon></el-avatar>
|
||||
</div>
|
||||
<p>{{ userInfo.nickName }}</p>
|
||||
</div>
|
||||
|
||||
<!-- 循环导航栏 -->
|
||||
<Submenu
|
||||
v-for="(menu, index) in menuList"
|
||||
:key="index"
|
||||
:name="menu.title"
|
||||
>
|
||||
<template slot="title" v-if="menu.display">
|
||||
<Icon type="location"></Icon>
|
||||
<span>{{ menu.title }}</span>
|
||||
</template>
|
||||
<MenuItem
|
||||
v-for="(chlidren, i) in menu.menus"
|
||||
:key="i"
|
||||
:name="chlidren.path"
|
||||
>{{ chlidren.title }}</MenuItem
|
||||
>
|
||||
</Submenu>
|
||||
</Menu>
|
||||
</Sider>
|
||||
<Layout class="layout ml_10">
|
||||
<Content class="content">
|
||||
<transition mode="out-in">
|
||||
<router-view></router-view>
|
||||
</transition>
|
||||
</Content>
|
||||
</Layout>
|
||||
</Layout>
|
||||
<template v-for="(menu, index) in menuList" :key="index">
|
||||
<el-sub-menu v-if="menu.display" :index="menu.title">
|
||||
<template #title>
|
||||
<el-icon><Location /></el-icon>
|
||||
<span>{{ menu.title }}</span>
|
||||
</template>
|
||||
<el-menu-item
|
||||
v-for="(chlidren, i) in menu.menus"
|
||||
:key="i"
|
||||
:index="chlidren.path"
|
||||
>{{ chlidren.title }}</el-menu-item>
|
||||
</el-sub-menu>
|
||||
</template>
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
<el-main class="content ml_10">
|
||||
<transition mode="out-in">
|
||||
<router-view></router-view>
|
||||
</transition>
|
||||
</el-main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Location, User } from '@element-plus/icons-vue';
|
||||
import menuList from "./menu";
|
||||
import Storage from "@/plugins/storage.js";
|
||||
|
||||
export default {
|
||||
components: { Location, User },
|
||||
name: "Home",
|
||||
data() {
|
||||
return {
|
||||
menuList, // 会员中心左侧列表
|
||||
menuList,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
userInfo() {
|
||||
// 用户信息
|
||||
if (Storage.getItem("userInfo")) {
|
||||
return JSON.parse(Storage.getItem("userInfo"));
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
return {};
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 每次点击左侧bar的callback
|
||||
onSelect(name) {
|
||||
this.$router.push({ name: name });
|
||||
this.$router.push({ name });
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -110,6 +100,7 @@ export default {
|
||||
}
|
||||
|
||||
.layoutAll {
|
||||
display: flex;
|
||||
min-height: 1200px;
|
||||
@include background_color($light_background_color);
|
||||
}
|
||||
@@ -141,7 +132,6 @@ export default {
|
||||
|
||||
.layout-footer-center {
|
||||
padding: 0px 15px;
|
||||
|
||||
padding-bottom: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user