feng_ting-ting 2 weeks ago
parent
commit
999dacfb67
3 changed files with 293 additions and 216 deletions
  1. 15 0
      pages.json
  2. 235 197
      pages/login.vue
  3. 43 19
      pages/mine/index.vue

+ 15 - 0
pages.json

@@ -21,6 +21,11 @@
       "navigationBarTitleText": "工作台"
     }
   }, {
+    "path": "pages/faxian/index",
+    "style": {
+      "navigationBarTitleText": "发现"
+    }
+  }, {
     "path": "pages/mine/index",
     "style": {
       "navigationBarTitleText": "我的"
@@ -61,6 +66,11 @@
       "navigationBarTitleText": "关于我们"
     }
   }, {
+    "path": "pages/mine/xiao/index",
+    "style": {
+      "navigationBarTitleText": "小鹅通"
+    }
+  }, {
     "path": "pages/common/webview/index",
     "style": {
       "navigationBarTitleText": "浏览网页"
@@ -87,6 +97,11 @@
         "selectedIconPath": "static/images/tabbar/work_.png",
         "text": "工作台"
       }, {
+        "pagePath": "pages/faxian/index",
+        "iconPath": "static/images/tabbar/work.png",
+        "selectedIconPath": "static/images/tabbar/work_.png",
+        "text": "发现"
+      }, {
         "pagePath": "pages/mine/index",
         "iconPath": "static/images/tabbar/mine.png",
         "selectedIconPath": "static/images/tabbar/mine_.png",

+ 235 - 197
pages/login.vue

@@ -1,31 +1,61 @@
 <template>
   <view class="normal-login-container">
     <view class="logo-content align-center justify-center flex">
-      <image style="width: 100rpx;height: 100rpx;" :src="globalConfig.appInfo.logo" mode="widthFix">
+      <image
+        style="width: 100rpx; height: 100rpx"
+        :src="globalConfig.appInfo.logo"
+        mode="widthFix"
+      >
       </image>
       <text class="title">小鹅通登录</text>
     </view>
     <view class="login-form-content">
       <view class="input-item flex align-center">
         <view class="iconfont icon-user icon"></view>
-        <input v-model="loginForm.username" class="input" type="text" placeholder="请输入账号" maxlength="30" />
+        <input
+          v-model="loginForm.username"
+          class="input"
+          type="text"
+          placeholder="请输入账号"
+          maxlength="30"
+        />
       </view>
       <view class="input-item flex align-center">
         <view class="iconfont icon-password icon"></view>
-        <input v-model="loginForm.password" type="password" class="input" placeholder="请输入密码" maxlength="20" />
+        <input
+          v-model="loginForm.password"
+          type="password"
+          class="input"
+          placeholder="请输入密码"
+          maxlength="20"
+        />
       </view>
-      <view class="input-item flex align-center" style="width: 60%;margin: 0px;" v-if="captchaEnabled">
+      <view
+        class="input-item flex align-center"
+        style="width: 60%; margin: 0px"
+        v-if="captchaEnabled"
+      >
         <view class="iconfont icon-code icon"></view>
-        <input v-model="loginForm.code" type="number" class="input" placeholder="请输入验证码" maxlength="4" />
-        <view class="login-code"> 
+        <input
+          v-model="loginForm.code"
+          type="number"
+          class="input"
+          placeholder="请输入验证码"
+          maxlength="4"
+        />
+        <view class="login-code">
           <image :src="codeUrl" @click="getCode" class="login-code-img"></image>
         </view>
       </view>
       <view class="action-btn">
-        <button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">登录</button>
-		<button @click="wxHandleLogin" class="login-btn cu-btn block bg-green lg round">微信授权登录</button>
+        <button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">
+          登录
+        </button>
+        <button @click="wxHandleLogin" class="login-btn cu-btn block bg-green lg round">
+          微信授权登录
+        </button>
       </view>
-      <view class="reg text-center" >
+      <view class="reg text-center">
         <text class="text-grey1">没有账号?</text>
         <text @click="handleUserRegister" class="text-blue">立即注册</text>
       </view>
@@ -35,221 +65,229 @@
         <text @click="handlePrivacy" class="text-blue">《隐私协议》</text>
       </view>
     </view>
-     
   </view>
 </template>
 
 <script>
-  import { getCodeImg } from '@/api/login'
-
-  export default {
-    data() {
-      return {
-        codeUrl: "",
-        captchaEnabled: true,
-        // 用户注册开关
-        register: false,
-        globalConfig: getApp().globalData.config,
-        loginForm: {
-          username: "admin",
-          password: "admin123",
-          code: "",
-          uuid: ""
-        },
-		// 微信登录
-		wxLoginForm: {
-			code: "",
-			encryptedIv: "",
-			encryptedData: ""
-		}
-      }
-    },
-    created() {
-      this.getCode()
-    },
-    methods: {
-      // 用户注册
-      handleUserRegister() {
-        this.$tab.redirectTo(`/pages/register`)
-      },
-      // 隐私协议
-      handlePrivacy() {
-        let site = this.globalConfig.appInfo.agreements[0]
-        this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
-      },
-      // 用户协议
-      handleUserAgrement() {
-        let site = this.globalConfig.appInfo.agreements[1]
-        this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
-      },
-      // 获取图形验证码
-      getCode() {
-        getCodeImg().then(res => {
-          this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
-          if (this.captchaEnabled) {
-            this.codeUrl = 'data:image/gif;base64,' + res.img
-            this.loginForm.uuid = res.uuid
-          }
-        })
+import { getCodeImg } from "@/api/login";
+
+export default {
+  data() {
+    return {
+      codeUrl: "",
+      captchaEnabled: true,
+      // 用户注册开关
+      register: false,
+      globalConfig: getApp().globalData.config,
+      loginForm: {
+        username: "admin",
+        password: "admin123",
+        code: "",
+        uuid: "",
       },
-	  // 微信授权登录
-      async wxHandleLogin() {
-		console.log("微信小程序发起授权登录")
-        this.$modal.loading("登录中,请耐心等待...")
-		// 获取服务商信息
-		uni.getProvider({
-			service: "oauth",
-			success: (res) => {
-				console.log(res);
-				if(~res.provider.indexOf("weixin")){
-					// 登录
-					uni.login({
-						provider: "weixin",
-						success: (loginRes) => {
-							console.log("登录", loginRes);
-							this.wxLoginForm.code = loginRes.code;
-							// 获取用户信息
-							uni.getUserInfo({
-								success: (resInfo) => {
-									console.log("用户信息", resInfo)
-									// 设置偏移量和加密数据
-									this.wxLoginForm.encryptedIv = resInfo.iv;
-									this.wxLoginForm.encryptedData = resInfo.encryptedData;
-									// 向后端发起登录请求 TODO
-									this.sendWxLoginFormToLocalService();
-								}
-							})
-						}
-					})
-				}
-			}
-		})
+      // 微信登录
+      wxLoginForm: {
+        code: "",
+        encryptedIv: "",
+        encryptedData: "",
       },
-	  // 向后端发起登录请求
-	  sendWxLoginFormToLocalService(){
-		  console.log("向后端发起登录请求..............")
-		  this.$store.dispatch('wxLogin', this.wxLoginForm).then(() => {
-		    this.$modal.closeLoading()
-		    this.loginSuccess()
-		  }).catch(() => {
-			  this.$modal.msgError("微信登录失败")
-		    // if (this.captchaEnabled) {
-		    //   this.getCode()
-		    // }
-		  })
-	  },
-      // 登录方法
-      async handleLogin() {
-        if (this.loginForm.username === "") {
-          this.$modal.msgError("请输入账号")
-        } else if (this.loginForm.password === "") {
-          this.$modal.msgError("请输入密码")
-        } else if (this.loginForm.code === "" && this.captchaEnabled) {
-          this.$modal.msgError("请输入验证码")
-        } else {
-          this.$modal.loading("登录中,请耐心等待...")
-          this.pwdLogin()
+    };
+  },
+  created() {
+    this.getCode();
+  },
+  methods: {
+    // 用户注册
+    handleUserRegister() {
+      this.$tab.redirectTo(`/pages/register`);
+    },
+    // 隐私协议
+    handlePrivacy() {
+      let site = this.globalConfig.appInfo.agreements[0];
+      this.$tab.navigateTo(
+        `/pages/common/webview/index?title=${site.title}&url=${site.url}`
+      );
+    },
+    // 用户协议
+    handleUserAgrement() {
+      let site = this.globalConfig.appInfo.agreements[1];
+      this.$tab.navigateTo(
+        `/pages/common/webview/index?title=${site.title}&url=${site.url}`
+      );
+    },
+    // 获取图形验证码
+    getCode() {
+      getCodeImg().then((res) => {
+        this.captchaEnabled =
+          res.captchaEnabled === undefined ? true : res.captchaEnabled;
+        if (this.captchaEnabled) {
+          this.codeUrl = "data:image/gif;base64," + res.img;
+          this.loginForm.uuid = res.uuid;
         }
-      },
-      // 密码登录
-      async pwdLogin() {
-        this.$store.dispatch('Login', this.loginForm).then(() => {
-          this.$modal.closeLoading()
-          this.loginSuccess()
-        }).catch(() => {
-          if (this.captchaEnabled) {
-            this.getCode()
+      });
+    },
+    // 微信授权登录
+    async wxHandleLogin() {
+      console.log("微信小程序发起授权登录");
+      this.$modal.loading("登录中,请耐心等待...");
+      // 获取服务商信息
+      uni.getProvider({
+        service: "oauth",
+        success: (res) => {
+          console.log(res);
+          if (~res.provider.indexOf("weixin")) {
+            // 登录
+            uni.login({
+              provider: "weixin",
+              success: (loginRes) => {
+                console.log("登录", loginRes);
+                this.wxLoginForm.code = loginRes.code;
+                // 获取用户信息
+                uni.getUserInfo({
+                  success: (resInfo) => {
+                    console.log("用户信息", resInfo);
+                    // 设置偏移量和加密数据
+                    this.wxLoginForm.encryptedIv = resInfo.iv;
+                    this.wxLoginForm.encryptedData = resInfo.encryptedData;
+                    // 向后端发起登录请求 TODO
+                    this.sendWxLoginFormToLocalService();
+                  },
+                });
+              },
+            });
           }
+        },
+      });
+    },
+    // 向后端发起登录请求
+    sendWxLoginFormToLocalService() {
+      console.log("向后端发起登录请求..............");
+      this.$store
+        .dispatch("wxLogin", this.wxLoginForm)
+        .then(() => {
+          this.$modal.closeLoading();
+          this.loginSuccess();
         })
-      },
-      // 登录成功后,处理函数
-      loginSuccess(result) {
-        // 设置用户信息
-        this.$store.dispatch('GetInfo').then(res => {
-          this.$tab.reLaunch('/pages/index')
-        })
+        .catch(() => {
+          this.$modal.msgError("微信登录失败");
+          // if (this.captchaEnabled) {
+          //   this.getCode()
+          // }
+        });
+    },
+    // 登录方法
+    async handleLogin() {
+      if (this.loginForm.username === "") {
+        this.$modal.msgError("请输入账号");
+      } else if (this.loginForm.password === "") {
+        this.$modal.msgError("请输入密码");
+      } else if (this.loginForm.code === "" && this.captchaEnabled) {
+        this.$modal.msgError("请输入验证码");
+      } else {
+        this.$modal.loading("登录中,请耐心等待...");
+        this.pwdLogin();
       }
-    }
-  }
+    },
+    // 密码登录
+    async pwdLogin() {
+      this.$store
+        .dispatch("Login", this.loginForm)
+        .then(() => {
+          this.$modal.closeLoading();
+          this.loginSuccess();
+        })
+        .catch(() => {
+          if (this.captchaEnabled) {
+            this.getCode();
+          }
+        });
+    },
+    // 登录成功后,处理函数
+    loginSuccess(result) {
+      // 设置用户信息
+      this.$store.dispatch("GetInfo").then((res) => {
+        this.$tab.reLaunch("/pages/index");
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-  page {
-    background-color: #ffffff;
-  }
+page {
+  background-color: #ffffff;
+}
+
+.normal-login-container {
+  width: 100%;
 
-  .normal-login-container {
+  .logo-content {
     width: 100%;
+    font-size: 21px;
+    text-align: center;
+    padding-top: 15%;
 
-    .logo-content {
-      width: 100%;
-      font-size: 21px;
-      text-align: center;
-      padding-top: 15%;
+    image {
+      border-radius: 4px;
+    }
 
-      image {
-        border-radius: 4px;
-      }
+    .title {
+      margin-left: 10px;
+    }
+  }
+
+  .login-form-content {
+    text-align: center;
+    margin: 20px auto;
+    margin-top: 15%;
+    width: 80%;
+
+    .input-item {
+      margin: 20px auto;
+      background-color: #f5f6f7;
+      height: 45px;
+      border-radius: 20px;
 
-      .title {
+      .icon {
+        font-size: 38rpx;
         margin-left: 10px;
+        color: #999;
+      }
+
+      .input {
+        width: 100%;
+        font-size: 14px;
+        line-height: 20px;
+        text-align: left;
+        padding-left: 15px;
       }
     }
 
-    .login-form-content {
-      text-align: center;
-      margin: 20px auto;
-      margin-top: 15%;
-      width: 80%;
-
-      .input-item {
-        margin: 20px auto;
-        background-color: #f5f6f7;
-        height: 45px;
-        border-radius: 20px;
-
-        .icon {
-          font-size: 38rpx;
-          margin-left: 10px;
-          color: #999;
-        }
+    .login-btn {
+      margin-top: 40px;
+      height: 45px;
+    }
 
-        .input {
-          width: 100%;
-          font-size: 14px;
-          line-height: 20px;
-          text-align: left;
-          padding-left: 15px;
-        }
+    .reg {
+      margin-top: 15px;
+    }
 
-      }
+    .xieyi {
+      color: #333;
+      margin-top: 20px;
+    }
 
-      .login-btn {
-        margin-top: 40px;
-        height: 45px;
-      }
-      
-      .reg {
-        margin-top: 15px;
-      }
-      
-      .xieyi {
-        color: #333;
-        margin-top: 20px;
-      }
-      
-      .login-code {
+    .login-code {
+      height: 38px;
+      float: right;
+
+      .login-code-img {
         height: 38px;
-        float: right;
-      
-        .login-code-img {
-          height: 38px;
-          position: absolute;
-          margin-left: 10px;
-          width: 200rpx;
-        }
+        position: absolute;
+        margin-left: 10px;
+        width: 200rpx;
       }
     }
   }
-
+}
 </style>

+ 43 - 19
pages/mine/index.vue

@@ -27,49 +27,71 @@
 
     <view class="content-section">
       <view class="mine-actions grid col-4 text-center">
-        <view class="action-item" @click="handleJiaoLiuQun">
-          <view class="iconfont icon-friendfill text-pink icon"></view>
-          <text class="text">交流群</text>
+        <view class="action-item" @click="handleBuilding">
+          <view class="iconfont1 icon-rili text-green icon"></view>
+          <text class="text">日历</text>
         </view>
         <view class="action-item" @click="handleBuilding">
-          <view class="iconfont icon-service text-blue icon"></view>
-          <text class="text">在线客服</text>
+          <view class="iconfont1 icon-wodexiazai text-blue icon"></view>
+          <text class="text">我的下载</text>
         </view>
         <view class="action-item" @click="handleBuilding">
-          <view class="iconfont icon-community text-mauve icon"></view>
-          <text class="text">反馈社区</text>
+          <view class="iconfont1 icon-cuotiben text-blue icon"></view>
+          <text class="text">错题本</text>
         </view>
         <view class="action-item" @click="handleBuilding">
-          <view class="iconfont icon-dianzan text-green icon"></view>
-          <text class="text">点赞我们</text>
+          <view class="iconfont1 icon-chaojihuiyuan text-green icon"></view>
+          <text class="text">超级会员</text>
         </view>
+		<view class="action-item" @click="handleBuilding">
+		  <view class="iconfont1 icon-dianpu text-blue icon"></view>
+		  <text class="text">订阅店铺</text>
+		</view>
       </view>
 
       <view class="menu-list">
         <view class="list-cell list-cell-arrow" @click="handleToEditInfo">
           <view class="menu-item-box">
-            <view class="iconfont icon-user menu-icon"></view>
-            <view>编辑资料</view>
+            <view class="iconfont1 icon-dianpuhoutai menu-icon"></view>
+            <view>商家店铺后台</view>
           </view>
         </view>
         <view class="list-cell list-cell-arrow" @click="handleHelp">
           <view class="menu-item-box">
-            <view class="iconfont icon-help menu-icon"></view>
-            <view>常见问题</view>
+            <view class="iconfont1 icon-huishouzhan menu-icon"></view>
+            <view>回收站</view>
           </view>
         </view>
         <view class="list-cell list-cell-arrow" @click="handleAbout">
           <view class="menu-item-box">
-            <view class="iconfont icon-aixin menu-icon"></view>
-            <view>关于我们</view>
+            <view class="iconfont1 icon-tongzhishezhi menu-icon"></view>
+            <view>通知设置</view>
           </view>
         </view>
         <view class="list-cell list-cell-arrow" @click="handleToSetting">
           <view class="menu-item-box">
-            <view class="iconfont icon-setting menu-icon"></view>
-            <view>应用设置</view>
+            <view class="iconfont1 icon-yijianfankui menu-icon"></view>
+            <view>意见反馈</view>
           </view>
         </view>
+		<view class="list-cell list-cell-arrow" @click="handleToSetting">
+		  <view class="menu-item-box">
+		    <view class="iconfont1 icon-zaixiankefu menu-icon"></view>
+		    <view>在线客服</view>
+		  </view>
+		</view>
+		<view class="list-cell list-cell-arrow" @click="handleToXiao">
+		  <view class="menu-item-box">
+		    <view class="iconfont1 icon-lejiexiaoetong menu-icon"></view>
+		    <view>了解小鹅通</view>
+		  </view>
+		</view>
+		<view class="list-cell list-cell-arrow" @click="handleToSetting">
+		  <view class="menu-item-box">
+		    <view class="iconfont1 icon-shezhi menu-icon"></view>
+		    <view>设置</view>
+		  </view>
+		</view>
       </view>
 
     </view>
@@ -113,8 +135,8 @@
       handleAbout() {
         this.$tab.navigateTo('/pages/mine/about/index')
       },
-      handleJiaoLiuQun() {
-        this.$modal.showToast('QQ群:①133713780(满)、②146013835(满)、③189091635')
+      handleToXiao() {
+        this.$tab.navigateTo('/pages/mine/xiao/index')
       },
       handleBuilding() {
         this.$modal.showToast('模块建设中~')
@@ -124,6 +146,8 @@
 </script>
 
 <style lang="scss" scoped>
+
+  @import '@/static/fontico/iconfont.css';
   page {
     background-color: #f5f6f7;
   }