订单管理

This commit is contained in:
邓皓元 2019-03-06 18:47:49 +08:00
parent f43501e45e
commit 86e7f25166
24 changed files with 373 additions and 201 deletions

View File

@ -20,7 +20,8 @@ module.exports = {
named: "never",
asyncArrow: "never"
}
]
],
"no-multiple-empty-lines": "off"
},
parserOptions: {
parser: "babel-eslint"

View File

@ -1,71 +1,84 @@
<template>
<div v-if="show">
<div class="common-loading">
<div class="common-loading-wrap">
<div class="loading-inner">
<Icon type="ios-loading" size=25 class="spin-icon-load umar-t10"></Icon>
<div class="fz-12">{{msg}}</div>
</div>
</div>
</div>
</div>
<div v-if="show">
<div class="common-loading">
<div class="common-loading-wrap">
<div class="loading-inner">
<Icon type="ios-loading" size="25" class="spin-icon-load umar-t10"></Icon>
<div class="fz-12">{{msg}}</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default{
props: {
show: { //
type: Boolean,
defualt: true
},
msg: { //
type: String,
default: '加载中...'
}
}
}
export default {
props: {
show: {
//
type: Boolean,
defualt: true
},
msg: {
//
type: String,
default: "加载中..."
}
}
};
</script>
<style>
.common-loading{
position: absolute;
width: 100%;
left: 0;
background-color: rgba(255,255,255,0.2);
z-index: 50;
top:49px;
bottom:0;
}
.common-loading {
position: absolute;
width: 100%;
left: 0;
background-color: rgba(255, 255, 255, 0.2);
z-index: 50;
top: 49px;
bottom: 0;
}
.common-loading-wrap{
display: table;
text-align: center;
width: 100%;
height: 100%;
color: #2d8cf0;
}
.loading-inner{
display: table-cell;
vertical-align: top;
}
.ivu-spin{
font-size: 15px;
}
.common-loading-wrap {
display: table;
text-align: center;
width: 100%;
height: 100%;
color: #2d8cf0;
}
.loading-inner {
display: table-cell;
vertical-align: top;
}
.ivu-spin {
font-size: 15px;
}
.spin-icon-load{
animation: ani-spin 1s linear infinite;
}
.spin-icon-load {
animation: ani-spin 1s linear infinite;
}
@keyframes ani-spin{
from { transform: rotate(0deg);}
50% { transform: rotate(180deg);}
to { transform: rotate(360deg);}
}
@keyframes ani-spin {
from {
transform: rotate(0deg);
}
50% {
transform: rotate(180deg);
}
to {
transform: rotate(360deg);
}
}
@-webkit-keyframes ani-spin{
from { transform: rotate(0deg);}
50% { transform: rotate(180deg);}
to { transform: rotate(360deg);}
}
</style>
@-webkit-keyframes ani-spin {
from {
transform: rotate(0deg);
}
50% {
transform: rotate(180deg);
}
to {
transform: rotate(360deg);
}
}
</style>

View File

@ -1,38 +1,40 @@
<template>
<div class="none-wraper ta-c" v-if="show">
<div><img src="~images/none.png"/></div>
<p class="msg">{{message}}</p>
</div>
<div class="none-wraper ta-c" v-if="show">
<div>
<img src="~images/none.png">
</div>
<p class="msg">{{message}}</p>
</div>
</template>
<script>
export default{
props: {
show: {
type: Boolean,
default: false
},
message: {
type: String,
default: '未找到相关信息'
}
}
}
export default {
props: {
show: {
type: Boolean,
default: false
},
message: {
type: String,
default: "未找到相关信息"
}
}
};
</script>
<style scoped lang="less">
.none-wraper{
padding-top: 50px;
padding-bottom: 50px;
.none-wraper {
padding-top: 50px;
padding-bottom: 50px;
img{
width: 150px;
}
img {
width: 150px;
}
.msg{
margin-top: 10px;
color: #b3b3b3;
font-size: 15px;
}
}
</style>
.msg {
margin-top: 10px;
color: #b3b3b3;
font-size: 15px;
}
}
</style>

View File

@ -57,7 +57,7 @@ export function getScrollBarSize(fresh) {
// watch DOM change
export const MutationObserver = isServer ? false : window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver || false;
const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
const SPECIAL_CHARS_REGEXP = /([:\-_]+(.))/g;
const MOZ_HACK_REGEXP = /^moz([A-Z])/;
function camelCase(name) {

View File

@ -6,72 +6,72 @@
* @param {(Node|string|Boolean)} [node=document.body] DOM Node, CSS selector, or Boolean
* @return {Node} The target that the el will be appended to
*/
function getTarget (node) {
if (node === void 0) {
node = document.body
}
if (node === true) { return document.body }
return node instanceof window.Node ? node : document.querySelector(node)
function getTarget(node) {
if (node === void 0) {
node = document.body;
}
if (node === true) { return document.body; }
return node instanceof window.Node ? node : document.querySelector(node);
}
const directive = {
inserted (el, { value }, vnode) {
if ( el.dataset && el.dataset.transfer !== 'true') return false;
el.className = el.className ? el.className + ' v-transfer-dom' : 'v-transfer-dom';
const parentNode = el.parentNode;
if (!parentNode) return;
const home = document.createComment('');
let hasMovedOut = false;
inserted(el, { value }, vnode) {
if (el.dataset && el.dataset.transfer !== 'true') return false;
el.className = el.className ? el.className + ' v-transfer-dom' : 'v-transfer-dom';
const parentNode = el.parentNode;
if (!parentNode) return;
const home = document.createComment('');
let hasMovedOut = false;
if (value !== false) {
parentNode.replaceChild(home, el); // moving out, el is no longer in the document
getTarget(value).appendChild(el); // moving into new place
hasMovedOut = true
}
if (!el.__transferDomData) {
el.__transferDomData = {
parentNode: parentNode,
home: home,
target: getTarget(value),
hasMovedOut: hasMovedOut
}
}
},
componentUpdated (el, { value }) {
if ( el.dataset && el.dataset.transfer !== 'true') return false;
// need to make sure children are done updating (vs. `update`)
const ref$1 = el.__transferDomData;
if (!ref$1) return;
// homes.get(el)
const parentNode = ref$1.parentNode;
const home = ref$1.home;
const hasMovedOut = ref$1.hasMovedOut; // recall where home is
if (!hasMovedOut && value) {
// remove from document and leave placeholder
parentNode.replaceChild(home, el);
// append to target
getTarget(value).appendChild(el);
el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: true, target: getTarget(value) });
} else if (hasMovedOut && value === false) {
// previously moved, coming back home
parentNode.replaceChild(el, home);
el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: false, target: getTarget(value) });
} else if (value) {
// already moved, going somewhere else
getTarget(value).appendChild(el);
}
},
unbind (el) {
if (el.dataset && el.dataset.transfer !== 'true') return false;
el.className = el.className.replace('v-transfer-dom', '');
const ref$1 = el.__transferDomData;
if (!ref$1) return;
if (el.__transferDomData.hasMovedOut === true) {
el.__transferDomData.parentNode && el.__transferDomData.parentNode.appendChild(el)
}
el.__transferDomData = null
if (value !== false) {
parentNode.replaceChild(home, el); // moving out, el is no longer in the document
getTarget(value).appendChild(el); // moving into new place
hasMovedOut = true;
}
if (!el.__transferDomData) {
el.__transferDomData = {
parentNode: parentNode,
home: home,
target: getTarget(value),
hasMovedOut: hasMovedOut
};
}
},
componentUpdated(el, { value }) {
if (el.dataset && el.dataset.transfer !== 'true') return false;
// need to make sure children are done updating (vs. `update`)
const ref$1 = el.__transferDomData;
if (!ref$1) return;
// homes.get(el)
const parentNode = ref$1.parentNode;
const home = ref$1.home;
const hasMovedOut = ref$1.hasMovedOut; // recall where home is
if (!hasMovedOut && value) {
// remove from document and leave placeholder
parentNode.replaceChild(home, el);
// append to target
getTarget(value).appendChild(el);
el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: true, target: getTarget(value) });
} else if (hasMovedOut && value === false) {
// previously moved, coming back home
parentNode.replaceChild(el, home);
el.__transferDomData = Object.assign({}, el.__transferDomData, { hasMovedOut: false, target: getTarget(value) });
} else if (value) {
// already moved, going somewhere else
getTarget(value).appendChild(el);
}
},
unbind(el) {
if (el.dataset && el.dataset.transfer !== 'true') return false;
el.className = el.className.replace('v-transfer-dom', '');
const ref$1 = el.__transferDomData;
if (!ref$1) return;
if (el.__transferDomData.hasMovedOut === true) {
el.__transferDomData.parentNode && el.__transferDomData.parentNode.appendChild(el);
}
el.__transferDomData = null;
}
};
export default directive;
export default directive;

View File

@ -1,52 +1,61 @@
<template>
<Modal v-model="my_show" title="账号详情" :mask-closable="false" :footer-hide="true" @on-visible-change="visibleChange">
<div class="page-detail-wrap" v-if="data">
<ul>
<li class="ui-list">
<div class="ui-list-title">用户名</div>
<div class="ui-list-content">{{data.username}}</div>
</li>
<Modal
v-model="my_show"
title="账号详情"
:mask-closable="false"
:footer-hide="true"
@on-visible-change="visibleChange"
>
<div class="page-detail-wrap" v-if="data">
<ul>
<li class="ui-list">
<div class="ui-list-title">用户名</div>
<div class="ui-list-content">{{data.username}}</div>
</li>
<li class="ui-list" v-if="data.roles.length">
<div class="ui-list-title">所属角色</div>
<div class="ui-list-content">{{data.roles[0].name}}</div>
</li>
<li class="ui-list" v-if="data.roles.length">
<div class="ui-list-title">所属角色</div>
<div class="ui-list-content">{{data.roles[0].name}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">姓名</div>
<div class="ui-list-content">{{data.nickname}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">姓名</div>
<div class="ui-list-content">{{data.nickname}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">手机号</div>
<div class="ui-list-content">{{data.mobile}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">手机号</div>
<div class="ui-list-content">{{data.mobile}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">头像</div>
<div class="ui-list-content">
<img class="w-150 bd-a" :src="data.avatar+'?a='+Math.random()" @error="imgError($event,default_head)">
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">头像</div>
<div class="ui-list-content">
<img
class="w-150 bd-a"
:src="data.avatar+'?a='+Math.random()"
@error="imgError($event,default_head)"
>
</div>
</li>
<li class="ui-list">
<div class="ui-list-title">状态</div>
<div class="ui-list-content">{{data.status==1?'启用':'禁用'}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">状态</div>
<div class="ui-list-content">{{data.status==1?'启用':'禁用'}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">创建时间</div>
<div class="ui-list-content">{{data.created_at}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">创建时间</div>
<div class="ui-list-content">{{data.created_at}}</div>
</li>
<li class="ui-list">
<div class="ui-list-title">更新时间</div>
<div class="ui-list-content">{{data.updated_at}}</div>
</li>
</ul>
</div>
</Modal>
<li class="ui-list">
<div class="ui-list-title">更新时间</div>
<div class="ui-list-content">{{data.updated_at}}</div>
</li>
</ul>
</div>
</Modal>
</template>
<script src="./js/detail.js"></script>

View File

@ -163,4 +163,3 @@
font-size: 12px;
}
</style>

View File

@ -1,5 +1,11 @@
<template>
<Drawer :mask-closable="false" @on-visible-change="visibleChange" title="订单详情" v-model="my_show" width="500">
<Drawer
:mask-closable="false"
@on-visible-change="visibleChange"
title="订单详情"
v-model="my_show"
width="500"
>
<div class="page-detail-wrap" v-if="data">
<Divider>订单信息</Divider>
<ul>
@ -68,9 +74,24 @@
<li class="ui-list">
<div class="ui-list-title">支付状态:</div>
<div class="ui-list-content">
<Button ghost size="small" type="info" v-if="data.transaction_status === 0">{{data.transaction_status_name}}</Button>
<Button ghost size="small" type="success" v-if="data.transaction_status === 1">{{data.transaction_status_name}}</Button>
<Button ghost size="small" type="error" v-if="data.transaction_status === 2">{{data.transaction_status_name}}</Button>
<Button
ghost
size="small"
type="info"
v-if="data.transaction_status === 0"
>{{data.transaction_status_name}}</Button>
<Button
ghost
size="small"
type="success"
v-if="data.transaction_status === 1"
>{{data.transaction_status_name}}</Button>
<Button
ghost
size="small"
type="error"
v-if="data.transaction_status === 2"
>{{data.transaction_status_name}}</Button>
</div>
</li>
@ -125,4 +146,3 @@
</template>
<script src="./js/detail.js"></script>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[data-v-4ca8b855] .ivu-table-cell{word-break:keep-all}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-caf89654.f97d0276.css rel=prefetch><link href=/js/chunk-00ae0766.9e6b7bf3.js rel=prefetch><link href=/js/chunk-caf89654.371d9935.js rel=prefetch><link href=/css/app.8e0e058f.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.d3b8e4a6.js rel=preload as=script><link href=/js/chunk-vendors.02a4e5bc.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.8e0e058f.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.02a4e5bc.js></script><script src=/js/app.d3b8e4a6.js></script></body></html>
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=\favicon.ico><script src=\config.js></script><title></title><link href=/css/chunk-5db6a112.3030fcf3.css rel=prefetch><link href=/css/chunk-810ee926.7d15254c.css rel=prefetch><link href=/js/chunk-00ae0766.7d9f006a.js rel=prefetch><link href=/js/chunk-07a274ec.551afb1a.js rel=prefetch><link href=/js/chunk-5db6a112.41960f7f.js rel=prefetch><link href=/js/chunk-810ee926.16531585.js rel=prefetch><link href=/css/app.10b45c74.css rel=preload as=style><link href=/css/chunk-vendors.3c3b2e85.css rel=preload as=style><link href=/js/app.08d7be0b.js rel=preload as=script><link href=/js/chunk-vendors.ed6443e8.js rel=preload as=script><link href=/css/chunk-vendors.3c3b2e85.css rel=stylesheet><link href=/css/app.10b45c74.css rel=stylesheet></head><body><noscript><strong>很抱歉如果没有启用JavaScript程序不能正常工作若要继续使用请启用它。</strong></noscript><div id=app></div><script src=/js/chunk-vendors.ed6443e8.js></script><script src=/js/app.08d7be0b.js></script></body></html>