微信小程序之在线任务发布与接单平台

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LINZHENYU1996/article/details/79765665

目的

初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法;熟悉掌握C/S或B/S结构的数据库应用系统开发的整个过程。

环境

计算机硬件配置: Apache / PHP / MySQL / 微信小程序

操作系统: Linux / Windows 10 64位 / 微信小程序

数据库管理系统: Mysql数据库服务器

系统设计与开发用到的工具:Sublime Text 2 / 微信web开发者工具 / Dreamweaver / Mysql

内容

运用数据库基础知识,在数据库应用环境下,完成一个具体的数据库应用系统的分析、设计与实现。

针对设计任务利用建模工具(Rose、PowerDesigner 等)进行数据库建模,在使用SQLserver 基础上,利用一种应用开发工具(PHP、VC、java 等)设计实现一个数据库应用系统。

要求能实现对数据库中数据的插入、删除、修改、查询、统计等功能,做到界面友好、使用方便。所建的数据库表至少满足第三范式,掌握应用系统与数据库相连方法,掌握程序访问数据库中数据的技术方法,进一步提高分析与解决问题的综合能力。

需求说明:

第一,有时候我们会碰到急需别人帮助的紧急情况,所以平台上提供人们发布实时求助的信息,相应的,别人可以接下求助,并收到一定的佣金,最后对该任务订单互相评价。

第二,服务的发布,就是针对有一技之长的人可以在线发布服务,替别人排忧解难,同样也有佣金和评价。

第三,平台也容纳了一个树洞,是一个给用户们交流和互动的平台。用户在茶闲饭后在树洞内可以有更进一步的接触,为小程序吸引用户留下用户。

第四,每一个用户可以在个人页,方便快捷地查看收发的求助/服务/评价/树洞。


发布服务模块:

//service.js

var util = require('../../utils/util.js');
var app=getApp();
Page({
  data:{
      service_location:'未知位置',
      unit_type:['次','小时','分钟','单','幅','天','周','月','份','课时','个','面议'],
      unit_index:0,
      servive_type:['维修','打印','摄像','代办跑腿','顺风车'],
      openid: null,
      pic: '/img/upload.png',
      servive_index:0,
      date: util.formatTime(new Date),
  },
  chooseImageTap: function () {
    let _this = this;
    wx.showActionSheet({
      itemList: ['从相册中选择', '拍照'],
      itemColor: "#E24E42",
      success: function (res) {
        if (!res.cancel) {
          if (res.tapIndex == 0) {
            _this.chooseWxImage('album')
          } else if (res.tapIndex == 1) {
            _this.chooseWxImage('camera')
          }
        }
      }
    })

  },
  chooseWxImage: function (type) {
    let _this = this;
    wx.chooseImage({
      sizeType: ['original', 'compressed'],
      sourceType: [type],
      success: function (res) {
        console.log(res);
        _this.setData({
          pic: res.tempFilePaths[0],
        })
      }
    })
  },
  totask:function(){
    wx.switchTab({
      url: '../task/task'
    })
  },
  bindPickerChange_unit: function(e) {
     this.setData({
       unit_index: e.detail.value
       })
  },
  bindPickerChange_servive: function(e) {
    this.setData({
      servive_index: e.detail.value
    })
  },
 submit_service:function(e){
    wx.request({
      url: 'https://www.cc.com/submit_service.php',
      data: {
      service_name:e.detail.value.service_name,
      service_description:e.detail.value.service_description,
      service_price:e.detail.value.service_price,
      service_location:this.data.service_location,
      unit_index:this.data.unit_index,
      servive_index:this.data.servive_index,
      service_area:e.detail.value.service_area,
      openid:this.data.openid,
      service_time: this.data.date
      },
      method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      header: {
        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
      }, // 设置请求的 header
      success: function(res){
        // success
        var err=res.data.error
        if(err){
          console.log('error submit_service ')
        }
        else{
          wx.switchTab({
            url: '../serviceshow/serviceshow',
            success: function(res){
              // success
            },
            fail: function(res) {
              // fail
            },
            complete: function(res) {
              // complete
            }
          })
        }
      },
      fail: function(res) {
        // fail
      },
      complete: function(res) {
        // complete
      }
    })


    wx.uploadFile({
      url: 'https://www.cc.com/upload_pic.php',
      filePath: this.data.pic,
      name: 'file',
      header: {
        'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
      }, // 设置请求的 header
      formData: { openid: e.detail.value.service_name, time: this.data.date,flag:'service', }, // HTTP 请求中其他额外的 form data
      success: function (res) {
        console.log(res);
        if (res.statusCode == 200 && !res.data.result_code) {
          typeof success == "function" && success(res.data);
        } else {
          typeof fail == "function" && fail(res);
        }
      },
      fail: function (res) {
        console.log(res);
        typeof fail == "function" && fail(res);
      }
    })

  },
  onLoad:function(options){
    // 生命周期函数--监听页面加载
    var that =this;
    app.getUserOpenid(function(openid){
        that.setData({
          openid:openid
      })
    })
    wx.getLocation({
      success: function (res) {
        wx.request({
          url: 'https://apis.map.qq.com/ws/geocoder/v1/?key=XD7BZ-LWCWG-EKWQY-IRKJU-Y66X7-3MFPO&location=' + res.latitude + ',' + res.longitude,
          success: function (res) {
            that.setData({
              service_location: res.data.result.address
            })

          }
        })
      }
    })
    
  },
  onReady:function(){
    // 生命周期函数--监听页面初次渲染完成
  },
  onShow:function(){
    // 生命周期函数--监听页面显示
  },
  onHide:function(){
    // 生命周期函数--监听页面隐藏
  },
  onUnload:function(){
    // 生命周期函数--监听页面卸载
  },
  onPullDownRefresh: function() {
    // 页面相关事件处理函数--监听用户下拉动作
  },
  onReachBottom: function() {
    // 页面上拉触底事件的处理函数
  },
  onShareAppMessage: function() {
    // 用户点击右上角分享
    return {
      title: 'title', // 分享标题
      desc: 'desc', // 分享描述
      path: 'path' // 分享路径
    }
  }
})

展开阅读全文

没有更多推荐了,返回首页