小程序开发日记-03新增合同

今天把写好的3篇日记搬到了随笔,copy paste了一下。

这样经验可以分享了,写的不好多包涵,有用的就权当做个参考。

今日计划开发新增合同部分,工作包括:

  1. 做新增的页面布局wxml
  2. 灌注据(基础类型类的数据),在页面上可以选择。
  3. 开发表单的校验规则rules
  4. 页面逻辑:增加删除合同类型及金额
  5. 页面逻辑:选择合同评审自动填充
  6. 页面逻辑:日期控件找一下
  7. 页面逻辑:选择客户功能,是否需要弹框,如果弹框,则需要和以前的公用。重构?
  8. 组合json数据,以及提交请求request
  9. 改造服务器端的rest 接口,包括能用rest client能够提交成功测试。
  10. 提交成功后,显示弹框,告诉客户的修改时限。

2天搞不搞的定?玄!,走着看。这还不包括页面的美观,样式的调整!

下午把页面布局搞了个7788,但发现有些基础数据和常用的功能需要重复代码,不好。想办法重构使之重用。

1 基础数->全部放到app.globalData中,这些基础数据等程序一加载就load进来。

2 常用的功能->需要调用wx.request,归置到一个公用的js中,用Promise进行封装。

-------------------------------------------------------------------------------------------------------------------------------------------

说说Javascript同步调用调用的事儿:


function
sync1(value, callback){ console.log('sync1:' + value) if(callback != null) callback(); } function sync2(value, callback){ console.log('sync2:' + value) if(callback != null) callback(); } function sync3(value, callback){ console.log('sync3:' + value) if(callback != null) callback(); }

//javascript 方法本身就是同步调用,这样写即可 sync1(
1) sync2(2) sync3(3) console.log('Hello BJfarmer!'); setTimeout(function(){ console.log('timeout call happended.'); },1000);
//用callback嵌套的经典写法! sync1(
1, function(){ sync2(1, function(){ sync3(1, function(){ console.log('Last call is invoked!'); }) }) }); console.log('Hello BJfarmer!');
//利用Promise then,调用链是同步的。
new Promise(function(reslove,reject){ console.log('start executing ...'); }).then(new Promise(function(reslove,reject){ sync1(1,function(){}); })).then(new Promise(function(reslove,reject){ sync2(1,function(){}); })).then(new Promise(function(reslove,reject){ sync3(1,function(){}); })).then(new Promise(function(reslove,reject){ console.log('start executing ...done!'); })); console.log('Hello BJfarmer!');

分割-------------------------------------------------------------------------------------------------------------------------------------------

晚上一直致力于新的Request框架,将wx.request进行封装,减少重复的代码。引入了新的class Request, 下面是调用的代码:

  var requestHandler = require('../utils/request.js')

requestHandler.requestDepts().then(res => { that.setData({ depts: res.data }) }, error => { that.setData({ error: error.msg }) } )
  • 这样一个rest调用就能减少10行代码,更加精简;
  • 重复的代码可以归置到一个地方去,减少复制粘贴代码;
  • 封装的类统一将request的log输出;

感觉不错,但重构代码真心繁琐,需要将以前的代码一起修改,重新测试。

今天的任务,完成了15%:

  1. 做新增的页面布局wxml (基本完成)
  2. 灌注据(基础类型类的数据),在页面上可以选择。 (进行中。。。)

2020-12-19

原文地址:https://www.cnblogs.com/bjfarmer/p/14158215.html