diff --git a/.svn/pristine/02/0257e977cb96de0a8423befff1cdcd2f6c223065.svn-base b/.svn/pristine/02/0257e977cb96de0a8423befff1cdcd2f6c223065.svn-base new file mode 100644 index 0000000..4f0067e --- /dev/null +++ b/.svn/pristine/02/0257e977cb96de0a8423befff1cdcd2f6c223065.svn-base @@ -0,0 +1,826 @@ + + + + + diff --git a/.svn/pristine/0d/0d33d2d1d364cab940f177aed666f22263df2609.svn-base b/.svn/pristine/0d/0d33d2d1d364cab940f177aed666f22263df2609.svn-base new file mode 100644 index 0000000..71920a3 --- /dev/null +++ b/.svn/pristine/0d/0d33d2d1d364cab940f177aed666f22263df2609.svn-base @@ -0,0 +1,196 @@ +import Home from '@/views/Home.vue' + +export default [ + + { + path: '/', + name: 'main', + component: Home, + meta:{ + title:'首页' + }, + }, + { + path: '/home', + name: 'home', + component: Home, + meta:{ + title:'首页' + }, + + }, + { + path: '/addetail', + name: 'addetail', + meta: { title: '公告详细' }, + component: () => import(/* webpackChunkName: "UserCenter" */ '@/views/AdDetail.vue'), + }, + { + path: '/usercenter', + name: 'usercenter', + meta:{ + isLogin: true, + title:'用户中心' + }, + component: () => import(/* webpackChunkName: "UserCenter" */ '@/views/UserCenter.vue') + }, + { + path: '/login', + name: 'login', + meta:{ + isLogin: false, + title:'登陆' + }, + component: () => import(/* webpackChunkName: "Login" */ '@/views/Login.vue') + }, + { + path: '/binding', + name: 'binding', + meta:{ + isLogin: false, + title:'用户绑定' + }, + component: () => import(/* webpackChunkName: "Login" */ '@/views/user/Binding.vue') + }, + { + path: '/register', + name: 'register', + meta:{ + isLogin: false, + title:'注册' + }, + component: () => import(/* webpackChunkName: "Register" */ '@/views/Register.vue') + }, + { + path: '/shopingCart', + name: 'shopingCart', + meta:{ + isLogin: true, + title:'购物车' + }, + component: () => import(/* webpackChunkName: "ShopingCart" */ '@/views/ShopingCart/ShopingCart.vue') + }, + { + path: '/about', + name: 'about', + meta:{ + title:'关于我们' + }, + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '@/views/About.vue') + }, + { + path: '/category', + name: 'category', + meta:{ + title:'分类' + }, + component: () => import(/* webpackChunkName: "Category" */ '@/views/Category/Category.vue') + }, + { + path: '/flashsale', + name: 'flashsale', + meta:{ + title:'抢购' + }, + component: () => import(/* webpackChunkName: "FlashSale" */ '@/views/FlashSale/FlashSale.vue') + }, + { + path: '/goodslist', + name: 'goodslist', + meta:{ + title:'商品列表' + // keepAlive: true, //此组件需要被缓存 //默认为FALSE 其他可用不用设置 + }, + component: () => import(/* webpackChunkName: "AddressList" */ '@/views/GoodsList/GoodsList.vue') + }, + { + path: '/goodsdetail', + name: 'goodsdetail', + meta:{ + title:'商品详细', + footer:true, //默认为FALSE 其他可用不用设置 + isLogin: false + }, + component: () => import(/* webpackChunkName: "GoodsDetail" */ '@/views/GoodsDetail.vue') + }, + { + path: '/addresslist', + name: 'addresslist', + meta:{ + isLogin: true, + title:'地址列表', + }, + component: () => import(/* webpackChunkName: "AddressList" */ '@/views/AddressList/AddressList.vue') + },{ + path: '/addressedit', + name: 'addressedit', + meta:{ + isLogin: true, + title:'地址编辑', + }, + component: () => import(/* webpackChunkName: "AddressList" */ '@/views/AddressList/AddressEdit.vue') + },{ + path: '/OrderList', + name: 'orderList', + meta:{ + isLogin: true, + title:'订单列表', + }, + component: () => import(/* webpackChunkName: "AddressList" */ '@/views/Order/OrderList.vue') + },{ + path: '/changePassword', + name: 'changePassword', + meta:{ + isLogin: true, + title:'修改密码', + }, + component: () => import(/* webpackChunkName: "AddressList" */ '@/views/user/changePassword.vue') + }, + { + path: '/payment', + name: 'payment', + meta:{ + isLogin: true, + title:'付款', + }, + component: () => import(/* webpackChunkName: "payment" */ '@/views/Order/payment.vue') + },{ + path: '/paySuccess', + name: 'paySuccess', + meta:{ + isLogin: false, + footer:true, + title:'付款成功', + }, + component: () => import(/* webpackChunkName: "payment" */ '@/views/Pay/PaySuccess.vue') + },{ + path: '/payFail', + name: 'payFail', + meta:{ + isLogin: false, + footer:true, + title:'付款失败', + }, + component: () => import(/* webpackChunkName: "payment" */ '@/views/Pay/PayFail.vue') + },{ + path: '/orderDetail', + name: 'orderDetail', + meta:{ + isLogin:true, + footer:false, + title:'订单详情', + }, + component: () => import(/* webpackChunkName: "payment" */ '@/views/Order/orderDetail.vue') + }, + { + path: '*', + name: 'err404', + meta:{ + title:'404', + }, + component: () => import(/* webpackChunkName: "err404" */ '@/views/Err404.vue') + } +] \ No newline at end of file diff --git a/.svn/pristine/0f/0fb8166729ab7ad5405d5247ac553bb73098c230.svn-base b/.svn/pristine/0f/0fb8166729ab7ad5405d5247ac553bb73098c230.svn-base new file mode 100644 index 0000000..9293060 --- /dev/null +++ b/.svn/pristine/0f/0fb8166729ab7ad5405d5247ac553bb73098c230.svn-base @@ -0,0 +1,156 @@ + + + + diff --git a/.svn/pristine/10/10b727dfa66c5300e1fafcda44f54f26d321212b.svn-base b/.svn/pristine/10/10b727dfa66c5300e1fafcda44f54f26d321212b.svn-base new file mode 100644 index 0000000..30116b8 --- /dev/null +++ b/.svn/pristine/10/10b727dfa66c5300e1fafcda44f54f26d321212b.svn-base @@ -0,0 +1,251 @@ +import { + login, + register, + logout, + sendSms, + smsValidator, + getUserInfo, + userChangePassword, + userBinding +} from '@/api/user' +import { + setToken, + getToken, + setCookie, + getCookie, + removeCookie +} from '@/libs/util' +import { + GetGuid +} from '@/libs/tools' +const serverBusyTips = "服务繁忙,请稍后再试!"; +export default { + state: { + userName: getCookie('userName'), + userId: getCookie('userId'), + avatorImgPath: '', + token: getToken(), + access: '', + hasGetInfo: false + }, + mutations: { + setAvator(state, avatorPath) { + state.avatorImgPath = avatorPath + }, + setUserId(state, id) { + state.userId = id + setCookie('userId', id); + }, + setUserName(state, name) { + //debugger + state.userName = name; + setCookie('userName', name); + }, + setAccess(state, access) { + state.access = access + }, + setToken(state, token) { + state.token = token + setToken(token) + }, + setHasGetInfo(state, status) { + state.hasGetInfo = status + } + }, + actions: { + //注册用户 + handleRegister({ + commit + }, { + username, + password, + phoneNo, + userCode + }) { + //debugger + return new Promise((resolve, reject) => { + register({ + username, + password, + phoneNo, + userCode + }).then(res => { + // console.warn(res) + let data = res.data + if (data.success) { + resolve() + } else { + reject(data.msg) + } + + }).catch(err => { + reject(serverBusyTips) + }) + }) + }, + // 用户登录 + handleLogin({ + commit + }, { + username, + password + }) { + // username = username.trim() + return new Promise((resolve, reject) => { + login({ + username, + password + }).then(res => { + //console.warn(res) + const data = res.data + if (data.success) { + commit('setToken', username + GetGuid()) //data.token + commit('setUserId', data.data.USERID); + commit('setUserName', data.data.USERNAME); + resolve() + } else { + reject(data.msg) + + } + + }).catch(err => { + console.error(err) + reject(serverBusyTips) + }) + }) + }, + // 退出登录 + handleLogOut({ + state, + commit + }) { + commit('setToken', '') + commit('setUserId', ''); + commit('setUserName', ''); + removeCookie('userName'); + removeCookie('userId'); + return new Promise((resolve, reject) => { + logout().then(() => { + // commit('setToken', '') + // commit('setUserId',''); + // commit('setUserName',''); + resolve() + }).catch(err => { + reject(err) + }) + // 如果你的退出登录无需请求接口,则可以直接使用下面三行代码而无需使用logout调用接口 + + }) + }, + // 获取用户相关信息 + getUserInfo({ + state, + commit + }) { + return new Promise((resolve, reject) => { + try { + getUserInfo(state.token).then(res => { + const data = res.data + commit('setAvator', data.avator) + commit('setUserName', data.name) + commit('setUserId', data.user_id) + commit('setAccess', data.access) + commit('setHasGetInfo', true) + resolve(data) + }).catch(err => { + reject(err) + }) + } catch (error) { + console.error(err) + reject(serverBusyTips) + } + }) + }, + //获取手机验证码 + getSendSms({ + commit, + payload + }, phoneNo) { + return new Promise((resolve, reject) => { + sendSms( + phoneNo + ).then(res => { + let data = res.data + if (data.success) { + resolve() + } else { + reject(data.msg) + } + + }).catch(err => { + reject(err) + }) + }) + }, + //短信验证 + checkSmsValidator() { + return new Promise((resolve, reject) => { + smsValidator({ + phoneNo, + userCode + }).then(res => { + let data = res.data + if (data.success) { + resolve() + } else { + reject(data.msg) + } + + }).catch(err => { + console.error(err) + reject(serverBusyTips) + }) + }) + }, + userChangePassword({ + commit + }, params) { + return new Promise((resolve, reject) => { + userChangePassword(params).then(res => { + let data = res.data; + if (data.success) { + resolve(data); + } else { + reject(data.msg); + } + }).catch(err => { + reject(serverBusyTips); + }) + }); + }, // 用户登录 + userBinding({ + commit + }, { + username, + password + }) { + // username = username.trim() + return new Promise((resolve, reject) => { + userBinding({ + username, + password + }).then(res => { + //console.warn(res) + const data = res.data + if (data.success) { + commit('setToken', username + GetGuid()) //data.token + commit('setUserId', data.data.USERID); + commit('setUserName', data.data.USERNAME); + resolve(); + } else { + reject(data.msg); + } + }).catch(err => { + //console.error(err) + reject(serverBusyTips) + }) + }) + } + + } +} diff --git a/.svn/pristine/1d/1db796b49b9b7a7e1d8b190014b10429d1dd64f0.svn-base b/.svn/pristine/1d/1db796b49b9b7a7e1d8b190014b10429d1dd64f0.svn-base new file mode 100644 index 0000000..0309c2f --- /dev/null +++ b/.svn/pristine/1d/1db796b49b9b7a7e1d8b190014b10429d1dd64f0.svn-base @@ -0,0 +1,147 @@ + + + + + diff --git a/.svn/pristine/1e/1e94c3b5f5f9820d91687fd029b72f3aeae57fb2.svn-base b/.svn/pristine/1e/1e94c3b5f5f9820d91687fd029b72f3aeae57fb2.svn-base new file mode 100644 index 0000000..a11617d --- /dev/null +++ b/.svn/pristine/1e/1e94c3b5f5f9820d91687fd029b72f3aeae57fb2.svn-base @@ -0,0 +1,66 @@ + + + diff --git a/.svn/pristine/24/243734e16d1b0874bc18189cdb4aec308940fbee.svn-base b/.svn/pristine/24/243734e16d1b0874bc18189cdb4aec308940fbee.svn-base new file mode 100644 index 0000000..2d38c8b --- /dev/null +++ b/.svn/pristine/24/243734e16d1b0874bc18189cdb4aec308940fbee.svn-base @@ -0,0 +1,71 @@ + + + diff --git a/.svn/pristine/39/397a5a8caf3ab52a69e9080f743f34735ab76bfb.svn-base b/.svn/pristine/39/397a5a8caf3ab52a69e9080f743f34735ab76bfb.svn-base new file mode 100644 index 0000000..93e51c4 --- /dev/null +++ b/.svn/pristine/39/397a5a8caf3ab52a69e9080f743f34735ab76bfb.svn-base @@ -0,0 +1,178 @@ + + + + + + + diff --git a/.svn/pristine/45/455a1b4a7c50c28f90be176198d9b7dbbef61a81.svn-base b/.svn/pristine/45/455a1b4a7c50c28f90be176198d9b7dbbef61a81.svn-base new file mode 100644 index 0000000..1d52878 --- /dev/null +++ b/.svn/pristine/45/455a1b4a7c50c28f90be176198d9b7dbbef61a81.svn-base @@ -0,0 +1,152 @@ + + + + + diff --git a/.svn/pristine/47/473b4968285c25c91718646a86a4e709c774531c.svn-base b/.svn/pristine/47/473b4968285c25c91718646a86a4e709c774531c.svn-base new file mode 100644 index 0000000..95c0bea --- /dev/null +++ b/.svn/pristine/47/473b4968285c25c91718646a86a4e709c774531c.svn-base @@ -0,0 +1,37 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +import user from './module/user' +import app from './module/app' +import address from './module/address' +import goods from './module/goods' +import rush from './module/rush' +import order from './module/order' +import note from './module/note' +import ad from './module/ad' +import session from './module/session' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + // + }, + mutations: { + // + }, + actions: { + // + }, + modules: { + user, + address, + goods, + rush, + order, + app, + note, + ad, + session + } +}) diff --git a/.svn/pristine/4c/4c7685f3192a051f8737c59bede9d9b9cea57db5.svn-base b/.svn/pristine/4c/4c7685f3192a051f8737c59bede9d9b9cea57db5.svn-base new file mode 100644 index 0000000..0feb2bd --- /dev/null +++ b/.svn/pristine/4c/4c7685f3192a051f8737c59bede9d9b9cea57db5.svn-base @@ -0,0 +1,826 @@ + + + + + diff --git a/.svn/pristine/57/576ecc90d671965c9e8f8ced7ffc366daa4f99a6.svn-base b/.svn/pristine/57/576ecc90d671965c9e8f8ced7ffc366daa4f99a6.svn-base new file mode 100644 index 0000000..cf34438 --- /dev/null +++ b/.svn/pristine/57/576ecc90d671965c9e8f8ced7ffc366daa4f99a6.svn-base @@ -0,0 +1,33 @@ +import { + getSessionId +} from '@/api/session' +import {setCookie,getCookie} from '@/libs/util'; +const serverBusyTips = "服务繁忙,请稍后再试!" +export default { + actions: { + getSessionId({ + commit + }) { + return new Promise((resolve, reject) => { + getSessionId().then(res => { + let data = res.data; + if (data.success) { + setCookie('sessionToken',data.data.sessionId); + if(data.data.USERID && data.data.USERNAME){ + setCookie('userId',data.data.USERID); + setCookie('userName',data.data.USERNAME); + } + }else if(data.status == 100){ + setCookie('sessionToken',data.data.sessionId); + window.location.href = data.data.jumpUrl; + }else{ + reject('创建系统识别对象失败'); + } + }).catch(err => { + //console.error(err) + reject(serverBusyTips) + }) + }) + } + } +} diff --git a/.svn/pristine/5a/5a3e800a96f870beac1efd11f46cf644fbe424f5.svn-base b/.svn/pristine/5a/5a3e800a96f870beac1efd11f46cf644fbe424f5.svn-base new file mode 100644 index 0000000..dc00eb2 --- /dev/null +++ b/.svn/pristine/5a/5a3e800a96f870beac1efd11f46cf644fbe424f5.svn-base @@ -0,0 +1,54 @@ + + + diff --git a/.svn/pristine/86/864cfcb6896bb0c73ab292e20262d7bb6fda5d4f.svn-base b/.svn/pristine/86/864cfcb6896bb0c73ab292e20262d7bb6fda5d4f.svn-base new file mode 100644 index 0000000..1e631bc --- /dev/null +++ b/.svn/pristine/86/864cfcb6896bb0c73ab292e20262d7bb6fda5d4f.svn-base @@ -0,0 +1,35 @@ +export default { + /** + * @description 默认页面标题 + */ + title: '微商城-晨龙包装自动化有限公司', + /** + * @description token在Cookie中存储的天数,默认1天 + */ + cookieExpires: 1/24, + /** + * @description api请求基础路径 + */ + baseUrl: { + dev: '',//http://192.168.168.111:8081/clerp-shop-admin/ + pro: '' + }, + //http://192.168.168.111:8081/clerp-shop-admin/ + + baseImgUrl:'http://shop.szclsoft.com', + + /** + * @description 默认打开的首页的路由name值,默认为home + */ + homeName: 'home', + /** + * @description 需要加载的插件 + */ + plugin: { + // 'error-store': { + // showInHeader: true, // 设为false后不会在顶部显示错误日志徽标 + // developmentOff: false // 设为true后在开发环境不会收集错误信息,方便开发中排查错误 + // } + } + } + \ No newline at end of file diff --git a/.svn/pristine/8e/8e1dfef555f0ae4a7514c5cbbe2fa1a512659323.svn-base b/.svn/pristine/8e/8e1dfef555f0ae4a7514c5cbbe2fa1a512659323.svn-base new file mode 100644 index 0000000..97fcd75 --- /dev/null +++ b/.svn/pristine/8e/8e1dfef555f0ae4a7514c5cbbe2fa1a512659323.svn-base @@ -0,0 +1,130 @@ +import axios from '@/libs/api.request' +import Qs from 'qs' + +/** +* @description 实时获取订单的真实价格 +* @paramsDesc 商品Id,商品规格Id,纸长,纸宽,数量 +* @params { goodsId,specId,paperLength,paperWidth,paperNum } +* @url /clerp-shop-admin/api/order/price/{goodsId} +*/ +export const goodsOrderPriceRealTime = ({ goodsId,specId,paperLength,paperWidth,paperNum }) => { + //debugger + //参数 + const data = { + specId,paperLength,paperWidth,paperNum, + } + return axios.request({ + url: `api/order/price/${goodsId}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + + + /** +* @description 提交订单 +* @paramDesc 规格ID,商品ID,商品规格字符串;使用,分割,纸长,纸宽,数量,箱高,压线,沿线类型,送货备注,生产备注,收货地址ID +* @params { specId, goodsId, goodsSpec,paperLength,paperWidth,paperNum,boxHeight,paperYx,yxType,deliveryRemark,productionRemark,deliveryAddress} +* @url /clerp-shop-admin/api/order/buy +*/ +export const submitGoodsOrder = ({ specId, goodsId, goodsSpec,paperLength,paperWidth,paperNum,boxHeight,paperYx,yxType,deliveryRemark,productionRemark,deliveryAddress }) => { + //debugger + //参数 + const data = { + specId, goodsId, goodsSpec,paperLength,paperWidth,paperNum,boxHeight,paperYx,yxType,deliveryRemark,productionRemark,deliveryAddress + } + return axios.request({ + url: 'api/order/buy', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + + /** + * 待支付订单列表 + */ + export const orderWaitingPay = ({pageNumber, pageSize}) =>{ + const data = {} + return axios.request({ + url: `api/order/waiting/${pageNumber}/${pageSize}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + + /** + * 已支付订单列表 + */ +export const orderEndPay = ({pageNumber, pageSize})=>{ + const data = {} + return axios.request({ + url: `api/order/end/${pageNumber}/${pageSize}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } +/** +* @description 订单支付 +* @paramDesc 支付类型,支付单号 +* @params { payType,orderNo} +* @url clerp-shop-admin/api/orderPay/pay +*/ + export const orderPayByType =({payType,orderNo})=>{ + const data ={payType,orderNo} + return axios.request({ + url: 'api/orderPay/pay', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + +/** + * 获取订单支付状态 + */ +export const orderPayStatus =({orderNo})=>{ + const data ={orderNo} + return axios.request({ + url: 'api/order/orderPayStatus', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + /** + * 获取订单详情 + */ + export const orderDetail =({orderNo})=>{ + const data ={} + return axios.request({ + url: `api/order/orderDetail/${orderNo}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } \ No newline at end of file diff --git a/.svn/pristine/98/9827897bda21c17a8a216b1c02ea9143c405f457.svn-base b/.svn/pristine/98/9827897bda21c17a8a216b1c02ea9143c405f457.svn-base new file mode 100644 index 0000000..0737fc0 --- /dev/null +++ b/.svn/pristine/98/9827897bda21c17a8a216b1c02ea9143c405f457.svn-base @@ -0,0 +1,23 @@ +import axios from '@/libs/api.request' +import Qs from 'qs' + +/** +* @description 获取sessionID +* @Url clerp-shop-admin/api/auth/getSessionId +*/ +export const getSessionId = () => { + //debugger + //参数 + const data = { + //userId + } + return axios.request({ + url: `api/auth/getSessionId`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} \ No newline at end of file diff --git a/.svn/pristine/9d/9d2a4eacf852b94b8bb882306024d851c99bed1b.svn-base b/.svn/pristine/9d/9d2a4eacf852b94b8bb882306024d851c99bed1b.svn-base new file mode 100644 index 0000000..e19f712 --- /dev/null +++ b/.svn/pristine/9d/9d2a4eacf852b94b8bb882306024d851c99bed1b.svn-base @@ -0,0 +1,196 @@ + + + + + diff --git a/.svn/pristine/9d/9ddbfd1a9179d42dbb8ad9067512242763e5261a.svn-base b/.svn/pristine/9d/9ddbfd1a9179d42dbb8ad9067512242763e5261a.svn-base new file mode 100644 index 0000000..8aec639 --- /dev/null +++ b/.svn/pristine/9d/9ddbfd1a9179d42dbb8ad9067512242763e5261a.svn-base @@ -0,0 +1,49 @@ + + + + + diff --git a/.svn/pristine/a7/a71c98f332636a78fe378a111a59153187d72cc8.svn-base b/.svn/pristine/a7/a71c98f332636a78fe378a111a59153187d72cc8.svn-base new file mode 100644 index 0000000..b234e3b --- /dev/null +++ b/.svn/pristine/a7/a71c98f332636a78fe378a111a59153187d72cc8.svn-base @@ -0,0 +1,143 @@ + + + + + + diff --git a/.svn/pristine/b1/b1736ef793c90fbd84af05205df3fec2bc2a4ffc.svn-base b/.svn/pristine/b1/b1736ef793c90fbd84af05205df3fec2bc2a4ffc.svn-base new file mode 100644 index 0000000..2b0ea10 --- /dev/null +++ b/.svn/pristine/b1/b1736ef793c90fbd84af05205df3fec2bc2a4ffc.svn-base @@ -0,0 +1,49 @@ + + + + + diff --git a/.svn/pristine/b4/b49591c4a423f2c325a3c9314288945a3a330786.svn-base b/.svn/pristine/b4/b49591c4a423f2c325a3c9314288945a3a330786.svn-base new file mode 100644 index 0000000..9a87942 --- /dev/null +++ b/.svn/pristine/b4/b49591c4a423f2c325a3c9314288945a3a330786.svn-base @@ -0,0 +1,112 @@ +import axios from '@/libs/api.request' +import Qs from 'qs' + +/** +* @description 获取用户地址列表 +* @params { userId } +http://192.168.168.111:8081/clerp-shop-admin/api/user/address/list/{userId} +*/ +export const addressList = ({ userId }) => { + //debugger + //参数 + const data = { + //userId + } + return axios.request({ + url: `/api/user/address/list`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + +/** +* @description 用户地址保存 +* @params { userId } +http://192.168.168.111:8081/clerp-shop-admin/api/user/address/save/{userId} +*/ +export const addressSave = ({ userId,addressInfo}) => { + //debugger + //参数 + console.log(addressInfo); + const data = addressInfo; + console.log(data); + return axios.request({ + url: `/api/user/address/save`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + +/** +* @description 用户地址更新 +* @params { userId } +http://192.168.168.111:8081/clerp-shop-admin/api/user/address/update/{userId} +*/ +export const addressUpdate = ({ userId,addressInfo }) => { + //debugger + //参数 + const data = addressInfo; + return axios.request({ + url: `/api/user/address/update`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + +/** +* @description 删除用户收货地址 +* @params { userId,addressId } +http://192.168.168.111:8081/clerp-shop-admin/api/user/address/delete/{userId}/{addressId} +*/ +export const addressDelete = ({ userId,addressId }) => { + //debugger + //参数 + const data = { + //userId, + //addressId + } + return axios.request({ + url: `/api/user/address/delete/${addressId}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + + + /** +* @description 获取地址详情 +* @params { userId,addressId } +http://192.168.168.111:8081/clerp-shop-admin/api/user/address/detail/{userId}/{addressId} +*/ +export const addressDetail = ({ userId,addressId,addressInfo}) => { + //debugger + //参数 + const data = addressInfo; + return axios.request({ + url: `/api/user/address/detail/${addressId}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + + diff --git a/.svn/pristine/b4/b4b5609dacf634ce0db5f410cdc9a8bf036f9c59.svn-base b/.svn/pristine/b4/b4b5609dacf634ce0db5f410cdc9a8bf036f9c59.svn-base new file mode 100644 index 0000000..45d7660 --- /dev/null +++ b/.svn/pristine/b4/b4b5609dacf634ce0db5f410cdc9a8bf036f9c59.svn-base @@ -0,0 +1,178 @@ + + + + + diff --git a/.svn/pristine/cd/cde409c9cdedea04a55bdb72a92ba024afbfa5c9.svn-base b/.svn/pristine/cd/cde409c9cdedea04a55bdb72a92ba024afbfa5c9.svn-base new file mode 100644 index 0000000..5d2bd31 --- /dev/null +++ b/.svn/pristine/cd/cde409c9cdedea04a55bdb72a92ba024afbfa5c9.svn-base @@ -0,0 +1,160 @@ +import axios from '@/libs/api.request' +import Qs from 'qs' + +/** +* @description 用户注册 +* @params { username, password,phoneNo,userCod } +*/ +export const register = ({ username, password,phoneNo,userCode }) => { + //debugger + //参数 + const data = { + username, + password, + phoneNo, + userCode + } + return axios.request({ + url: '/api/user/register', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + + +/** +* @description 发送短信 +* @params { phoneNo } +*/ +export const sendSms = ({phoneNo,verifyCode}) => { + //参数 + const data = { + phoneNo, + verifyCode + } + return axios.request({ + url: '/api/user/sendSms', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + +/** +* @description 短信验证 +* @params { phoneNo,userCode } +*/ +export const smsValidator = ({ phoneNo,userCode }) => { + //参数 + const data = { + phoneNo, + userCode + } + return axios.request({ + url: '/api/user/smsValidator', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + + +/** +* @description 用户登录 +* @params { username, password } +*/ +export const login = ({ username, password }) => { + //参数 + const data = { + username, + password + } + return axios.request({ + url: '/api/user/login', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + +/** +* @description 获取用户信息--暂时无此接口 +*/ +export const getUserInfo = (token) => { + return axios.request({ + url: 'get_info', + params: { + token + }, + method: 'get' + }) +} + +/** +* @description 用户退出-- +*/ +export const logout = () => { + //参数 + const data = { + } + return axios.request({ + url: '/api/user/loginOut', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + + +export const userChangePassword = (params) => { + const data = params; + return axios.request({ + url: '/api/user/changePassword', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data); + }], + }) +} + + +/** +* @description 用户绑定 +* @params { username, password } +*/ +export const userBinding = ({ username, password }) => { + //参数 + const data = { + username, + password + } + return axios.request({ + url: '/api/user/userBinding', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + + diff --git a/.svn/pristine/d0/d0985b109ba29c3c29421916abd30f9dd7767e76.svn-base b/.svn/pristine/d0/d0985b109ba29c3c29421916abd30f9dd7767e76.svn-base new file mode 100644 index 0000000..2f2a867 --- /dev/null +++ b/.svn/pristine/d0/d0985b109ba29c3c29421916abd30f9dd7767e76.svn-base @@ -0,0 +1,81 @@ +import axios from 'axios' +import defaultSetting from '@/config' +import store from '@/store' + import {setCookie,getCookie} from '@/libs/util'; +// import { Spin } from 'iview' +const addErrorLog = errorInfo => { + const { statusText, status, request: { responseURL } } = errorInfo + let info = { + type: 'ajax', + code: status, + mes: statusText, + url: responseURL + } + // if (!responseURL.includes('save_error_logger')) store.dispatch('addErrorLog', info) +} + +class HttpRequest { + constructor (baseUrl = baseURL) { + this.baseUrl = baseUrl + this.queue = {} + } + getInsideConfig () { + const config = { + baseURL: this.baseUrl, + headers: { + sessionId:getCookie('sessionToken') + } + } + return config + } + destroy (url) { + delete this.queue[url] + if (!Object.keys(this.queue).length) { + // Spin.hide() + } + } + interceptors (instance, url){ + // 请求拦截 + instance.interceptors.request.use(config => { + // 添加全局的loading... + if (!Object.keys(this.queue).length) { + // Spin.show() // 不建议开启,因为界面不友好 + } + this.queue[url] = true + return config + }, error => { + return Promise.reject(error) + }) + // 响应拦截 + instance.interceptors.response.use(res => { + // + if(res.data.status == 443){ + //debugger + store.dispatch('handleLogOut').then(res=>{ + let rediretUrl ='http://'+window.location.host+'/#/login' + window.location.href = rediretUrl //defaultSetting.baseUrl.pro + }) + // Window.vm.$router.push({ + // path: '/login' + // }); + return; + }else{ + this.destroy(url) + const { data, status } = res + return { data, status } + } + + }, error => { + this.destroy(url) + addErrorLog(error.response) + return Promise.reject(error) + }) + } + request (options) { + const instance = axios.create() + options = Object.assign(this.getInsideConfig(), options) + this.interceptors(instance, options.url) + return instance(options) + } +} +export default HttpRequest diff --git a/.svn/pristine/df/df0ad2f8adc95c8ca29e8215e26290f62c445344.svn-base b/.svn/pristine/df/df0ad2f8adc95c8ca29e8215e26290f62c445344.svn-base new file mode 100644 index 0000000..1c51cc4 --- /dev/null +++ b/.svn/pristine/df/df0ad2f8adc95c8ca29e8215e26290f62c445344.svn-base @@ -0,0 +1,158 @@ + + + + + diff --git a/.svn/pristine/df/dfd2661146d80cfdd1d3ccab479e15064ec0eeb3.svn-base b/.svn/pristine/df/dfd2661146d80cfdd1d3ccab479e15064ec0eeb3.svn-base new file mode 100644 index 0000000..3cbff67 --- /dev/null +++ b/.svn/pristine/df/dfd2661146d80cfdd1d3ccab479e15064ec0eeb3.svn-base @@ -0,0 +1,182 @@ + + + + + diff --git a/.svn/pristine/e2/e21b54f63503b35957a724d744e554a1b6053dad.svn-base b/.svn/pristine/e2/e21b54f63503b35957a724d744e554a1b6053dad.svn-base new file mode 100644 index 0000000..c0e6f36 --- /dev/null +++ b/.svn/pristine/e2/e21b54f63503b35957a724d744e554a1b6053dad.svn-base @@ -0,0 +1,166 @@ +import {goodsOrderPriceRealTime,submitGoodsOrder,orderWaitingPay,orderEndPay,orderPayByType,orderPayStatus,orderDetail} from '@/api/order' +const serverBusyTips="服务繁忙,请稍后再试!" + +export default { + //属性(使用方法:`this.$stote.state.order.属性`) + state: { + submitOrder_state:{} + + }, + //计算属性(使用方法:`this.$store.getters.属性`) + getters: { + setSubmitgoodsOrder:state=>state.submitOrder_state + }, + //同步步方法(使用方法:`this.$store.commit('方法名',{参数})`) + mutations: { + commitGoodsOrderPriceRealTime(state,data){ + + }, + commitSubmitGoodsOrder(state,data){ + //debugger + state.submitOrder_state =data + } + }, + //异步方法(使用方法:`this.$store.dispatch('方法名',{参数})`) + //缺省参数(rootState, // 等同于 `store.state`, rootGetters // 等同于 `store.getters`)只存在于模块中 + actions: { + /** + * @description 实时获取订单的真实价格 + * @paramsDesc 商品Id,商品规格Id,纸长,纸宽,数量 + * @params { goodsId,specId,paperLength,paperWidth,paperNum } + * @url /clerp-shop-admin/api/order/price/{goodsId} + */ + getGoodsOrderPriceRealTime({state,commit,getters,dispatch},params) + { + //debugger + return new Promise((resolve,reject)=>{ + goodsOrderPriceRealTime(params).then(res=>{ + let data = res.data + if (data.success && parseInt(data.status)!=-1) { + let formatData=data.data //JSON.stringify(data.data); + commit('commitGoodsOrderPriceRealTime', formatData) + resolve(formatData) + } + else { + reject(data.msg) + } + }).catch(err=>{ + console.error(err) + reject(serverBusyTips) + }) + }) + }, + /** + * @description 提交订单 + * @paramDesc 规格ID,商品ID,商品规格字符串;使用,分割,纸长,纸宽,数量,箱高,压线,沿线类型,送货备注,生产备注,收货地点ID + * @params { specId, goodsId, goodsSpec,paperLength,paperWidth,paperNum,boxHeight,paperYx,yxType,deliveryRemark,productionRemark,deliveryAddress} + * @url /clerp-shop-admin/api/order/buy + */ + getSubmitgoodsOrder({state,commit,getters,dispatch},params){ + // debugger + return new Promise((resolve,reject)=>{ + submitGoodsOrder(params).then(res=>{ + let data = res.data + if (data.success && parseInt(data.status)!=-1) { + let formatData=data.data //JSON.stringify(data.data); + commit('commitSubmitGoodsOrder', formatData) + resolve(formatData) + } + else { + reject(data.msg) + } + }).catch(err=>{ + console.error(err) + reject(serverBusyTips) + }) + }) + }, + orderWaitingPay({commit},params){ + return new Promise((resolve,reject)=>{ + orderWaitingPay(params).then(res=>{ + let data = res.data + if (data.success) { + resolve(data); + }else { + reject(data.msg) + } + }).catch(err=>{ + reject(serverBusyTips) + }) + }) + }, + orderEndPay({commit},params){ + return new Promise((resolve,reject)=>{ + orderEndPay(params).then(res=>{ + let data = res.data + if (data.success) { + resolve(data); + }else { + reject(data.msg) + } + }).catch(err=>{ + reject(serverBusyTips) + }) + }) + }, + /** + * @description 订单支付 + * @paramDesc 支付类型,支付单号 + * @params { payType,orderNo} + * @url clerp-shop-admin/api/orderPay/pay + */ + getOrderPayByType({state,commit,getters,dispatch},params){ + return new Promise((resolve,reject)=>{ + orderPayByType(params).then(res=>{ + let data = res.data + if(data.success) + { + resolve(data.data); + } + else{ + reject(data.msg) + } + }) + + }).catch(err=>{ + console.error(err) + reject(serverBusyTips) + }) + },getOrderPayStatus({state,commit,getters,dispatch},params){ + return new Promise((resolve,reject)=>{ + orderPayStatus(params).then(res=>{ + let data = res.data + if(data.success) + { + resolve(data.data); + } + else{ + reject(data.msg) + } + }) + + }).catch(err=>{ + //console.error(err) + reject(serverBusyTips) + }) + },getOrderDetail({state,commit,getters,dispatch},params){ + return new Promise((resolve,reject)=>{ + orderDetail(params).then(res=>{ + let data = res.data + if(data.success) + { + resolve(data.data); + } + else{ + reject(data.msg) + } + }) + + }).catch(err=>{ + //console.error(err) + reject(serverBusyTips) + }) + } + } +} + diff --git a/.svn/pristine/fc/fca3169141fd7d9634ab190fd7f1ab7bbc6de75b.svn-base b/.svn/pristine/fc/fca3169141fd7d9634ab190fd7f1ab7bbc6de75b.svn-base new file mode 100644 index 0000000..a52d712 --- /dev/null +++ b/.svn/pristine/fc/fca3169141fd7d9634ab190fd7f1ab7bbc6de75b.svn-base @@ -0,0 +1,69 @@ +import Vue from 'vue' +import Router from 'vue-router' +import routes from './routers' +import store from '@/store' +import { setToken, getToken, canTurnTo,getCookie } from '@/libs/util' +import getPageTitle from '@/libs/get-page-title' +import NProgress from 'nprogress' // progress bar +import 'nprogress/nprogress.css' // progress bar style +import config from '@/config' + +NProgress.configure({ showSpinner: false }) // NProgress Configuration + +const { homeName } = config + +Vue.use(Router) + +const router = new Router({ + routes:routes +}) +const LOGIN_PAGE_NAME = 'login' + +const whiteList = ['/login', '/register'] // no redirect whitelist + // determine whether the user has logged in + + +//路由拦截,权限控制 +router.beforeEach((to, from, next) => { + const hasToken = getCookie('sessionToken'); + const userName = getCookie('userName'); + // start progress bar + NProgress.start() + // 设置页面标题,方便搜索 + document.title = getPageTitle(to.meta.title) + //debugger + if (hasToken && userName){ + if (to.path === '/login' || to.path === '/register') { + // if is logged in, redirect to the home page + next({ path: '/home' }) + NProgress.done() + }else{ + next() + NProgress.done() + } + }else{ + /* has no token*/ + if(to.meta.isLogin){ + next({ path: '/login' }) + NProgress.done() + } + else{ + next() + NProgress.done() + } + + } + + /* has no token*/ + // next() + // NProgress.done() + }) + +//路由拦截,页面控制 +router.afterEach(to => { + // finish progress bar + NProgress.done() + window.scrollTo(0, 0) + }) + +export default router diff --git a/.svn/wc.db b/.svn/wc.db index ddb3d71..fa73481 100644 Binary files a/.svn/wc.db and b/.svn/wc.db differ diff --git a/src/api/address.js b/src/api/address.js index 3d0ad24..9a87942 100644 --- a/src/api/address.js +++ b/src/api/address.js @@ -13,7 +13,7 @@ export const addressList = ({ userId }) => { //userId } return axios.request({ - url: `/api/user/address/list/${userId}`, + url: `/api/user/address/list`, data, method: 'post', transformRequest: [function (data) { @@ -35,7 +35,7 @@ export const addressSave = ({ userId,addressInfo}) => { const data = addressInfo; console.log(data); return axios.request({ - url: `/api/user/address/save/${userId}`, + url: `/api/user/address/save`, data, method: 'post', transformRequest: [function (data) { @@ -55,7 +55,7 @@ export const addressUpdate = ({ userId,addressInfo }) => { //参数 const data = addressInfo; return axios.request({ - url: `/api/user/address/update/${userId}`, + url: `/api/user/address/update`, data, method: 'post', transformRequest: [function (data) { @@ -78,7 +78,7 @@ export const addressDelete = ({ userId,addressId }) => { //addressId } return axios.request({ - url: `/api/user/address/delete/${userId}/${addressId}`, + url: `/api/user/address/delete/${addressId}`, data, method: 'post', transformRequest: [function (data) { @@ -99,7 +99,7 @@ export const addressDetail = ({ userId,addressId,addressInfo}) => { //参数 const data = addressInfo; return axios.request({ - url: `/api/user/address/detail/${userId}/${addressId}`, + url: `/api/user/address/detail/${addressId}`, data, method: 'post', transformRequest: [function (data) { diff --git a/src/api/order.js b/src/api/order.js index 6a0e602..97fcd75 100644 --- a/src/api/order.js +++ b/src/api/order.js @@ -51,10 +51,10 @@ export const submitGoodsOrder = ({ specId, goodsId, goodsSpec,paperLength,paperW /** * 待支付订单列表 */ - export const orderWaitingPay = () =>{ + export const orderWaitingPay = ({pageNumber, pageSize}) =>{ const data = {} return axios.request({ - url: 'api/order/waiting', + url: `api/order/waiting/${pageNumber}/${pageSize}`, data, method: 'post', transformRequest: [function (data) { @@ -67,10 +67,10 @@ export const submitGoodsOrder = ({ specId, goodsId, goodsSpec,paperLength,paperW /** * 已支付订单列表 */ -export const orderEndPay = ()=>{ +export const orderEndPay = ({pageNumber, pageSize})=>{ const data = {} return axios.request({ - url: 'api/order/end', + url: `api/order/end/${pageNumber}/${pageSize}`, data, method: 'post', transformRequest: [function (data) { @@ -97,3 +97,34 @@ export const orderEndPay = ()=>{ }], }) } + +/** + * 获取订单支付状态 + */ +export const orderPayStatus =({orderNo})=>{ + const data ={orderNo} + return axios.request({ + url: 'api/order/orderPayStatus', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } + /** + * 获取订单详情 + */ + export const orderDetail =({orderNo})=>{ + const data ={} + return axios.request({ + url: `api/order/orderDetail/${orderNo}`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) + } \ No newline at end of file diff --git a/src/api/session.js b/src/api/session.js new file mode 100644 index 0000000..0737fc0 --- /dev/null +++ b/src/api/session.js @@ -0,0 +1,23 @@ +import axios from '@/libs/api.request' +import Qs from 'qs' + +/** +* @description 获取sessionID +* @Url clerp-shop-admin/api/auth/getSessionId +*/ +export const getSessionId = () => { + //debugger + //参数 + const data = { + //userId + } + return axios.request({ + url: `api/auth/getSessionId`, + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} \ No newline at end of file diff --git a/src/api/user.js b/src/api/user.js index a3ae91c..5d2bd31 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -136,3 +136,25 @@ export const userChangePassword = (params) => { } +/** +* @description 用户绑定 +* @params { username, password } +*/ +export const userBinding = ({ username, password }) => { + //参数 + const data = { + username, + password + } + return axios.request({ + url: '/api/user/userBinding', + data, + method: 'post', + transformRequest: [function (data) { + // 对 data 进行任意转换处理 + return Qs.stringify(data) + }], + }) +} + + diff --git a/src/components/goods-item/goods-item.vue b/src/components/goods-item/goods-item.vue index 93e51c4..77afc59 100644 --- a/src/components/goods-item/goods-item.vue +++ b/src/components/goods-item/goods-item.vue @@ -157,11 +157,10 @@ export default { // text-align: justify; // font-weight: 800; // } -// .van-card__price { -// color: #ef4f4f; -// font-size: 15px; -// font-weight: 600; -// } + .van-card__price { + font-size: 18px; + font-weight: bold; +} .van-card { text-align: left; } diff --git a/src/components/register-form/register-form.vue b/src/components/register-form/register-form.vue index 7a32575..45d7660 100644 --- a/src/components/register-form/register-form.vue +++ b/src/components/register-form/register-form.vue @@ -43,6 +43,7 @@ diff --git a/src/views/Login.vue b/src/views/Login.vue index c4be7fa..a11617d 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -1,54 +1,66 @@ diff --git a/src/views/Order/OrderList.vue b/src/views/Order/OrderList.vue index 245c336..b234e3b 100644 --- a/src/views/Order/OrderList.vue +++ b/src/views/Order/OrderList.vue @@ -1,26 +1,26 @@ + + + diff --git a/src/views/Order/payment.vue b/src/views/Order/payment.vue index 5f277e0..e19f712 100644 --- a/src/views/Order/payment.vue +++ b/src/views/Order/payment.vue @@ -1,11 +1,11 @@ - \ No newline at end of file + .pay_way_title { + padding: 15px; + background-color: #fff; + } + diff --git a/src/views/Pay/PayFail.vue b/src/views/Pay/PayFail.vue index 2a5b28e..8aec639 100644 --- a/src/views/Pay/PayFail.vue +++ b/src/views/Pay/PayFail.vue @@ -4,11 +4,13 @@ title="支付结果" left-text="返回" left-arrow + @click-left="onClickLeft" />

支付失败

订单号:{{orderNo}}

+

查看订单

@@ -27,7 +29,19 @@ mounted: function() { this.orderNo = this.$route.query.orderNo; }, - methods: {} + methods: { + onClickLeft(){ + window.location.href = this.$config.baseUrl.pro; + }, + orderList(){ + this.$router.push({ + name:'orderList', + query:{ + active:0 + } + }); + } + } } diff --git a/src/views/Pay/PaySuccess.vue b/src/views/Pay/PaySuccess.vue index 9b9b342..2b0ea10 100644 --- a/src/views/Pay/PaySuccess.vue +++ b/src/views/Pay/PaySuccess.vue @@ -4,11 +4,13 @@ title="支付结果" left-text="返回" left-arrow + @click-left="onClickLeft" />

支付成功

订单号:{{orderNo}}

+

查看订单

@@ -27,7 +29,19 @@ mounted: function() { this.orderNo = this.$route.query.orderNo; }, - methods: {} + methods: { + onClickLeft(){ + window.location.href = this.$config.baseUrl.pro; + }, + orderList(){ + this.$router.push({ + name:'orderList', + query:{ + active:1 + } + }); + } + } } diff --git a/src/views/Register.vue b/src/views/Register.vue index 80f53de..2d38c8b 100644 --- a/src/views/Register.vue +++ b/src/views/Register.vue @@ -55,10 +55,13 @@ }).then(res => { this.isLoding = false; this.showSuccessNotify("注册成功"); + this.$router.push({ + name: this.$config.homeName + }); }).catch(err => { this.isLoding = false; - // alert(err); - this.showErrorNotify("注册失败,请稍后再试!"); + let msg = err == ''?'注册失败,请稍后再试!':err; + this.showErrorNotify(msg); }) } } diff --git a/src/views/UserCenter.vue b/src/views/UserCenter.vue index 43f503f..3cbff67 100644 --- a/src/views/UserCenter.vue +++ b/src/views/UserCenter.vue @@ -7,7 +7,7 @@
- {{this.$store.state.user.userName}} + {{getUserName()}}
@@ -50,8 +50,8 @@