浏览代码

+ 与会企业行程

chen.cheng 11 月之前
父节点
当前提交
69b4c203ac

+ 7 - 0
components/AuthComp/index.scss

@@ -0,0 +1,7 @@
+.auth-wrap {
+  width: 100%;
+}
+
+page {
+  height: 100%;
+}

+ 32 - 0
components/AuthComp/index.vue

@@ -0,0 +1,32 @@
+<template>
+  <view class="auth-wrap"  v-if="show">
+    <slot name="content"></slot>
+  </view>
+</template>
+
+<script>
+import { authLogin } from '@/util';
+
+export default {
+  name: 'auth-wrap',
+  props: {},
+  data() {
+    return { show: false };
+  },
+  created() {
+  },
+  mounted() {
+    authLogin(() => {
+      this.show = true;
+    });
+  },
+  methods: {
+    reloadPage() {
+      authLogin(() => {
+        this.show = true;
+      });
+    }
+  },
+};
+</script>
+<style lang="scss" src="./index.scss" />

+ 2 - 6
package.json

@@ -39,9 +39,7 @@
 				"env": {
 					"UNI_PLATFORM": "mp-weixin",
 					"UNI_FILE_PREFIX": "http://127.0.0.1:8080/tfc",
-					"UNI_API_PREFIX": "http://127.0.0.1:8080/tfc",
-					"UNI_WX_APPID": "wxf385eefdd03327fd",
-					"UNI_WX_AS": "7bca97ad298a17539c7c75a5bf337063"
+					"UNI_API_PREFIX": "http://127.0.0.1:8080/tfc"
 				},
 				"define": {
 					"MP-WEIXIN": true
@@ -52,9 +50,7 @@
 				"env": {
 					"UNI_PLATFORM": "mp-weixin",
 					"UNI_FILE_PREFIX": "http://127.0.0.1:8080/tfc",
-					"UNI_API_PREFIX": "http://127.0.0.1:8080/tfc/",
-					"UNI_WX_APPID": "wxf385eefdd03327fd",
-					"UNI_WX_AS": "7bca97ad298a17539c7c75a5bf337063"
+					"UNI_API_PREFIX": "http://127.0.0.1:8080/tfc/"
 				},
 				"define": {
 					"MP-WEIXIN": true

+ 12 - 0
pages.json

@@ -55,6 +55,18 @@
           }
         }
       ]
+    },
+    {
+      "root": "pasb",
+      "name": "sub-4",
+      "pages": [
+        {
+          "path": "pages/regist/index",
+          "style": {
+            "navigationBarTitleText": "会议报名"
+          }
+        }
+      ]
     }
   ],
   "globalStyle": {

+ 11 - 3
pages/tabbar/index/index.vue

@@ -15,6 +15,7 @@
         <u-grid-item
             v-for="(baseListItem,baseListIndex) in baseList"
             :key="baseListIndex"
+            @click="onItemClick(baseListItem)"
         >
           <view class="grid-item-icon" :style="[baseListItem.style]">
             <image :src="baseListItem.icon"></image>
@@ -40,11 +41,10 @@
 </template>
 
 <script>
-import { fetchContentInfo } from '@/common/api';
+import { fetchContentInfo, fetchMsgList, fetchViewCfgList } from '@/common/api';
+import { COMP_CODE } from '@/common/EnumConst';
 import ItemList from '@/components/ItemList/index.vue';
 import { getImageUrl } from '@/util';
-import { fetchMsgList, fetchViewCfgList } from '@/common/api';
-import { COMP_CODE } from '@/common/EnumConst';
 
 export default {
   components: {
@@ -119,6 +119,7 @@ export default {
             icon: getImageUrl(item.iconUri),
             style: JSON.parse(item.style),
             title: item.labelTxt,
+            url: item.url,
           };
         });
       }
@@ -128,6 +129,13 @@ export default {
         url: `/pages/tabbar/news/index?keyword=${val}`,
       });
     },
+    onItemClick(item) {
+      if (item.url) {
+        uni.navigateTo({
+          url: item.url,
+        });
+      }
+    },
   },
   onShareAppMessage() {
     return {

+ 23 - 22
pages/tabbar/my/index.vue

@@ -1,46 +1,47 @@
 <template>
-	<view class="fui-wrap">
-    <view class="user-info-bg">
-    </view>
-    <view class="ctl-container">
-      <view class="user-info-content">
-        <view class="user-info-img">
-          <u-avatar :src="src" shape="circle" :size="60"></u-avatar>
-        </view>
-        <view class="user-info">
-          <view>
-            微信用户
+  <auth-wrap class="fui-wrap" ref="authWrap">
+    <view slot="content">
+      <view class="user-info-bg">
+      </view>
+      <view class="ctl-container">
+        <view class="user-info-content">
+          <view class="user-info-img">
+            <u-avatar :src=" userInfo && userInfo.avatarUrl || ''" shape="circle" :size="60"></u-avatar>
           </view>
-          <view>
-            18120188135
+          <view class="user-info">
+            <view>
+              {{ userInfo.usrName || '' }}
+            </view>
+            <view>
+              {{ userInfo.tel || '' }}
+            </view>
           </view>
         </view>
-      </view>
 
-      <view class="ctl-panel">
+        <view class="ctl-panel">
 
+        </view>
       </view>
     </view>
-	</view>
+  </auth-wrap>
 </template>
 
 <script>
 
+import AuthWrap from '@/components/AuthComp/index.vue';
 import { getUserInfo } from '@/util';
 
 export default {
+  components: { AuthWrap },
 		data() {
 			return {
+        userInfo: {},
         src: 'http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg',
       }
 		},
 		onLoad() {
-      // const user = getUserInfo();
-      // if (!user) {
-      //   uni.navigateTo({
-      //     url: '/pasb/pages/login/index',
-      //   });
-      // }
+      this.$refs.authWrap.reloadPage();
+      this.userInfo = getUserInfo();
 		},
 		methods: {
 		},

+ 13 - 1
pasb/pages/login/index.vue

@@ -69,8 +69,11 @@ export default {
             },
             success: (res) => {
               if (res.data && res.data.code === 200) {
+                const { data } = res.data;
                 // 将用户信息和session存储到本地
-                setStorageObj('userInfo', res.data);
+                setStorageObj('userInfo', data.user);
+                setStorageObj('token', data.token);
+                this.realoadPage();
               } else {
                 uni.showToast({
                   title: '登录失败',
@@ -95,6 +98,15 @@ export default {
         },
       });
     },
+    realoadPage() {
+      let pages = getCurrentPages();  //获取当前页面
+      let beforePage = pages[pages.length - 2];  //获取上一个页面的实例
+      //1、调用上一个页面onLoad
+      beforePage.onLoad();
+      uni.navigateBack({
+        delta: 1,
+      });
+    },
   },
 };
 </script>

+ 16 - 0
pasb/pages/regist/index.scss

@@ -0,0 +1,16 @@
+.register-container {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  align-items: center;
+  padding: 20rpx;
+  box-sizing: border-box;
+  /deep/ .form-content{
+
+  }
+}
+page {
+  height: 100%;
+}

+ 117 - 0
pasb/pages/regist/index.vue

@@ -0,0 +1,117 @@
+<template>
+  <auth-wrap class="register-container" ref="authWrap">
+    <view class="form-content" slot="content">
+      <u--form
+          labelPosition="left"
+          :model="model1"
+          :rules="rules"
+          ref="uForm"
+      >
+        <u-form-item
+            prop="userInfo.name"
+            borderBottom
+            ref="item1"
+        >
+          <u--input
+              prefixIcon="account"
+              v-model="model1.userInfo.name"
+              border="none"
+          ></u--input>
+        </u-form-item>
+        <u-form-item
+            prop="userInfo.tel"
+            borderBottom
+            ref="item1"
+        >
+          <u--input
+              prefixIcon="phone"
+              placeholder="输入手机号"
+              border="none"
+              v-model="model1.userInfo.tel"
+          ></u--input>
+        </u-form-item>
+
+        <u-form-item
+            label="性别"
+            prop="userInfo.sex"
+            borderBottom
+        >
+          <u--input
+              v-model="model1.userInfo.sex"
+              disabled
+              disabledColor="#ffffff"
+              placeholder="请选择性别"
+              border="none"
+          ></u--input>
+          <u-icon
+              slot="right"
+              name="arrow-right"
+          ></u-icon>
+        </u-form-item>
+      </u--form>
+    </view>
+  </auth-wrap>
+</template>
+
+<script>
+
+import { ICON_CFG } from '@/common/EnumConst';
+import AuthWrap from '@/components/AuthComp/index.vue';
+import { getImageUrl, setStorageObj } from '@/util';
+
+export default {
+  name: 'login',
+  components: { AuthWrap },
+  props: {},
+  data() {
+    return {
+      ICON_CFG,
+      model1: {
+        userInfo: {
+          name: 'uView UI',
+          sex: '',
+        },
+      },
+      actions: [{
+        name: '男',
+      },
+        {
+          name: '女',
+        },
+        {
+          name: '保密',
+        },
+      ],
+      rules: {
+        'userInfo.name': {
+          type: 'string',
+          required: true,
+          message: '请填写姓名',
+          trigger: ['blur', 'change']
+        },
+        'userInfo.sex': {
+          type: 'string',
+          max: 1,
+          required: true,
+          message: '请选择男或女',
+          trigger: ['blur', 'change']
+        },
+      },
+    };
+  },
+  created() {
+  },
+  onLoad() {
+    //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
+    this.$refs.uForm.setRules(this.rules)
+  },
+  onReady() {
+    //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
+    this.$refs.uForm.setRules(this.rules)
+  },
+  methods: {
+    getImageUrl,
+  },
+};
+</script>
+<style lang="scss" src="./index.scss" />;

+ 20 - 1
util/index.js

@@ -42,7 +42,7 @@ export const viewFileFn = (fileUrl, fileName, fileSuffix) => { // 文件url 文
     },
   });
 };
-export const setStorageObj = (key, value = {}) => {
+export const setStorageObj = (key, value) => {
   const json = JSON.stringify(value);
   uni.setStorageSync(key, json);
 };
@@ -62,3 +62,22 @@ export const getUserInfo = () => {
   }
   return userInfo;
 };
+
+export const getToken = () => {
+  const token = getStorageObj('token');
+  if (!token) {
+    return null;
+  }
+  return token;
+};
+
+export const authLogin = (callback) => {
+  const user = getUserInfo();
+  if (!user) {
+    uni.navigateTo({
+      url: '/pasb/pages/login/index',
+    });
+    return;
+  }
+  callback(user);
+};