Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui

master
Chopper 2021-05-13 16:33:15 +08:00
commit 967e673647
24 changed files with 104 additions and 713 deletions

View File

@ -1,348 +0,0 @@
<template>
<div class="template">
<BaseHeader></BaseHeader>
<div class="wrapper">
<!--面包屑-->
<Breadcrumb class="mb_20" separator=">">
<BreadcrumbItem to="/">首页</BreadcrumbItem>
<BreadcrumbItem to="/allCategories">全部分类</BreadcrumbItem>
</Breadcrumb>
<Tabs :animated="false">
<TabPane class="mt_40" v-for="(item,index) in mockData" :key="index" :label="item.title">
<!-- 分类详情-->
<div class="cateBox">
<div class="width_800 cateContent" ref="cateContent">
<div v-for="(data,i) in item.data" :key="i" class="cateList mb_40">
<div class="cateListTitle">
<p class="mb_40">{{data.title}} </p>
<div class="cateList">
<div v-for="(cate,j) in data.List" :key="j" class="cateItem">{{cate.content}}</div>
</div>
</div>
</div>
</div>
</div>
</TabPane>
</Tabs>
</div>
<BaseFooter></BaseFooter>
</div>
</template>
<script>
export default {
name: "AllCategories",
data() {
return {
mockData: [
{
title: "图书、电子书",
data: [
{
title: "电子书",
List: [
{
content: "小说"
},
{
content: "经典"
},
{
content: "古装"
}
]
},
{
title: "畅销书",
List: [
{
content: "小说畅销"
},
{
content: "经典畅销"
},
{
content: "古装畅销"
}
]
}
]
},
{
title: "大牌儿2",
data: [
{
title: "电子书2",
List: [
{
content: "小说2"
},
{
content: "经典2"
},
{
content: "古装2"
}
]
},
{
title: "畅销书2",
List: [
{
content: "小说畅销2"
},
{
content: "经典畅销2"
},
{
content: "古装畅销2"
}
]
}
]
},
{
title: "大牌儿3",
data: [
{
title: "电子书3",
List: [
{
content: "小说3"
},
{
content: "经典3"
},
{
content: "古装3"
}
]
},
{
title: "畅销书3",
List: [
{
content: "小说畅销3"
},
{
content: "经典畅销3"
},
{
content: "古装畅销3"
}
]
}
]
},
{
title: "大牌儿",
data: [
{
title: "电子书",
List: [
{
content: "小说"
},
{
content: "经典"
},
{
content: "古装"
}
]
},
{
title: "畅销书",
List: [
{
content: "小说畅销"
},
{
content: "经典畅销"
},
{
content: "古装畅销"
}
]
}
]
},
{
title: "大牌儿",
data: [
{
title: "电子书",
List: [
{
content: "小说"
},
{
content: "经典"
},
{
content: "古装"
}
]
},
{
title: "畅销书",
List: [
{
content: "小说畅销"
},
{
content: "经典畅销"
},
{
content: "古装畅销"
}
]
}
]
},
{
title: "大牌儿",
data: [
{
title: "电子书",
List: [
{
content: "小说"
},
{
content: "经典"
},
{
content: "古装"
}
]
},
{
title: "畅销书",
List: [
{
content: "小说畅销"
},
{
content: "经典畅销"
},
{
content: "古装畅销"
}
]
}
]
}
]
};
},
created() {
this.windowScroll();
},
methods: {
// tab
// filterCate(){
// },
windowScroll() {
let cateWay = [];
for (
let i = 0;
i < document.getElementsByClassName("cateTitle").length;
i++
) {
let cate = document.getElementsByClassName("cateTitle")[i];
cateWay.push(cate.offsetTop);
}
console.log(cateWay);
window.onscroll = function() {
var scrollTop =
document.documentElement.scrollTop || document.body.scrollTop;
console.log("滚动距离" + scrollTop);
};
}
}
};
</script>
<style lang="scss" scoped>
.template {
width: 100%;
@include background_color($light_background_color);
}
.wrapper {
width: 1200px;
padding-top: 30px;
margin: 0 auto;
}
.cateContent {
overflow: hidden;
}
.cateBox {
min-height: 600px;
}
.cateTitle {
background: $theme_color;
height: 50px;
line-height: 50px;
text-align: center;
color: #fff;
font-size: 18px;
}
.cateMenuItem {
@include title_color($light_title_color);
padding: 8px 0;
font-weight: 400 !important;
}
.cateListTitle {
> p {
font-size: 14px;
font-weight: bold;
@include title_color($light_title_color);
}
}
.cateList {
display: flex;
}
.cateItem {
cursor: pointer;
display: block;
width: 137px;
height: 38px;
@include background_color($light_background_color);
@include content_color($light_title_color);
border: 1px dashed $border_color;
line-height: 38px;
text-align: center;
margin-right: -1px;
margin-bottom: -1px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
transition: all 0.2s ease-in;
}
.cateItem:hover{
background: $theme_color;
color: #fff;
}
.mt_40{
margin-top: 40px;
}
.mb_40{
margin-bottom: 40px;
}
</style>

View File

@ -156,54 +156,21 @@ export default {
}, },
data () { data () {
return { return {
logoImg: '', logoImg: '', // logo
couponAvailable: false, couponAvailable: false, //
stepIndex: 0, // ==0==1==2 stepIndex: 0, // ==0==1==2
goodsTotal: 1, goodsTotal: 1, //
checkedNum: 0, checkedNum: 0, //
allChecked: false, allChecked: false, //
loading: false, loading: false, //
city: '珠海', cartList: [], //
cityArr: [ couponList: [], //
['北京', '上海', '天津', '重庆', '广州'], priceDetailDTO: {}, //
['深圳', '河南', '辽宁', '吉林', '江苏'], skuList: [] // sku
['江西', '四川', '海南', '贵州', '云南'],
['西藏', '陕西', '甘肃', '青海', '珠海']
],
cartList: [],
couponList: [
{
name: '优惠券',
price: '10',
activity: '满99减10',
useRange: '全品类使用',
disabled: true
},
{
name: '优惠券',
price: '10',
activity: '满99减10',
useRange: '全品类使用',
disabled: false
},
{
name: '优惠券',
price: '10',
activity: '满99减10',
useRange: '全品类使用',
disabled: false
}
],
priceDetailDTO: {},
skuList: []
}; };
}, },
computed: {}, computed: {},
methods: { methods: {
//
changeCity (city) {
this.city = city;
},
// //
goGoodsDetail (skuId, goodsId) { goGoodsDetail (skuId, goodsId) {
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
@ -451,17 +418,6 @@ export default {
justify-content: space-between; justify-content: space-between;
margin-bottom: 15px; margin-bottom: 15px;
} }
.city {
padding: 10px 15px;
}
.city-item {
font-weight: bold;
cursor: pointer;
padding: 5px;
}
.city-item:hover {
color: $theme_color;
}
/** 商品列表 */ /** 商品列表 */
.cart-goods { .cart-goods {
&-title { &-title {

View File

@ -39,15 +39,15 @@
<script> <script>
export default { export default {
name: "Feedback", name: 'Feedback',
data () { data () {
return { return {
formItem: { formItem: { //
title: "", title: '',
content: "", content: ''
}, }
}; };
}, }
}; };
</script> </script>

View File

@ -55,17 +55,13 @@ export default {
} }
}) })
} }
},
mounted () {
}, },
data () { data () {
return { return {
tagsColor: ['blue', 'green', 'red', 'yellow'], goodsMsg: {}, //
goodsMsg: {}, isLoading: false, //
isLoading: false, categoryBar: [], //
categoryBar: [], storeCollected: false //
storeCollected: false
}; };
}, },
methods: { methods: {

View File

@ -101,18 +101,18 @@ export default {
}, },
data () { data () {
return { return {
sortIndex: 0, sortIndex: 0, //
sortPriceIndex: false, // sortPriceIndex: false, //
goodsTool: [ goodsTool: [ //
{ title: '综合', en: '' }, { title: '综合', en: '' },
{ title: '销量', en: 'buyCount' }, { title: '销量', en: 'buyCount' },
{ title: '评论数', en: 'commentNum' }, { title: '评论数', en: 'commentNum' },
{ title: '新品', en: 'releaseTime' } { title: '新品', en: 'releaseTime' }
], ],
goodsList: [], goodsList: [], //
loading: false, loading: false, //
total: 0, total: 0, //
params: { params: { //
pageNumber: 0, pageNumber: 0,
pageSize: 20, pageSize: 20,
categoryId: '' categoryId: ''

View File

@ -163,11 +163,11 @@ export default {
username: '', username: '',
password: '' password: ''
}, },
formSms: { formSms: { //
code: '', code: '',
mobile: '' mobile: ''
}, },
verifyStatus: false, verifyStatus: false, //
ruleInline: { ruleInline: {
// //
username: [{ required: true, message: '请输入用户名' }], username: [{ required: true, message: '请输入用户名' }],
@ -184,10 +184,10 @@ export default {
], ],
code: [{ required: true, message: '请输入手机验证码' }] code: [{ required: true, message: '请输入手机验证码' }]
}, },
codeMsg: '发送验证码', codeMsg: '发送验证码', //
interval: '', interval: '', //
time: 60, time: 60, //
logoImg: '' logoImg: '' // logo
}; };
}, },
methods: { methods: {

View File

@ -73,19 +73,19 @@ export default {
name: 'Merchant', name: 'Merchant',
data () { data () {
return { return {
storeMsg: {}, storeMsg: {}, //
cateList: [], cateList: [], //
goodsList: [], goodsList: [], //
total: 0, total: 0, //
params: { params: { //
pageNumber: 1, pageNumber: 1,
pageSize: 20, pageSize: 20,
keyword: '', keyword: '',
storeId: this.$route.query.id, storeId: this.$route.query.id,
storeCatId: '' storeCatId: ''
}, },
cateName: '店铺推荐', cateName: '店铺推荐', //
storeCollected: false storeCollected: false //
} }
}, },
created () { created () {

View File

@ -74,7 +74,7 @@ export default {
}, },
data () { data () {
return { return {
detail: {} detail: {} //
}; };
}, },
mounted () { mounted () {

View File

@ -10,7 +10,6 @@
<div>注册</div> <div>注册</div>
</div> </div>
<div class="login-container"> <div class="login-container">
<!-- 注册 --> <!-- 注册 -->
<Form <Form
ref="formRegist" ref="formRegist"
@ -132,12 +131,12 @@ export default {
], ],
code: [{ required: true, message: '请输入手机验证码' }] code: [{ required: true, message: '请输入手机验证码' }]
}, },
verifyStatus: false, verifyStatus: false, //
verifyType: 'REGISTER', verifyType: 'REGISTER', //
codeMsg: '发送验证码', codeMsg: '发送验证码', //
interval: '', interval: '', //
time: 60, time: 60, //
logoImg: '' logoImg: '' // logo
}; };
}, },
methods: { methods: {

View File

@ -48,9 +48,9 @@ import {couponList, receiveCoupon} from '@/api/member.js'
export default { export default {
data () { data () {
return { return {
list: [], list: [], //
total: 0, total: 0, //
params: { params: { //
pageNumber: 1, pageNumber: 1,
pageSize: 20 pageSize: 20
} }

View File

@ -119,18 +119,18 @@ export default {
components: { Verify }, components: { Verify },
data () { data () {
return { return {
loading: false, loading: false, //
loading1: false, loading1: false, //
formFirst: { formFirst: { //
// //
mobile: '', mobile: '',
code: '' code: ''
}, },
form: { form: { //
password: '', password: '',
oncePasd: '' oncePasd: ''
}, },
step: 0, step: 0, //
ruleInline: { ruleInline: {
// //
mobile: [ mobile: [
@ -144,11 +144,11 @@ export default {
code: [{ required: true, message: '请输入手机验证码' }], code: [{ required: true, message: '请输入手机验证码' }],
password: [{required: true, message: '密码不能为空'}, {pattern: RegExp.password, message: '密码不能少于6位'}] password: [{required: true, message: '密码不能为空'}, {pattern: RegExp.password, message: '密码不能少于6位'}]
}, },
verifyStatus: false, verifyStatus: false, //
verifyType: 'FIND_USER', verifyType: 'FIND_USER', //
codeMsg: '发送验证码', codeMsg: '发送验证码', //
interval: '', interval: '', //
time: 60 time: 60 //
}; };
}, },
methods: { methods: {

View File

@ -39,10 +39,10 @@ export default {
components: { vueQr }, components: { vueQr },
data () { data () {
return { return {
qrcode: '', qrcode: '', //
params: this.$route.query, params: this.$route.query, //
interval: null, interval: null, //
num: 0 num: 0 //
}; };
}, },
methods: { methods: {

View File

@ -48,7 +48,7 @@ export default {
data () { data () {
return { return {
goodsList: [], // goodsList: [], //
cateList: [{ cateList: [{ //
name: '全部分类', name: '全部分类',
id: '' id: ''
}], // }], //

View File

@ -59,13 +59,13 @@ import {seckillByDay} from '@/api/promotion'
export default { export default {
data () { data () {
return { return {
list: [], list: [], //
goodsList: [], goodsList: [], //
interval: null, interval: null, //
currIndex: 0, // currIndex: 0, //
currTime: 0, // currTime: 0, //
diffSeconds: 0, // diffSeconds: 0, //
nowHour: new Date().getHours() nowHour: new Date().getHours() //
} }
}, },
watch: { watch: {

View File

@ -201,17 +201,17 @@ export default {
}, },
data () { data () {
return { return {
action: commonUrl + '/common/upload/file', action: commonUrl + '/common/upload/file', //
accessToken: {}, accessToken: {}, // token
visible: false, visible: false, //
loading: false, loading: false, //
address: '', address: '', //
previewPicture: '', previewPicture: '', // url
form: { form: { //
legalPhoto: [], legalPhoto: [],
licencePhoto: [] licencePhoto: []
}, },
rules: { rules: { //
companyName: [{ required: true, message: '请填写公司信息' }], companyName: [{ required: true, message: '请填写公司信息' }],
addressIdPath: [{ required: true, message: '请选择公司所在地' }], addressIdPath: [{ required: true, message: '请选择公司所在地' }],
companyAddress: [{ required: true, message: '请填写公司详细地址' }], companyAddress: [{ required: true, message: '请填写公司详细地址' }],
@ -245,8 +245,8 @@ export default {
{ pattern: RegExp.IDCard, message: '请输入正确的证件号' } { pattern: RegExp.IDCard, message: '请输入正确的证件号' }
] ]
}, },
uploadLoading1: false, uploadLoading1: false, // loading
uploadLoading: false uploadLoading: false // loading
}; };
}, },
methods: { methods: {

View File

@ -1,5 +0,0 @@
<template>
<div class="shop-list">
<Button>申请入驻</Button>
</div>
</template>

View File

@ -42,7 +42,6 @@
</template> </template>
<script> <script>
import { applySecond } from '@/api/shopentry'; import { applySecond } from '@/api/shopentry';
import * as RegExp from '@/plugins/RegExp.js';
export default { export default {
props: { props: {
content: { content: {
@ -52,9 +51,9 @@ export default {
}, },
data () { data () {
return { return {
loading: false, loading: false, //
form: {}, form: {}, //
rules: { rules: { //
settlementBankAccountName: [ settlementBankAccountName: [
{ required: true, message: '请填写银行开户名称' } { required: true, message: '请填写银行开户名称' }
], ],

View File

@ -72,16 +72,16 @@ export default {
}, },
data () { data () {
return { return {
currentIndex: 0, currentIndex: 0, //
showAgreement: false, showAgreement: false, //
agreementCon: '', agreementCon: '', //
checked: false, checked: false, //
applyData: {}, applyData: {}, //
firstData: {}, firstData: {}, //
secondData: {}, secondData: {}, //
thirdData: {}, thirdData: {}, //
storeDisable: '', // APPLY OPEN CLOSED REFUSED APPLYING storeDisable: '', // APPLY OPEN CLOSED REFUSED APPLYING
dataReview: true dataReview: true //
}; };
}, },
methods: { methods: {

View File

@ -99,7 +99,6 @@
<script> <script>
import { applyThird } from '@/api/shopentry'; import { applyThird } from '@/api/shopentry';
import { getCategory } from '@/api/goods'; import { getCategory } from '@/api/goods';
import * as RegExp from '@/plugins/RegExp.js';
import Map from '@/components/map/index'; import Map from '@/components/map/index';
import storage from '@/plugins/storage'; import storage from '@/plugins/storage';
import { commonUrl } from '@/plugins/request.js'; import { commonUrl } from '@/plugins/request.js';
@ -113,16 +112,16 @@ export default {
components: { liliMap: Map }, components: { liliMap: Map },
data () { data () {
return { return {
loading: false, loading: false, //
uploadLoading: false, uploadLoading: false, //
action: commonUrl + '/common/upload/file', action: commonUrl + '/common/upload/file', //
accessToken: {}, accessToken: {}, // token
previewPicture: '', previewPicture: '', //
visible: false, visible: false, //
form: { form: { //
storeLogo: [] storeLogo: []
}, },
rules: { rules: { //
goodsManagementCategory: [ goodsManagementCategory: [
{ required: true, message: '请选择店铺经营类目' } { required: true, message: '请选择店铺经营类目' }
], ],
@ -131,7 +130,7 @@ export default {
storeDesc: [{ required: true, message: '请填写店铺简介' }], storeDesc: [{ required: true, message: '请填写店铺简介' }],
storeCenter: [{ required: true, message: '请选择店铺位置' }] storeCenter: [{ required: true, message: '请选择店铺位置' }]
}, },
categoryList: [] categoryList: [] //
}; };
}, },
methods: { methods: {

View File

@ -1,80 +0,0 @@
<template>
<div class="info-form">
<Form ref="formValidate" :model="formValidate" :label-width="80" :rules="ruleValidate">
<FormItem label="手机号" prop="phone">
<i-input v-model="formValidate.phone" clearable size="large" placeholder="请输入手机号"></i-input>
</FormItem>
<FormItem label="验证码" prop="checkNum">
<i-input v-model="formValidate.checkNum" size="large" placeholder="请输入验证码">
<Button slot="append" @click="getcheckNum"></Button>
</i-input>
</FormItem>
<Button type="error" size="large" long @click="handleSubmit('formValidate')"></Button>
</Form>
</div>
</template>
<script>
import store from '@/vuex/store';
import { mapMutations } from 'vuex';
export default {
name: 'CheckPhone',
data () {
return {
formValidate: {
phone: '',
checkNum: ''
},
ruleValidate: {
phone: [
{ required: true, message: '手机号不能为空', trigger: 'blur' },
{ type: 'string', pattern: /^1[3|4|5|7|8][0-9]{9}$/, message: '手机号格式出错', trigger: 'blur' }
],
checkNum: [
{ required: true, message: '必须填写验证码', trigger: 'blur' },
{ type: 'string', min: 4, max: 4, message: '验证码长度错误', trigger: 'blur' }
]
}
};
},
methods: {
...mapMutations(['SET_SIGN_UP_SETP']),
getcheckNum () {
if (this.formValidate.phone.length === 11) {
this.$Message.success({
content: '验证码为: 1234',
duration: 6,
closable: true
});
} else {
this.$Message.error({
content: '请输入正确的手机号',
duration: 6,
closable: true
});
}
},
handleSubmit (name) { //
this.$refs[name].validate((valid) => {
if (valid) {
this.$router.push({ path: '/SignUp/inputInfo', query: { phone: this.formValidate.phone } });
this.SET_SIGN_UP_SETP(1);
} else {
this.$Message.error({
content: '请填写正确的信息',
duration: 6,
closable: true
});
}
});
}
},
store
};
</script>
<style scoped>
.info-form {
width: 90% !important;
}
</style>

View File

@ -1,92 +0,0 @@
<template>
<div class="info-form">
<Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80" >
<FormItem label="用户名" prop="name">
<i-input v-model="formValidate.name" clearable size="large" placeholder="请输入你的姓名"></i-input>
</FormItem>
<FormItem label="邮箱" prop="mail">
<i-input v-model="formValidate.mail" clearable size="large" placeholder="请输入你的邮箱"></i-input>
</FormItem>
<FormItem label="密码" prop="password">
<i-input type="password" v-model="formValidate.password" clearable size="large" placeholder="请输入你的密码"></i-input>
</FormItem>
<FormItem label="确认密码" prop="repassword">
<i-input type="password" v-model="formValidate.repassword" clearable size="large" placeholder="请再次输入你的密码"></i-input>
</FormItem>
<Button type="error" size="large" long @click="handleSubmit('formValidate')"></Button>
</Form>
</div>
</template>
<script>
import store from '@/vuex/store';
import { mapMutations, mapActions } from 'vuex';
export default {
name: 'InputInfo',
data () {
const validatePassCheck = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.formValidate.password) {
callback(new Error('两次输入的密码不一样'));
} else {
callback();
}
};
return {
formValidate: {
name: '',
mail: '',
password: '',
repassword: ''
},
ruleValidate: {
name: [
{ required: true, message: '用户名不能为空', trigger: 'blur' }
],
mail: [
{ required: true, message: '邮箱不能为空', trigger: 'blur' },
{ type: 'email', message: '邮箱格式错误', trigger: 'blur' }
],
password: [
{ required: true, message: '密码不能为空', trigger: 'blur' },
{ type: 'string', min: 6, message: '密码长度不能小于6', trigger: 'blur' }
],
repassword: [
{ validator: validatePassCheck, trigger: 'blur' }
]
}
};
},
methods: {
...mapMutations(['SET_SIGN_UP_SETP']),
...mapActions(['addSignUpUser']),
handleSubmit (name) {
const father = this;
this.$refs[name].validate((valid) => {
if (valid) {
this.$Message.success('注册成功');
const userinfo = {
username: this.formValidate.name,
password: this.formValidate.password,
mail: this.formValidate.mail,
phone: this.$route.query.phone
};
this.addSignUpUser(userinfo);
father.SET_SIGN_UP_SETP(2);
this.$router.push({ path: '/SignUp/signUpDone' });
} else {
this.$Message.error('注册失败');
}
});
}
},
store
};
</script>
<style scoped>
.info-form {
width: 90% !important;
}
</style>

View File

@ -1,27 +0,0 @@
<template>
<div class="container">
<p><Icon type="ios-checkmark-outline"></Icon></p>
<router-link to="/login"><Button type="success" size="large" long class="btn-success">注册成功</Button></router-link>
</div>
</template>
<script>
export default {
name: 'SignUpDone'
};
</script>
<style scoped>
.container {
width: 100%;
text-align: center;
}
.container p {
font-size: 90px;
color: #2d8cf0;
text-align: center;
}
.btn-success {
margin-top: 30px;
}
</style>

View File

@ -60,7 +60,7 @@ export default {
name: 'Home', name: 'Home',
data () { data () {
return { return {
menuList menuList //
}; };
}, },
computed: { computed: {

View File

@ -67,7 +67,6 @@ const UserMain = resolve => require(['@/pages/home/Main'], resolve);
* 店铺入驻 首页 * 店铺入驻 首页
* 店铺入驻 申请页 * 店铺入驻 申请页
*/ */
const ShopEntryIndex = resolve => require(['@/pages/shopEntry/index'], resolve);
const ShopEntry = resolve => require(['@/pages/shopEntry/shop-entry'], resolve); const ShopEntry = resolve => require(['@/pages/shopEntry/shop-entry'], resolve);
Vue.use(Router); Vue.use(Router);
@ -168,11 +167,6 @@ export default new Router({
title: '帮助中心' title: '帮助中心'
} }
}, },
{
path: '/shopEntryList',
name: 'shopEntryList',
component: ShopEntryIndex
},
{ {
path: '/shopEntry', path: '/shopEntry',
name: 'shopEntry', name: 'shopEntry',