Commit 5b513503fba717984f49ac62662a06cf3eb5a29e
1 parent
f0cf57997c
Exists in
master
验光数据页面
Showing
20 changed files
with
264 additions
and
23 deletions
Show diff stats
src/components/UniCollapseItem/UniCollapseItem.vue
... | ... | @@ -2,8 +2,10 @@ |
2 | 2 | <view :class="{ 'uni-collapse-cell--disabled': disabled,'uni-collapse-cell--notdisabled': !disabled, 'uni-collapse-cell--open': isOpen,'uni-collapse-cell--hide':!isOpen }" |
3 | 3 | class="uni-collapse-cell"> |
4 | 4 | <view class="uni-collapse-cell__title" @click="onClick"> |
5 | + <view v-if="iconText" class="uni-collapse-cell__title-iconText" v-bind:style="{background:background}">{{iconText}}</view> | |
5 | 6 | <image v-if="thumb" :src="thumb" class="uni-collapse-cell__title-img" /> |
6 | 7 | <text class="uni-collapse-cell__title-text">{{ title }}</text> |
8 | + <text class="uni-collapse-cell__time-text">{{ time }}</text> | |
7 | 9 | <!-- #ifdef MP-ALIPAY --> |
8 | 10 | <view :class="{ 'uni-collapse-cell__title-arrow-active': isOpen, 'uni-collapse-cell--animation': showAnimation === true }" |
9 | 11 | class="uni-collapse-cell__title-arrow"> |
... | ... | @@ -17,8 +19,7 @@ |
17 | 19 | </view> |
18 | 20 | <view :class="{'uni-collapse-cell__content--hide':!isOpen}" class="uni-collapse-cell__content"> |
19 | 21 | <view :class="{ 'uni-collapse-cell--animation': showAnimation === true }" class="uni-collapse-cell__wrapper" |
20 | - :style="{'transform':isOpen?'translateY(0)':'translateY(-100%)','-webkit-transform':isOpen?'translateY(0)':'translateY(-100%)'}" | |
21 | - > | |
22 | + :style="{'transform':isOpen?'translateY(0)':'translateY(-100%)','-webkit-transform':isOpen?'translateY(0)':'translateY(-100%)'}"> | |
22 | 23 | <slot /> |
23 | 24 | </view> |
24 | 25 | </view> |
... | ... | @@ -38,6 +39,11 @@ |
38 | 39 | type: String, |
39 | 40 | default: '' |
40 | 41 | }, |
42 | + time: { | |
43 | + // 列表时间 朱海涛加的,验光数据需要 | |
44 | + type: String, | |
45 | + default: '' | |
46 | + }, | |
41 | 47 | name: { |
42 | 48 | // 唯一标识符 |
43 | 49 | type: [Number, String], |
... | ... | @@ -62,11 +68,18 @@ |
62 | 68 | // 缩略图 |
63 | 69 | type: String, |
64 | 70 | default: '' |
71 | + }, | |
72 | + iconText:{ | |
73 | + //名字头像 | |
74 | + type:String, | |
75 | + default:'' | |
65 | 76 | } |
66 | 77 | }, |
67 | 78 | data() { |
68 | 79 | return { |
69 | - isOpen: false | |
80 | + isOpen: false, | |
81 | + background: '' | |
82 | + | |
70 | 83 | } |
71 | 84 | }, |
72 | 85 | watch: { |
... | ... | @@ -88,6 +101,17 @@ |
88 | 101 | } |
89 | 102 | } |
90 | 103 | }, |
104 | + computed:{ | |
105 | + //给头像搞个随机背景颜色,验光数据页面需要 | |
106 | + getRandomColor(){ | |
107 | + let r = Math.floor(Math.random()*256); | |
108 | + let g = Math.floor(Math.random()*256); | |
109 | + let b = Math.floor(Math.random()*256); | |
110 | + let color = '#'+r.toString(16)+g.toString(16)+b.toString(16); | |
111 | + this.background = color | |
112 | + // return color; | |
113 | + } | |
114 | + }, | |
91 | 115 | methods: { |
92 | 116 | onClick() { |
93 | 117 | if (this.disabled) { |
... | ... | @@ -104,8 +128,8 @@ |
104 | 128 | this.isOpen = !this.isOpen |
105 | 129 | this.collapse.onChange && this.collapse.onChange() |
106 | 130 | this.$forceUpdate() |
107 | - console.log(this.isOpen) | |
108 | - } | |
131 | + // console.log(this.isOpen) | |
132 | + }, | |
109 | 133 | } |
110 | 134 | } |
111 | 135 | </script> |
... | ... | @@ -140,9 +164,9 @@ |
140 | 164 | } |
141 | 165 | |
142 | 166 | .uni-collapse-cell--animation { |
143 | - transition: transform 0s ease; | |
167 | + transition: transform all 0.3s ease; | |
144 | 168 | transition-property: transform; |
145 | - transition-duration: 0s; | |
169 | + transition-duration: 0.3s; | |
146 | 170 | transition-timing-function: ease; |
147 | 171 | } |
148 | 172 | |
... | ... | @@ -162,7 +186,18 @@ |
162 | 186 | justify-content: space-between; |
163 | 187 | align-items: center; |
164 | 188 | } |
165 | - | |
189 | + .uni-collapse-cell__title-iconText{ | |
190 | + border: 1px solid #FFFFFF; | |
191 | + height: 50rpx; | |
192 | + width: 50rpx; | |
193 | + border-radius: 26rpx; | |
194 | + // background-color: #47A6F0; | |
195 | + font-size: 12px; | |
196 | + color: #FFFFFF; | |
197 | + line-height: 50rpx; | |
198 | + text-align: center; | |
199 | + margin-right: 20rpx; | |
200 | + } | |
166 | 201 | .uni-collapse-cell__title:active { |
167 | 202 | background-color: #FFFFFF; |
168 | 203 | } |
... | ... | @@ -171,18 +206,22 @@ |
171 | 206 | height: $uni-img-size-base; |
172 | 207 | width: $uni-img-size-base; |
173 | 208 | margin-right: 10px; |
209 | + // height: 50rpx; | |
210 | + // width: 50rpx; | |
211 | + // border-radius: 25rpx; | |
212 | + // border-radius: 25rpx; | |
174 | 213 | } |
175 | 214 | |
176 | 215 | .uni-collapse-cell__title-arrow { |
177 | 216 | width: 20px; |
178 | 217 | height: 20px; |
179 | - transform: rotate(0deg); | |
218 | + transform: rotate(-90deg); | |
180 | 219 | transform-origin: center center; |
181 | 220 | |
182 | 221 | } |
183 | 222 | |
184 | 223 | .uni-collapse-cell__title-arrow-active { |
185 | - transform: rotate(180deg); | |
224 | + transform: rotate(0deg); | |
186 | 225 | } |
187 | 226 | |
188 | 227 | .uni-collapse-cell__title-text { |
... | ... | @@ -197,8 +236,14 @@ |
197 | 236 | /* #endif */ |
198 | 237 | overflow: hidden; |
199 | 238 | text-overflow: ellipsis; |
239 | + font-size: 12px; | |
240 | + color: #333333; | |
241 | + } | |
242 | + .uni-collapse-cell__time-text{ | |
243 | + font-size: 12px; | |
244 | + color: #999999; | |
245 | + margin-right: 20rpx; | |
200 | 246 | } |
201 | - | |
202 | 247 | .uni-collapse-cell__content { |
203 | 248 | overflow: hidden; |
204 | 249 | } | ... | ... |
src/pages.json
... | ... | @@ -5,6 +5,11 @@ |
5 | 5 | "style" : { |
6 | 6 | "navigationBarTitleText" : "商城一览" |
7 | 7 | } |
8 | + }, | |
9 | + { | |
10 | + "path" : "pages/addOpticsData/addOpticsData", | |
11 | + "style" : { | |
12 | + "navigationBarTitleText" : "验光数据"} | |
8 | 13 | }, |
9 | 14 | { |
10 | 15 | "path" : "pages/user/user", |
... | ... | @@ -108,11 +113,6 @@ |
108 | 113 | "navigationBarTitleText" : "镜框选购页" |
109 | 114 | } |
110 | 115 | } |
111 | - ,{ | |
112 | - "path" : "pages/addOpticsData/addOpticsData", | |
113 | - "style" : { | |
114 | - "navigationBarTitleText" : "验光数据"} | |
115 | - } | |
116 | 116 | ], |
117 | 117 | "globalStyle" : { |
118 | 118 | "navigationBarTextStyle" : "black", | ... | ... |
src/pages/addOpticsData/addOpticsData.vue
1 | 1 | <template> |
2 | - <view> | |
3 | - | |
2 | + <view class="wrap"> | |
3 | + <view class="header"> | |
4 | + <view class="headerLeft" @click=tapShow(0)> | |
5 | + <text>如何查看验光单?</text> | |
6 | + <image src="../../static/dataLook.png" mode="aspectFit"></image> | |
7 | + </view> | |
8 | + <view class="headerRight" @click=tapShow(1)> | |
9 | + <text>如何查看眼镜框架?</text> | |
10 | + <image src="../../static/glassLook.png" mode="aspectFit"></image> | |
11 | + </view> | |
12 | + </view> | |
13 | + <view class="dataMenu"> | |
14 | + <uni-collapse accordion="true"> | |
15 | + <view class="item" v-for="(loveItem,index) in loveList" :key="index"> | |
16 | + <uni-collapse-item :title='loveItem.name' :time='getRightTime(loveItem.in_time)' :iconText='getFirstName(loveItem.name)' showAnimation='true'> | |
17 | + <view class="loveDataInfo"> | |
18 | + <view class="dataInfoItem"> | |
19 | + <text>度数(SPH):</text><text>左:{{loveItem.leftSph}}</text><text>右:{{loveItem.rightSph}}</text> | |
20 | + </view> | |
21 | + <view class="dataInfoItem"> | |
22 | + <text>散光(CYL):</text><text>左:{{loveItem.leftCyl}}</text><text>右:{{loveItem.rightCyl}}</text> | |
23 | + </view> | |
24 | + <view class="dataInfoItem"> | |
25 | + <text>轴位(AXI):</text><text>左:{{loveItem.leftAxi}}</text><text>右:{{loveItem.rightAxi}}</text> | |
26 | + </view> | |
27 | + <view class="dataInfoItem"> | |
28 | + <text>瞳距(PD):</text><text>{{loveItem.pd}}</text> | |
29 | + </view> | |
30 | + </view> | |
31 | + </uni-collapse-item> | |
32 | + </view> | |
33 | + </uni-collapse> | |
34 | + </view> | |
35 | + <view class="footer"> | |
36 | + <button class="btn" type="default">新建验光单</button> | |
37 | + </view> | |
4 | 38 | </view> |
5 | 39 | </template> |
6 | 40 | |
7 | -<script> | |
8 | - export default { | |
41 | +<script> | |
42 | + import UniCollapse from '@/components/UniCollapse/UniCollapse.vue' | |
43 | + import UniCollapseItem from '@/components/UniCollapseItem/UniCollapseItem.vue' | |
44 | + // import uniPopup from '@/components/uni-popup/uni-popup.vue' | |
45 | + import store from '@/store'; | |
46 | + export default { | |
47 | + components: {UniCollapse,UniCollapseItem}, | |
9 | 48 | data() { |
10 | 49 | return { |
11 | 50 | |
12 | 51 | }; |
52 | + }, | |
53 | + onLoad: function(option) { | |
54 | + //获取关心的人列表 | |
55 | + store.dispatch('myLoveList/getLoveList', { | |
56 | + uid: "1", | |
57 | + }); | |
58 | + }, | |
59 | + computed:{ | |
60 | + loveList() { | |
61 | + console.log(this.$store.state.myLoveList.loveList) | |
62 | + return this.$store.state.myLoveList.loveList || [] | |
63 | + }, | |
64 | + }, | |
65 | + methods:{ | |
66 | + tapShow(item){ | |
67 | + switch(item){ | |
68 | + // 0左边 1右边 | |
69 | + case '0': | |
70 | + | |
71 | + break; | |
72 | + case '1': | |
73 | + | |
74 | + break; | |
75 | + } | |
76 | + }, | |
77 | + //给时间搞一个nice的格式 | |
78 | + getRightTime(time){ | |
79 | + //如果小于10 则返回'0'+m | |
80 | + function add(m){return m<10?'0'+m:m} | |
81 | + const oldTime = (new Date(time)).getTime() | |
82 | + const year = new Date(oldTime).getFullYear() | |
83 | + const month = new Date(oldTime).getMonth()+1 | |
84 | + const day = new Date(oldTime).getDate() | |
85 | + const newTime = add(year)+'-'+add(month)+'-'+add(day) | |
86 | + return newTime | |
87 | + }, | |
88 | + getFirstName(name){ | |
89 | + console.log(name.substring(0,1)) | |
90 | + return name.substring(0,1) | |
91 | + } | |
13 | 92 | } |
14 | 93 | } |
15 | 94 | </script> |
16 | 95 | |
17 | 96 | <style lang="scss"> |
18 | - | |
97 | + .wrap{ | |
98 | + min-height: 100vh; | |
99 | + width: 100%; | |
100 | + background-color: #F2F2F2; | |
101 | + .header{ | |
102 | + height: 304rpx; | |
103 | + width: 100%; | |
104 | + background-color: #FFFFFF; | |
105 | + display: flex; | |
106 | + justify-content: space-around; | |
107 | + align-items: center; | |
108 | + view{ | |
109 | + height: 210rpx; | |
110 | + width: 304rpx; | |
111 | + background: #FDF7F5; | |
112 | + border-radius: 4px; | |
113 | + border-radius: 4px; | |
114 | + display: flex; | |
115 | + flex-direction: column; | |
116 | + align-items: center; | |
117 | + justify-content: center; | |
118 | + text{ | |
119 | + font-size: 12px; | |
120 | + color: #333333; | |
121 | + } | |
122 | + image{ | |
123 | + height: 144rpx; | |
124 | + width: 144rpx; | |
125 | + } | |
126 | + } | |
127 | + } | |
128 | + .dataMenu{ | |
129 | + margin-top: 20rpx; | |
130 | + box-shadow: 0 0 4px 0 rgba(133,107,107,0.10); | |
131 | + width: 100%; | |
132 | + background-color: #FFFFFF; | |
133 | + .item{ | |
134 | + padding: 0 40rpx; | |
135 | + .loveDataInfo{ | |
136 | + padding: 0 44rpx 0 70rpx; | |
137 | + display: flex; | |
138 | + justify-content: space-around; | |
139 | + flex-direction: column; | |
140 | + align-items: flex-start; | |
141 | + .dataInfoItem{ | |
142 | + font-size: 12px; | |
143 | + color: #333333; | |
144 | + margin-bottom: 34rpx; | |
145 | + text{ | |
146 | + font-size: 12px; | |
147 | + color: #2A2A2A; | |
148 | + margin-right: 20rpx; | |
149 | + } | |
150 | + } | |
151 | + } | |
152 | + } | |
153 | + } | |
154 | + .footer{ | |
155 | + width: 100%; | |
156 | + position: fixed; | |
157 | + bottom: 0; | |
158 | + left: 0; | |
159 | + .btn{ | |
160 | + width: 100%; | |
161 | + height: 112rpx; | |
162 | + line-height: 112rpx; | |
163 | + background: #FF6B4A; | |
164 | + font-size: 16px; | |
165 | + color: #FFFFFF; | |
166 | + } | |
167 | + } | |
168 | + } | |
169 | + | |
19 | 170 | </style> | ... | ... |
src/pages/user/user.vue
... | ... | @@ -12,7 +12,7 @@ |
12 | 12 | <image src="../../static/serviceLogo.png" mode="aspectFill"></image> |
13 | 13 | </view> --> |
14 | 14 | </view> |
15 | - <view class="myOpticsData"> | |
15 | + <view class="myOpticsData" @click="toOpticsData"> | |
16 | 16 | <view class="left"> |
17 | 17 | <image src="../../static/img/user/dataWrite.png" mode="aspectFit"></image> |
18 | 18 | <text>验光数据</text> |
... | ... | @@ -182,6 +182,11 @@ |
182 | 182 | complete: () => {} |
183 | 183 | }); |
184 | 184 | }, |
185 | + toOpticsData(){ | |
186 | + uni.navigateTo({ | |
187 | + url: `../addOpticsData/addOpticsData`, | |
188 | + }); | |
189 | + }, | |
185 | 190 | handleScrolltolower(){ |
186 | 191 | // console.log('usr-my',this.$store.state.user.userInfo) |
187 | 192 | this.pagesnum++; | ... | ... |
src/static/dataLook.png
6.6 KB
src/static/glassLook.png
10 KB
src/static/img/goods/p1.jpg
11.3 KB
src/static/img/goods/p10.jpg
22.6 KB
src/static/img/goods/p11.png
121 KB
src/static/img/goods/p12.png
115 KB
src/static/img/goods/p2.jpg
16.3 KB
src/static/img/goods/p3.jpg
15 KB
src/static/img/goods/p4.jpg
6.55 KB
src/static/img/goods/p5.jpg
29.6 KB
src/static/img/goods/p6.jpg
6.25 KB
src/static/img/goods/p7.jpg
20.1 KB
src/static/img/goods/p8.jpg
20.4 KB
src/static/img/goods/p9.jpg
24.1 KB
src/store/modules/myLoveList.js
... | ... | @@ -0,0 +1,36 @@ |
1 | +import urlAlias from '../url'; | |
2 | +import request from '../request'; | |
3 | + | |
4 | +const { | |
5 | + mylovelist | |
6 | +} = urlAlias; | |
7 | + | |
8 | +const state = { | |
9 | + loveList: [], | |
10 | +}; | |
11 | + | |
12 | +const mutations = { | |
13 | + INIT: (state, data) => { | |
14 | + state.loveList = data; | |
15 | + }, | |
16 | +}; | |
17 | + | |
18 | +const actions = { | |
19 | + getLoveList({ commit }, param) { | |
20 | + request({ | |
21 | + url: mylovelist, | |
22 | + data: param, | |
23 | + success: (res) => { | |
24 | + // console.log(res.data); | |
25 | + commit("INIT", res.data.data); | |
26 | + }, | |
27 | + }) | |
28 | + } | |
29 | +} | |
30 | + | |
31 | +export default { | |
32 | + namespaced: true, | |
33 | + state, | |
34 | + mutations, | |
35 | + actions, | |
36 | +} | |
0 | 37 | \ No newline at end of file | ... | ... |
src/store/url.js
... | ... | @@ -28,7 +28,11 @@ const urlAlias = { |
28 | 28 | recommandList:'/app/prod/recommand', // 获取用户个性化推荐商品 |
29 | 29 | |
30 | 30 | // 镜框选购页 |
31 | - detailStandardList: '/app/prod/read', //获取商品的详细信息 | |
31 | + detailStandardList: '/app/prod/read', //获取商品的详细信息 | |
32 | + | |
33 | + //用户数据 | |
34 | + mylovelist:'/app/user/mylovelist',//关心的人的数据 | |
35 | + myloveadd:'/app/user/myloveadd'//添加关心的人 | |
32 | 36 | |
33 | 37 | } |
34 | 38 | ... | ... |