Commit 763dbb2e authored by 袁梓健's avatar 袁梓健
Browse files

提交

parent 21b02d46
No related merge requests found
Showing with 1327 additions and 261 deletions
+1327 -261
......@@ -11,8 +11,7 @@
<script>
import { Navbar, Sidebar, AppMain } from './components'
import ResizeMixin from './mixin/ResizeHandler'
import mixin from '@/mixins/mixins.js'
export default {
name: 'layout',
components: {
......@@ -20,15 +19,15 @@ export default {
Sidebar,
AppMain
},
mixins: [ResizeMixin],
mixins: [mixin],
computed: {
sidebar() {
sidebar () {
return this.$store.state.app.sidebar
},
device() {
device () {
return this.$store.state.app.device
},
classObj() {
classObj () {
return {
hideSidebar: !this.sidebar.opened,
withoutAnimation: this.sidebar.withoutAnimation,
......@@ -37,7 +36,13 @@ export default {
}
},
methods: {
handleClickOutside() {
init () {
this.getBarInfo()
},
getBarInfo () {
this.$store.dispatch('get_barInfo')
},
handleClickOutside () {
this.$store.dispatch('CloseSideBar', { withoutAnimation: false })
}
}
......
......@@ -2,6 +2,9 @@
<el-menu class="navbar" mode="horizontal">
<hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger>
<breadcrumb></breadcrumb>
<div class="navbar-rider">
<span class="sp">{{barInfo.totalRiderCount}}</span>名騎手,
</div>
<el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper">
<img class="user-avatar" :src="avatar+'?imageView2/1/w/80/h/80'">
......@@ -10,7 +13,7 @@
<el-dropdown-menu class="user-dropdown" slot="dropdown">
<router-link class="inlineBlock" to="/">
<el-dropdown-item>
Home
<span>{{barInfo.dispatcherName}}</span>
</el-dropdown-item>
</router-link>
<el-dropdown-item divided>
......@@ -22,29 +25,44 @@
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import { loginOut } from '@/api/login'
export default {
components: {
Breadcrumb,
Hamburger
},
computed: {
...mapGetters([
'sidebar',
'avatar'
'avatar',
'barInfo'
])
},
mounted () { // 1分鐘页面刷新一次
},
methods: {
toggleSideBar() {
toggleSideBar () {
this.$store.dispatch('ToggleSideBar')
},
logout() {
this.$store.dispatch('logout').then(() => {
location.reload() // 为了重新实例化vue-router对象 避免bug
logout () {
this.$confirm(`確定要退出登錄嗎?`, {
confirmButtonText: '確定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
loginOut()
this.$router.push({
path: '/'
})
})
.catch(() => {
})
}
}
}
......@@ -55,12 +73,18 @@ export default {
height: 50px;
line-height: 50px;
border-radius: 0px !important;
position: relative;
.hamburger-container {
line-height: 58px;
height: 50px;
float: left;
padding: 0 10px;
}
.navbar-rider{
display: inline-block;
position: absolute;
right: 5.12rem;
}
.screenfull {
position: absolute;
right: 90px;
......@@ -91,4 +115,3 @@ export default {
}
}
</style>
<template>
<div class="menu-wrapper">
<template v-for="item in routes" v-if="!item.hidden&&item.children">
<router-link v-if="onlyShowFirstLevelMenu(item)" :to="item.path+'/'+item.children[0].path"
:key="item.children[0].name">
<el-menu-item :index="item.path+'/'+item.children[0].path" :class="{'submenu-title-noDropdown':!isNest}">
<!-- <i v-if="item.meta&&item.meta.icon" :class="item.meta.icon"></i> -->
<span v-if="item.children[0].meta&&item.children[0].meta.title" slot="title">{{(item.meta.title)}}</span>
</el-menu-item>
</router-link>
<router-link v-if="hasOneShowingChildren(item.children) && !item.children[0].children&&!item.alwaysShow" :to="item.path+'/'+item.children[0].path"
:key="item.children[0].name">
<el-menu-item :index="item.path+'/'+item.children[0].path" :class="{'submenu-title-noDropdown':!isNest}">
<svg-icon v-if="item.children[0].meta&&item.children[0].meta.icon" :icon-class="item.children[0].meta.icon"></svg-icon>
<span v-if="item.children[0].meta&&item.children[0].meta.title" slot="title">{{$t('route.'+item.children[0].meta.title)}}</span>
</el-menu-item>
</router-link>
<el-submenu v-else :index="item.name||item.path" :key="item.name">
<template slot="title">
<svg-icon v-if="item.meta&&item.meta.icon" :icon-class="item.meta.icon"></svg-icon>
<span v-if="item.meta&&item.meta.title" slot="title">{{item.meta.title}}</span>
</template>
<template v-for="child in item.children" v-if="!child.hidden">
<sidebar-item :is-nest="true" class="nest-menu" v-if="child.children&&child.children.length>0" :routes="[child]" :key="child.path"></sidebar-item>
<router-link v-else :to="item.path+'/'+child.path" :key="child.name">
<el-menu-item :index="item.path+'/'+child.path">
<svg-icon v-if="child.meta&&child.meta.icon" :icon-class="child.meta.icon"></svg-icon>
<span v-if="child.meta&&child.meta.title" slot="title">{{child.meta.title}}</span>
</el-menu-item>
</router-link>
</template>
</el-submenu>
<el-submenu v-if="!onlyShowFirstLevelMenu(item)" :index="item.name||item.path" :key="item.name">
<template slot="title">
<!-- <i v-if="item.meta&&item.meta.icon" :class="item.meta.icon"></i> -->
<i style="padding-right: 5px;">
<img class="routesImg" :src="require(`@/assets/layouticon/${item.meta.icon}.png`)">
</i>
<span v-if="item.meta&&item.meta.title" slot="title">{{item.meta.title}}</span>
</template>
<template v-for="child in item.children" v-if="!child.hidden">
<sidebar-item :is-nest="true" class="nest-menu" v-if="child.children&&child.children.length>0" :routes="[child]" :key="child.path"></sidebar-item>
<router-link v-else :to="item.path+'/'+child.path" :key="child.name">
<el-menu-item :index="item.path+'/'+child.path">
<span v-if="child.meta&&child.meta.title" slot="title">{{child.meta.title}}</span>
</el-menu-item>
</router-link>
</template>
</el-submenu>
</template>
</div>
</template>
......@@ -45,15 +43,26 @@ export default {
}
},
methods: {
hasOneShowingChildren(children) {
const showingChildren = children.filter(item => {
return !item.hidden
hasOneShowingChildren (item) {
const showingChildren = item.children.filter(child => {
return !child.hidden
})
if (showingChildren.length === 1) {
return true
}
return false
},
onlyShowFirstLevelMenu (item) {
return (this.hasOneShowingChildren(item) && !item.children[0].children !== 0)
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.routesImg{
width: 16px;
height: 16px;
vertical-align: text-bottom;
}
</style>
......@@ -24,10 +24,10 @@ export default {
...mapGetters([
'sidebar'
]),
routes() {
routes () {
return this.$router.options.routes
},
isCollapse() {
isCollapse () {
return !this.sidebar.opened
}
}
......
import Vue from 'vue'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import '@/styles/element-variables.scss' // lang i18n
import '@/styles/index.scss' // global css
import App from './App'
import router from './router'
import store from './store'
import App from '@/App'
import router from '@/router'
import store from '@/store'
import '@/plugins' // 注册插件
import '@/icons' // icon
import '@/router/permission' // permission control
import i18n from './lang'
import i18n from '@/lang'
import '@/utils/auth/auth-directive'
import XLSX from 'xlsx'
Vue.use(Element, {
size: 'medium', // set element-ui default size
i18n: (key, value) => i18n.t(key, value)
})
router.beforeEach((to, from, next) => {
if (localStorage.dispatcherToken) {
if (to.path === '/login') {
next({ path: '/' })
} else {
next()
}
} else {
if (to.path === '/login') {
next()
} else {
next('/login')
}
}
})
Vue.config.productionTip = false
new Vue({
......
import { loginOut } from '@/api/login'
let mixin = {
data () {
return {}
},
created: function () {
this.init()
},
methods: {
reload () {
this.init()
},
handleApiError (data) {
let vm = this
return new Promise(function (resolve, reject) {
if (Number(data.resultCode) === 0) resolve(data.detailMsg)
let msgCode = data.businessMsg.businessCode
let msg = data.businessMsg.businessNote
switch (Number(data.resultCode)) {
case 2:
alert(`參數異常(${msgCode})`)
return
case 3:
alert(`參數異常(${msgCode})`)
return
case 4:
alert(`請求時間與系統時間相差太大(${msgCode})`)
return
case 5:
alert(`签名错误(${msgCode})`)
return
case 20:
alert(`数据库状态改变异常(${msgCode})`)
return
case 400:
vm.$message.error(`${msg}`)
return
case 401:
loginOut()
vm.$message.error(`登录失效,请重新登录`)
setTimeout(() => {
vm.$router.push('/login')
}, 1000)
return
case 500:
alert(`对不起,出错了,请联系技术人员(${msgCode})`)
return
default:
resolve(data.detailMsg)
}
})
},
handleSyntaxError (e) {
console.log('語法錯誤:' + e)
}
}
}
export default mixin
import Layout from '@/layout/Layout'
export const asyncRouters = [
{
path: '/form',
component: Layout,
children: [
{
path: 'test1',
name: 'test1',
component: () => import('@/views/form/index'),
meta: { title: '测试1', icon: 'form' }
}
]
},
{
path: '/example',
component: Layout,
redirect: '/example/tree',
name: 'zhedie',
alwaysShow: true,
meta: { title: '折叠测试', icon: 'example' },
children: [
{
path: 'table',
name: 'Table',
component: () => import('@/views/table/index'),
meta: { title: 'Table', icon: 'table' }
},
{
path: 'tree',
name: 'Tree',
component: () => import('@/views/tree/index'),
meta: { title: 'Tree', icon: 'tree' }
}
]
},
{
path: '/form',
component: Layout,
name: 'Test3',
children: [
{
path: 'test3',
name: 'test3',
component: () => import('@/views/form/index'),
meta: { title: '测试3', icon: 'form' }
}
]
},
{
path: '/form',
component: Layout,
name: 'Test2',
children: [
{
path: 'test2',
name: 'test2',
component: () => import('@/views/form/index'),
meta: { title: '测试2', icon: 'form' }
}
]
},
{ path: '*', redirect: '/404', hidden: true }
]
import Vue from 'vue'
import Router from 'vue-router'
/* Layout */
import Layout from '@/layout/Layout'
// in development-env not use lazy-loading, because lazy-loading too many pages will cause webpack hot update too slow. so only in production use lazy-loading;
// detail: https://panjiachen.github.io/vue-element-admin-site/#/lazy-loading
Vue.use(Router)
/* Layout */
import Layout from '@/layout/Layout'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
* alwaysShow: true if set true, will always show the root menu, whatever its child routes length
......@@ -21,14 +21,16 @@ import Layout from '@/layout/Layout'
icon: 'svg-name' the icon show in the sidebar,
}
**/
export const constantRouterMap = [
export const constantRouters = [
{
path: '/login',
component: () => import('@/views/login/index'),
hidden: true
},
{ path: '/404', component: () => import('@/views/404'), hidden: true },
{ path: '/404',
component: () => import('@/views/404'),
hidden: true
},
{
path: '/',
component: Layout,
......@@ -42,50 +44,207 @@ export const constantRouterMap = [
}
]
},
{
path: '/example',
path: '/rider_platform',
component: Layout,
redirect: '/example/table',
name: 'Example',
meta: { title: 'Example', icon: 'example' },
redirect: '/riderScheduling/rider_platform',
name: 'rider_platform',
meta: {
title: '骑手调度',
icon: 'scheduling',
roles: ['test']
},
children: [
{
path: 'table',
name: 'Table',
component: () => import('@/views/table/index'),
meta: { title: 'Table', icon: 'table' }
path: 'takeout',
name: 'takeout',
component: () => import('@/views/riderScheduling/rider_platform/takeout'),
meta: {
title: '外卖',
icon: 'form'
}
},
{
path: 'tree',
name: 'Tree',
component: () => import('@/views/tree/index'),
meta: { title: 'Tree', icon: 'tree' }
path: 'deliveryis',
name: 'deliveryis',
component: () => import('@/views/riderScheduling/rider_platform/deliveryis'),
meta: {
title: '外卖远单',
icon: 'form'
}
}, {
path: 'courier',
name: 'courier',
component: () => import('@/views/riderScheduling/rider_platform/courier'),
meta: {
title: '快递',
icon: 'form'
}
}
]
},
{
path: '/form',
path: '/rider_management',
component: Layout,
redirect: '/riderScheduling/rider_management',
name: 'rider_management',
meta: {
title: '骑手管理',
icon: 'rider',
roles: ['test']
},
children: [
{
path: 'index',
name: 'Form',
component: () => import('@/views/form/index'),
meta: { title: 'Form', icon: 'form' }
path: 'rider_management',
name: 'rider_management',
component: () => import('@/views/riderScheduling/rider_management/rider_management'),
meta: {
title: '骑手管理',
icon: 'form'
}
}]
},
{
path: '/data_statistics',
component: Layout,
redirect: '/riderScheduling/data_statistics',
name: 'data_statistics',
meta: {
title: '数据统计',
icon: 'data',
roles: ['test']
},
children: [
{
path: 'data_statistics',
name: 'data_statistics',
component: () => import('@/views/riderScheduling/data_statistics/data_statistics'),
meta: {
title: '数据统计',
icon: 'form'
}
}]
},
{
path: '/evaluation_management',
component: Layout,
redirect: '/riderScheduling/evaluation_management',
name: 'evaluation_management',
meta: {
title: '评价管理',
icon: 'evaluation',
roles: ['test']
},
children: [
{
path: 'evaluation_management',
name: 'evaluation_management',
component: () => import('@/views/riderScheduling/evaluation_management/evaluation_management'),
meta: {
title: '评价管理',
icon: 'form'
}
}]
},
{
path: '/courierManagement',
component: Layout,
redirect: '/courierManagement/courier_order',
name: 'courierManagement',
meta: {
title: '快递订单管理',
icon: 'courier',
roles: ['test']
},
children: [
{
path: 'courier_order',
name: 'courier_order',
component: () => import('@/views/courierManagement/courier_order'),
meta: {
title: '订单管理',
icon: 'form'
}
}, {
path: 'courier_statistical',
name: 'courier_statistical',
component: () => import('@/views/courierManagement/courier_statistical'),
meta: {
title: '订单统计',
icon: 'form'
}
}, {
path: 'merchants',
name: 'merchants',
component: () => import('@/views/courierManagement/merchants'),
meta: {
title: '商户管理',
icon: 'form'
}
}, {
path: 'order_audit',
name: 'order_audit',
component: () => import('@/views/courierManagement/order_audit'),
meta: {
title: '订单审核',
icon: 'form'
}
}]
},
{
path: '/merchants_Management',
component: Layout,
redirect: '/merchants_Management/merchants_order',
name: 'merchants_Management',
meta: {
title: '商户订单管理',
icon: 'merchants',
roles: ['test']
},
children: [
{
path: 'merchants_order',
name: 'merchants_order',
component: () => import('@/views/merchants_Management/merchants_order'),
meta: {
title: '订单管理',
roles: ['test']
}
},
{
path: 'order_details',
name: 'order_details',
hidden: true,
component: () => import('@/views/merchants_Management/order_details'),
meta: {
title: '订单管理111'
}
},
{
path: 'import_order',
name: 'import_order',
hidden: true,
component: () => import('@/views/merchants_Management/import_order'),
meta: {
title: '订单导入'
}
}
]
},
{
path: '/form',
path: '/riderOrderDetail',
component: Layout,
redirect: '/riderOrderDetail/riderOrderDetail',
name: 'riderOrderDetail',
hidden: true,
meta: {
title: '查看骑手详情',
roles: ['test']
},
children: [
{
path: 'index',
name: '测试0',
component: () => import('@/views/form/index'),
meta: { title: 'components', icon: 'form' }
path: 'riderOrderDetail',
component: () => import('@/views/riderScheduling/riderOrderDetail/riderOrderDetail')
}
]
}
......@@ -94,5 +253,8 @@ export const constantRouterMap = [
export default new Router({
// mode: 'history', //后端支持可开
scrollBehavior: () => ({ y: 0 }),
routes: constantRouterMap
routes: constantRouters
})
export { lastRouters } from './lastRouters'
export { routerMap } from './routerMap'
export const lastRouters = [
{
path: '*',
redirect: '/404',
meta: {},
hidden: true
}
]
import router from '@/router'
// import router from '@/router'
// import store from '@/store'
import NProgress from 'nprogress' // Progress 进度条
import 'nprogress/nprogress.css' // Progress 进度条样式
// import NProgress from 'nprogress' // Progress 进度条
// import 'nprogress/nprogress.css' // Progress 进度条样式
// import { Message } from 'element-ui'
import { asyncRouters } from '@/router/asyncRouters'
import { GET_TOEKN } from '@/config' // 验权
import routerMap from '@/router/routerMap' // 验权
// import { GET_TOEKN } from '@/config' // 验权
router.beforeEach((to, from, next) => {
NProgress.start()
console.log('to:', to)
console.log('from:', from)
if (GET_TOEKN()) {
if (!localStorage.go) {
setTimeout(() => {
localStorage.go = true
const canShowRouters = generateRouters(routerMap, asyncRouters)
router.addRoutes(canShowRouters) // 动态添加可访问路由表
router.options.routes = router.options.routes.concat(canShowRouters)
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
}, 1000)
} else {
next()
}
} else {
if (to.path === '/login') {
next()
} else {
next('/login')
}
NProgress.done()
}
})
// router.beforeEach((to, from, next) => {
// NProgress.start()
// if (GET_TOEKN()) {
// if (!localStorage.go) {
// setTimeout(() => {
// localStorage.go = true
// if (!store.getters.authFinish) {
router.afterEach(() => {
NProgress.done() // 结束Progress
})
// }
// // router.options.routes = router.options.routes.concat(store.getters.allRouters)
// next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
// store.dispatch('generateRoutes').then(() => {
// console.log(store.getters.allRouters)
// router.addRoutes(store.getters.allRouters)
// store.dispatch('setCurrentPageAuth', to)
// })
// }, 1000)
// } else {
// next()
// }
// } else {
// if (to.path === '/login') {
// next()
// } else {
// next('/login')
// }
// NProgress.done()
// }
// })
function generateRouters(routerMap, asyncRouters) {
const canShowRouters = []
asyncRouters.forEach(router => {
if (routerMap[router.name] && routerMap[router.name].show) {
if (router.children.length > 1) {
const childs = []
router.children.forEach(child => {
const mapChild = routerMap[router.name].child
mapChild.forEach(mapC => {
if (mapC.name === child.name && mapC.show) {
child.meta.element = mapC.element
childs.push(child)
}
})
})
router.children = childs
} else {
router.children[0].meta.element = routerMap[router.name].child[0].element
}
canShowRouters.push(router)
}
})
console.log('canShowRouters:', canShowRouters)
return canShowRouters
}
// router.afterEach((to, from, next) => {
// store.dispatch('setCurrentPageAuth', to)
// NProgress.done() // 结束Progress
// })
import Layout from '@/layout/Layout'
export default {
zhedie: {
child: [
......@@ -32,18 +33,55 @@ export default {
}
],
show: false
},
Test2: {
child: [
{
name: 'abc2',
show: true,
element: {
btn1: false,
btn2: true
}
}
],
show: true
}
}
export const routerMap = new Map([
[
'30000038', {
path: '/equipment',
component: Layout,
redirect: '/equipment/posManage',
name: 'equipment',
meta: {
title: '設備管理',
icon: 'example',
roles: ['test']
}
}
], [
'30000025', {
path: 'posManage',
name: 'posManage',
// component: () => import('@/views/equipment/posManage/posManage'),
meta: {
title: 'POS機管理',
icon: 'form'
}
}
], [
'30000040', {
path: '/operating',
component: Layout,
redirect: '/operating/refund',
name: 'operating',
meta: {
title: '日常維護',
icon: 'example',
roles: ['test']
}
}
], [
'30000041', {
path: 'refund',
name: 'refund',
// component: () => import('@/views/refund/refund'),
meta: {
title: '卡BIN管理',
icon: 'form'
}
}
], [
]
])
import { fetch } from '../fetch/index'
export function login(option) {
return fetch('/manager/login', option)
}
export function logout(option) {
return fetch('/manager/loginOut', option)
}
import md5 from 'js-md5'
import { axiosInstance } from './axiosInstance'
import { API_KEY, API_CHANNEL, GET_TOEKN, SESSION_ID } from '@/config'
export function fetch(url, option = {}) {
const timestamp = new Date().getTime()
const headers = {
requestTime: timestamp,
sign: md5(`${timestamp}${API_KEY}`),
token: GET_TOEKN(),
channel: API_CHANNEL,
sessionId: SESSION_ID
}
option.headers = Object.assign(headers, option.headers)
option.url = url
console.log('option:', option)
return axiosInstance.request(option).then(res => res)
}
......@@ -12,7 +12,7 @@ import {
API_GLOBAL_LOADING_ID
} from '@/config'
export function requestSuccess(req) {
export function requestSuccess (req) {
console.log(('API_LOADING:', API_LOADING))
if (API_LOADING && req.loading) {
......@@ -29,12 +29,12 @@ export function requestSuccess(req) {
return req
}
export function requestFail(req) {
export function requestFail (req) {
Load.close()
console.log('reqFail:', req)
}
export function responseSuccess(res) {
export function responseSuccess (res) {
Load.close()
const apiData = res.data
......@@ -45,7 +45,7 @@ export function responseSuccess(res) {
const level2CodeMsg = API_LEVEL2_CODE_MSG(apiData)
const apiResult = API_RESULT(apiData)
return new Promise((resolve, reject) => {
if (Number(level1Code) === 0) {
if (Number(level1Code) === 200) {
resolve(apiResult)
} else if (
(res.config.unHandleCode &&
......@@ -60,7 +60,7 @@ export function responseSuccess(res) {
})
}
export function responseFail(error) {
export function responseFail (error) {
console.log('responseFail:', error)
Load.close()
const stringError = String(error)
......
const getters = {
sidebar: state => state.app.sidebar,
device: state => state.app.device,
token: state => state.user.token,
avatar: state => state.user.avatar,
name: state => state.user.name,
roles: state => state.user.roles
barInfo: state => state.user.barInfo,
stationVal: state => state.user.stationVal,
areas: state => state.user.areas,
allRouters: state => state.router.routers,
authFinish: state => state.router.authFinish,
currentPageAuth: state => state.router.currentPageAuth,
selectItemID: state => state.rider.selectItemID,
riderData: state => state.rider.riderData,
refreshData: state => state.rider.refreshData,
riderName: state => state.rider.riderName,
merchantsName: state => state.rider.merchantsName,
getTime: state => state.rider.getDate,
rider_loading: state => state.rider.rider_loading,
courierId: state => state.courier.courierId,
courier_loading: state => state.courier.courier_loading
}
export default getters
import Vue from 'vue'
import Vuex from 'vuex'
import app from './modules/app'
import router from './modules/router'
import user from './modules/user'
import rider from './modules/rider'
import courier from './modules/courier'
import getters from './getters'
Vue.use(Vuex)
......@@ -9,7 +12,10 @@ Vue.use(Vuex)
const store = new Vuex.Store({
modules: {
app,
user
router,
user,
rider,
courier
},
getters
})
......
......@@ -31,10 +31,10 @@ const app = {
ToggleSideBar: ({ commit }) => {
commit('TOGGLE_SIDEBAR')
},
CloseSideBar({ commit }, { withoutAnimation }) {
CloseSideBar ({ commit }, { withoutAnimation }) {
commit('CLOSE_SIDEBAR', withoutAnimation)
},
ToggleDevice({ commit }, device) {
ToggleDevice ({ commit }, device) {
commit('TOGGLE_DEVICE', device)
}
}
......
import { } from '@/api/home'
const courier = {
state: {
courierId: 1,
courier_loading: true
},
mutations: {
SET_COURIER_LOADING (state, val) {
state.courier_loading = val
},
SET_COURIERID (state, val) {
state.courierId = val
localStorage.courierId = val
}
},
actions: {
get_courierEmpty ({ commit }) {
commit('SET_COURIERID', 1)
localStorage.removeItem('val')
commit('SET_COURIER_LOADING', false)
}
}
}
export default courier
import { getAllRiderStation } from '@/api/home'
const rider = {
state: {
selectItemID: 2,
riderData: [],
refreshData: {},
riderName: '',
merchantsName: '',
getDate: '',
rider_loading: true
},
mutations: {
SET_SELECTITEMID (state, val) {
state.selectItemID = val
localStorage.selectItemID = val
},
SET_RIDERDATA (state, val) {
state.riderData = val
},
SET_STATION (state, val) {
localStorage.val = JSON.stringify(val)
state.stationVal = val
},
SET_REFRESH (state, val) {
state.refreshData = val
},
SET_RIDER_LOADING (state, val) {
state.rider_loading = val
},
set_riderName (state, val) {
state.riderName = val
},
set_merchantsName (state, val) {
state.merchantsName = val
},
set_getDate (state, val) {
state.getDate = val
}
},
actions: {
get_refreshData ({ commit }, index) {
commit('SET_REFRESH', index)
},
get_riderEmpty ({ commit }) {
commit('SET_SELECTITEMID', 2)
localStorage.removeItem('val')
commit('SET_RIDER_LOADING', true)
}
}
}
export default rider
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment