Browse Source

Merge branch 'master' of http://git.cc-lotus.info/ball-court/court-badminton

zs 2 years ago
parent
commit
3ce71df399

+ 7 - 1
app.js

@@ -1,4 +1,5 @@
 import * as httpUtil from "./utils/httpUtil";
+import $checkRes from './utils/checkRes'
 const app = getApp();
 App({
   onLaunch() {
@@ -27,6 +28,11 @@ App({
     publicUrl: 'https://broadcast.waityou24.cn',
     //图片请求接口域名
     fileUrl: "http://broadcast.waityou24.cn",
+    // 微信路由前缀
+    wechatPrefix: '/wechat/api/',
+    // 业务路由前缀
+    prefix: '/newCourt/api'
   },
-  ...httpUtil
+  ...httpUtil,
+  $checkRes
 })

+ 3 - 1
app.json

@@ -1,11 +1,13 @@
 {
     "pages": [
         "pages/index/index",
+        "pages/login/index",
         "pages/home/index",
         "pages/news/index",
         "pages/topic/index",
         "pages/my/index",
-        "pages/test/index"
+        "pages/test/index",
+        "pages/register/index"
     ],
     "usingComponents": {
         "van-sidebar": "@vant/weapp/sidebar/index",

+ 65 - 0
commpents/form/index.js

@@ -0,0 +1,65 @@
+// commpents/form/index.js
+const app = getApp()
+Component({
+    options: {
+        multipleSlots: true // 在组件定义时的选项中启用多 slot 支持
+    },
+    /**
+     * 组件的属性列表
+     */
+    properties: {
+        fields: { type: Array },
+    },
+
+    /**
+     * 组件的初始数据
+     */
+    data: {
+        form: {},
+        isSubmit: false,
+        fileList: [],
+        columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
+    },
+
+    /**
+     * 组件的方法列表
+     */
+    methods: {
+        toSubmit() {
+            console.log('function in ')
+            console.log(this.data.form)
+        },
+        selectChange(event) {
+
+        },
+        onChange(event) {
+            // event.detail 为当前输入的值
+            const data = this.data.form;
+            const model = event.target?.dataset?.model;
+            const value = event?.detail;
+            if (!model) return;
+            console.log(data, model, value)
+            data[model] = value;
+            this.setData({ form: data })
+        },
+        afterRead(event) {
+            const { file } = event.detail;
+            console.log(file)
+            let formdata = new FormData();
+            formdata.append('file', file, file.name);
+            const url = `${app.globalData.fileUrl}/files/newCourt/icon/upload`;
+            wx.request({
+                url,
+                method: "post",
+                data: formdata,
+                header: { 'Content-Type': 'multipart/form-data' },
+                success: (res) => {
+                    console.log(res)
+                },
+                error: (e) => {
+                    console.log(e)
+                },
+            });
+        },
+    }
+})

+ 10 - 0
commpents/form/index.json

@@ -0,0 +1,10 @@
+{
+    "component": true,
+    "usingComponents": {
+        "van-field": "@vant/weapp/field/index",
+        "van-cell": "@vant/weapp/cell/index",
+        "van-cell-group": "@vant/weapp/cell-group/index",
+        "van-button": "@vant/weapp/button/index",
+        "van-uploader": "@vant/weapp/uploader/index"
+    }
+}

+ 28 - 0
commpents/form/index.wxml

@@ -0,0 +1,28 @@
+<!--commpents/form/index.wxml-->
+<van-cell-group>
+    <view wx:for="{{fields}}" wx:for-item="f" wx:key="model">
+        <view wx:if="{{f.type==='select'}}">
+            <van-field label="{{f.label}}">
+                <view slot="input">
+                    <van-picker columns="{{ columns }}" bind:change="selectChange" data-model="{{f.model}}" />
+                </view>
+            </van-field>
+        </view>
+        <view wx:elif="{{f.type==='upload'}}">
+            <!-- <van-field label="{{f.label}}">
+                
+            </van-field> -->
+            <view style="text-align:center">
+                <van-uploader file-list="{{ fileList }}" bind:after-read="afterRead" />
+            </view>
+        </view>
+        <view wx:else>
+            <van-field label="{{f.label}}" value="{{form[f.model]}}" bind:change="onChange" data-model="{{f.model}}">
+            </van-field>
+        </view>
+    </view>
+</van-cell-group>
+
+<view style="padding:10px 0">
+    <van-button style="width:100%" round type="primary" block disabled="{{isSubmit}}" bind:click="toSubmit">注册</van-button>
+</view>

+ 5 - 0
commpents/form/index.wxss

@@ -0,0 +1,5 @@
+/* commpents/form/index.wxss */
+.i__class {
+    height: 50px;
+    color: red;
+}

+ 79 - 79
pages/index/index.js

@@ -1,88 +1,88 @@
-const app = getApp()
+const app = getApp();
 Page({
-    data: {
-        frameStyle: { useTop: true, name: '系统', leftArrow: false, useBar: false },
-    },
-    /**
-     * 生命周期函数--监听页面加载
-     */
-    onLoad: function (options) {
-        const that = this;
-        // 监听用户是否登录
-        that.watchLogin();
-    },
+  data: {
+    frameStyle: { useTop: true, name: '系统', leftArrow: false, useBar: false },
+  },
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    const that = this;
     // 监听用户是否登录
-    watchLogin: async function () {
-        // 监听用户是否登录,
-        wx.getStorage({
-            key: 'user',
-            success: async res => {
-                // if (res.data) wx.redirectTo({ url: '/pages/home/index' })
-            },
-            fail: async res => {
-                wx.redirectTo({ url: '/pages/home/index' })
-                // wx.login({
-                //     success: async arr => {
-                //         const { code: js_code } = arr;
-                //         const aee = await app.$get('/api/hc/wx/openid', { js_code: js_code });
-                //         if (aee.errcode === 0 && aee.openid) {
-                //             app.globalData.wxInfo = { openid: aee.openid };
-                //             // wx.redirectTo({ url: '/pages/login/index' })
-                //         } else {
-                //             wx.showToast({ title: `${res.errMsg}`, icon: 'fail', duration: 2000 })
-                //             x.redirectTo({ url: '/pages/login/index' })
-                //         }
-                //     }
-                // })
+    that.watchLogin();
+  },
+  // 监听用户是否登录
+  watchLogin: async function () {
+    // 监听用户是否登录,
+    wx.getStorage({
+      key: 'user',
+      success: async (res) => {
+        // if (res.data) wx.redirectTo({ url: '/pages/home/index' })
+      },
+      fail: async (res) => {
+        wx.redirectTo({ url: '/pages/home/index' });
+        wx.login({
+          success: async (arr) => {
+            const { code: js_code } = arr;
+            const aee = await app.$get('/wechat/api/login/app', { js_code: js_code, config: 'newCourtApp' });
+            if (aee.errcode === 0 && aee.data?.openid) {
+              const openid = aee.data.openid;
+              app.globalData.wxInfo = { openid };
+              await this.toLogin(openid);
+            } else {
+              wx.showToast({ title: `${res.errMsg}`, icon: 'fail', duration: 2000 });
+              wx.redirectTo({ url: '/pages/login/index' });
             }
-        })
-    },
-    /**
-     * 生命周期函数--监听页面初次渲染完成
-     */
-    onReady: function () {
-
-    },
-
-    /**
-     * 生命周期函数--监听页面显示
-     */
-    onShow: function () {
-
-    },
-
-    /**
-     * 生命周期函数--监听页面隐藏
-     */
-    onHide: function () {
-
-    },
-
-    /**
-     * 生命周期函数--监听页面卸载
-     */
-    onUnload: function () {
-
-    },
+          },
+        });
+      },
+    });
+  },
+  async toLogin(openid) {
+    const res = await app.$post('/newCourt/api/user/wxAppLogin', { openid });
+    if (app.$checkRes(res)) {
+      const { data } = res;
+      // 没有用户,去注册
+      if (!data) wx.redirectTo({ url: '/pages/register/index' });
+      else {
+        // 有用户,存起来,跳转
+        wx.setStorage('user', data);
+        wx.redirectTo({ url: '/pages/home/index' });
+      }
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {},
 
-    /**
-     * 页面相关事件处理函数--监听用户下拉动作
-     */
-    onPullDownRefresh: function () {
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {},
 
-    },
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {},
 
-    /**
-     * 页面上拉触底事件的处理函数
-     */
-    onReachBottom: function () {
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {},
 
-    },
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {},
 
-    /**
-     * 用户点击右上角分享
-     */
-    onShareAppMessage: function () {
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {},
 
-    }
-})
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {},
+});

+ 65 - 0
pages/login/index.js

@@ -0,0 +1,65 @@
+const app = getApp()
+Page({
+    data: {
+        frameStyle: { useTop: true, name: '登录', leftArrow: false, useBar: false },
+    },
+    // 去注册
+    toRegister: function () {
+        wx.navigateTo({ url: '/pages/register/index' })
+    },
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) {
+        const that = this;
+
+    },
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    onReachBottom: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
+
+    }
+})

+ 6 - 0
pages/login/index.json

@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "mobile-main": "/commpents/mobile-frame/index"
+  }
+}

+ 4 - 0
pages/login/index.less

@@ -0,0 +1,4 @@
+.main {
+    height: 80.8vh;
+    background-color: #ff0000;
+}

+ 5 - 0
pages/login/index.wxml

@@ -0,0 +1,5 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back" bind:tabPath="tabPath">
+    <view slot="info" class="container main">
+        登录
+    </view>
+</mobile-main>

+ 4 - 0
pages/login/index.wxss

@@ -0,0 +1,4 @@
+.main {
+  height: 80.8vh;
+  background-color: #ff0000;
+}

+ 61 - 0
pages/register/index.js

@@ -0,0 +1,61 @@
+// pages/register/index.js
+Page({
+    /**
+     * 页面的初始数据
+     */
+    data: {
+        frameStyle: { useTop: true, name: '注册', leftArrow: false, useBar: false },
+        form: {},
+        fields: [
+            { label: '头像', model: 'icon', type: "upload" },
+            { label: '姓名', model: 'name' },
+            { label: '性别', model: 'gender', type: 'select' },
+            { label: '手机号', model: 'phone' },
+            { label: '邮箱', model: 'email' },
+        ]
+    },
+
+    onChange(val) {
+        console.log(val);
+    },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad(options) { },
+
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady() { },
+
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow() { },
+
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide() { },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload() { },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh() { },
+
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    onReachBottom() { },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage() { },
+});

+ 6 - 0
pages/register/index.json

@@ -0,0 +1,6 @@
+{
+    "usingComponents": {
+        "mobile-main": "/commpents/mobile-frame/index",
+        "f-form": "/commpents/form/index"
+    }
+}

+ 4 - 0
pages/register/index.less

@@ -0,0 +1,4 @@
+.main {
+    height: 80.8vh;
+    background-color: #ff0000;
+}

+ 16 - 0
pages/register/index.wxml

@@ -0,0 +1,16 @@
+<mobile-main frameStyle="{{frameStyle}}" bind:back="back" bind:tabPath="tabPath">
+    <view slot="info" class="container main">
+        <view style="width:100%">
+            <!-- <van-cell-group>
+                <van-field label="头像" value="{{ form.name }}" placeholder="请输入姓名" border="{{ true }}" bind:change="onChange" />
+                <van-field label="姓名" value="{{ form.name }}" placeholder="请输入姓名" border="{{ true }}" bind:change="onChange" />
+                <van-field label="性别" value="{{ form.gender }}" placeholder="请输入姓名" border="{{ true }}" bind:change="onChange" />
+                <van-field label="手机号" value="{{ form.phone }}" placeholder="请输入手机号" border="{{ true }}" bind:change="onChange" />
+                <van-field label="邮箱" value="{{ form.email }}" placeholder="请输入邮箱" border="{{ true }}" bind:change="onChange" />
+            </van-cell-group> -->
+            <f-form fields="{{fields}}"></f-form>
+        </view>
+    </view>
+
+
+</mobile-main>

+ 4 - 0
pages/register/index.wxss

@@ -0,0 +1,4 @@
+.main {
+  height: 80.8vh;
+  background-color: #ff0000;
+}

+ 1 - 1
project.config.json

@@ -45,7 +45,7 @@
         "minifyWXML": true,
         "showES6CompileOption": false,
         "useCompilerPlugins": false,
-        "ignoreUploadUnusedFiles": true,
+        "ignoreUploadUnusedFiles": false,
         "useStaticServer": true
     },
     "compileType": "miniprogram",

+ 8 - 0
utils/checkRes.js

@@ -0,0 +1,8 @@
+// 请求是否正确
+module.exports =  (res) => {
+    const { errcode = 0, errmsg } = res || {};
+    if (errcode === 0) {
+        return true;
+    }
+    return false;
+}

+ 16 - 6
utils/httpUtil.js

@@ -1,7 +1,14 @@
-let baseUrl = "https://broadcast.waityou24.cn";
+let serverUrl = "http://127.0.0.1:15000";
+let wechatUrl = 'https://broadcast.waityou24.cn';
+
+const getDomain = (uri) => {
+    if (uri.startsWith('/wechat/api')) return wechatUrl;
+    return serverUrl;
+}
+
 const $get = (uri, data) => {
     let app = getApp();
-    let tenant = app.tenant || "test";
+    let baseUrl = getDomain(uri);
     return new Promise((resolve, reject) => {
         wx.request({
             url: `${baseUrl}${uri}`,
@@ -15,7 +22,7 @@ const $get = (uri, data) => {
 };
 const $post = (uri, data) => {
     let app = getApp();
-    let tenant = app.tenant || "test";
+    let baseUrl = getDomain(uri);
     return new Promise((resolve, reject) => {
         wx.request({
             url: `${baseUrl}${uri}`,
@@ -29,13 +36,12 @@ const $post = (uri, data) => {
 };
 const $delete = (uri, data) => {
     let app = getApp();
-    let tenant = app.tenant || "test";
+    let baseUrl = getDomain(uri);
     return new Promise((resolve, reject) => {
         wx.request({
             url: `${baseUrl}${uri}`,
             method: "delete",
             data,
-            header: { "x-tenant": tenant },
             success: (res) => toResolve(resolve, res),
             error: (e) => toReject(reject, e),
         });
@@ -54,4 +60,8 @@ const toReject = (reject, result) => {
     reject(result);
 };
 
-module.exports = { $get, $post, $delete };
+module.exports = {
+    $get,
+    $post,
+    $delete
+};