修改buyer api路径 将buyer manager seller 统一为 public/config下修改api地址,新增buyer底部 公司,备案号等信息展示,修改商家端seller秒杀bug以及部分issue中的优化方案

This commit is contained in:
lemon橪
2021-10-19 16:40:43 +08:00
parent 7cbd2b698c
commit dbe5a21f4d
22 changed files with 519 additions and 515 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

View File

@@ -29,18 +29,38 @@
</div>
</div>
<div class="clearfix"></div>
<div class="friend-link">
<div class="friend-link flex">
<div class="friend-link-item">
<ul>
<li v-for="(link, index) in moreLink" :key="index" @click="goArticle">
<span class="link-item" :class="{'link-last-item': index === 4}">{{link}}</span>
</li>
</ul>
<div class="icp">
<li v-if="config.icpCard">
<a href="https://beian.miit.gov.cn/" target="_blank">
</a>
</li>
<li v-if="config.icpMessage">
<a href="https://beian.miit.gov.cn/" target="_blank">
{{config.icpMessage}}
</a>
</li>
</div>
</div>
<div class="information">
<a class="flex " :href="config.company.href">
<img class="zhizhao" src="@/assets/images/zhizhao.jpg" mode="" />{{config.company.title}}
</a>
</div>
</div>
<div class="clearfix"></div>
<div class="copyright">
<p>Copyright © {{year}} LILI</p>
<p>Copyright © {{year}} {{config.title}}</p>
</div>
</div>
</footer>
@@ -48,28 +68,32 @@
</template>
<script>
import config from '@/config'
export default {
name: 'Footer',
data () {
name: "Footer",
data() {
return {
guideArr: [ // 导航链接
[ '购物指南', '购物流程', '会员介绍', '生活旅行', '常见问题' ],
[ '配送方式', '上门自提', '配送服务查询', '收取标准', '物流规则' ],
[ '支付方式', '在线支付', '公司转账', '余额支付', '积分支付' ],
[ '售后服务', '售后政策', '退款说明', '返修/退货', '取消订单' ]
config,
guideArr: [
// 导航链接
["购物指南", "购物流程", "会员介绍", "生活旅行", "常见问题"],
["配送方式", "上门自提", "配送服务查询", "收取标准", "物流规则"],
["支付方式", "在线支付", "公司转账", "余额支付", "积分支付"],
["售后服务", "售后政策", "退款说明", "返修/退货", "取消订单"],
],
moreLink: ['关于我们', '联系我们', '联系客服', '商家帮助', '隐私政策'], // 更多链接
year: new Date().getFullYear() // 当前年份
moreLink: ["关于我们", "联系我们", "联系客服", "商家帮助", "隐私政策"], // 更多链接
year: new Date().getFullYear(), // 当前年份
};
},
methods: {
goArticle () { // 跳转文章页
goArticle() {
// 跳转文章页
let routeUrl = this.$router.resolve({
path: '/article'
})
window.open(routeUrl.href, '_blank')
}
}
path: "/article",
});
window.open(routeUrl.href, "_blank");
},
},
};
</script>
@@ -77,11 +101,9 @@ export default {
/*****************************底 部 开 始*****************************/
.footer {
width: 100%;
height: 380px;
padding-top: 30px;
@include background_color($light_background_color);
}
.icon-row {
margin: 15px auto;
@@ -112,7 +134,20 @@ export default {
.footer-icon-child-4 {
background-position: 0 -129px;
}
.footer-icon-text{
.icp {
>*{
margin: 0 4px;
}
flex-direction: column;
}
.flex{
display: flex;
align-items: center;
>img{
margin-right: 4px;
}
}
.footer-icon-text {
margin-left: 45px;
font-size: 18px;
font-weight: bold;
@@ -146,14 +181,24 @@ export default {
.friend-link {
display: flex;
align-items: center;
align-items: flex-start;
justify-content: space-between;
width: 908px;
height: 30px;
padding: 10px 0;
margin: 0px auto;
border-top: 1px solid $border_color;
}
.friend-link-item {
margin: 0px auto;
.information {
display: flex;
flex-direction: column;
> * {
margin: 2px 0;
}
}
.zhizhao {
width: 20px;
height: 20px;
border-radius: 50%;
}
.friend-link-item ul {
list-style: none;
@@ -175,15 +220,17 @@ export default {
line-height: 30px;
text-align: center;
}
.copyright a{
.copyright a {
color: #232323;
font-size: 20px;
}
.footer-icon-text{
@include title_color($light_title_color)
.footer-icon-text {
@include title_color($light_title_color);
}
.copyright,.friend-link,.servece-type-info {
@include sub_color($light_sub_color)
.copyright,
.friend-link,
.servece-type-info {
@include sub_color($light_sub_color);
}
/*****************************底 部 结 束*****************************/
</style>

View File

@@ -23,7 +23,7 @@
<div class="person-msg">
<img :src="userInfo.face" v-if="userInfo.face" alt />
<Avatar icon="ios-person" class="mb_10" v-else size="80" />
<div>Hi{{ userInfo.nickName || "欢迎来到LiLi Shop" | secrecyMobile }}</div>
<div>Hi{{ userInfo.nickName || `欢迎来到${config.title}` | secrecyMobile }}</div>
<div v-if="userInfo.id">
<Button type="error" shape="circle" @click="$router.push('home')">会员中心</Button>
</div>
@@ -49,6 +49,7 @@
</template>
<script>
import config from '@/config'
import {articleList} from '@/api/common.js'
import storage from '@/plugins/storage';
export default {
@@ -56,6 +57,7 @@ export default {
props: ['data'],
data () {
return {
config,
userInfo: {}, // 用户信息
articleList: [], // 常见问题
params: { // 请求常见问题参数

View File

@@ -33,7 +33,7 @@
<div class="person-msg">
<img :src="userInfo.face" v-if="userInfo.face" alt />
<Avatar icon="ios-person" class="mb_10" v-else size="80" />
<div>Hi{{ userInfo.nickName || "欢迎来到LiLi Shop" | secrecyMobile }}</div>
<div>Hi{{ userInfo.nickName || `欢迎来到${config.title}` | secrecyMobile }}</div>
<div v-if="userInfo.id">
<Button type="error" shape="circle">会员中心</Button>
</div>
@@ -57,6 +57,7 @@
</template>
<script>
import config from '@/config'
import {articleList} from '@/api/common.js'
import storage from '@/plugins/storage';
export default {
@@ -64,6 +65,7 @@ export default {
props: ['data'],
data () {
return {
config,
userInfo: {}, // 用户信息
articleList: [], // 常见问题
params: { // 请求常见问题参数

View File

@@ -1,8 +1,21 @@
export default {
/**
* @description 配置显示在浏览器标签的title
* @description 配置显示在浏览器标签的title、底部信息、部分信息展示的值
*/
title: "Lili电商",
title: "lili-shop",
/**
* @description icp证
*/
icpCard: "",
company:{
href:"https://pickmall.cn",
name:"北京宏业汇成科技有限公司"
},
/**
* @description icp备案号
*/
icpMessage: "京ICP备20009696号-1",
/**
* @description token在Cookie中存储的天数默认1天
*/
@@ -17,30 +30,6 @@ export default {
* @description 高德web端申请的api key
*/
aMapKey: "b440952723253aa9fe483e698057bf7d",
/**
* @description api请求基础路径
*/
api_dev: {
// common: 'http://192.168.0.101:8890',
// buyer: 'http://192.168.0.101:8888',
// seller: 'http://192.168.0.101:8889',
// manager: 'http://192.168.0.101:8887'
common: "https://common-api.pickmall.cn",
buyer: "https://buyer-api.pickmall.cn",
seller: "https://store-api.pickmall.cn",
manager: "https://admin-api.pickmall.cn"
},
api_prod: {
common: "https://common-api.pickmall.cn",
buyer: "https://buyer-api.pickmall.cn",
seller: "https://store-api.pickmall.cn",
manager: "https://admin-api.pickmall.cn"
},
/**
* @description api请求基础路径前缀
*/
baseUrlPrefix: "/buyer",
/**
* @description 需要加载的插件
*/

View File

@@ -4,7 +4,7 @@
<!-- LOGO 搜索 -->
<div class="width_1200 logo">
<div>
<router-link to="/"><img :src="$store.state.logoImg" alt="lili shop" title="lilishop" /></router-link>
<router-link to="/"><img :src="$store.state.logoImg" /></router-link>
<div>
购物车(<span>{{ goodsTotal }}</span>)
</div>

View File

@@ -99,7 +99,7 @@
<Row type="flex" justify="center" class="copyright">
Copyright © {{year}} - Present
<a href="https://pickmall.cn/" target="_blank" style="margin: 0 5px"
>lili-shop</a
>{{config.title}}</a
>
版权所有
</Row>
@@ -108,6 +108,7 @@
</template>
<script>
import config from '@/config'
import * as RegExp from '@/plugins/RegExp.js';
import { md5 } from '@/plugins/md5.js';
import * as apiLogin from '@/api/login.js';
@@ -118,6 +119,7 @@ export default {
components: { Verify },
data () {
return {
config,
loading: false, // 加载状态
loading1: false, // 第二步加载状态
formFirst: { // 手机验证码表单

View File

@@ -95,7 +95,7 @@
</Row>
<Row type="flex" justify="center" class="copyright">
Copyright © {{year}} - Present
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">lili-shop</a>
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">{{config.title}}</a>
版权所有
</Row>
</div>
@@ -103,6 +103,7 @@
</template>
<script>
import config from '@/config'
import * as RegExp from "@/plugins/RegExp.js";
import { md5 } from "@/plugins/md5.js";
import * as apiLogin from "@/api/login.js";
@@ -118,6 +119,7 @@ export default {
},
data() {
return {
config,
type: true, // true 账号登录 false 验证码登录
formData: {
// 登录表单

View File

@@ -89,7 +89,7 @@
</Row>
<Row type="flex" justify="center" class="copyright">
Copyright © {{year}} - Present
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">lili-shop</a>
<a href="https://pickmall.cn" target="_blank" style="margin: 0 5px">{{config.title}}</a>
版权所有
</Row>
</div>
@@ -97,6 +97,7 @@
</template>
<script>
import config from '@/config'
import * as RegExp from '@/plugins/RegExp.js';
import { md5 } from '@/plugins/md5.js';
import * as apiLogin from '@/api/login.js';
@@ -107,6 +108,7 @@ export default {
components: { Verify },
data () {
return {
config,
year: new Date().getFullYear(),
formRegist: {
// 注册表单

View File

@@ -2,39 +2,23 @@
<div>
<card _Title="收货地址" />
<div class="add-box">
<Form
:model="formData"
ref="form"
label-position="left"
:label-width="100"
:rules="ruleInline"
>
<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">
<i-input
v-model="formData.address"
disabled
placeholder="请选择收货地址"
style="width: 600px"
></i-input>
<i-input v-model="formData.address" disabled placeholder="请选择收货地址" style="width: 600px"></i-input>
<Button type="primary" size="small" @click="$refs.map.showMap = true">选择</Button>
</FormItem>
<FormItem label="详细地址" prop="detail">
<i-input v-model="formData.detail" placeholder="请输入详细地址" style="width: 600px"></i-input>
<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>
<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>
<i-input v-model="formData.alias" length :maxlength="4" placeholder="请输入地址别名,例如公司" style="width: 600px">
</i-input>
</FormItem>
<FormItem label="默认地址">
<i-switch v-model="formData.isDefault" />
@@ -42,9 +26,7 @@
</Form>
</div>
<div class="mt_20">
<Button type="primary" class="mr_10" :loading="loading" @click="save"
>保存收货地址</Button
>
<Button type="primary" class="mr_10" :loading="loading" @click="save">保存收货地址</Button>
<Button @click="$router.back()">返回</Button>
</div>
<lili-map ref="map" @getAddress="getAddress"></lili-map>
@@ -52,89 +34,108 @@
</template>
<script>
import card from '@/components/card';
import liliMap from '@/components/map';
import card from "@/components/card";
import liliMap from "@/components/map";
import * as RegExp from "@/plugins/RegExp.js";
import {
newMemberAddress,
editMemberAddress,
getAddrDetail
} from '@/api/address';
getAddrDetail,
} from "@/api/address";
export default {
name: 'AddAddress',
data () {
name: "AddAddress",
data() {
return {
formData: { // 添加地址表单
isDefault: false
formData: {
// 添加地址表单
isDefault: false,
},
ruleInline: { // 验证规则
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
address: [{ required: true, message: '请输入地址', trigger: 'change' }],
ruleInline: {
// 验证规则
name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
address: [{ required: true, message: "请输入地址", trigger: "change" }],
detail: [
{ required: true, message: '请输入详细地址', trigger: 'blur' }
{ required: true, message: "请输入详细地址", trigger: "blur" },
],
mobile: [
]
{ required: true, message: "请输入手机号码" },
{
pattern: RegExp.mobile,
trigger: "blur",
message: "请输入正确的手机号",
},
],
},
loading: false, // 加载状态
mapMsg: {} // 地图信息
mapMsg: {}, // 地图信息
};
},
methods: {
save () { // 保存地址
save() {
// 保存地址
this.$refs.form.validate((valid) => {
if (valid) {
const params = JSON.parse(JSON.stringify(this.formData));
params.consigneeAddressPath = params.address.replace(/\s/g, ',');
params.consigneeAddressPath = params.address.replace(/\s/g, ",");
delete params.address;
this.loading = true;
if (this.$route.query.id) {
editMemberAddress(params).then((res) => {
if (res.success) {
editMemberAddress(params)
.then((res) => {
if (res.success) {
this.loading = false;
this.$router.push("/home/MyAddress");
}
})
.catch(() => {
this.loading = false;
this.$router.push('/home/MyAddress');
}
}).catch(() => { this.loading = false; });
});
} else {
newMemberAddress(params).then((res) => {
if (res.success) {
newMemberAddress(params)
.then((res) => {
if (res.success) {
this.loading = false;
this.$router.push("/home/MyAddress");
}
})
.catch(() => {
this.loading = false;
this.$router.push('/home/MyAddress');
}
}).catch(() => { this.loading = false; });
});
}
}
});
},
getAddrById (id) {
getAddrById(id) {
// 获取地址详情
getAddrDetail(id).then((res) => {
if (res.success) {
console.log(res);
const data = res.result;
data.address = res.result.consigneeAddressPath.replace(/,/g, ' ');
data.address = res.result.consigneeAddressPath.replace(/,/g, " ");
this.formData = data;
}
});
},
getAddress (item) {
getAddress(item) {
// 获取地图选择信息
console.log(item);
this.mapMsg = item;
this.$set(this.formData, 'address', item.addr);
this.$set(this.formData, 'consigneeAddressIdPath', item.addrId);
this.$set(this.formData, 'detail', item.detail);
this.$set(this.formData, "address", item.addr);
this.$set(this.formData, "consigneeAddressIdPath", item.addrId);
this.$set(this.formData, "detail", item.detail);
this.formData.lat = item.position.lat;
this.formData.lon = item.position.lng;
}
},
},
mounted () {
mounted() {
const id = this.$route.query.id;
if (id) this.getAddrById(id);
},
components: {
card,
liliMap
}
liliMap,
},
};
</script>

View File

@@ -5,7 +5,7 @@
<div class="width_1200 logo">
<div>
<router-link to="/"
><img :src="$store.state.logoImg" alt="lili shop" title="lilishop"
><img :src="$store.state.logoImg"
/></router-link>
<div>结算页</div>
</div>

View File

@@ -2,7 +2,6 @@ import axios from 'axios';
import https from 'https';
import { Message, Spin, Modal } from 'view-design';
import Storage from './storage';
import config from '@/config';
import router from '../router/index.js';
import store from '../vuex/store';
import { handleRefreshToken } from '@/api/index';
@@ -10,20 +9,20 @@ const qs = require('qs');
// api地址
export const buyerUrl =
process.env.NODE_ENV === 'development'
? config.api_dev.buyer
: config.api_prod.buyer;
? BASE.API_DEV.buyer
: BASE.API_PROD.buyer;
export const commonUrl =
process.env.NODE_ENV === 'development'
? config.api_dev.common
: config.api_prod.common;
? BASE.API_DEV.common
: BASE.API_PROD.common;
export const managerUrl =
process.env.NODE_ENV === 'development'
? config.api_dev.manager
: config.api_prod.manager;
? BASE.API_DEV.manager
: BASE.API_PROD.manager;
export const sellerUrl =
process.env.NODE_ENV === 'development'
? config.api_dev.seller
: config.api_prod.seller;
? BASE.API_DEV.seller
: BASE.API_PROD.seller;
// 创建axios实例
var isRefreshToken = 0;
const refreshToken = getTokenDebounce();

View File

@@ -80,7 +80,7 @@ export default new Router({
name: 'login',
component: Login,
meta: {
title: 'LiLi 登录'
title: '登录'
}
},
{
@@ -88,7 +88,7 @@ export default new Router({
name: 'SignUp',
component: SignUp,
meta: {
title: 'LiLi 注册'
title: '注册'
}
},
{
@@ -96,7 +96,7 @@ export default new Router({
name: 'forgetPassword',
component: ForgetPassword,
meta: {
title: 'LiLi 忘记密码'
title: '忘记密码'
}
},
{
@@ -283,7 +283,7 @@ export default new Router({
path: 'AfterSale',
name: 'AfterSale',
component: AfterSale,
meta: {title: 'LiLi 售后'}
meta: {title: '售后'}
},
{
path: 'ApplyAfterSale',