Commit 6c14c43c authored by Junling Bu's avatar Junling Bu
Browse files

V 0.1.0, 项目架构基本完成。

parents
import request from '@/utils/request'
export function listGoodsAttribute(query) {
return request({
url: '/goods-attribute/list',
method: 'get',
params: query
})
}
export function createGoodsAttribute(data) {
return request({
url: '/goods-attribute/create',
method: 'post',
data
})
}
export function readGoodsAttribute(data) {
return request({
url: '/goods-attribute/read',
method: 'get',
data
})
}
export function updateGoodsAttribute(data) {
return request({
url: '/goods-attribute/update',
method: 'post',
data
})
}
export function deleteGoodsAttribute(data) {
return request({
url: '/goods-attribute/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listGoodsSpecification(query) {
return request({
url: '/goods-specification/list',
method: 'get',
params: query
})
}
export function createGoodsSpecification(data) {
return request({
url: '/goods-specification/create',
method: 'post',
data
})
}
export function readGoodsSpecification(data) {
return request({
url: '/goods-specification/read',
method: 'get',
data
})
}
export function updateGoodsSpecification(data) {
return request({
url: '/goods-specification/update',
method: 'post',
data
})
}
export function deleteGoodsSpecification(data) {
return request({
url: '/goods-specification/delete',
method: 'post',
data
})
}
export function listGoodsSpecificationVo(query) {
return request({
url: '/goods-specification/volist',
method: 'get',
params: query
})
}
import request from '@/utils/request'
export function listGoods(query) {
return request({
url: '/goods/list',
method: 'get',
params: query
})
}
export function createGoods(data) {
return request({
url: '/goods/create',
method: 'post',
data
})
}
export function readGoods(data) {
return request({
url: '/goods/read',
method: 'get',
data
})
}
export function updateGoods(data) {
return request({
url: '/goods/update',
method: 'post',
data
})
}
export function deleteGoods(data) {
return request({
url: '/goods/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listHistory(query) {
return request({
url: '/history/list',
method: 'get',
params: query
})
}
export function createHistory(data) {
return request({
url: '/history/create',
method: 'post',
data
})
}
export function readHistory(data) {
return request({
url: '/history/read',
method: 'get',
data
})
}
export function updateHistory(data) {
return request({
url: '/history/update',
method: 'post',
data
})
}
export function deleteHistory(data) {
return request({
url: '/history/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listIssue(query) {
return request({
url: '/issue/list',
method: 'get',
params: query
})
}
export function createIssue(data) {
return request({
url: '/issue/create',
method: 'post',
data
})
}
export function readIssue(data) {
return request({
url: '/issue/read',
method: 'get',
data
})
}
export function updateIssue(data) {
return request({
url: '/issue/update',
method: 'post',
data
})
}
export function deleteIssue(data) {
return request({
url: '/issue/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listKeyword(query) {
return request({
url: '/keyword/list',
method: 'get',
params: query
})
}
export function createKeyword(data) {
return request({
url: '/keyword/create',
method: 'post',
data
})
}
export function readKeyword(data) {
return request({
url: '/keyword/read',
method: 'get',
data
})
}
export function updateKeyword(data) {
return request({
url: '/keyword/update',
method: 'post',
data
})
}
export function deleteKeyword(data) {
return request({
url: '/keyword/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function loginByUsername(username, password) {
const data = {
username,
password
}
return request({
url: '/login/login',
method: 'post',
data
})
}
export function logout() {
return request({
url: '/login/logout',
method: 'post'
})
}
export function getUserInfo(token) {
return request({
url: '/admin/info',
method: 'get',
params: { token }
})
}
import request from '@/utils/request'
export function listOrder(query) {
return request({
url: '/order/list',
method: 'get',
params: query
})
}
export function createOrder(data) {
return request({
url: '/order/create',
method: 'post',
data
})
}
export function readOrder(data) {
return request({
url: '/order/read',
method: 'get',
data
})
}
export function updateOrder(data) {
return request({
url: '/order/update',
method: 'post',
data
})
}
export function deleteOrder(data) {
return request({
url: '/order/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listProduct(query) {
return request({
url: '/product/list',
method: 'get',
params: query
})
}
export function createProduct(data) {
return request({
url: '/product/create',
method: 'post',
data
})
}
export function readProduct(data) {
return request({
url: '/product/read',
method: 'get',
data
})
}
export function updateProduct(data) {
return request({
url: '/product/update',
method: 'post',
data
})
}
export function deleteProduct(data) {
return request({
url: '/product/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function getToken() {
return request({
url: '/qiniu/upload/token', // 假地址 自行替换
method: 'get'
})
}
import request from '@/utils/request'
export function listRegion(query) {
return request({
url: '/region/list',
method: 'get',
params: query
})
}
export function listSubRegion(query) {
return request({
url: '/region/clist',
method: 'get',
params: query
})
}
import axios from 'axios'
// create an axios instance
const service = axios.create({
baseURL: process.env.OS_API, // api的base_url
timeout: 5000 // request timeout
})
export function listStorage(query) {
return service({
url: '/storage/list',
method: 'get',
params: query
})
}
export function createStorage(data) {
return service({
url: '/storage/create',
method: 'post',
data
})
}
export function readStorage(data) {
return service({
url: '/storage/read',
method: 'get',
data
})
}
export function updateStorage(data) {
return service({
url: '/storage/update',
method: 'post',
data
})
}
export function deleteStorage(data) {
return service({
url: '/storage/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function listTopic(query) {
return request({
url: '/topic/list',
method: 'get',
params: query
})
}
export function createTopic(data) {
return request({
url: '/topic/create',
method: 'post',
data
})
}
export function readTopic(data) {
return request({
url: '/topic/read',
method: 'get',
data
})
}
export function updateTopic(data) {
return request({
url: '/topic/update',
method: 'post',
data
})
}
export function deleteTopic(data) {
return request({
url: '/topic/delete',
method: 'post',
data
})
}
import request from '@/utils/request'
export function fetchList(query) {
return request({
url: '/user/list',
method: 'get',
params: query
})
}
export function createUser(data) {
return request({
url: '/user/create',
method: 'post',
data
})
}
export function readUser(data) {
return request({
url: '/user/detail',
method: 'get',
data
})
}
export function updateUser(data) {
return request({
url: '/user/update',
method: 'post',
data
})
}
/* eslint-disable */
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['exports', 'echarts'], factory);
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJS
factory(exports, require('echarts'));
} else {
// Browser globals
factory({}, root.echarts);
}
}(this, function (exports, echarts) {
var log = function (msg) {
if (typeof console !== 'undefined') {
console && console.error && console.error(msg);
}
};
if (!echarts) {
log('ECharts is not Loaded');
return;
}
var colorPalette = [
'#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80',
'#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa',
'#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050',
'#59678c','#c9ab00','#7eb00a','#6f5553','#c14089'
];
var theme = {
color: colorPalette,
title: {
textStyle: {
fontWeight: 'normal',
color: '#008acd'
}
},
visualMap: {
itemWidth: 15,
color: ['#5ab1ef','#e0ffff']
},
toolbox: {
iconStyle: {
normal: {
borderColor: colorPalette[0]
}
}
},
tooltip: {
backgroundColor: 'rgba(50,50,50,0.5)',
axisPointer : {
type : 'line',
lineStyle : {
color: '#008acd'
},
crossStyle: {
color: '#008acd'
},
shadowStyle : {
color: 'rgba(200,200,200,0.2)'
}
}
},
dataZoom: {
dataBackgroundColor: '#efefff',
fillerColor: 'rgba(182,162,222,0.2)',
handleColor: '#008acd'
},
grid: {
borderColor: '#eee'
},
categoryAxis: {
axisLine: {
lineStyle: {
color: '#008acd'
}
},
splitLine: {
lineStyle: {
color: ['#eee']
}
}
},
valueAxis: {
axisLine: {
lineStyle: {
color: '#008acd'
}
},
splitArea : {
show : true,
areaStyle : {
color: ['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)']
}
},
splitLine: {
lineStyle: {
color: ['#eee']
}
}
},
timeline : {
lineStyle : {
color : '#008acd'
},
controlStyle : {
normal : { color : '#008acd'},
emphasis : { color : '#008acd'}
},
symbol : 'emptyCircle',
symbolSize : 3
},
line: {
smooth : true,
symbol: 'emptyCircle',
symbolSize: 3
},
candlestick: {
itemStyle: {
normal: {
color: '#d87a80',
color0: '#2ec7c9',
lineStyle: {
color: '#d87a80',
color0: '#2ec7c9'
}
}
}
},
scatter: {
symbol: 'circle',
symbolSize: 4
},
map: {
label: {
normal: {
textStyle: {
color: '#d87a80'
}
}
},
itemStyle: {
normal: {
borderColor: '#eee',
areaColor: '#ddd'
},
emphasis: {
areaColor: '#fe994e'
}
}
},
graph: {
color: colorPalette
},
gauge : {
axisLine: {
lineStyle: {
color: [[0.2, '#2ec7c9'],[0.8, '#5ab1ef'],[1, '#d87a80']],
width: 10
}
},
axisTick: {
splitNumber: 10,
length :15,
lineStyle: {
color: 'auto'
}
},
splitLine: {
length :22,
lineStyle: {
color: 'auto'
}
},
pointer : {
width : 5
}
}
};
echarts.registerTheme('macarons', theme);
}));
<template>
<transition :name="transitionName">
<div class="back-to-ceiling" @click="backToTop" v-show="visible" :style="customStyle">
<svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" class="Icon Icon--backToTopArrow" aria-hidden="true" style="height: 16px; width: 16px;">
<title>回到顶部</title>
<g>
<path d="M12.036 15.59c0 .55-.453.995-.997.995H5.032c-.55 0-.997-.445-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29c.39-.39 1.026-.385 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z" fill-rule="evenodd"></path>
</g>
</svg>
</div>
</transition>
</template>
<script>
export default {
name: 'BackToTop',
props: {
visibilityHeight: {
type: Number,
default: 400
},
backPosition: {
type: Number,
default: 0
},
customStyle: {
type: Object,
default: {
right: '50px',
bottom: '50px',
width: '40px',
height: '40px',
'border-radius': '4px',
'line-height': '45px',
background: '#e7eaf1'
}
},
transitionName: {
type: String,
default: 'fade'
}
},
data() {
return {
visible: false,
interval: null
}
},
mounted() {
window.addEventListener('scroll', this.handleScroll)
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll)
if (this.interval) {
clearInterval(this.interval)
}
},
methods: {
handleScroll() {
this.visible = window.pageYOffset > this.visibilityHeight
},
backToTop() {
const start = window.pageYOffset
let i = 0
this.interval = setInterval(() => {
const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500))
if (next <= this.backPosition) {
window.scrollTo(0, this.backPosition)
clearInterval(this.interval)
} else {
window.scrollTo(0, next)
}
i++
}, 16.7)
},
easeInOutQuad(t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t + b
return -c / 2 * (--t * (t - 2) - 1) + b
}
}
}
</script>
<style scoped>
.back-to-ceiling {
position: fixed;
display: inline-block;
text-align: center;
cursor: pointer;
}
.back-to-ceiling:hover {
background: #d5dbe7;
}
.fade-enter-active,
.fade-leave-active {
transition: opacity .5s;
}
.fade-enter,
.fade-leave-to {
opacity: 0
}
.back-to-ceiling .Icon {
fill: #9aaabf;
background: none;
}
</style>
<template>
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path" v-if='item.meta.title'>
<span v-if='item.redirect==="noredirect"||index==levelList.length-1' class="no-redirect">{{item.meta.title}}</span>
<router-link v-else :to="item.redirect||item.path">{{item.meta.title}}</router-link>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</template>
<script>
export default {
created() {
this.getBreadcrumb()
},
data() {
return {
levelList: null
}
},
watch: {
$route() {
this.getBreadcrumb()
}
},
methods: {
getBreadcrumb() {
let matched = this.$route.matched.filter(item => item.name)
const first = matched[0]
if (first && first.name !== 'dashboard') {
matched = [{ path: '/dashboard', meta: { title: '主页' }}].concat(matched)
}
this.levelList = matched
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
line-height: 50px;
margin-left: 10px;
.no-redirect {
color: #97a8be;
cursor: text;
}
}
</style>
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