import jsonConfig from '../../../utils/json' const app = getApp() Page({ /** * 页面的初始数据 */ data: { deptId: "", projectId: "", projectName: "", loginName: "", imageInfoData: [], loadShow: false, standardType: "1", standardTypeList: [], info: "", standardDesc: "", standardNotes:[], showPopup:false, showDetailsName:"", activeId:null, mainActiveIndex:0, }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { let { projectId, projectName } = options //获取缓存数据 wx.getStorage({ key: 'userinfo', success: res => { this.setData({ projectId, projectName, deptId: res.data.deptId, loginName: res.data.loginName }) this.getStandardTypeList(); this.initStandardTypeListNotes(this.data.standardType); } }) }, /** * 初始化标准类型 */ initStandardTypeListNotes(type) { let index = type - 1; this.setData({ activeId: null, mainActiveIndex: 0, showDetailsName: "", standardNotes:jsonConfig.standardTypeListNotes[index] }) }, //关闭申请明细选择 onShowPopup(e) { this.setData({ showPopup: true }) }, //关闭申请明细选择 onClosePopup(e) { this.setData({ showPopup: false }) }, /** * 栏目触发事件 */ onClickNav(e) { this.setData({ activeId: null, mainActiveIndex: e.detail.index }) }, /** * 选项触发事件 */ onClickItem(e) { this.setData({ activeId:e.detail.id, showDetailsName: e.detail.text }) this.onClosePopup(); }, getStandardTypeList() { let that = this wx.request({ url: app.globalData.reqUrl + '/wechat/projectStandard/queryStandardType', method: "get", data: {}, header: { 'content-type': 'application/x-www-form-urlencoded' }, success(res) { res = res.data if (res.code == 200) { let list = []; res.data.forEach(it => { list.push({ "id": it.dictValue, "text": it.dictLabel, "info": it.remark }); }) that.setData({ standardTypeList: list, standardType: res.data[0].dictValue, info: res.data[0].remark }) } } }) }, //图片描述 onInputStandardDesc(e) { let standardDesc = e.detail.value this.setData({ standardDesc }) }, // list 上传图片 onImagesArr(e) { var data = this.data.imageInfoData data = e.detail this.setData({ imageInfoData: data }) }, //取消页面 cancelSaveView() { this.returnToPage() }, //保存 onSave() { this.setData({ loadShow: true }) let that = this let { projectId, loginName, deptId, standardType, standardDesc, imageInfoData, activeId } = that.data; //数据效验 if (projectId == "" || loginName == "" || deptId == "") { app.toast("数据异常,请刷新页面重试!") that.setData({ loadShow: false }) return; } if (standardType == "") { app.toast("请选择标准类型!") that.setData({ loadShow: false }) return; } if(!activeId){ app.toast("请选择类型明细!") that.setData({ loadShow: false }) return; } if (imageInfoData.length == 0) { app.toast("请上传标准图片!") that.setData({ loadShow: false }) return; } if (standardDesc == "") { app.toast("请填写图片描述!") that.setData({ loadShow: false }) return; } let fileUrls = []; imageInfoData.forEach(async (item) => { let uploadUrl = app.globalData.uploadUrl + '/common/upload' let name = "file" //这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片 let obj = await that.syncUploadImage(uploadUrl, item, name); fileUrls.push(obj.data.fileName); //验证图片上传完毕 if (fileUrls.length == imageInfoData.length) { let params = { projectId, deptId, imageFile: fileUrls.toString(), standardType:activeId, standardDesc, ord: 1, createBy: loginName } wx.request({ url: app.globalData.reqUrl + '/wechat/projectStandard/add', method: "POST", data: params, header: { "Username": loginName, "Content-Type": "application/json" }, success(res) { that.setData({ loadShow: false }) res = res.data if (res.code == 200) { app.toast("添加成功!") setTimeout(() => { wx.redirectTo({ url: '../list/index', }) }, 200) } } }) } }) }, /** * 这里考虑上传图片异步问题,封装为同步 */ syncUploadImage(url, uploadFile, name) { return new Promise((resolve, reject) => { wx.uploadFile({ url, // 上传的服务器接口地址 filePath: uploadFile, header: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" }, name, //上传的所需字段,后端提供 formData: { user: 'test' }, success: (res) => { // 上传完成操作 const data = JSON.parse(res.data) resolve({ data: data }) }, fail: (err) => { //上传失败:修改pedding为reject console.log("访问接口失败", err); wx.showToast({ title: "网络出错,上传失败", icon: 'none', duration: 1000 }); reject(err) } }); }) }, //选择项目标准类型 onSelectStandardType(e) { this.setData({ standardType: e.detail.id, info: e.detail.info }) this.initStandardTypeListNotes(e.detail.id); }, returnToPage: function () { /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ wx.redirectTo({ url: '../list/index', }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })