lalala 6 лет назад
Родитель
Сommit
492424cf04

+ 1 - 0
admin-code/src/assets/css/index.styl

@@ -1,5 +1,6 @@
 @import './theme.styl';
 @import './common.styl';
+@import './reset.scss'
 
 * {
 	padding: 0;

+ 26 - 0
admin-code/src/assets/css/reset.scss

@@ -0,0 +1,26 @@
+// reset style
+.liu-crud-wrap {
+    & .el-row:first-child {
+        position: relative;
+        top: -10px;
+        left: -10px;
+        width: calc(100% + 20px);
+    }
+    .liu-tabs {
+        width: 100%;
+        
+        box-shadow: none !important;
+        border-left: none !important;
+        border-bottom: none !important;
+        .el-tabs__content {
+            padding: 0 !important;
+        }
+        & > .el-tabs__header .el-tabs__item {
+            border-top: 4px solid#F5F7FA;
+            line-height: 34px;
+            &.is-active {
+                border-top: 4px solid blue;
+            }
+        }
+    }
+}

+ 11 - 0
admin-code/src/mock/userInfo.js

@@ -203,6 +203,17 @@ let menu = {
 			viewPath: 'views/order/list.vue',
 			keepAlive: 1
 		},
+		{
+			id: '201',
+			parentId: '27',
+			name: '客户列表',
+			type: 1,
+			icon: 'icon-user',
+			orderNum: 1,
+			router: '/member/list',
+			viewPath: 'views/member/list.vue',
+			keepAlive: 1
+		},
 		{
 			id: '17',
 			parentId: '27',

+ 3 - 1
admin-code/src/service/index.js

@@ -3,12 +3,14 @@ import common from './common/index';
 import system from './system/index';
 import test from './test/index';
 import order from './order/index';
+import member from './member/index';
 
 Vue.prototype.$service = {
 	common,
 	system,
 	test,
-	order
+	order,
+	member
 };
 
 export default Vue.prototype.$service;

+ 6 - 0
admin-code/src/service/member/index.js

@@ -0,0 +1,6 @@
+import { BaseService, Service } from '@/cool/index';
+
+@Service('user')
+export class MemberService extends BaseService {}
+
+export default new MemberService();

+ 105 - 0
admin-code/src/views/member/list.vue

@@ -0,0 +1,105 @@
+<template>
+	<cl-crud class="liu-crud-wrap" @load="onLoad">
+		<template #slot-tabs="{ scope }">
+			<el-tabs class="liu-tabs" type="border-card">
+				<el-tab-pane label="用户管理"></el-tab-pane>
+				<el-tab-pane label="配置管理"></el-tab-pane>
+				<el-tab-pane label="角色管理"></el-tab-pane>
+				<el-tab-pane label="定时任务补偿"></el-tab-pane>
+			</el-tabs>
+		</template>
+
+		<template #table-column-avatarUrl="{scope}">
+			<cl-avatar
+				shape="square"
+				size="medium"
+				:src="scope.row.avatarUrl | default_avatar"
+				:style="{ margin: 'auto' }"
+			></cl-avatar>
+		</template>
+
+		<template #table-column-balance="{scope}">
+			<span>{{ scope.row.userAsset.balance }}</span>
+		</template>
+
+		<template #table-column-growth="{scope}">
+			<span>{{ scope.row.userAsset.growth }}</span>
+		</template>
+	</cl-crud>
+</template>
+
+<script>
+export default {
+	methods: {
+		onLoad({ ctx, app }) {
+			ctx.service(this.$service.member)
+				.set('table', {
+					columns: [
+						{
+							type: 'selection',
+							align: 'center',
+							width: '60'
+						},
+						{
+							prop: 'id',
+							label: 'ID',
+							align: 'center'
+						},
+						{
+							prop: 'avatarUrl',
+							label: '头像',
+							align: 'center'
+						},
+						{
+							prop: 'userName',
+							label: '来源 昵称',
+							align: 'center'
+						},
+						{
+							prop: 'mobile',
+							label: '手机号',
+							align: 'center'
+						},
+						{
+							prop: 'actPrice',
+							label: '会员级别',
+							align: 'center',
+							emptyText: '无',
+							'min-width': 150
+						},
+						{
+							prop: 'balance',
+							label: '余额',
+							align: 'center'
+						},
+						{
+							prop: 'growth',
+							label: '成长值',
+							align: 'center'
+						},
+						{
+							prop: 'sendNum',
+							label: '关注公众号',
+							align: 'center',
+							sortable: true,
+							width: 150
+						},
+						{
+							prop: 'visitTimeFormat',
+							label: '最近访问',
+							align: 'center'
+						}
+					]
+				})
+				.set('layout', [
+					['slot-tabs'],
+					['search-key', 'flex1', 'refresh-btn', 'add-btn', 'multi-delete-btn'],
+					['data-table'],
+					['flex1', 'pagination']
+				])
+				.done();
+			app.refresh({ status: 0 });
+		}
+	}
+};
+</script>