资讯活动
不断进行技术创新、设备创新、服务创新和管理方式创新来继续研发出更多满足客户需要的产品项目立项背景
项目开发前:
公司有自己的维修中心,经销商和维修站师傅无法解决的事情,就会把产品寄给到维修中心来,由维修中心处理,处理流程主要有这几个步骤,入库、检测、检测得出报价结果(委托方需要确认价格)、维修、复检、打包、出库。
痛点场景:
项目构成:
小程序主要是售后管理后台「维修中心」这一模块功能的替代品,维修中心工作人员因为要四处跑,手机肯定比PC方便
小程序配合管理后台主要是为了简化这些的流程,更精细化得管理整个维修的过程。
注意:「扫码」不是必须的,只是为了省去工作人员找单的时间,这些只是项目的大体流程,还有很多细节就不一一赘述了。
个人前端渣渣,主要负责基于钉钉的小程序前端开发,管理后台偶尔也会帮一下忙。这里只说小程序,钉钉小程序和微信小程序大致相同,语法和api都类似,上次整理的小程序通用版本,稍微改一下,基本都适用。
data
里面的数据,一定要通过 setData
来修改,不要通过this.data.xxx
来修改,即使你不需要刷新视图。不然重新进入这个界面的时候,data
里面的数据不能进行初始化,还是上次页面修改的数据,有时还会出现各种怪异的情况,例如:小程序卡死,奔溃、无响应等等,微信小程序则不会,你不需要刷新视图的时候,通过this.data.xxx
来修改数据也不怎么样wx.request
、 钉钉小程序 dd.httpRequest
,这个方面,微信的 api 做得比钉钉的好dd.httpRequest
:GET
、POST
;2xx
时,都当作异常处理,例如:5xx 、4xx 、请求格式错误或者请求失败时,需要在fail
里面做处理
wx.request
GET
、POST
、PUT
、DELETE
等等都支持;http2
、缓存,quic
等等;2xx
、5xx
、4xx
时,都放在success
里面,微信应该是这样界定的,因为请求和响应都完成了,所以都放在success
里 ;只有请求格式错误或者请求失败时,则会被当做异常,需要在fail
里面做处理
suceess
和fail
中都调用。
dd.setStorage
、dd.setStorageSync
等等,参数都是以{key:xxx,data:xxx}
来传递,微信缓存 api 除了可以写之外,还使用wx.setStorageSync('key', 'value')
的传参方式this.selectComponent('选择器')
来获取子组件实例,钉钉只能通过间接的方式来获取。我们知道子组件可以调用父组件的函数并传递参数,我们可以在调用时,把子组件的实例(this)作为参数,传给父组件。//例子:
//父组件
// father.axml
// 使用子组件并,并传递 onGetInstance 方法
//father.js
onGetInstance(instance){
console.log(instance) //instance 就是实例
}
//子组件
//child.js
//在子组件挂载完成之后,调用 onGetInstance方法把子组件的this传给父元素
didMount() {
this.props.onGetInstance(this)
}
page
上写的样式会作用到组件上,微信默认是有样式隔离的,可通过 styleIsolation
来配置不同的样式隔离模式。还有一些 api 上的小细节,就不一一对比。整体来说除了一些「钉钉」和「微信」中特有的API,两平台都有那些 ,基本都是微信的功能更完善强大。这也可以理解,毕竟微信小程序和钉钉小程序的「用户数量」、「平台属性」、「服务群体」都有差异。
mini-ali-ui
组件库,需要到支付宝看开发文档,支付宝部分 api 和 钉钉是通用的dd
可以换成 my
mini-ali-ui
的 Collapse
组件动态添加内容的时候,高度不会自适应,需要先折叠再打开才能适应高度。为了解决这个坑爹bug,特意去看了下源码,发现可以调用am-collapse-updates-collapse
里面的方法来刷新视图,在我的项目中,用到了很多 Collapse
组件,就动手简单封装了个方法,参考下面: // 刷新 Collapse 视图
// collapsKeys collapse-item 组件对应的 key
export function updateCollapse(...collapsKeys) {
collapsKeys.forEach(x => {
let index = null
if (this[`am-collapse-ids-collapse`]) {
index = this[`am-collapse-ids-collapse`].findIndex(y => y === x)
}
if (index || index === 0) {
try {
this[`am-collapse-updates-collapse`][index]()
} catch (error) {
console.log(error)
}
}
})
}
我们用“态度决定一切”的服务
立志用心对待每一位客户