微信小程序记录

微信小程序-移动端小商城

项目说明:

微信小程序:实现一个移动端小商城,项目持续更新中...

使用技术:Weui.wxssES6

目录结构:

weimall/
  |-assets/
     |- images/
     |- plugins/
     |- styles/
     |- ...
  |-etc/
     |- config.js
     |- ...
  |-helpers/
     |- HttpResource.js
     |- HttpService.js
     |- ServiceBase.js
     |- Tools.js
     |- WxResource.js
     |- WxService.js
     |- WxValidate.js
     |- ...
  |-pages/
      |- start
        |- index.js
        |- index.json
        |- index.wxml
        |- index.wxss
      |- ...
  |-app.js
  |-app.json
  |-app.wxss
  |-...
  • assets — 存放静态文件,例如:images、styles、plugins
  • etc — 存放配置文件,例如:config.js
  • helpers — 存放帮助文件,例如:Promise 微信原生API、Promise wx.request、RESTful http client、Form validation
  • pages — 存放项目页面相关文件
  • app.js — 小程序逻辑
  • app.json — 小程序公共设置
  • app.wxss — 小程序公共样式表

增删改查

import ServiceBase from ‘ServiceBase‘

class Service extends ServiceBase {
	constructor() {
		super()
		this.$$prefix = ‘‘
		this.$$path = {
      wechatSignUp: ‘/index/wechatSignUp‘,
      wechatSignIn: ‘/index/wechatSignIn‘,
      decryptData: ‘/index/decryptData‘,
      signIn: ‘/index/signIn‘,
      signOut: ‘/index/signOut‘,
      data:‘/index/data‘,
      detail: ‘/index/detail‘,
      add: ‘/index/add‘, 
      del: ‘/index/del‘, 
      update: ‘/index/update‘
    }
	}

	wechatSignUp(params) {
		return this.postRequest(this.$$path.wechatSignUp, params)
	}

	wechatSignIn(params) {
		return this.postRequest(this.$$path.wechatSignIn, params)
	}

	wechatDecryptData(params) {
		return this.postRequest(this.$$path.decryptData, params)
	}
	
  
	signIn(params) {
		return this.postRequest(this.$$path.signIn, params) 
	}

	signOut() {
		return this.postRequest(this.$$path.signOut) 
	}

  //获取表格分页数据
  getData(params) {
    return this.getRequest(this.$$path.data, params)
  }

  //获取单条数据
  getDetail(params) {
    return this.getRequest(this.$$path.detail, params)
  }
  
  //新增数据
  addData(params){
    return this.postRequest(this.$$path.add, params)
  }

  //删除数据
  delData(params) {
    return this.getRequest(this.$$path.del, params)
  }
  
  //更新数据
  updateData(params) {
    return this.getRequest(this.$$path.update, params)
  }
	
}

export default Service
     //调用数据
      App.HttpService.getData({
          table:‘banner‘,
          page:1
      }).then(data=>{
        if(data.code==0){
          data.data.forEach(n => n.path = App.renderImage(n.img));
          this.setData({
            images: data.data
          });
        }else{
          this.showModal(data.message);
        }
      });

    //新增数据
    App.HttpService.addData(params).then(data => {
      if (data.code == 0) {
        this.showToast(data.message)
      }
    }); 

   //更新数据
    App.HttpService.updateData(params).then(data => {
      if (data.code == 0) {
        this.showToast(data.message);
      }
    });

  //删除数据
    App.WxService.showModal({
      title: ‘友情提示‘,
      content: ‘确定要删除这个地址吗?‘,
    })
      .then(data => {
        if (data.confirm == 1) {
          App.HttpService.delData({
            table: ‘address‘,
            id: id
          }).then(() => App.WxService.navigateBack());
        }
      })

Form validation

<form bindsubmit="submitForm">
    <view class="weui-cells">
        <view class="weui-cell weui-cell_input">
            <view class="weui-cell__hd">
                <view class="weui-label">姓名</view>
            </view>
            <view class="weui-cell__bd">
                <input name="name" value="{{ form.name }}" class="weui-input" type="text" placeholder="请输入姓名" />
            </view>
        </view>
        <view class="weui-cell weui-cell_input">
            <view class="weui-cell__hd">
                <view class="weui-label">邮箱</view>
            </view>
            <view class="weui-cell__bd">
                <input name="email" value="{{ form.email }}" class="weui-input" type="text" placeholder="请输入邮箱" />
            </view>
        </view>
    </view>
    <view class="button-sp-area">
        <button class="weui-btn" type="primary" formType="submit">确定</button>
    </view>
</form>
import WxValidate from ‘helpers/WxValidate‘

Page({
    data: {
    	form: {
			name : ‘‘, 
			email: ‘‘, 
        },
    },
    onLoad() {
    	this.WxValidate = new WxValidate({
			name: {
				required: true, 
				minlength: 2, 
				maxlength: 10, 
			},
			email: {
				required: true, 
				email: true, 
			},
		}, {
			name: {
				required: ‘请输入姓名‘, 
			},
			email: {
				required: ‘请输入邮箱‘, 
				email: ‘请输入有效的电子邮件地址‘, 
			},
		})
    },
	submitForm(e) {
		const params = e.detail.value
		if (!this.WxValidate.checkForm(e)) {
			const error = this.WxValidate.errorList
			console.log(error)
			return false
		}
	},
})

项目截图:

微信小程序记录
微信小程序记录
微信小程序记录
微信小程序记录


感谢:

感谢开源作者:m-mall

微信小程序记录

上一篇:微信支付接入报错-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x28372d950


下一篇:小程序 wxml 中 格式化时间