Commit 4cd1aee33d3c96067bfba3405cf00f4fccf3cae2

Authored by 史婷婷
1 parent 1372cc49

feat: 首页+tabs

... ... @@ -23,7 +23,7 @@
23 23 checkLogin() {
24 24
25 25 if (!getToken()) {
26   - this.$tab.reLaunch('/pages/login/login')
  26 + this.$tab.reLaunch('/pages/login')
27 27 }
28 28 }
29 29 }
... ... @@ -31,5 +31,5 @@
31 31 </script>
32 32
33 33 <style lang="scss">
34   - @import '@/static/scss/index.scss'
  34 + @import '@/static/scss/index.scss';
35 35 </style>
... ...
1 1 {
2 2 "pages": [{
3   - "path": "pages/login/login",
  3 + "path": "pages/login",
4 4 "style": {
5 5 "navigationBarTitleText": "登录",
6 6 "navigationStyle": "custom"
... ... @@ -11,7 +11,7 @@
11 11 "navigationBarTitleText": "注册"
12 12 }
13 13 }, {
14   - "path": "pages/index/index",
  14 + "path": "pages/index",
15 15 "style": {
16 16 "navigationBarTitleText": "首页",
17 17 "navigationStyle": "custom"
... ... @@ -209,7 +209,7 @@
209 209 "selectedColor": "#3D48A3",
210 210 "borderStyle": "white",
211 211 "list": [{
212   - "pagePath": "pages/index/index",
  212 + "pagePath": "pages/index",
213 213 "iconPath": "static/images/tabbar/home.png",
214 214 "selectedIconPath": "static/images/tabbar/home_act.png",
215 215 "text": "首页"
... ...
  1 +<template>
  2 + <view class="home-page">
  3 + <!-- 自定义头部 -->
  4 + <view class="custom-header">
  5 + <view class="header-left">
  6 + <view class="bell-wrap">
  7 + <image class="icon" src="/static/images/index/bell.png" mode="widthFix" />
  8 + <view class="badge">8</view>
  9 + </view>
  10 + </view>
  11 + <view class="header-title">首页</view>
  12 + <view class="header-right" />
  13 + </view>
  14 +
  15 + <!-- 顶部统计卡片 -->
  16 + <view class="stats-row">
  17 + <view class="stat-card">
  18 + <image class="card-bg" src="/static/images/index/card_wait.png" mode="aspectFill" />
  19 + <view class="card-content">
  20 + <text class="card-title">待审批的</text>
  21 + <text class="card-num">24</text>
  22 + </view>
  23 + </view>
  24 + <view class="stat-card">
  25 + <image class="card-bg" src="/static/images/index/card_launch.png" mode="aspectFill" />
  26 + <view class="card-content">
  27 + <text class="card-title">我发起的</text>
  28 + <text class="card-num">87</text>
  29 + </view>
  30 + </view>
  31 + </view>
  32 + <!-- 分组入口 -->
  33 + <view class="section" v-for="(it, index) in sectionList" :key="index">
  34 + <text class="section-title">{{ it.title }}</text>
  35 + <view class="grid">
  36 + <view class="grid-item" v-for="(g, idx) in it.items" :key="idx" @click="navigateTo(g.link)">
  37 + <image class="grid-icon" :src="g.icon" />
  38 + <text class="grid-text omit1">{{ g.text }}</text>
  39 + </view>
  40 + </view>
  41 + </view>
  42 + </view>
  43 +</template>
  44 +
  45 +<script>
  46 + export default {
  47 + data() {
  48 + return {
  49 + sectionList: [
  50 + {
  51 + title: '客户开发管理',
  52 + items: [
  53 + {
  54 + text: '开发管理',
  55 + icon: '/static/images/index/dev_manage.png',
  56 + link: '/pages/dev_manage/index'
  57 + }
  58 + ]
  59 + },
  60 + {
  61 + title: '客户资信管理',
  62 + items: [
  63 + {
  64 + text: '资信管理',
  65 + icon: '/static/images/index/credit_manage.png',
  66 + link: '/pages/credit_manage/index'
  67 + }
  68 + ]
  69 + },
  70 + {
  71 + title: '合同管理',
  72 + items: [
  73 + {
  74 + text: '框架合同',
  75 + icon: '/static/images/index/contract_framework.png',
  76 + link: '/pages/contract_framework/index'
  77 + },
  78 + {
  79 + text: '经销标准合同',
  80 + icon: '/static/images/index/contract_retail.png',
  81 + link: '/pages/contract_retail/index'
  82 + },
  83 + {
  84 + text: '经销库存合同',
  85 + icon: '/static/images/index/contract_stock.png',
  86 + link: '/pages/contract_stock/index'
  87 + },
  88 + {
  89 + text: '经销未规划合同',
  90 + icon: '/static/images/index/contract_unplan.png',
  91 + link: '/pages/contract_unplan/index'
  92 + },
  93 + {
  94 + text: '加工标准合同',
  95 + icon: '/static/images/index/contract_process.png',
  96 + link: '/pages/contract_process/index'
  97 + },
  98 + {
  99 + text: '外贸标准合同',
  100 + icon: '/static/images/index/contract_foreign_std.png',
  101 + link: '/pages/contract_foreign_std/index'
  102 + },
  103 + {
  104 + text: '外贸库存合同',
  105 + icon: '/static/images/index/contract_foreign_stock.png',
  106 + link: '/pages/contract_foreign_stock/index'
  107 + },
  108 + {
  109 + text: '外贸未规划合同',
  110 + icon: '/static/images/index/contract_foreign_unplan.png',
  111 + link: '/pages/contract_foreign_unplan/index'
  112 + },
  113 + ],
  114 + }
  115 + ]
  116 + }
  117 + },
  118 + methods: {
  119 + // 普通页面
  120 + navigateTo(link) {
  121 + if (!link || link === '#') {
  122 + return;
  123 + }
  124 + // 规范化路径,确保以斜杠开头
  125 + const url = link.startsWith('/') ? link : `/${link}`;
  126 +
  127 + // 普通页面使用 navigateTo
  128 + uni.navigateTo({
  129 + url,
  130 + fail: () => {
  131 + uni.showToast({ title: '页面暂未开放', icon: 'none' });
  132 + }
  133 + });
  134 + }
  135 + }
  136 + }
  137 +</script>
  138 +
  139 +<style scoped lang="scss">
  140 + page {
  141 + background-color: #fff;
  142 + }
  143 +
  144 + .home-page {
  145 + padding: 0 32rpx 32rpx;
  146 + padding-top: 96rpx;
  147 + }
  148 +
  149 + /* 自定义头部 */
  150 + .custom-header {
  151 + height: 96rpx;
  152 + display: flex;
  153 + align-items: center;
  154 + justify-content: space-between;
  155 + position: fixed;
  156 + top: 0;
  157 + left: 0;
  158 + right: 0;
  159 + z-index: 1000;
  160 + background-color: #fff;
  161 + padding: 0 32rpx;
  162 +
  163 + .header-left {
  164 + display: flex;
  165 + align-items: center;
  166 + }
  167 +
  168 + .header-title {
  169 + font-size: 36rpx;
  170 + font-weight: 600;
  171 + color: rgba(0, 0, 0, 0.9);
  172 + }
  173 +
  174 + .icon {
  175 + width: 48rpx;
  176 + height: 48rpx;
  177 + }
  178 +
  179 + .bell-wrap {
  180 + position: relative;
  181 + }
  182 +
  183 + .header-right {
  184 + width: 48rpx;
  185 + }
  186 +
  187 + .badge {
  188 + position: absolute;
  189 + top: -8rpx;
  190 + right: -8rpx;
  191 + background-color: #ff3b30;
  192 + color: #fff;
  193 + font-size: 20rpx;
  194 + height: 32rpx;
  195 + min-width: 32rpx;
  196 + padding: 0 8rpx;
  197 + border-radius: 16rpx;
  198 + display: flex;
  199 + align-items: center;
  200 + justify-content: center;
  201 + }
  202 + }
  203 +
  204 +
  205 + /* 统计卡片 */
  206 + .stats-row {
  207 + display: flex;
  208 + gap: 26rpx;
  209 + padding-top: 20rpx;
  210 +
  211 + .stat-card {
  212 + flex: 1;
  213 + height: 168rpx;
  214 + position: relative;
  215 + overflow: hidden;
  216 + border-radius: 16rpx;
  217 + }
  218 +
  219 + .card-bg {
  220 + position: absolute;
  221 + left: 0;
  222 + top: 0;
  223 + width: 100%;
  224 + height: 100%;
  225 + }
  226 +
  227 + .card-content {
  228 + position: absolute;
  229 + left: 32rpx;
  230 + top: 36rpx;
  231 + display: flex;
  232 + flex-direction: column;
  233 + gap: 12rpx;
  234 + }
  235 +
  236 + .card-title {
  237 + color: rgba(0, 0, 0, 0.9);
  238 + font-size: 32rpx;
  239 + line-height: 44rpx;
  240 + }
  241 +
  242 + .card-num {
  243 + color: rgba(0,0,0,0.4);
  244 + font-size: 32rpx;
  245 + font-weight: 600;
  246 + line-height: 44rpx;
  247 + }
  248 + }
  249 +
  250 +
  251 + /* 分组入口 */
  252 + .section {
  253 + margin-top: 32rpx;
  254 + .section-title {
  255 + font-size: 32rpx;
  256 + font-weight: 600;
  257 + color: rgba(0, 0, 0, 0.9);
  258 + line-height: 44rpx;
  259 + }
  260 +
  261 + .grid {
  262 + margin-top: 28rpx;
  263 + display: grid;
  264 + grid-template-columns: repeat(4, 1fr);
  265 + gap: 32rpx;
  266 + }
  267 +
  268 + .grid-item {
  269 + display: flex;
  270 + flex-direction: column;
  271 + align-items: center;
  272 + }
  273 +
  274 + .grid-icon {
  275 + width: 96rpx;
  276 + height: 96rpx;
  277 + border-radius: 24rpx;
  278 + }
  279 +
  280 + .grid-text {
  281 + margin-top: 16rpx;
  282 + font-size: 24rpx;
  283 + color: rgba(0,0,0,0.6);
  284 + text-align: center;
  285 + }
  286 +
  287 + }
  288 +
  289 +
  290 +</style>
\ No newline at end of file
... ...
1   -<template>
2   - <view class="mine-container">
3   - <!-- 轮播图 -->
4   - <uni-swiper-dot class="uni-swiper-dot-box" :info="data" :current="current" field="content">
5   - <swiper class="swiper-box" :current="swiperDotIndex" @change="changeSwiper">
6   - <swiper-item v-for="(item, index) in data" :key="index">
7   - <view class="swiper-item" @click="clickBannerItem(item)">
8   - <image :src="item.image" mode="aspectFill" :draggable="false" />
9   - </view>
10   - </swiper-item>
11   - </swiper>
12   - </uni-swiper-dot>
13   - <view class="content-section">
14   - <view class="mine-actions grid col-4 text-center">
15   - <view class="action-item" @click="handleBarClick(1)">
16   - <view class=" cuIcon-message text-pink icon"></view>
17   - <text class="text">消息通知</text>
18   - </view>
19   - <view class="action-item" @click="handleBarClick(2)">
20   - <view class=" cuIcon-edit text-blue icon"></view>
21   - <text class="text">任务审批</text>
22   - </view>
23   - <view class="action-item" @click="handleBarClick(3)">
24   - <view class=" cuIcon-warn text-mauve icon"></view>
25   - <text class="text">库存预警</text>
26   - </view>
27   - <view class="action-item" @click="handleBarClick(4)">
28   - <view class="cuIcon-question text-green icon"></view>
29   - <text class="text">问题反馈</text>
30   - </view>
31   - </view>
32   - </view>
33   -
34   - <!-- <uni-section class="uni-section" title="" type="line" padding> -->
35   - <view class="uni-section">
36   - <uni-grid :column="4" :highlight="true" @change="change">
37   - <uni-grid-item>
38   - <view class="grid-item-box" style="background-color: #fff;">
39   - <text class="text">¥{{formData.today.order.totalAmount}}</text>
40   - <text class="text">今日订单 {{formData.today.order.totalNum}}</text>
41   - </view>
42   - </uni-grid-item>
43   - <uni-grid-item>
44   - <view class="grid-item-box" style="background-color: #fff;">
45   - <text class="text">¥{{formData.today.returned.totalAmount}}</text>
46   - <text class="text">今日退单 {{formData.today.returned.totalNum}}</text>
47   - </view>
48   - </uni-grid-item>
49   - <uni-grid-item>
50   - <view class="grid-item-box" style="background-color: #fff;">
51   - <text class="text">¥{{formData.sameMonth.order.totalAmount}}</text>
52   - <text class="text">本月订单 {{formData.sameMonth.order.totalNum}}</text>
53   - </view>
54   - </uni-grid-item>
55   - <uni-grid-item>
56   - <view class="grid-item-box" style="background-color: #fff;">
57   - <text class="text">¥{{formData.sameMonth.returned.totalAmount}}</text>
58   - <text class="text">本月退单 {{formData.sameMonth.returned.totalNum}}</text>
59   - </view>
60   - </uni-grid-item>
61   - </uni-grid>
62   - </view>
63   - <!-- </uni-section> -->
64   - <!-- <view ref="echartContainer"></view>
65   - -->
66   - <view ref="echartContainer" id="echartContainer" style="width: 100%; height: 300px;"></view>
67   - </view>
68   -
69   -</template>
70   -
71   -<script>
72   - import storage from '@/utils/storage'
73   - import {
74   - orderChart
75   - } from '@/api/dashboard/analysis'
76   -
77   - import * as echarts from 'echarts';
78   -
79   - export default {
80   - data() {
81   - return {
82   - current: 0,
83   - swiperDotIndex: 0,
84   - data: [{
85   - image: 'http://xy.wecando21cn.com/static/images/banner/banner01.jpg'
86   - },
87   - {
88   - image: 'http://xy.wecando21cn.com/static/images/banner/banner02.jpg'
89   - },
90   - {
91   - image: 'http://xy.wecando21cn.com/static/images/banner/banner03.jpg'
92   - }
93   - ],
94   - chartInstance: null,
95   - loading: false,
96   - formData: {
97   - today: {
98   - order: {
99   - totalAmount: '0',
100   - totalNum: '0',
101   - charts: [],
102   - },
103   - returned: {
104   - totalAmount: '0',
105   - totalNum: '0',
106   - charts: [],
107   - },
108   - },
109   - sameMonth: {
110   - order: {
111   - totalAmount: '0',
112   - totalNum: '0',
113   - charts: [],
114   - },
115   - returned: {
116   - totalAmount: '0',
117   - totalNum: '0',
118   - charts: [],
119   - },
120   - },
121   - },
122   - }
123   - },
124   -
125   - mounted() {
126   - this.loadData();
127   -
128   - },
129   -
130   - methods: {
131   - clickBannerItem(item) {
132   - console.info(item)
133   - },
134   - changeSwiper(e) {
135   - this.current = e.detail.current
136   - },
137   -
138   - handleToInfo() {
139   - // this.$tab.navigateTo('/pages/mine/info/index')
140   - this.$tab.redirectTo('/pages/mine/info/index')
141   - },
142   -
143   - loadData() {
144   - orderChart()
145   - .then((res) => {
146   - this.formData = res.data;
147   - this.initChart();
148   - });
149   - },
150   -
151   -
152   -
153   - async initChart() {
154   - // 等待 canvas 元素渲染完成(对于 H5 环境可能需要)
155   - await this.$nextTick();
156   -
157   - // 获取 canvas 元素
158   - const chartDom = document.getElementById('echartContainer');
159   - // const chartDom = this.$refs.echartContainer; //这种写法无效,暂时找不到原因
160   -
161   - // 初始化 ECharts 实例
162   - this.chartInstance = echarts.init(chartDom);
163   -
164   - // 设置图表配置项
165   - const option = {
166   - title: {
167   - text: '',
168   - },
169   - tooltip: {},
170   - legend: {
171   - data: [],
172   - },
173   - xAxis: {
174   - data: [],
175   - },
176   - yAxis: {},
177   - series: [],
178   - };
179   -
180   - if (this.formData) {
181   - option.legend.data.push("今天订单");
182   - option.legend.data.push("今日退单");
183   - option.legend.data.push("本月订单");
184   - option.legend.data.push("本月退单");
185   -
186   - this.initSeriesData(this.formData.today.order.charts, "今天订单", option);
187   - this.initSeriesData(this.formData.today.returned.charts, "今日退单", option);
188   - this.initSeriesData(this.formData.sameMonth.order.charts, "本月订单", option);
189   - this.initSeriesData(this.formData.sameMonth.returned.charts, "本月退单", option);
190   - }
191   -
192   - this.chartInstance.setOption(option);
193   -
194   - },
195   -
196   - initSeriesData(charts, name, option) {
197   -
198   - let seriedata = [];
199   - let xAxisData = [];
200   - let seriesdataUnitData = {
201   - name: name,
202   - type: 'line'
203   - };
204   - for (let item of charts) {
205   - seriedata.push(item.totalAmount)
206   - xAxisData.push(item.createDate);
207   - }
208   - this.$set(option.xAxis, "data", xAxisData);
209   - this.$set(seriesdataUnitData, "data", seriedata);
210   - option.series.push(seriesdataUnitData);
211   - },
212   -
213   - beforeDestroy() {
214   - // 销毁图表实例以避免内存泄漏
215   - if (this.chartInstance) {
216   - this.chartInstance.dispose();
217   - this.chartInstance = null;
218   - }
219   - },
220   -
221   - handleBarClick(type) {
222   - //type: 1、消息通知 2、审批任务 3、库存预警 4、问题反馈
223   - if (type == 1) {
224   - //跳转到消息通知页
225   - this.$tab.navigateTo('/pages/notice/index')
226   - } else {
227   - uni.showToast({
228   - title: '持续开放中......',
229   - icon: 'none',
230   - })
231   - }
232   -
233   - },
234   - },
235   - }
236   -</script>
237   -
238   -<style lang="scss">
239   - .image {
240   - width: 25px;
241   - height: 25px;
242   - }
243   -
244   - .text {
245   - font-size: 14px;
246   - margin-top: 5px;
247   - }
248   -
249   - .grid-dynamic-box {
250   - margin-bottom: 15px;
251   - }
252   -
253   - .grid-item-box {
254   - flex: 1;
255   - // position: relative;
256   - /* #ifndef APP-NVUE */
257   - display: flex;
258   - /* #endif */
259   - flex-direction: column;
260   - align-items: center;
261   - justify-content: center;
262   - padding: 15px 0;
263   - }
264   -
265   - .grid-item-box-row {
266   - flex: 1;
267   - // position: relative;
268   - /* #ifndef APP-NVUE */
269   - display: flex;
270   - /* #endif */
271   - flex-direction: row;
272   - align-items: center;
273   - justify-content: center;
274   - padding: 15px 0;
275   - }
276   -
277   - .grid-dot {
278   - position: absolute;
279   - top: 5px;
280   - right: 15px;
281   - }
282   -
283   - .swiper {
284   - height: 420px;
285   - }
286   -
287   - /* #ifdef H5 */
288   - @media screen and (min-width: 768px) and (max-width: 1425px) {
289   - .swiper {
290   - height: 630px;
291   - }
292   - }
293   -
294   - @media screen and (min-width: 1425px) {
295   - .swiper {
296   - height: 830px;
297   - }
298   - }
299   -
300   - /* #endif */
301   -
302   - .title {
303   - font-size: 16rpx;
304   - color: #8f8f94;
305   - }
306   -
307   - /*以下为轮播图样式*/
308   - .uni-margin-wrap {
309   - width: 690rpx;
310   - width: 100%;
311   - ;
312   - }
313   -
314   - .swiper {
315   - height: 300rpx;
316   - }
317   -
318   - .swiper-box {
319   - height: 150px;
320   - }
321   -
322   - .swiper-item {
323   - /* #ifndef APP-NVUE */
324   - display: flex;
325   - /* #endif */
326   - flex-direction: column;
327   - justify-content: center;
328   - align-items: center;
329   - color: #fff;
330   - height: 300rpx;
331   - line-height: 300rpx;
332   - }
333   -
334   - @media screen and (min-width: 500px) {
335   - .uni-swiper-dot-box {
336   - width: 400px;
337   - /* #ifndef APP-NVUE */
338   - margin: 0 auto;
339   - /* #endif */
340   - margin-top: 8px;
341   - }
342   -
343   - .image {
344   - width: 100%;
345   - }
346   - }
347   -
348   - .mine-container {
349   - width: 100%;
350   - height: 100%;
351   -
352   -
353   - .header-section {
354   - padding: 15px 15px 45px 15px;
355   - background-color: #3c96f3;
356   - color: white;
357   -
358   - .login-tip {
359   - font-size: 18px;
360   - margin-left: 10px;
361   - }
362   -
363   - .cu-avatar {
364   - border: 2px solid #eaeaea;
365   -
366   - .icon {
367   - font-size: 40px;
368   - }
369   - }
370   -
371   - .user-info {
372   - margin-left: 15px;
373   -
374   - .u_title {
375   - font-size: 14px;
376   - line-height: 30px;
377   - }
378   - }
379   - }
380   -
381   - .content-section {
382   - position: relative;
383   - top: -30px;
384   -
385   -
386   - .mine-actions {
387   - margin: 15px 15px;
388   - padding: 20px 0px;
389   - border-radius: 8px;
390   - background-color: #ffffff;
391   -
392   - .action-item {
393   - .icon {
394   - font-size: 28px;
395   - }
396   -
397   - .text {
398   - display: block;
399   - font-size: 13px;
400   - margin: 8px 0px;
401   - }
402   - }
403   - }
404   - }
405   -
406   - .uni-section {
407   - position: relative;
408   - top: -30px;
409   - }
410   - }
411   -</style>
\ No newline at end of file
pages/login.vue renamed from pages/login/login.vue
... ... @@ -2,7 +2,7 @@
2 2 <view class="login-page">
3 3 <!-- 自定义头部 -->
4 4 <view class="header">
5   - <image class="header-bg" src="./header_bg.png" />
  5 + <image class="header-bg" src="/static/images/login/header_bg.png" />
6 6 <view class="header-content">
7 7 <image class="header-logo" src="/static/logo201.png" mode="widthFix" />
8 8 <text class="header-title">欢迎登录楚江销售系统</text>
... ... @@ -115,7 +115,7 @@
115 115 },
116 116 // 登录成功后,处理函数
117 117 loginSuccess(result) {
118   - this.$tab.reLaunch('/pages/index/index')
  118 + this.$tab.reLaunch('/pages/index')
119 119 }
120 120 }
121 121 }
... ...
... ... @@ -118,7 +118,7 @@
118 118 this.$tab.navigateTo('/pages/mine/setting/index')
119 119 },
120 120 handleToLogin() {
121   - this.$tab.reLaunch('/pages/login/login')
  121 + this.$tab.reLaunch('/pages/login')
122 122 },
123 123 handleToAvatar() {
124 124 this.$tab.navigateTo('/pages/mine/avatar/index')
... ... @@ -126,7 +126,7 @@
126 126 handleLogout() {
127 127 this.$modal.confirm('确定注销并退出系统吗?').then(() => {
128 128 this.$store.dispatch('LogOut').then(() => {
129   - this.$tab.reLaunch('/pages/index/index')
  129 + this.$tab.reLaunch('/pages/index')
130 130 })
131 131 })
132 132 },
... ...
... ... @@ -50,7 +50,7 @@
50 50 handleLogout() {
51 51 this.$modal.confirm('确定注销并退出系统吗?').then(() => {
52 52 this.$store.dispatch('LogOut').then(() => {
53   - this.$tab.reLaunch('/pages/index/index')
  53 + this.$tab.reLaunch('/pages/index')
54 54 })
55 55 })
56 56 }
... ...
... ... @@ -59,7 +59,7 @@
59 59 methods: {
60 60 // 用户登录
61 61 handleUserLogin() {
62   - this.$tab.navigateTo(`/pages/login/login`)
  62 + this.$tab.navigateTo(`/pages/login`)
63 63 },
64 64 // 获取图形验证码
65 65 getCode() {
... ... @@ -97,7 +97,7 @@
97 97 content: "恭喜你,您的账号 " + this.registerForm.username + " 注册成功!",
98 98 success: function (res) {
99 99 if (res.confirm) {
100   - uni.redirectTo({ url: `/pages/login/login` });
  100 + uni.redirectTo({ url: `/pages/login` });
101 101 }
102 102 }
103 103 })
... ... @@ -111,7 +111,7 @@
111 111 registerSuccess(result) {
112 112 // 设置用户信息
113 113 this.$store.dispatch('GetInfo').then(res => {
114   - this.$tab.reLaunch('/pages/index/index')
  114 + this.$tab.reLaunch('/pages/index')
115 115 })
116 116 }
117 117 }
... ...
1 1 import { getToken } from '@/utils/auth'
2 2
3 3 // 登录页面
4   -const loginPage = "/pages/login/login"
  4 +const loginPage = "/pages/login"
5 5
6 6 // 页面白名单
7 7 const whiteList = [
8   - '/pages/login/login', '/pages/register', '/pages/common/webview/index'
  8 + '/pages/login', '/pages/register', '/pages/common/webview/index'
9 9 ]
10 10
11 11 // 检查地址白名单
... ...
static/images/login/header_bg.png renamed from pages/login/header_bg.png

234 KB

... ... @@ -88,3 +88,82 @@
88 88 }
89 89 }
90 90 }
  91 +
  92 +
  93 +// 一行省略
  94 +.omit1 {
  95 + word-break: break-all;
  96 + text-overflow: ellipsis;
  97 + display: -webkit-box;
  98 + -webkit-box-orient: vertical;
  99 + -webkit-line-clamp: 1;
  100 + overflow: hidden;
  101 + overflow-wrap:break-word;
  102 + word-break: break-all;
  103 +}
  104 +
  105 +// 两行省略
  106 +.omit2 {
  107 + word-break: break-all;
  108 + text-overflow: ellipsis;
  109 + display: -webkit-box;
  110 + -webkit-box-orient: vertical;
  111 + -webkit-line-clamp: 2;
  112 + overflow: hidden;
  113 + overflow-wrap:break-word;
  114 + word-break: break-all;
  115 +}
  116 +
  117 +// 三行省略
  118 +.omit3 {
  119 + overflow: hidden;
  120 + text-overflow: ellipsis;
  121 + display: -webkit-box;
  122 + -webkit-line-clamp: 3;
  123 + -webkit-box-orient: vertical;
  124 + overflow-wrap:break-word;
  125 + word-break: break-all;
  126 +}
  127 +//四行省略
  128 +.omit4 {
  129 + overflow: hidden;
  130 + text-overflow: ellipsis;
  131 + display: -webkit-box;
  132 + -webkit-line-clamp: 4;
  133 + -webkit-box-orient: vertical;
  134 + overflow-wrap:break-word;
  135 + word-break: break-all;
  136 +}
  137 +
  138 +//五行省略
  139 +.omit5 {
  140 + overflow: hidden;
  141 + text-overflow: ellipsis;
  142 + display: -webkit-box;
  143 + -webkit-line-clamp: 5;
  144 + -webkit-box-orient: vertical;
  145 + overflow-wrap:break-word;
  146 + word-break: break-all;
  147 +}
  148 +
  149 +// 六行省略
  150 +.omit6 {
  151 + overflow: hidden;
  152 + text-overflow: ellipsis;
  153 + display: -webkit-box;
  154 + -webkit-line-clamp: 6;
  155 + -webkit-box-orient: vertical;
  156 + overflow-wrap:break-word;
  157 + word-break: break-all;
  158 +}
  159 +
  160 +// 十五行省略
  161 +.omit15 {
  162 + overflow: hidden;
  163 + text-overflow: ellipsis;
  164 + display: -webkit-box;
  165 + -webkit-line-clamp: 15;
  166 + -webkit-box-orient: vertical;
  167 + overflow-wrap:break-word;
  168 + word-break: break-all;
  169 +}
... ...
... ... @@ -56,7 +56,7 @@ config.responseType = 'blob';
56 56 showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
57 57 if (res.confirm) {
58 58 store.dispatch('LogOut').then(res => {
59   - uni.reLaunch({ url: '/pages/login/login' })
  59 + uni.reLaunch({ url: '/pages/login' })
60 60 })
61 61 }
62 62 })
... ...
... ... @@ -38,7 +38,7 @@ const upload = config => {
38 38 showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => {
39 39 if (res.confirm) {
40 40 store.dispatch('LogOut').then(res => {
41   - uni.reLaunch({ url: '/pages/login/login/login' })
  41 + uni.reLaunch({ url: '/pages/login' })
42 42 })
43 43 }
44 44 })
... ...