lalala 6 лет назад
Родитель
Сommit
37d2ee9e40

+ 198 - 0
admin-code/src/assets/css/base.scss

@@ -0,0 +1,198 @@
+/**
+*全局公共样式
+*/
+@import './minxin.scss';
+// 所有样式为公共样式,已在全局引用可直接使用
+// 主色
+$mainColor: #3385FF;
+$mainColor1: #3A8840;
+$auxiliaryColor2: #ff6900;
+
+$blueColor: #2965fe;
+$greenColor: #3A8840;
+$redColor: #ff3841;
+// 字体色
+$fontColorMain: #333333;
+$fontColor2: #666666;
+$fontColor3: #999999;
+$fontColor4: #bbbbbb;
+$fontColor5: #cccccc;
+// 边框
+$borderColor: #eee;
+$borderColor1: #46963E;
+// 背景色
+$backColor: #f5f5f5;
+
+// minxin
+@mixin disFlexCen(){
+    display:flex;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    align-items: center;
+}
+
+// .app-content {
+    // line-height: 1;
+    // background-color: $backColor;
+    // min-height: 100vh;
+    // &.app-main {
+    //     min-height: calc(100vh - 100px);
+    // }
+// }
+.gray_txt {
+    color: #999 !important;
+}
+
+.ph {
+    font-size: 30px;
+    color: gray;
+}
+
+.w100 {
+    width: 100% !important;
+}
+
+.ml0{
+    margin-left: 0 !important;
+}
+
+.text_main_color {
+    color: #ff9000;
+}
+
+.underline {
+    text-decoration: underline;
+}
+
+.separate_line {
+    color: #999;
+    margin: 0 16px;
+}
+
+.text_sub_com {
+    color: #999;
+    font-size: 12px;
+}
+
+.flex {
+    display: flex;
+}
+
+.flex-center-center {
+    @extend .flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.flex-center {
+    display: flex;
+    align-items: center;
+}
+
+.flex-start {
+    @extend .flex;
+    align-items: flex-start;
+}
+
+.flex-end {
+    @extend .flex;
+    align-items: flex-end;
+}
+
+.flex-center-between {
+    @extend .flex;
+    align-items: center;
+    justify-content: space-between;
+}
+
+.flex-center-around {
+    @extend .flex;
+    align-items: center;
+    justify-content: space-around;
+}
+
+.flex-center-evenly {
+    @extend .flex;
+    align-items: center;
+    justify-content: space-evenly;
+}
+
+.flex-center-start {
+    @extend .flex;
+    align-items: center;
+    justify-content: flex-start;
+}
+
+.flex-center-end {
+    @extend .flex;
+    align-items: center;
+    justify-content: flex-end;
+}
+
+// ===================    定义的全局字体普通样式 ========================
+
+.app-padding {
+	padding: 0 30px;
+}
+
+.app-color-0 {
+    color: $fontColorMain;
+}
+
+.app-color-1 {
+    color: $mainColor;
+}
+
+.app-color-2 {
+    color: $fontColor2;
+}
+
+.app-color-3 {
+    color: $fontColor3;
+}
+
+// 金额
+.app-price {
+	color: #FF2842;
+}
+
+.app-bold {
+	font-weight: bold;
+}
+
+.app-size-24 {
+	font-size: 12px;
+}
+
+.app-size-26 {
+	font-size: 13px;
+}
+
+.app-size-28 {
+	font-size: 14px;
+}
+
+.app-size-30 {
+	font-size: 15px;
+}
+
+.app-size-32 {
+	font-size: 16px;
+}
+
+.app-size-34 {
+	font-size: 17px;
+}
+
+.app-size-36 {
+	font-size: 18px;
+}
+
+.app-size-38 {
+	font-size: 19px;
+}
+
+.app-size-40 {
+	font-size: 20px;
+}

+ 222 - 0
admin-code/src/assets/css/minxin.scss

@@ -0,0 +1,222 @@
+@mixin shadow($xSize,$ySize,$size,$color){//阴影
+    -moz-box-shadow: $xSize $ySize $size $color  !important; /* 老的 Firefox */
+         box-shadow: $xSize $ySize $size $color  !important;
+}
+
+@mixin triangle($size,$top-color,$right-color,$bottom-color,$left-color){//三角形
+    width: 0;
+    height: 0;
+    display: block;
+    border-top: $size solid $top-color;
+    border-right: $size solid $right-color;
+    border-bottom: $size solid $bottom-color;
+    border-left: $size solid $left-color;
+}
+
+@mixin translateX($size){//x轴位移
+    transform:translateX($size);
+    -webkit-transform:translateX($size);
+    -moz-transform:translateX($size);
+    -o-transform:translateX($size);
+    -ms-transform:translateX($size);
+}
+
+@mixin translateY($size){//x轴位移
+    transform:translateY($size);
+    -webkit-transform:translateY($size);
+    -moz-transform:translateY($size);
+    -o-transform:translateY($size);
+    -ms-transform:translateY($size);
+}
+
+@mixin translate3d($x,$y,$z){//x,y,z轴位移
+    transform:translate3d($x,$y,$z);
+    -webkit-transform:translate3d($x,$y,$z);
+    -moz-transform:translate3d($x,$y,$z);
+    -o-transform:translate3d($x,$y,$z);
+    -ms-transform:translate3d($x,$y,$z);
+}
+
+@mixin disFlex(){
+    display: -webkit-flex !important;
+    display: -moz-flex !important;
+    display: -ms-flex !important;
+    display:flex !important;
+}
+
+@mixin disBox(){
+    display:box !important;
+    display:-webkit-box !important;
+}
+
+@mixin disFlex($items: center,$justify: center){//位置
+    display:flex;
+    display:-webkit-flex;
+    align-items: $items;
+    justify-content: $justify;
+}
+
+@mixin box-pack($align,$pack){
+    display: box;
+    display: -moz-box;
+    display: -webkit-box;
+    
+    box-pack:$pack;
+    -webkit-box-pack:$pack;
+
+    box-align:$align;
+    -webkit-box-align:$align;
+    -moz-box-align:$align;  
+}
+
+@mixin boxDirection(){
+    -moz-box-pack:end;
+	-webkit-box-pack:end;
+	-o-box-pack:end;
+	box-pack:end;
+}
+@mixin flex1-1(){
+    box-flex: 1;
+    -moz-box-flex:1;
+    -webkit-box-flex: 1;
+    flex: 1 !important;
+    -webkit-flex:1 !important;
+}
+
+@mixin transition($type,$time){
+    -webkit-transition: $type $time;	/* Safari 和 Chrome */
+       -moz-transition: $type $time;	/* Firefox 4 */
+         -o-transition: $type $time;
+            transition: $type $time;
+}
+
+@mixin ransformRotate($deg){//旋转
+    transform:rotate($deg);
+    -ms-transform:rotate($deg); 	/* IE 9 */
+    -moz-transform:rotate($deg); 	/* Firefox */
+    -webkit-transform:rotate($deg); /* Safari 和 Chrome */
+    -o-transform:rotate($deg); 	/* Opera */
+}
+
+@mixin radius($deg){
+    border-radius: $deg;
+}
+
+@mixin ellipses(){
+    overflow:hidden; 
+    text-overflow:ellipsis;
+    -webkit-box-orient:vertical;
+}
+
+@mixin urlAbsolute(){
+    position:absolute;
+    top:0;
+    right:0;
+    bottom:0;
+    left:0;
+}
+
+@mixin box-flex(){
+    box-flex: 1;
+    -webkit-box-flex: 1; 
+    -moz-box-flex: 1; 
+    -ms-box-flex: 1; 
+    display: block !important; 
+    width: 100%;
+}
+
+@mixin box(){
+    display: -webkit-box; 
+    display: -moz-box; 
+    display: -ms-box; 
+    display: box;
+}
+
+@mixin ell(){
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+@mixin boxSizing($val){
+    box-sizing: $val;
+    -webkit-box-sizing: $val;
+    -moz-box-sizing: $val;
+    -ms-box-sizing: $val;
+}
+
+
+
+// 背景图片地址和大小
+@mixin bis($url) { 
+	background-image: url($url);
+	background-repeat: no-repeat;
+	background-size: 100% 100%;
+}
+
+@mixin borderRadius($radius) {
+    -webkit-border-radius: $radius;
+    -moz-border-radius: $radius;
+    -ms-border-radius: $radius;
+    -o-border-radius: $radius;
+    border-radius: $radius;
+}
+//定位全屏
+@mixin allcover{
+	position:absolute;
+	top:0;
+	right:0;
+}
+
+//定位上下左右居中
+@mixin center {  
+	position: absolute;
+	top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+}
+
+//定位上下居中
+@mixin ct {  
+	position: absolute;
+	top: 50%;
+    transform: translateY(-50%);
+}
+
+//定位左右居中
+@mixin cl {
+	position: absolute;
+	left: 50%;
+    transform: translateX(-50%);
+}
+
+//宽高
+@mixin wh($width, $height){
+	width: $width;
+	height: $height;
+}
+
+//字体大小、行高、字体
+@mixin font($size, $line-height, $family: 'Microsoft YaHei') {  
+	font: #{$size}/#{$line-height} $family;
+}
+
+//字体大小,颜色
+@mixin sc($size, $color){
+	font-size: $size;
+	color: $color;
+}
+
+//flex 布局和 子元素 对其方式
+@mixin fj($type: space-between){
+	display: flex;
+	justify-content: $type;
+}
+
+@mixin disFlexCen(){
+    display:flex;
+    display: -webkit-flex;
+    display: -moz-flex;
+    display: -ms-flex;
+    align-items: center;
+}

+ 66 - 0
admin-code/src/assets/iconfont/iconfont.css

@@ -0,0 +1,66 @@
+@font-face {
+  font-family: 'iconfont';  /* project id 1563076 */
+  src: url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.eot');
+  src: url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.eot?#iefix') format('embedded-opentype'),
+  url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.woff2') format('woff2'),
+  url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.woff') format('woff'),
+  url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.ttf') format('truetype'),
+  url('https://at.alicdn.com/t/font_1563076_wqx4u48xpg.svg#iconfont') format('svg');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icongongzuotai:before {
+  content: "\e76c";
+}
+
+.iconshangpinguanli:before {
+  content: "\e76d";
+}
+
+.iconguanggao:before {
+  content: "\e76e";
+}
+
+.iconshezhi:before {
+  content: "\e76f";
+}
+
+.iconkehuguanli:before {
+  content: "\e770";
+}
+
+.iconcuxiao:before {
+  content: "\e771";
+}
+
+.iconyuangongguanli:before {
+  content: "\e772";
+}
+
+.iconyaoqingyouli:before {
+  content: "\e773";
+}
+
+.iconyouhuiquan:before {
+  content: "\e774";
+}
+
+.icondingdanguanli:before {
+  content: "\e775";
+}
+
+.icontongzhiweisongda:before {
+  content: "\e776";
+}
+
+.icontongzhisongda:before {
+  content: "\e777";
+}
+

BIN
admin-code/src/assets/iconfont/iconfont.eot


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
admin-code/src/assets/iconfont/iconfont.js


+ 93 - 0
admin-code/src/assets/iconfont/iconfont.json

@@ -0,0 +1,93 @@
+{
+  "id": "1563076",
+  "name": "花卉宝PC",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "12321926",
+      "name": "工作台",
+      "font_class": "gongzuotai",
+      "unicode": "e76c",
+      "unicode_decimal": 59244
+    },
+    {
+      "icon_id": "12321928",
+      "name": "商品管理",
+      "font_class": "shangpinguanli",
+      "unicode": "e76d",
+      "unicode_decimal": 59245
+    },
+    {
+      "icon_id": "12321929",
+      "name": "广告",
+      "font_class": "guanggao",
+      "unicode": "e76e",
+      "unicode_decimal": 59246
+    },
+    {
+      "icon_id": "12321930",
+      "name": "设置",
+      "font_class": "shezhi",
+      "unicode": "e76f",
+      "unicode_decimal": 59247
+    },
+    {
+      "icon_id": "12321931",
+      "name": "客户管理",
+      "font_class": "kehuguanli",
+      "unicode": "e770",
+      "unicode_decimal": 59248
+    },
+    {
+      "icon_id": "12321932",
+      "name": "促销",
+      "font_class": "cuxiao",
+      "unicode": "e771",
+      "unicode_decimal": 59249
+    },
+    {
+      "icon_id": "12321934",
+      "name": "员工管理",
+      "font_class": "yuangongguanli",
+      "unicode": "e772",
+      "unicode_decimal": 59250
+    },
+    {
+      "icon_id": "12321967",
+      "name": "邀请有礼",
+      "font_class": "yaoqingyouli",
+      "unicode": "e773",
+      "unicode_decimal": 59251
+    },
+    {
+      "icon_id": "12321968",
+      "name": "优惠券",
+      "font_class": "youhuiquan",
+      "unicode": "e774",
+      "unicode_decimal": 59252
+    },
+    {
+      "icon_id": "12321970",
+      "name": "订单管理",
+      "font_class": "dingdanguanli",
+      "unicode": "e775",
+      "unicode_decimal": 59253
+    },
+    {
+      "icon_id": "12322213",
+      "name": "通知未送达",
+      "font_class": "tongzhiweisongda",
+      "unicode": "e776",
+      "unicode_decimal": 59254
+    },
+    {
+      "icon_id": "12322214",
+      "name": "通知送达",
+      "font_class": "tongzhisongda",
+      "unicode": "e777",
+      "unicode_decimal": 59255
+    }
+  ]
+}

+ 62 - 0
admin-code/src/assets/iconfont/iconfont.svg

@@ -0,0 +1,62 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2013-9-30: Created.
+-->
+<svg>
+<metadata>
+Created by iconfont
+</metadata>
+<defs>
+
+<font id="iconfont" horiz-adv-x="1024" >
+  <font-face
+    font-family="iconfont"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1024"
+    ascent="896"
+    descent="-128"
+  />
+    <missing-glyph />
+    
+    <glyph glyph-name="gongzuotai" unicode="&#59244;" d="M128 832h768a64 64 0 0 0 64-64v-512a64 64 0 0 0-64-64H128a64 64 0 0 0-64 64V768a64 64 0 0 0 64 64z m320-640h128v-128H448v128z m-192-128h512a64 64 0 0 0 0-128H256a64 64 0 0 0 0 128z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="shangpinguanli" unicode="&#59245;" d="M64-128l48 704h800L960-128H64z m256 352a32 32 0 0 1 64 0v128a32 32 0 0 1-64 0v-128z m384 128a32 32 0 0 1-64 0v-128a32 32 0 0 1 64 0v128zM512 768a128 128 0 0 1-128-128H256a256 256 0 0 0 512 0h-128a128 128 0 0 1-128 128z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="guanggao" unicode="&#59246;" d="M329.536 609.28L275.2 457.152h110.656L331.648 609.28h-2.112z m350.656 11.264h-60.096v-248.64h59.2a120.512 120.512 0 0 1 91.328 30.656 170.304 170.304 0 0 1 0.448 187.84 120.96 120.96 0 0 1-90.88 30.144z m224 211.2H120A56 56 0 0 1 64 775.744V192a70.4 70.4 0 0 1 64-64h768a70.4 70.4 0 0 1 64 64V776A56 56 0 0 1 904 832zM431.616 327.872l-30.72 86.656h-140.8l-30.72-86.656h-53.632l126.208 336.256h56.96L485.12 327.872h-53.696z m377.6 45.184a154.752 154.752 0 0 0-120.256-45.184H570.048V664.128h119.36a153.6 153.6 0 0 0 120.256-45.696 175.872 175.872 0 0 0 38.4-122.432 178.496 178.496 0 0 0-39.488-122.944zM64-64h896v128H64v-128z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="shezhi" unicode="&#59247;" d="M919.284532 670.075671L552.018854 885.192992a79.909852 79.909852 0 0 1-80.037708 0L104.715468 670.075671A81.444121 81.444121 0 0 1 64.50483 599.755001v-430.554281a81.380193 81.380193 0 0 1 40.210638-70.320669l367.265678-215.245177a80.229491 80.229491 0 0 1 80.037708 0l367.265678 215.245177a81.444121 81.444121 0 0 1 40.210638 70.320669V599.755001a81.827688 81.827688 0 0 1-40.210638 70.32067zM512 217.082704a167.427121 167.427121 0 1 0 165.125718 167.554977A166.212492 166.212492 0 0 0 512 217.082704z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="kehuguanli" unicode="&#59248;" d="M512 896a256 256 0 1 0-256-256 256 256 0 0 0 256 256zM1.536-128a540.096 540.096 0 0 0 345.6 482.56A523.584 523.584 0 0 1 512 192a523.584 523.584 0 0 1 164.8 162.56 540.096 540.096 0 0 0 345.6-482.56H1.536z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cuxiao" unicode="&#59249;" d="M1017.680513 540.385762l-58.604514-128.853157a66.601855 66.601855 0 0 1 0-55.341599l58.604514-128.853156a67.049706 67.049706 0 0 0-37.491534-90.401941l-132.499944-49.77545a66.921749 66.921749 0 0 1-39.21896-39.154981l-49.775449-132.563922a66.793791 66.793791 0 0 0-90.273984-37.427556l-128.853157 58.540536a66.85777 66.85777 0 0 1-55.405577 0l-128.853157-58.540536a66.281961 66.281961 0 0 0-27.63881-6.014 66.985727 66.985727 0 0 0-62.635173 43.441556l-49.77545 132.563922a66.85777 66.85777 0 0 1-39.21896 39.154981L43.540414 136.935909a66.921749 66.921749 0 0 0-37.491534 90.401941l58.604514 128.853156a66.665834 66.665834 0 0 1 0 55.341599L6.04888 540.385762A66.985727 66.985727 0 0 0 43.540414 630.723724l132.499944 49.77545a66.921749 66.921749 0 0 1 39.21896 39.154981L265.034768 852.218077A66.793791 66.793791 0 0 0 355.308751 889.645633l128.853157-58.540535a66.85777 66.85777 0 0 1 55.405577 0l128.853157 58.540535a66.793791 66.793791 0 0 0 90.273984-37.427556l49.775449-132.563922a66.85777 66.85777 0 0 1 39.21896-39.154981l132.499944-49.77545a66.921749 66.921749 0 0 0 37.491534-90.337962z m-657.701314 95.328303a99.934772 99.934772 0 1 1 99.934771-99.934772 100.126708 100.126708 0 0 1-99.934771 99.934772z m358.280871-45.488875a36.020023 36.020023 0 0 1-51.182982 0l-361.799701-361.799701a36.21196 36.21196 0 0 1 51.182982-51.182982l361.927659 361.86368a35.956045 35.956045 0 0 1-0.191937 51.119003z m-54.445897-258.3461a99.934772 99.934772 0 1 1 99.934772-99.934771 99.99875 99.99875 0 0 1-99.99875 99.934771z m0-127.957454a28.086661 28.086661 0 1 0 28.022683 28.022683 28.086661 28.086661 0 0 0-28.086661-28.022683zM359.979199 507.756611a28.022682 28.022682 0 1 0 28.022682 28.022682 28.086661 28.086661 0 0 0-28.022682-28.022682z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="yuangongguanli" unicode="&#59250;" d="M584.32 384.448h-0.384a227.456 227.456 0 1 1-144.064 0A452.544 452.544 0 0 1 64-20.16a40.32 40.32 0 0 1 40.256-43.84h815.488a40.192 40.192 0 0 1 40.256 43.84 452.736 452.736 0 0 1-375.424 404.608zM640 192h64a64 64 0 0 0 0-128h-64a64 64 0 0 0 0 128z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="yaoqingyouli" unicode="&#59251;" d="M928 448.96H576v192h352a96 96 0 0 0 0-192zM576 757.184L679.296 860.032A131.2 131.2 0 0 0 832 877.76a139.392 139.392 0 0 0 63.616-102.4V704H576v52.8zM834.24 876.928c-0.704 0.448-1.664 0.512-2.432 0.96S829.44 880 828.224 880.768zM448 704.384H128.576V775.744A139.2 139.2 0 0 0 192 877.76a131.2 131.2 0 0 0 152.512-17.856L448 757.12v-52.736zM195.52 880.768c-1.216-0.768-2.368-2.048-3.584-2.88s-1.664-0.512-2.368-0.96zM448 448.96H96a96 96 0 1 0 0 192H448v-192z m0-576H128a64 64 0 0 0-64 64v448h384v-512z m512 512v-448a64 64 0 0 0-64-64H576v512h384z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="youhuiquan" unicode="&#59252;" d="M1024 256v-192a64 64 0 0 0-64-64H64a64 64 0 0 0-64 64v192a128 128 0 1 1 0 256V704a64 64 0 0 0 64 64h896a64 64 0 0 0 64-64v-192a128 128 0 0 1 0-256zM384 544a32 32 0 0 1-64 0v-320a32 32 0 0 1 64 0v320z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="dingdanguanli" unicode="&#59253;" d="M896-128H128a64 64 0 0 0-64 64V768a64 64 0 0 0 64 64h128v-128a64 64 0 0 1 64-64h384a64 64 0 0 1 64 64V832h128a64 64 0 0 0 64-64v-832a64 64 0 0 0-64-64z m-160 512h-448a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64z m0-192h-448a32 32 0 0 1 0-64h448a32 32 0 0 1 0 64zM640 704H384a64 64 0 0 0-64 64V832a64 64 0 0 0 64 64h256a64 64 0 0 0 64-64v-64a64 64 0 0 0-64-64z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tongzhiweisongda" unicode="&#59254;" d="M844.288 182.6816a400.0256 400.0256 0 0 1 48.64 201.728c0 188.8256-102.912 264.8064-107.008 267.8784a45.7216 45.7216 0 0 0-11.776 60.0576 39.7824 39.7824 0 0 0 25.088 18.8416 36.5568 36.5568 0 0 0 29.696-5.7856c6.144-4.0448 143.872-102.4 143.872-340.992a482.1504 482.1504 0 0 0-69.12-261.12z m-65.024 64.5632l-60.928 61.44a217.5488 217.5488 0 0 1 13.824 79.104 145.1008 145.1008 0 0 1-62.464 131.6864 45.2096 45.2096 0 0 0-17.92 58.0096 38.5024 38.5024 0 0 0 52.736 20.48 230.0928 230.0928 0 0 0 108.032-209.92 284.6208 284.6208 0 0 0-33.28-140.8z m-424.96 424.96l152.064 137.0624a37.376 37.376 0 0 0 42.496 6.0416 43.3664 43.3664 0 0 0 23.04-39.3216v-321.28zM92.16 602.0608h20.992l458.752-458.496v-150.1696a42.9056 42.9056 0 0 0-22.528-39.3728 38.0416 38.0416 0 0 0-43.008 5.9392L276.992 167.424H91.136a42.0352 42.0352 0 0 0-39.936 43.52l1.024 347.8016a41.8816 41.8816 0 0 0 39.936 43.1104zM102.4 720.4352l48.128 48.4352L819.2 100.7104l-48.64-48.384z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tongzhisongda" unicode="&#59255;" d="M548.864 814.08a37.376 37.376 0 0 1-42.496-6.0416l-230.4-208.0256-183.808 0.8192a41.8816 41.8816 0 0 1-39.936-43.4176L51.2 209.92a42.0352 42.0352 0 0 1 39.936-43.52h185.856l229.376-207.4624a37.9392 37.9392 0 0 1 43.008-5.9392 42.9056 42.9056 0 0 1 22.528 39.3728V775.0144a43.3664 43.3664 0 0 1-23.04 39.3216z m155.648-217.3952a38.5024 38.5024 0 0 1-52.736-20.48 45.2096 45.2096 0 0 1 17.92-58.0096 145.1008 145.1008 0 0 0 62.464-131.6864 153.6 153.6 0 0 0-57.856-138.24 44.544 44.544 0 0 1-20.992-48.896 40.96 40.96 0 0 1 38.912-33.4848 35.072 35.072 0 0 1 17.92 4.5568c4.096 2.2528 102.4 57.3952 102.4 216.0128a230.0928 230.0928 0 0 1-108.032 209.92z m124.416 127.6928a36.5568 36.5568 0 0 1-29.696 5.7856 39.7824 39.7824 0 0 1-25.088-18.8416 45.7216 45.7216 0 0 1 11.776-60.0576c4.096-3.072 107.008-79.0528 107.008-267.8784s-98.816-265.2672-102.4-268.1856a45.6704 45.6704 0 0 1-16.384-48.6912 41.3184 41.3184 0 0 1 38.4-30.72 36.5056 36.5056 0 0 1 22.016 7.3728c5.632 4.0448 138.24 102.4 138.24 340.48s-137.728 336.9472-143.872 340.992z m0 0"  horiz-adv-x="1024" />
+
+    
+
+
+  </font>
+</defs></svg>

BIN
admin-code/src/assets/iconfont/iconfont.ttf


BIN
admin-code/src/assets/iconfont/iconfont.woff


BIN
admin-code/src/assets/iconfont/iconfont.woff2


+ 13 - 0
admin-code/src/components/module/progress.vue

@@ -0,0 +1,13 @@
+<template>
+	<div class="progress-module">
+		<div></div>
+	</div>
+</template>
+
+<script>
+export default {
+	name: 'progress-module'
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 2 - 2
admin-code/src/cool/components/avatar/index.vue

@@ -13,8 +13,8 @@ export default {
 	props: {
 		src: String,
 		size: {
-			type: String,
-			default: 'large'
+			type: Number,
+			default: 50
 		},
 		shape: {
 			type: String,

+ 2 - 0
admin-code/src/main.js

@@ -15,6 +15,8 @@ import crud from 'cl-crud';
 import ElementUI from 'element-ui';
 import './assets/css/element-variables.scss';
 
+import '@/assets/iconfont/iconfont.css';
+
 Vue.use(ElementUI);
 
 Vue.use(crud, {

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

@@ -192,6 +192,17 @@ let menu = {
 			viewPath: null,
 			keepAlive: 0
 		},
+		{
+			id: '203',
+			parentId: '27',
+			name: '商品列表',
+			type: 1,
+			icon: 'icon-user',
+			orderNum: 1,
+			router: '/goods/list',
+			viewPath: 'views/goods/goods-list.vue',
+			keepAlive: 1
+		},
 		{
 			id: '200',
 			parentId: '27',

+ 2 - 1
admin-code/src/pages/layout/slider/index.vue

@@ -51,7 +51,8 @@ export default {
 	components: {
 		DeepMenu: {
 			computed: {
-				...mapGetters(['menuGroup', 'menuCollapse', 'menuBg'])
+				// ...mapGetters(['menuGroup', 'menuCollapse', 'menuBg'])
+				...mapGetters(['menuGroup', 'menuBg'])
 			},
 
 			methods: {

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

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

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

@@ -4,13 +4,15 @@ import system from './system/index';
 import test from './test/index';
 import order from './order/index';
 import member from './member/index';
+import goods from './goods/index';
 
 Vue.prototype.$service = {
 	common,
 	system,
 	test,
 	order,
-	member
+	member,
+	goods
 };
 
 export default Vue.prototype.$service;

+ 142 - 0
admin-code/src/views/goods/goods-list.vue

@@ -0,0 +1,142 @@
+<template>
+	<div>
+		<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-tabs>
+			</template>
+
+			<template #table-column-avatarUrl="{scope}">
+				<div>
+					<img :src="scope.row.imgList" alt />
+				</div>
+			</template>
+
+			<template #table-column-goodsName="{scope}">
+				<span>{{ scope.row.userAsset.balance }}</span>
+				<!-- <span>二维码</span> -->
+				<span @click="openLinkFn(scope.row.shortUrl)">链接</span>
+			</template>
+
+			<!-- 状态 -->
+			<template #table-column-status="{scope}">
+				<span>{{ scope.row.status == 1 ? '上架' : '下架' }}</span>
+			</template>
+
+			<!-- 修改 -->
+			<template #slot-modify="{scope}">
+				<el-button type="text">修改</el-button>
+			</template>
+			<!-- 下架 -->
+			<template #slot-takeOff="{scope}">
+				<el-button type="text">下架</el-button>
+			</template>
+		</cl-crud>
+		<!-- 添加商品 -->
+		<el-dialog title="商品短链接:" :visible.sync="dialogFormVisible" width="40%">
+			<div>
+				<el-input v-model="sortLink" :disabled="true"></el-input>
+			</div>
+			<div slot="footer" class="dialog-footer">
+				<el-button @click="dialogFormVisible = false">取 消</el-button>
+				<el-button type="primary" @click="dialogFormVisible = false">发到手机</el-button>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			dialogFormVisible: false,
+			sortLink: ''
+		};
+	},
+	methods: {
+		openLinkFn(link) {
+			this.sortLink = link || '';
+			this.dialogFormVisible = true;
+		},
+		// cl-crud 组件
+		onLoad({ ctx, app }) {
+			ctx.service(this.$service.member)
+				.set('table', {
+					columns: [
+						{
+							prop: 'id',
+							label: 'ID',
+							align: 'center'
+						},
+						{
+							prop: 'avatarUrl',
+							label: '封面',
+							align: 'center'
+						},
+						{
+							prop: 'goodsName',
+							label: '标题',
+							align: 'center'
+						},
+						{
+							prop: 'mobile',
+							label: '顺序',
+							align: 'center'
+						},
+						{
+							prop: 'price',
+							label: '价格',
+							align: 'center',
+							emptyText: '无',
+							'min-width': 150
+						},
+						{
+							prop: 'actualSold',
+							label: '销量',
+							align: 'center'
+						},
+						{
+							prop: 'viewNum',
+							label: '浏览量',
+							align: 'center'
+						},
+						{
+							prop: 'status',
+							label: '状态',
+							align: 'center'
+						},
+						{
+							prop: 'createDate',
+							label: '创建时间',
+							align: 'center'
+						}
+					],
+					// 操作列
+					op: {
+						visible: true, // 是否显示
+						// 同 element-ui Table-column Attributes
+						props: {
+							width: 150,
+							align: 'center',
+							fixed: 'right',
+							label: '操作'
+						},
+						// 布局,请移步 `layout`
+						layout: ['slot-modify', 'slot-takeOff']
+					}
+				})
+				.set('layout', [
+					['slot-tabs'],
+					['search-key', 'flex1', 'refresh-btn', 'add-btn'],
+					['data-table'],
+					['flex1', 'pagination']
+				])
+				.done();
+			app.refresh({ status: 0 });
+		}
+	}
+};
+</script>

+ 1 - 1
admin-code/src/views/member/list.vue

@@ -11,7 +11,7 @@
 		<template #table-column-avatarUrl="{scope}">
 			<cl-avatar
 				shape="square"
-				size="medium"
+				:size="40"
 				:src="scope.row.avatarUrl | default_avatar"
 				:style="{ margin: 'auto' }"
 			></cl-avatar>

+ 114 - 4
admin-code/src/views/order/list.vue

@@ -1,5 +1,47 @@
 <template>
-	<cl-crud @load="onLoad">
+	<cl-crud class="liu-crud-wrap" @load="onLoad">
+		<!-- tabs -->
+		<template #slot-tabs="{ scope }">
+			<el-tabs class="liu-tabs" type="border-card">
+				<el-tab-pane
+					v-for="(item, index) in tabsData"
+					:key="index"
+					:label="`${item.text}(${item.val})`"
+				></el-tab-pane>
+			</el-tabs>
+		</template>
+
+		<!-- 订花人 -->
+		<template #table-column-bookName="{scope}">
+			<div class="book-wrap">
+				<cl-avatar
+					shape="circle"
+					:size="24"
+					:src="scope.row.avatarUrl | default_avatar"
+					:style="{ margin: 'auto' }"
+				></cl-avatar>
+				<div>{{ scope.row.bookName }}</div>
+				<div>{{ scope.row.bookMobile }}</div>
+			</div>
+		</template>
+
+		<!-- 收花人 -->
+		<template #table-column-receiveUserName="{scope}">
+			<div class="book-wrap">
+				<div>{{ scope.row.receiveUserName }}</div>
+				<div>{{ scope.row.receiveMobile }}</div>
+			</div>
+		</template>
+
+		<!-- 通知送达 -->
+		<template #table-column-receiveUserName="{scope}">
+			<div class="book-wrap">
+				<div>{{ scope.row.receiveUserName }}</div>
+				<div>{{ scope.row.receiveMobile }}</div>
+			</div>
+		</template>
+
+		<!-- 状态 -->
 		<template #table-column-status="{scope}">
 			<el-tag v-if="scope.row.status == 1" size="medium" type="danger">待配送</el-tag>
 			<el-tag v-else-if="scope.row.status == 2" size="medium" type="danger">配送中</el-tag>
@@ -8,11 +50,41 @@
 			<el-tag v-else-if="scope.row.status == 5" size="medium" type="success">已完成</el-tag>
 			<el-tag v-else size="medium" type="danger">待付款</el-tag>
 		</template>
+
+		<!-- 操作 -->
+		<!-- 发货 -->
+		<template #table-column-option></template>
 	</cl-crud>
 </template>
 
 <script>
 export default {
+	data() {
+		return {
+			tabsData: [
+				{
+					text: '全部',
+					val: 0
+				},
+				{
+					text: '待付款',
+					val: 0
+				},
+				{
+					text: '待配送',
+					val: 0
+				},
+				{
+					text: '配送中',
+					val: 0
+				},
+				{
+					text: '已完结',
+					val: 0
+				}
+			]
+		};
+	},
 	methods: {
 		onLoad({ ctx, app }) {
 			ctx.service(this.$service.order)
@@ -31,12 +103,14 @@ export default {
 						{
 							prop: 'bookName',
 							label: '订花人',
-							align: 'center'
+							align: 'center',
+							width: '220'
 						},
 						{
 							prop: 'receiveUserName',
 							label: '收花人',
-							align: 'center'
+							align: 'center',
+							width: '140'
 						},
 						{
 							prop: 'prePrice',
@@ -50,6 +124,11 @@ export default {
 							emptyText: '无',
 							'min-width': 150
 						},
+						{
+							prop: 'reachTime',
+							label: '通知送达',
+							align: 'center'
+						},
 						{
 							prop: 'reachTime',
 							label: '送达时间',
@@ -74,12 +153,43 @@ export default {
 							prop: 'createTime',
 							order: 'descending'
 						}
+					},
+					op: {
+						layout: []
 					}
 				})
-				// .set('layout', [['refresh-btn', 'add-btn', 'multi-delete-btn'], ['data-table'], ['data-table']])
+				.set('search', {
+					key: { placeholder: '订单号 / 订花人手机号' }
+				})
+				.set('layout', [
+					['slot-tabs'],
+					['search-key'],
+					['data-table'],
+					['flex1', 'pagination']
+				])
+				.on('refresh', async (params, { next }) => {
+					// 继续执行刷新
+					let { asset } = await next(params);
+					this.tabsData[0].val = asset.totalOrder;
+					this.tabsData[1].val = asset.unPayOrder;
+					this.tabsData[2].val = asset.unSendOrder;
+					this.tabsData[3].val = asset.sendingOrder;
+					this.tabsData[4].val = asset.finishOrder;
+				})
 				.done();
 			app.refresh({ status: 0 });
 		}
 	}
 };
 </script>
+<style lang="scss" scoped>
+.book-wrap {
+	@include disFlex(center, center);
+	& > div {
+		margin-left: 6px;
+		&:first-child {
+			margin-left: 0;
+		}
+	}
+}
+</style>

+ 1 - 1
admin-code/src/views/system/user/index.vue

@@ -3,7 +3,7 @@
 		<template #table-column-headImg="{scope}">
 			<cl-avatar
 				shape="square"
-				size="medium"
+				:size="40"
 				:src="scope.row.headImg | default_avatar"
 				:style="{ margin: 'auto' }"
 			>

+ 8 - 0
admin-code/vue.config.js

@@ -33,5 +33,13 @@ module.exports = {
 			.options({
 				symbolId: '[name]'
 			});
+	},
+
+	css: {
+		loaderOptions: {
+			sass: {
+				data: `@import "@/assets/css/base.scss";`
+			}
+		}
 	}
 };

Некоторые файлы не были показаны из-за большого количества измененных файлов