Bläddra i källkod

修改会员中心模块

dev
Eddie 3 år sedan
förälder
incheckning
b4479a687d
78 ändrade filer med 17106 tillägg och 1117 borttagningar
  1. +16048
    -0
      package-lock.json
  2. +1
    -0
      package.json
  3. +5
    -0
      src/App.vue
  4. Binär
     
  5. Binär
     
  6. Binär
     
  7. Binär
     
  8. Binär
     
  9. Binär
     
  10. Binär
     
  11. Binär
     
  12. Binär
     
  13. Binär
     
  14. Binär
     
  15. Binär
     
  16. Binär
     
  17. Binär
     
  18. Binär
     
  19. Binär
     
  20. Binär
     
  21. Binär
     
  22. Binär
     
  23. Binär
     
  24. Binär
     
  25. Binär
     
  26. Binär
     
  27. Binär
     
  28. Binär
     
  29. Binär
     
  30. Binär
     
  31. Binär
     
  32. Binär
     
  33. Binär
     
  34. Binär
     
  35. Binär
     
  36. Binär
     
  37. Binär
     
  38. Binär
     
  39. Binär
     
  40. Binär
     
  41. Binär
     
  42. Binär
     
  43. Binär
     
  44. Binär
     
  45. Binär
     
  46. Binär
     
  47. Binär
     
  48. Binär
     
  49. Binär
     
  50. Binär
     
  51. Binär
     
  52. Binär
     
  53. Binär
     
  54. Binär
     
  55. Binär
     
  56. Binär
     
  57. Binär
     
  58. Binär
     
  59. Binär
     
  60. Binär
     
  61. Binär
     
  62. Binär
     
  63. Binär
     
  64. Binär
     
  65. +5
    -0
      src/assets/sass/_element.scss
  66. +6
    -0
      src/assets/sass/_search-result.scss
  67. +72
    -67
      src/assets/sass/app.scss
  68. +89
    -0
      src/assets/sass/app2.scss
  69. +123
    -112
      src/components/TopBar.vue
  70. +13
    -1
      src/main.js
  71. +185
    -0
      src/modules/Crad.vue
  72. +9
    -8
      src/router/index.js
  73. +24
    -20
      src/utils/faker.js
  74. +477
    -890
      src/views/Dashboard.vue
  75. +35
    -15
      src/views/Login.vue
  76. +4
    -0
      src/views/Profile.vue
  77. +8
    -2
      src/views/Register.vue
  78. +2
    -2
      tailwind.config.js

+ 16048
- 0
package-lock.json
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 1
- 0
package.json Visa fil

@@ -29,6 +29,7 @@
"chart.js": "^2.9.3",
"core-js": "^3.6.5",
"dayjs": "^1.8.29",
"element-ui": "^2.14.1",
"feather-icons": "^4.28.0",
"highlight.js": "^10.1.1",
"js-beautify": "^1.11.0",


+ 5
- 0
src/App.vue Visa fil

@@ -3,3 +3,8 @@
<router-view />
</div>
</template>


<style scoped>

</style>

Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


Binär
Visa fil


+ 5
- 0
src/assets/sass/_element.scss Visa fil

@@ -0,0 +1,5 @@
.el-progress__text {
font-size: 22px !important;
font-weight: bold;
color: #1890FF;
}

+ 6
- 0
src/assets/sass/_search-result.scss Visa fil

@@ -1,5 +1,7 @@
.search-result {
width: 450px;
box-sizing: border-box;
z-index: 999 !important;
@apply z-20 absolute right-0 mt-1 invisible opacity-0;
transition: visibility 0s linear 0.2s, opacity 0.2s 0s;
&.show {
@@ -9,6 +11,7 @@
margin-top: -1px;
.tab-content .tab-content__pane {
@apply visible;
}
}
}
@@ -20,3 +23,6 @@
}
}
}




+ 72
- 67
src/assets/sass/app.scss Visa fil

@@ -1,79 +1,84 @@
// Breakpoint
@import 'breakpoint';

// 3rd Parties
@import '~highlight.js/scss/github';
@import '~vue-slick-carousel/dist/vue-slick-carousel';
@import '~vue-slick-carousel/dist/vue-slick-carousel-theme';
@import '~tail.select/css/default/tail.select-light';
@import '~toastify-js/src/toastify';
@import '~dropzone/dist/dropzone';
@import '~zoom-vanilla.js/dist/zoom';
@import '~tabulator-tables/dist/css/tabulator';
// // 3rd Parties
// @import '~highlight.js/scss/github';
// @import '~vue-slick-carousel/dist/vue-slick-carousel';
// @import '~vue-slick-carousel/dist/vue-slick-carousel-theme';
// @import '~tail.select/css/default/tail.select-light';
// @import '~toastify-js/src/toastify';
// @import '~dropzone/dist/dropzone';
// @import '~zoom-vanilla.js/dist/zoom';
// @import '~tabulator-tables/dist/css/tabulator';

// Animations
@import 'typing-dots';
@import 'zoom-in';
// @import 'typing-dots';
// @import 'zoom-in';
@import 'intro';

// Components
@import 'top-bar';
@import 'app';
// @import 'top-bar';


// @import 'app';
@import 'login';
@import 'mini-chat-box';
@import 'mini-chat-list';
@import 'mini-chat';
@import 'table';
@import 'table-report';
@import 'report-timeline';
@import 'report-chart';
@import 'search';
// @import 'mini-chat-box';
// @import 'mini-chat-list';
// @import 'mini-chat';
// @import 'table';
// @import 'table-report';
// @import 'report-timeline';
// @import 'report-chart';
// @import 'search';
@import 'input';
@import 'button';
@import 'notification';
@import 'image-fit';
@import 'box';
@import 'report-box';
@import 'global';
@import 'content';
@import 'top-nav';
@import 'side-nav';
@import 'breadcrumb';
// @import 'notification';
// @import 'image-fit';
// @import 'box';
// @import 'report-box';
// @import 'global';
// @import 'content';
// @import 'top-nav';
// @import 'side-nav';
// @import 'breadcrumb';
@import 'tailwind';
@import 'top-bar-boxed';
@import 'mobile-menu';
@import 'pagination';
@import 'dropdown';
@import 'modal';
@import 'tab';
@import 'checkbox';
@import 'file';
@import 'inbox-filter';
@import 'inbox';
@import 'scrollbar';
@import 'chat';
@import 'boxed-tabs';
@import 'chat-dropdown';
@import 'wizard';
@import 'blog';
@import 'news';
@import 'pricing-tabs';
@import 'accordion';
@import 'error-page';
@import 'search-result';
@import 'mini-report-chart';
@import 'notification-content';
@import 'report-maps';
@import 'pos-dropdown';
@import 'pos';
@import 'post';
@import 'feather-icon';
@import 'slick';
@import 'litepicker';
@import 'tippy';
@import 'tabulator';
@import 'tail-select';
@import 'toastify';
@import 'dropzone';
@import 'ckeditor';
@import 'zoom-vanilla';



// @import 'top-bar-boxed';
// @import 'mobile-menu';
// @import 'pagination';
// @import 'dropdown';
// @import 'modal';
// @import 'tab';
// @import 'checkbox';
// @import 'file';
// @import 'inbox-filter';
// @import 'inbox';
// @import 'scrollbar';
// @import 'chat';
// @import 'boxed-tabs';
// @import 'chat-dropdown';
// @import 'wizard';
// @import 'blog';
// @import 'news';
// @import 'pricing-tabs';
// @import 'accordion';
// @import 'error-page';
// @import 'search-result';
// @import 'mini-report-chart';
// @import 'notification-content';
// @import 'report-maps';
// @import 'pos-dropdown';
// @import 'pos';
// @import 'post';
// @import 'feather-icon';
// @import 'slick';
// @import 'litepicker';
// @import 'tippy';
// @import 'tabulator';
// @import 'tail-select';
// @import 'toastify';
// @import 'dropzone';
// @import 'ckeditor';
// @import 'zoom-vanilla';

+ 89
- 0
src/assets/sass/app2.scss Visa fil

@@ -0,0 +1,89 @@
// Breakpoint
@import 'breakpoint';

// // 3rd Parties
// @import '~highlight.js/scss/github';
// @import '~vue-slick-carousel/dist/vue-slick-carousel';
// @import '~vue-slick-carousel/dist/vue-slick-carousel-theme';
// @import '~tail.select/css/default/tail.select-light';
// @import '~toastify-js/src/toastify';
// @import '~dropzone/dist/dropzone';
// @import '~zoom-vanilla.js/dist/zoom';
// @import '~tabulator-tables/dist/css/tabulator';

// Animations
// @import 'typing-dots';
// @import 'zoom-in';
@import 'intro';

// Components
// @import 'top-bar';


@import 'app';
@import 'login';
@import 'mini-chat-box';
@import 'mini-chat-list';
@import 'mini-chat';
@import 'table';
@import 'table-report';
@import 'report-timeline';
@import 'report-chart';
@import 'search';
@import 'input';
@import 'button';
@import 'notification';
@import 'image-fit';
@import 'box';
@import 'report-box';
@import 'global';
@import 'content';
@import 'top-nav';
@import 'side-nav';
@import 'breadcrumb';
@import 'tailwind';



@import 'top-bar-boxed';
@import 'mobile-menu';
@import 'pagination';
@import 'dropdown';
@import 'modal';
@import 'tab';
@import 'checkbox';
@import 'file';
@import 'inbox-filter';
@import 'inbox';
@import 'scrollbar';
@import 'chat';
@import 'boxed-tabs';
@import 'chat-dropdown';
@import 'wizard';
@import 'blog';
@import 'news';
@import 'pricing-tabs';
@import 'accordion';
@import 'error-page';
@import 'search-result';
@import 'mini-report-chart';
@import 'notification-content';
@import 'report-maps';
@import 'pos-dropdown';
@import 'pos';
@import 'post';
@import 'feather-icon';
@import 'slick';
@import 'litepicker';
@import 'tippy';
@import 'tabulator';
@import 'tail-select';
@import 'toastify';
@import 'dropzone';
@import 'ckeditor';
@import 'zoom-vanilla';



// 饿了么css
@import 'element'

+ 123
- 112
src/components/TopBar.vue Visa fil

@@ -1,15 +1,119 @@
<template>
<!-- BEGIN: Top Bar -->
<div class="top-bar">
<div class="top-bar p-5" style="height:80px;border-bottom:1px solid rgba(0,0,0,0.2);z-index:99;position: relative;">
<!-- BEGIN: Breadcrumb -->
<div class="-intro-x breadcrumb mr-auto hidden sm:flex">
<div class="-intro-x breadcrumb mr-auto hidden sm:flex" style="float:left;margin-top: 10px;">
<div>智莺生活</div>
<ChevronRightIcon class="breadcrumb__icon" />
<div class="breadcrumb--active">{{ this.$route.meta.title }}</div>
</div>



<!-- END: Notifications -->
<!-- BEGIN: Account Menu -->
<div class="intro-x dropdown w-8 h-8 relative" style="float:right">
<div
class="dropdown-toggle w-8 h-8 rounded-full overflow-hidden shadow-lg image-fit zoom-in"
>
<img
alt=""
:src="require(`@/assets/images/${$f()[9].photos[0]}`)"
/>
</div>
<div class="dropdown-box w-56">
<div
class="dropdown-box__content box bg-theme-38 text-white"
>
<div class="p-4 border-b border-theme-40">
<div class="font-medium">USERNAME</div>
<div class="text-xs text-theme-41">会员ID:1231451565</div>
</div>
<div class="p-2">
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<UserIcon class="w-4 h-4 mr-2" /> 个人资料
</a>
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<LockIcon class="w-4 h-4 mr-2" />修改密码
</a>
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<HelpCircleIcon class="w-4 h-4 mr-2" />帮助
</a>
</div>
<div class="p-2 border-t border-theme-40">
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<ToggleRightIcon class="w-4 h-4 mr-2" />
退出登陆
</a>
</div>
</div>
</div>
</div>
<!-- END: Search -->
<!-- BEGIN: Notifications -->
<div class="intro-x dropdown relative mr-auto sm:mr-6" style="float:right;margin:13px 23px 0 0">
<div
class="dropdown-toggle notification notification--bullet cursor-pointer"
>
<BellIcon class="notification__icon" style="margin-top:-3px" />
</div>
<div class="notification-content pt-2 dropdown-box">
<div
class="notification-content__box dropdown-box__content box"
>
<div class="notification-content__title">Notifications</div>
<div
v-for="(faker, fakerKey) in $_.take($f(), 5)"
:key="fakerKey"
class="cursor-pointer relative flex items-center"
:class="{ 'mt-5': fakerKey }"
>
<div class="w-12 h-12 flex-none image-fit mr-1">
<img
alt=""
class="rounded-full"
:src="require(`@/assets/images/${faker.photos[0]}`)"
/>
<div
class="w-3 h-3 bg-theme-9 absolute right-0 bottom-0 rounded-full border-2 border-white"
></div>
</div>
<div class="ml-2 overflow-hidden">
<div class="flex items-center">
<a href="javascript:;" class="font-medium truncate mr-5">
{{ faker.users[0].name }}
</a>
<div class="text-xs text-gray-500 ml-auto whitespace-no-wrap">
{{ faker.times[0] }}
</div>
</div>
<div class="w-full truncate text-gray-600">
{{ faker.news[0].short_content }}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- END: Breadcrumb -->
<!-- BEGIN: Search -->
<div class="intro-x relative mr-3 sm:mr-6">
<div class="intro-x relative mr-3 sm:mr-6 " style="float:right">
<div class="search hidden sm:block">
<input
type="text"
@@ -20,11 +124,12 @@
/>
<SearchIcon class="search__icon" />
</div>
<a class="notification sm:hidden" href>
<SearchIcon class="notification__icon" />
<a class="notification sm:hidden" href>
<SearchIcon class="notification__icon" style="margin-top:8px" />
</a>
<div class="search-result" :class="{ show: searchDropdown }">
<div class="search-result__content">
<div class="search-result__content">
<div class="search-result__content__title">Pages</div>
<div class="mb-5">
<a href class="flex items-center">
@@ -94,114 +199,12 @@
{{ faker.products[0].category }}
</div>
</a>
</div>
</div>
</div>
<!-- END: Search -->
<!-- BEGIN: Notifications -->
<div class="intro-x dropdown relative mr-auto sm:mr-6">
<div
class="dropdown-toggle notification notification--bullet cursor-pointer"
>
<BellIcon class="notification__icon" />
</div>
<div class="notification-content pt-2 dropdown-box">
<div
class="notification-content__box dropdown-box__content box"
>
<div class="notification-content__title">Notifications</div>
<div
v-for="(faker, fakerKey) in $_.take($f(), 5)"
:key="fakerKey"
class="cursor-pointer relative flex items-center"
:class="{ 'mt-5': fakerKey }"
>
<div class="w-12 h-12 flex-none image-fit mr-1">
<img
alt=""
class="rounded-full"
:src="require(`@/assets/images/${faker.photos[0]}`)"
/>
<div
class="w-3 h-3 bg-theme-9 absolute right-0 bottom-0 rounded-full border-2 border-white"
></div>
</div>
<div class="ml-2 overflow-hidden">
<div class="flex items-center">
<a href="javascript:;" class="font-medium truncate mr-5">
{{ faker.users[0].name }}
</a>
<div class="text-xs text-gray-500 ml-auto whitespace-no-wrap">
{{ faker.times[0] }}
</div>
</div>
<div class="w-full truncate text-gray-600">
{{ faker.news[0].short_content }}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- END: Notifications -->
<!-- BEGIN: Account Menu -->
<div class="intro-x dropdown w-8 h-8 relative">
<div
class="dropdown-toggle w-8 h-8 rounded-full overflow-hidden shadow-lg image-fit zoom-in"
>
<img
alt=""
:src="require(`@/assets/images/${$f()[9].photos[0]}`)"
/>
</div>
<div class="dropdown-box w-56">
<div
class="dropdown-box__content box bg-theme-38 text-white"
>
<div class="p-4 border-b border-theme-40">
<div class="font-medium">{{ $f()[0].users[0].name }}</div>
<div class="text-xs text-theme-41">
{{ $f()[0].jobs[0] }}
</div>
</div>
<div class="p-2">
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<UserIcon class="w-4 h-4 mr-2" /> Profile
</a>
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<EditIcon class="w-4 h-4 mr-2" /> Add Account
</a>
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<LockIcon class="w-4 h-4 mr-2" /> errerrrReset Password
</a>
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<HelpCircleIcon class="w-4 h-4 mr-2" /> Help
</a>
</div>
<div class="p-2 border-t border-theme-40">
<a
href
class="flex items-center block p-2 transition duration-300 ease-in-out hover:bg-theme-1:bg-dark-3 rounded-md"
>
<ToggleRightIcon class="w-4 h-4 mr-2" />
Logout
</a>
</div>
</div>
</div>
</div>

</div>


<!-- END: Account Menu -->
</div>
<!-- END: Top Bar -->
@@ -224,3 +227,11 @@ export default {
}
};
</script>


<style scoped>



</style>

+ 13
- 1
src/main.js Visa fil

@@ -2,12 +2,24 @@ import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);


import "./components/global";
import "./utils";
import "./libs";



// Midone Theme
import "./assets/sass/app.scss";
import "./assets/sass/app2.scss";



Vue.config.productionTip = false;



+ 185
- 0
src/modules/Crad.vue Visa fil

@@ -0,0 +1,185 @@
<template>
<div class="card_body intro-x">
<div class="card_header">
<div class="img-box">
<div class="LeftPng">
<img src="@/assets/images/niao.png" alt="" />
</div>
<span> 嗨如意</span>
</div>
<div class="cardRihgt">
<div class="icon-box">
<i class="el-icon-more" style="font-size: 20px; color: #bbc6da"></i>
</div>
</div>
<div class="cardRight2">
<img :src="CardData.img" alt="" />
<span>11个模块</span>
</div>
</div>
<div class="cardListText">
<ul>
<li>
<span class="leftText">版本信息</span>
<span class="rightText">授信版本</span>
</li>
<li>
<span class="leftText">APPKEY</span>
<span class="rightText">21524564545</span>
</li>
<li>
<span class="leftText">到期时间</span>
<span class="rightText">2021-01-10</span>
</li>
</ul>
</div>
<div class="cardButtom">查看详情</div>
</div>
</template>

<script>
export default {
props: ["CardData"],
data() {
return {};
},
created() {},
};
</script>

<style scoped>
.card_body {
float: left;
width: 31.2%;
/* width: 372px; */
min-width: 310px;
background: #fff;
height: 328px;
margin: 0 2% 20px 0;
border-radius: 8%;
box-sizing: border-box;
padding: 24px;
}

.card_body:hover {
box-shadow: 2px 5px 10px rgba(0, 0, 0, 0.1);
}

/* .card_body:nth-child(3n + 5) {
margin-right: 0;
} */

.card_header {
width: 100%;
font-size: 26px;
color: #333333;
overflow: hidden;
margin-bottom: 5px;
}

.img-box {
width: 90px;
float: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.LeftPng {
width: 75px;
height: 75px;
border-right: 16px;
overflow: hidden;
border-radius: 23px;
}

.LeftPng > img {
height: 75px;
width: 75px;
vertical-align: middle;
}

.cardRihgt {
float: right;
}

.icon-box {
width: 32px;
height: 32px;
text-align: center;
line-height: 26px;
border: 1px solid #bbc6da;
box-sizing: border-box;
border-radius: 50%;
}

.cardRight2 {
width: 105px;
height: 32px;
background: #ffffff;
border: 1px solid #bbc6da;
border-radius: 16px;
float: right;
margin-right: 10px;
color: #bbc6da;
font-size: 12px;
line-height: 32px;
font-weight: 400;
position: relative;
text-indent: 40px;
}

.cardRight2 > img {
height: 32px;
width: 32px;
border-radius: 50%;
position: absolute;
left: -1px;
top: -1px;
}

.cardListText,
ul,
li {
overflow: hidden;
width: 100%;
}

.cardListText li {
line-height: 28px;
}

.leftText {
float: left;
color: #999999;
font-size: 16px;
}
.rightText {
float: right;
color: #333333;
font-size: 16px;
}

.cardButtom {
background: #f7f7fa;
width: 100%;
height: 56px;
box-sizing: border-box;
border-radius: 22px;
text-align: center;
line-height: 56px;
color: #8f9cc6;
font-size: 16px;
margin-top: 30px;
}

.cardButtom:hover {
background: #1890fa;
color: #fff;
cursor: pointer;
}

.cardButtom:active {
background: #58b0fd;
}
</style>

+ 9
- 8
src/router/index.js Visa fil

@@ -6,10 +6,16 @@ Vue.use(VueRouter);
const routes = [
{
path: '/',
name: 'login',
meta: { title: '用户登录' },
component: () => import('@/views/Login')
},
{
path: '/Dashboard',
component: () => import(/* webpackChunkName: 'main' */ '@/layouts/SideMenu'),
children: [
{
path: '/',
path: '/Dashboard',
name: 'side-menu-dashboard',
meta: {title: '会员中心'},
component: () => import('@/views/Dashboard')
@@ -344,12 +350,6 @@ const routes = [
meta: {title: '管理中心'},
component: () => import('@/views/Inbox')
},
{
path: '/login',
name: 'login',
meta: {title: '管理中心'},
component: () => import('@/views/Login')
},
{
path: '/register',
name: 'register',
@@ -381,9 +381,10 @@ const router = new VueRouter({
}
}
});

router.beforeEach((to, from, next) => {
document.title = to.meta.title ? to.meta.title + ' - ZhiOS智莺' : 'ZhiOS智莺'
next()
})
})

export default router;

+ 24
- 20
src/utils/faker.js Visa fil

@@ -49,14 +49,18 @@ export default {
fakePhotos() {
let photos = [];
for (let i = 0; i < 15; i++) {
photos[photos.length] = "profile-" + _.random(1, 15) + ".jpg";
// photos[photos.length] = "profile-" + _.random(1, 15) + ".jpg";
photos[photos.length] = "profile-1.jpg";

}
return _.sampleSize(photos, 10);
},
fakeImages() {
let images = [];
for (let i = 0; i < 15; i++) {
images[images.length] = "preview-" + _.random(1, 15) + ".jpg";
images[images.length] = "preview-1.jpg";
// images[images.length] = "preview-" + _.random(1, 15) + ".jpg";
}
return _.sampleSize(images, 10);
},
@@ -234,30 +238,30 @@ export default {
fakeFoods() {
let foods = [
{ name: "Vanilla Latte", image: "food-beverage-1.jpg" },
{ name: "Milkshake", image: "food-beverage-2.jpg" },
{ name: "Soft Drink", image: "food-beverage-3.jpg" },
{ name: "Root Beer", image: "food-beverage-4.jpg" },
{ name: "Pocari", image: "food-beverage-5.jpg" },
{ name: "Ultimate Burger", image: "food-beverage-6.jpg" },
{ name: "Hotdog", image: "food-beverage-7.jpg" },
{ name: "Avocado Burger", image: "food-beverage-8.jpg" },
{ name: "Milkshake", image: "food-beverage-1.jpg" },
{ name: "Soft Drink", image: "food-beverage-1.jpg" },
{ name: "Root Beer", image: "food-beverage-1.jpg" },
{ name: "Pocari", image: "food-beverage-1.jpg" },
{ name: "Ultimate Burger", image: "food-beverage-1.jpg" },
{ name: "Hotdog", image: "food-beverage-1.jpg" },
{ name: "Avocado Burger", image: "food-beverage-1.jpg" },
{
name: "Spaghetti Fettucine Aglio with Beef Bacon",
image: "food-beverage-9.jpg"
image: "food-beverage-1.jpg"
},
{
name: "Spaghetti Fettucine Aglio with Smoked Salmon",
image: "food-beverage-10.jpg"
image: "food-beverage-1.jpg"
},
{ name: "Curry Penne and Cheese", image: "food-beverage-11.jpg" },
{ name: "French Fries", image: "food-beverage-12.jpg" },
{ name: "Virginia Cheese Fries", image: "food-beverage-13.jpg" },
{ name: "Virginia Cheese Wedges", image: "food-beverage-14.jpg" },
{ name: "Fried/Grilled Banana", image: "food-beverage-15.jpg" },
{ name: "Crispy Mushroom", image: "food-beverage-16.jpg" },
{ name: "Fried Calamari", image: "food-beverage-17.jpg" },
{ name: "Chicken Wings", image: "food-beverage-18.jpg" },
{ name: "Snack Platter", image: "food-beverage-19.jpg" }
{ name: "Curry Penne and Cheese", image: "food-beverage-1.jpg" },
{ name: "French Fries", image: "food-beverage-1.jpg" },
{ name: "Virginia Cheese Fries", image: "food-beverage-1.jpg" },
{ name: "Virginia Cheese Wedges", image: "food-beverage-1.jpg" },
{ name: "Fried/Grilled Banana", image: "food-beverage-1.jpg" },
{ name: "Crispy Mushroom", image: "food-beverage-1.jpg" },
{ name: "Fried Calamari", image: "food-beverage-1.jpg" },
{ name: "Chicken Wings", image: "food-beverage-1.jpg" },
{ name: "Snack Platter", image: "food-beverage-1.jpg" }
];
return _.shuffle(foods);
}


+ 477
- 890
src/views/Dashboard.vue
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 35
- 15
src/views/Login.vue Visa fil

@@ -58,9 +58,7 @@
placeholder="Password"
/>
</div>
<div
class="intro-x flex text-gray-700 text-xs sm:text-sm mt-4"
>
<div class="intro-x flex text-gray-700 text-xs sm:text-sm mt-4">
<div class="flex items-center mr-auto">
<input
id="remember-me"
@@ -76,26 +74,24 @@
<div class="intro-x mt-5 xl:mt-8 text-center xl:text-left">
<button
class="button button--lg w-full xl:w-32 text-white bg-theme-1 xl:mr-3 align-top"
@click="getLogin"
>
Login
登录
</button>
<button
class="button button--lg w-full xl:w-32 text-gray-700 border border-gray-300 mt-3 xl:mt-0 align-top"
@click="getSignUp "
>
Sign up
注册
</button>
</div>
<div
class="intro-x mt-10 xl:mt-24 text-gray-700 text-center xl:text-left"
>
By signin up, you agree to our <br />
<a class="text-theme-1" href=""
>Terms and Conditions</a
>
<a class="text-theme-1" href="">Terms and Conditions</a>
&
<a class="text-theme-1" href=""
>Privacy Policy</a
>
<a class="text-theme-1" href="">Privacy Policy</a>
</div>
</div>
</div>
@@ -108,9 +104,33 @@
<script>
export default {
mounted() {
cash("body")
.removeClass('app')
.addClass('login');
}
cash("body").removeClass("app").addClass("login");
// setTimeout(()=>{
// import("../components/global");
// import("../utils");
// import("../assets/sass/app2.scss")
// },3000)


},
methods: {
getLogin: function () {
this.$router.push("/Dashboard");
},

getSignUp: function(){
this.$router.push('/register')
}
},
};

</script>

<style lang="scss" scoped>

</style>



+ 4
- 0
src/views/Profile.vue Visa fil

@@ -955,6 +955,7 @@
</div>
<div class="report-chart mt-8">
<ReportLineChart :height="290" />
</div>
</div>
</div>
@@ -973,6 +974,9 @@ export default {
ReportLineChart,
VueSlickCarousel
},
mounted(){
console.log(this)
},
methods: {
prevAnnouncement() {
this.$refs["announcement"].prev();


+ 8
- 2
src/views/Register.vue Visa fil

@@ -107,12 +107,13 @@
<button
class="button button--lg w-full xl:w-32 text-white bg-theme-1 xl:mr-3 align-top"
>
Register
注册
</button>
<button
class="button button--lg w-full xl:w-32 text-gray-700 border border-gray-300 mt-3 xl:mt-0 align-top"
@click="getSignUp"
>
Sign in
登录
</button>
</div>
</div>
@@ -129,6 +130,11 @@ export default {
cash("body")
.removeClass("app")
.addClass("login");
},
methods: {
getSignUp:function(){
this.$router.push('/')
}
}
};
</script>

+ 2
- 2
tailwind.config.js Visa fil

@@ -46,8 +46,8 @@ module.exports = {
35: "#0077b5",
36: "#d18d96",
37: "#c7d2ff",
38: "#15329A",
40: "#203FAD",
38: "#1890FF",
40: "#1890FF",
41: "#BBC8FD"
},
dark: {


Laddar…
Avbryt
Spara