-
-
- {{ item.time }}
-
-
-
-

-
{{ item.data }}
-

-
-
-

-
{{ item.data }}
-

+
+
+
+
+
+
diff --git a/src/pages/message/components/ChatMessage.vue b/src/pages/message/components/ChatMessage.vue
new file mode 100644
index 0000000..a5f41ab
--- /dev/null
+++ b/src/pages/message/components/ChatMessage.vue
@@ -0,0 +1,408 @@
+
+
+
+ {{ message.time }}
+
+
+
+
+
+ {{ message.data }}
+
+
+
+
![]()
+
{{ message.data.title }}
+

+
+
![]()
+
{{ message.data.author.name }}
+
+
+
+
+
![]()
+

+
+
+
+
{{ message.data.duration }}'
+
+

+
+
{{ message.data.duration }}'
+
+
+
+
+

+
通话时长 05:32
+
+
+

+
+ 对方已拒绝
+ 对方未接通
+ 点击呼叫
+
+
+
+
+
+
![]()
+
+
+
+
![]()
+
+
+
+
+

+
+
{{ message.data.title }}
+
{{ message.data.state }}
+
+
+
抖音红包
+
+
+
+

+

+
+
+
+
+
+
+
+
+
diff --git a/src/pages/message/components/swtich/switches.scss b/src/pages/message/components/swtich/switches.scss
new file mode 100644
index 0000000..2112d0e
--- /dev/null
+++ b/src/pages/message/components/swtich/switches.scss
@@ -0,0 +1,275 @@
+/**
+ * Default
+ */
+$color-default-default: #aaa;
+$color-default-green: #53b96e;
+$color-default-blue: #539bb9;
+$color-default-red: #b95353;
+$color-default-orange: #b97953;
+$color-default-yellow: #bab353;
+
+$theme-default-colors: (
+ default : $color-default-default,
+ blue : $color-default-blue,
+ red : $color-default-red,
+ yellow : $color-default-yellow,
+ orange : $color-default-orange,
+ green : $color-default-green
+);
+
+/**
+ * Bulma
+ */
+$color-bulma-default: #f5f5f5;
+$color-bulma-primary: #00d1b2;
+$color-bulma-blue: #3273dc;
+$color-bulma-red: #ff3860;
+$color-bulma-yellow: #ffdd57;
+$color-bulma-green: #22c65b;
+
+$theme-bulma-colors: (
+ default : $color-bulma-default,
+ primary : $color-bulma-primary,
+ blue : $color-bulma-blue,
+ red : $color-bulma-red,
+ yellow : $color-bulma-yellow,
+ green : $color-bulma-green
+);
+
+/**
+ * Bootstrap
+ */
+$color-bootstrap-default: #fff;
+$color-bootstrap-primary: #337ab7;
+$color-bootstrap-success: #5cb85c;
+$color-bootstrap-info: #5bc0de;
+$color-bootstrap-warning: #f0ad4e;
+$color-bootstrap-danger: #c9302c;
+
+$theme-bootstrap-colors: (
+ default : $color-bootstrap-default,
+ primary : $color-bootstrap-primary,
+ success : $color-bootstrap-success,
+ info : $color-bootstrap-info,
+ warning : $color-bootstrap-warning,
+ danger : $color-bootstrap-danger
+);
+
+.vue-switcher {
+ position: relative;
+ display: inline-block;
+
+ &__label {
+ display: block;
+ font-size: 10px;
+ margin-bottom: 5px;
+ }
+
+ input {
+ opacity: 0;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ z-index: 1;
+ cursor: pointer;
+ }
+
+ div {
+ height: 15px;
+ width: 36px;
+ position: relative;
+ border-radius: 30px;
+ display: -webkit-flex;
+ display: -ms-flex;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ cursor: pointer;
+ transition: linear .2s, background-color linear .2s;
+
+ &:after {
+ content: '';
+ height: 20px;
+ width: 20px;
+ border-radius: 100px;
+ display: block;
+ transition: linear .15s, background-color linear .15s;
+ position: absolute;
+ left: 100%;
+ margin-left: -18px;
+ cursor: pointer;
+ top: -3px;
+ box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.1);
+ }
+ }
+
+ &--unchecked {
+ div {
+ justify-content: flex-end;
+
+ &:after {
+ left: 15px;
+ }
+ }
+ }
+
+ &--disabled {
+ div {
+ opacity: .3;
+ }
+
+ input {
+ cursor: not-allowed;
+ }
+ }
+
+ &--bold {
+ div {
+ top: -8px;
+ height: 26px;
+ width: 51px;
+
+ &:after {
+ margin-left: -24px;
+ top: 3px;
+ }
+ }
+
+ &--unchecked {
+ div {
+ &:after {
+ left: 28px;
+ }
+ }
+ }
+
+ .vue-switcher__label {
+ span {
+ padding-bottom: 7px;
+ display: inline-block;
+ }
+ }
+ }
+
+ &-theme--default {
+ @each $colorName, $color in $theme-default-colors {
+ &.vue-switcher-color--#{$colorName} {
+
+ div {
+ @if $colorName == 'default' {
+ background-color: lighten($color, 5%);
+ } @else {
+ background-color: lighten($color, 10%);
+ }
+
+ &:after {
+ @if $colorName == 'default' {
+ background-color: darken($color, 5%);
+ } @else {
+ background-color: $color
+ }
+ }
+ }
+
+ &.vue-switcher--unchecked {
+ div {
+
+ @if $colorName == 'default' {
+ background-color: $color;
+ } @else {
+ background-color: lighten($color, 30%);
+ }
+
+ &:after {
+ background-color: lighten($color, 10%);
+ }
+ }
+ }
+
+ }
+ }
+ }
+
+ &-theme--bulma {
+ @each $colorName, $color in $theme-bulma-colors {
+ &.vue-switcher-color--#{$colorName} {
+
+ div {
+ @if $colorName == 'default' {
+ background-color: darken($color, 10%);
+ } @else {
+ background-color: lighten($color, 10%);
+ }
+
+ &:after {
+ background-color: $color;
+ }
+ }
+
+ &.vue-switcher--unchecked {
+ div {
+
+ @if $colorName == 'default' or $colorName == 'yellow' {
+ background-color: darken($color, 5%);
+ } @else {
+ background-color: lighten($color, 30%);
+ }
+
+ &:after {
+
+ @if $colorName == 'default' {
+ background-color: $color;
+ } @else {
+ background-color: lighten($color, 10%);
+ }
+ }
+ }
+ }
+
+ }
+ }
+ }
+
+ &-theme--bootstrap {
+ @each $colorName, $color in $theme-bootstrap-colors {
+ &.vue-switcher-color--#{$colorName} {
+ div {
+ @if $colorName == 'default' {
+ background-color: darken($color, 10%);
+ } @else {
+ background-color: lighten($color, 10%);
+ }
+
+ &:after {
+ @if $colorName == 'default' {
+ background-color: darken($color, 6%);
+ } @else {
+ background-color: $color;
+ }
+ }
+ }
+
+ &.vue-switcher--unchecked {
+ div {
+
+ @if $colorName == 'default' {
+ background-color: darken($color, 4%);
+ } @else {
+ background-color: lighten($color, 30%);
+ }
+
+ &:after {
+
+ @if $colorName == 'default' {
+ background-color: darken($color, 6%);
+ } @else {
+ background-color: lighten($color, 10%);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/pages/message/components/swtich/switches.vue b/src/pages/message/components/swtich/switches.vue
new file mode 100644
index 0000000..e91d626
--- /dev/null
+++ b/src/pages/message/components/swtich/switches.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
diff --git a/src/pages/people/components/People.vue b/src/pages/people/components/People.vue
index 13a92bf..47debca 100644
--- a/src/pages/people/components/People.vue
+++ b/src/pages/people/components/People.vue
@@ -1,14 +1,16 @@
-

+

+
-
A
-
+
{{ people.name }}
+
该用户关注了你
-
+
+
@@ -17,23 +19,23 @@
回关
-
+
+
+
发私信
-
-
-
+

@@ -83,6 +85,7 @@ export default {
}
.People {
+ height: 7rem;
display: flex;
align-items: center;
position: relative;
@@ -93,9 +96,18 @@ export default {
.head-image {
- margin-right: 15px;
- width: 48px;
- height: 48px;
+ margin-right: 1.5rem;
+ width: 4.8rem;
+ height: 4.8rem;
+ border-radius: 50%;
+ }
+
+ .add {
+ background: $second-btn-color-tran;
+ margin-right: 1.5rem;
+ padding: 1.5rem;
+ width: 1.8rem;
+ height: 1.8rem;
border-radius: 50%;
}
@@ -107,7 +119,7 @@ export default {
.left {
.name {
- font-size: 1.8rem;
+ font-size: 1.6rem;
color: white;
}
diff --git a/src/router/index.js b/src/router/index.js
index 6165d15..68481f9 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -28,6 +28,7 @@ import AddressList from "../pages/people/AddressList";
import Scan from "../pages/people/Scan";
import FaceToFace from "../pages/people/FaceToFace";
import Chat from "../pages/message/Chat";
+import ChatDetail from "../pages/message/ChatDetail";
const routes = [
// {path: '', component: Music},
@@ -60,6 +61,7 @@ const routes = [
{path: '/scan', component: Scan},
{path: '/face-to-face', component: FaceToFace},
{path: '/chat', component: Chat},
+ {path: '/chat-detail', component: ChatDetail},
]
export default VueRouter.createRouter({
diff --git a/src/store/index.js b/src/store/index.js
index 44b239c..1b5b56f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -8,6 +8,7 @@ const store = Vuex.createStore({
maskDialog: false,
maskDialogMode: 'dark',
userinfo: {
+ id: 1,
name: '',
account: '',
desc: '123',