其他分享
首页 > 其他分享> > 2018寒假web许永青答辩

2018寒假web许永青答辩

作者:互联网

2018寒假web许永青答辩

滑稽线下交易平台

这是我第一次参加答辩,由于寒假过年,感觉自己写的作品很简单,很多功能都没有实现,这是我写的一个滑稽线下交易平台,主要是掌握一些关于微信小程序的一些基础知识,本来是想写一个云端小卖部的,但能力有限无法实现。

1. 主要思想

这个就是一个简单的近距离闲杂物品的线下交易平台,可以出售和购买闲置物品,通过这次答辩我还是简单的微信小程序入门,学会了 一些简单的API调用。

2. 主要技术

主要是通过wxml和wxss和js来实现,但是由于技术不足,加上后台没有连接感觉这个答辩没有什么实质性上的用处,感觉真的和其他做微信小程序的学长学姐比起来真的差的有点远。

3. 主要功能介绍

  1. 登陆界面 ,一个简单的渐变动画,主要通过js和wxml来实现
    在这里插入图片描述
  2. 发布首页通过调用微信小程序官方发布的map接口来作为背景,主要是对用户的当前定位.
    在这里插入图片描述
    位置填写解决懒癌群众不想打字的心理
    在这里插入图片描述
  3. 发布信息的详情页面 主要用于用户填写基本信息
    在这里插入图片描述
  4. 搜索界面 主要是通过js来进行实现,这个搜索是照着别人的组件写的,以后i可以提取出来修改修改样式就剋以继续使用了,个人觉得这个大概是我这次答辩一个比较大的收获了
    在这里插入图片描述
  5. 其他界面就是一些简单的物品展示界面,以及信息发布成功的显示界面
    在这里插入图片描述

登陆界面

登陆首页动画的实现
[(旋转放大)页面,代码片.

data: {
    animationData: {}
  },
  onShow() {
    const animation = wx.createAnimation({
      duration:3000,
      timingFunction:'ease-in-out',
      delay:0,
      transformOrigin:'0 50% 50%'
      
    })
    this.animation = animation

    this.animation.rotate(360).scale(2, 2).step()
    this.animation.translate(80, 60).step({ duration: 1000 })


    this.setData({
  animationData:animation.export()
    })
  },

##关于发布首页API的调用和地址详情页ApI的调用

//发布首页
<view class="map-container">
  <map  id='map' class='map' longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location controls="{{controls}}" bindcontroltap="controltap"
></map>
</view>
Page({
  data: {
    longitude:"",
      latitude:"",
    controls: [{
      iconPath: '/resource/a.png',
      position: {
        left: (app.globalData.windowWidth / 2)-5,
        top: (app.globalData.windowHeight / 2)-30,
        width: 15,
        height: 15
      },
      clickable: true
    },
    {
      id: 1,
      iconPath: '/resource/b.png',
      position: {
        left: 30,
        top: app.globalData.windowHeight-70,
        width: 30,
        height: 30
      },
      clickable: true
    }]
  },
  controltap(){
    this.mapCtx.moveToLocation()
  },
  onReady(){
    this.mapCtx = wx.createMapContext('map')
  },
  onShow(){
    this.getLocation();
  },
  getLocation(){
    wx.getLocation({
      type: 'gcj02',
      success:this.handleGetLocationSucc.bind(this)
    })
  },
  handleGetLocationSucc(res){
    this.setData({
      longitude:res.longitude,
      latitude:res.latitude
    })

  },

})

地址自动搜索补全

<view class='row'>
    <label class='lab'>我的地址</label>
    <view class='info' bindtap='handleAddressClick'>{{address}}</view>
  </view>
Page({
  data: {
    address: "点击选择,要勾选哟~",

  },
  staticData: {},
  handleAddressClick() {

    wx.chooseLocation({
      success: this.handleChooseLocationsucc.bind(this)
    })
  },
  handleChooseLocationsucc(res) {
    this.setData({
      address: res.address
    });
  },
  onShareAppMessage(res) {
    return {
      title: '滑稽交易平台',
      path: '/pages/index/index'
    }
  },
  shuoMing(e) {
    this.setData({
      message: e.detail.value,
    })
  },
  contact(e) {
    this.setData({
      contact: e.detail.value,
    })
  },

关于用户信息的简单判断

 //注意老式定义变量的方式已经不行,参看微信公众号平台bindinput.
  handleSubmit() {
    if (this.data.address === "点击选择,要勾选哟~") {
      wx.showToast({
        title: '请填写地址',
        icon: 'loading',
        duration: 1000
      })
      return;
    }
    if (!this.data.message) {
      wx.showToast({
        title: '请填写说明',
        icon: 'loading',
        duration: 1000
      })
      return;
    }
    if (!this.data.contact) {
      wx.showToast({
        title: '请填写联系方式',
        icon: 'loading',
        duration: 1000
      })
      return;
    }
    if (this.data.contact&&this.data.message) {
      wx.navigateTo({
        url: '/pages/detall/detall'
        //加载绝对路径时url前加 /,不然页面无法跳转。
      })

    }
  }

关于搜索页

Page({
  data: {},

  // 搜索栏
  onl oad: function () {
    var that = this;
    WxSearch.init(
      that,  // 本页面一个引用
      ['红滑稽', '橙滑稽', "黄滑稽", "绿滑稽", '青滑稽', '蓝滑稽'], // 热点搜索推荐,[]表示不使用
      ['紫滑稽', '黑滑稽', '白滑稽', "灰滑稽", '张滑稽', '李滑稽', '王滑稽', "赵滑稽", '红滑稽', '橙滑稽', "黄滑稽", "绿滑稽", '青滑稽', '蓝滑稽'],// 搜索匹配,[]表示不使用
      that.mySearchFunction, // 提供一个搜索回调函数
      that.myGobackFunction //提供一个返回回调函数
    );
  },

  // 转发函数,固定部分
  wxSearchInput: WxSearch.wxSearchInput,  // 输入变化时的操作
  wxSearchKeyTap: WxSearch.wxSearchKeyTap,  // 点击提示或者关键字、历史记录时的操作
  wxSearchDeleteAll: WxSearch.wxSearchDeleteAll, // 删除所有的历史记录
  wxSearchConfirm: WxSearch.wxSearchConfirm,  // 搜索函数
  wxSearchClear: WxSearch.wxSearchClear,  // 清空函数

  // 搜索回调函数  
  mySearchFunction: function (value) {
    // do your job here
    // 跳转
    wx.redirectTo({
      url: '../zhanshi/zhanshi?searchValue=' + value
    })
  },

  // 返回回调函数
  myGobackFunction: function () {
    // do your job here
    // 跳转
    wx.redirectTo({
      url: '../index/index?searchValue=返回'
    })
  }

})

删除缓存,历史纪录,关键字提示

// 提示集合
var __tipKeys = [];
// 搜索回调函数 
var __searchFunction = null;
// 返回函数 
var __goBackFunction = null;
// 应用变量
var __that = null;

// 初始化函数
function init(that, hotKeys, tipKeys, searchFunction, goBackFunction) {

  __that = that;
  __tipKeys = tipKeys;
  __searchFunction = searchFunction;
  __goBackFunction = goBackFunction;

  var temData = {};
  var barHeight = 43;
  var view = {
    barHeight: barHeight
  }
  temData.hotKeys = hotKeys;

  wx.getSystemInfo({
    success: function (res) {
      var wHeight = res.windowHeight;
      view.seachHeight = wHeight - barHeight;
      temData.view = view;
      __that.setData({
        wxSearchData: temData
      });
    }
  });

  getHisKeys(__that);
}

// 搜索框输入时候操作
function wxSearchInput(e) {
  var inputValue = e.detail.value;
  // 页面数据
  var temData = __that.data.wxSearchData;
  // 寻找提示值 
  var tipKeys = [];
  if (inputValue && inputValue.length > 0) {
    for (var i = 0; i < __tipKeys.length; i++) {
      var mindKey = __tipKeys[i];
      // 包含字符串
      if (mindKey.indexOf(inputValue) != -1) {
        tipKeys.push(mindKey);
      }
    }
  }
  // 更新数据
  temData.value = inputValue;
  temData.tipKeys = tipKeys;
  // 更新视图
  __that.setData({
    wxSearchData: temData
  });
}

// 清空输入
function wxSearchClear() {
  // 页面数据
  var temData = __that.data.wxSearchData;
  // 更新数据
  temData.value = "";
  temData.tipKeys = [];
  // 更新视图
  __that.setData({
    wxSearchData: temData
  });
}

// 点击提示或者关键字、历史记录时的操作
function wxSearchKeyTap(e) {
  search(e.target.dataset.key);
}

// 确任或者回车
function wxSearchConfirm(e) {
  var key = e.target.dataset.key;
  if(key=='back'){
    __goBackFunction();
  }else{
    search(__that.data.wxSearchData.value);
  }
}

function search(inputValue) {
  if (inputValue && inputValue.length > 0) {
    // 添加历史记录
    wxSearchAddHisKey(inputValue);
    // 更新
    var temData = __that.data.wxSearchData;
    temData.value = inputValue;
    __that.setData({
      wxSearchData: temData
    });
    // 回调搜索
    __searchFunction(inputValue);
  }
}

// 读取缓存
function getHisKeys() {
  var value = [];
  try {
    value = wx.getStorageSync('wxSearchHisKeys')
    if (value) {
      // Do something with return value
      var temData = __that.data.wxSearchData;
      temData.his = value;
      __that.setData({
        wxSearchData: temData
      });
    }
  } catch (e) {
    // Do something when catch error
  }
}

// 添加缓存
function wxSearchAddHisKey(inputValue) {
  if (!inputValue || inputValue.length == 0) {
    return;
  }
  var value = wx.getStorageSync('wxSearchHisKeys');
  if (value) {
    if (value.indexOf(inputValue) < 0) {
      value.unshift(inputValue);
    }
    wx.setStorage({
      key: "wxSearchHisKeys",
      data: value,
      success: function () {
        getHisKeys(__that);
      }
    })
  } else {
    value = [];
    value.push(inputValue);
    wx.setStorage({
      key: "wxSearchHisKeys",
      data: value,
      success: function () {
        getHisKeys(__that);
      }
    })
  }
}

// 删除缓存
function wxSearchDeleteAll() {
  wx.removeStorage({
    key: 'wxSearchHisKeys',
    success: function (res) {
      var value = [];
      var temData = __that.data.wxSearchData;
      temData.his = value;
      __that.setData({
        wxSearchData: temData
      });
    }
  })
}

// 导出接口
module.exports = {
  init: init, //初始化函数
  wxSearchInput: wxSearchInput,// 输入变化时的操作
  wxSearchKeyTap: wxSearchKeyTap, // 点击提示或者关键字、历史记录时的操作
  wxSearchDeleteAll: wxSearchDeleteAll, // 删除所有的历史记录
  wxSearchConfirm: wxSearchConfirm, // 搜索函数
  wxSearchClear: wxSearchClear,  // 清空函数
}

因为不知道怎么上传效果动图,所以只有贴代码,但代码有点多,所以只贴了关于js的代码。

最后总结

这次寒假答辩因为自己的时间规划不充分,所以作品感觉不是很好,该有界面有些还没有完成。
这次答辩让我对微信小程序有了简单的入门,也帮助我在自己想写的项目上打下了一点点基础。
让我有了一点组件化的思想。
感觉可以多写一些小功能,把它们封装起来,以后又用的时候直接导入修改参数就可以了。
还是要好好复习前端提审一下自己的赏美。
真的这个配色,emmmmmmmmmmmmmmmmm.
希望自己能够好好学习后面的东西,早点写好那个云端小卖部。(这样可以让我妈妈少请两个工人。)

标签:__,web,许永青,滑稽,value,temData,2018,var,data
来源: https://blog.csdn.net/xuyongqing1/article/details/89294329