const app = getApp(), Api = require("../../../../utils/util.js"); const { API_MONIT_URL,API_BASE_URL,UP_MONIT_IMG } = require('../../../../api/api') Page({ data: { API_MONIT_URL: API_MONIT_URL, API_BASE_URL: API_BASE_URL, UP_MONIT_IMG: UP_MONIT_IMG, currentTab: 0, tab: ['服务反馈', '物料信息', '基本信息'], measuresList: [], measures: '', stationName: '', category: '', categoryList: ['电表箱', '支架', '并网箱', '组件','逆变器'], applianceBrand: '', applianceBarcode: '', typeList: ['保内', '保外'], backSay: '', mileage: '', imgName1: [], brandList: [],//设备品牌 useFitting: [], applyFitting: [], servTypeList: [], serviceTypeName: '' }, // 点击切换工单 swichNav: function(e) { this.setData({ currentTab: e.currentTarget.dataset.current }) }, onLoad: function(options) { var that = this; wx.showLoading({ title: '加载中...', }) that.setData({ status: options.status, id: options.id, imgUrl: app.globalData.imgUrl, }) //基本信息 Api.req('sf/operationOrder/detail', { id: options.id }, 'get').then(res => { wx.hideLoading() if(res.code == 200){ res.data.bdImgs = res.data.bdImgs.split(','); var basic = res.data; that.setData({ basic: basic, category: basic.applianceCategory, //设备类型 applianceBrand: basic.applianceBrand, //设备品牌 applianceBarcode: basic.applianceBarcode, //设备序列号 date: basic.putIntoTime.slice(0, 10), //投运时间 type: basic.warrantyType?that.data.typeList[Number(basic.warrantyType) - 1]:'', //保修类型 warrantyType: basic.warrantyType, //保修类型 serviceType: basic.serviceType, //服务类型 serviceTypeName: basic.serviceTypeName, //服务类型 measuresId: basic.serviceMeasures, //服务措施ID measures: basic.serviceMeasuresName, //服务措施 }) that.getList() } }) this.getBrandList() this.getServiceMeasures() this.getServiceType() }, //设备品牌 getBrandList(){ Api.req('sf/operationOrderCallback/getAllBrand', { // orderId: options.id }, 'get') .then(res => { if(res.code == 200){ this.setData({ brandList: res.data, }) } }) }, //服务措施 getServiceMeasures(){ Api.req('sf/operationServiceMeasures/list', { // orderId: options.id }, 'get') .then(res => { if(res.code == 200){ this.setData({ measuresList: res.data.records, }) } }) }, //服务类型 getServiceType(){ Api.req('sf/operationServiceType/list', {}, 'get') .then(res => { if(res.code == 200){ this.setData({ servTypeList: res.data, }) } }) }, //电站名称 stationName: function(e) { this.setData({ stationName: e.detail.value }) }, //设备类型 category: function(e) { this.setData({ category: this.data.categoryList[e.detail.value], }) }, //设备品牌 applianceBrand: function(e) { this.setData({ applianceBrand: this.data.brandList[e.detail.value].name, applianceBrandId: this.data.brandList[e.detail.value].id }) }, //设备S/N applianceBarcode: function(e) { this.setData({ applianceBarcode: e.detail.value }) }, //保修类型 type: function(e) { let index = Number(e.detail.value); this.setData({ type: this.data.typeList[index], warrantyType: String(index + 1) }) }, //服务类型 servType: function(e) { let index = Number(e.detail.value); this.setData({ serviceType: this.data.servTypeList[index].id, serviceTypeName: this.data.servTypeList[index].name }) }, //投运时间 date: function(e) { this.setData({ date: e.detail.value }) }, //服务措施选择 measures: function(e) { this.setData({ measures: this.data.measuresList[e.detail.value].serviceMeasures, measuresId: this.data.measuresList[e.detail.value].id }) }, //反馈内容 backSay: function(e) { this.setData({ backSay: e.detail.value }) }, //销售商 seller: function(e) { this.setData({ seller: e.detail.value }) }, //发票号 bill: function(e) { this.setData({ bill: e.detail.value }) }, //产品名称 pro_name: function(e) { this.setData({ pro_name: e.detail.value }) }, //规格型号 typeModel: function(e) { this.setData({ typeModel: e.detail.value }) }, //机身编码 code: function(e) { this.setData({ code: e.detail.value }) }, /** * * 上传图片 * * @param {*} e */ afteruploadPhotoRead(e) { const type = e.currentTarget.dataset.type const name = e.currentTarget.dataset.name if (Array.isArray(e.detail.file)) { //多张 var count = 0; this.afteruploadPhotoReadS(e, count) return } const { file } = e.detail; const img = file.url; wx.showLoading({ title: '上传中', }) var that = this wx.uploadFile({ url: that.data.UP_MONIT_IMG, filePath: file.url, header:{ 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic c2FiZXIzOnNhYmVyM19zZWNyZXQ=', 'Blade-Requested-With':'BladeHttpRequest', 'Tenant-Id': '000000', 'Blade-Auth': 'bearer ' + wx.getStorageSync('TOKEN'), }, name: 'file', complete: function (res) { console.log("上传图片", res) var imgData = JSON.parse(res.data) wx.hideLoading() if (res.statusCode == 200) { wx.showToast({ title: '选择成功', icon: 'none', }) var item = { url: "", name: "", } item.url = img; item.name = imgData.data.name; that.data[name].push(item) that.setData({ [`${name}`]: that.data[name] }) } else { wx.showToast({ title: '选择失败', icon: 'error' }) } } }) }, /** 上传多张图片递归 **/ afteruploadPhotoReadS(e, count) { let ob = { name: '', url: '', } const name = e.currentTarget.dataset.name wx.showLoading({ title: '加载第' + (count + 1) + '张照片中', mask: true, }) const element = e.detail.file[count]; var that = this; wx.uploadFile({ url: that.data.UP_MONIT_IMG, filePath: element.url, header:{ 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic c2FiZXIzOnNhYmVyM19zZWNyZXQ=', 'Blade-Requested-With':'BladeHttpRequest', 'Tenant-Id': '000000', 'Blade-Auth': 'bearer ' + wx.getStorageSync('TOKEN'), }, name: 'file', success(res) { wx.hideLoading() var imgData = JSON.parse(res.data) if (res.statusCode == 200) { count = count + 1; ob.name = imgData.data.name ob.url = element.url that.data[name].push(ob); that.setData({ [`${name}`]: that.data[name] }) if (count == e.detail.file.length) { wx.showToast({ title: '选择成功', icon: 'none' }) } else { that.afteruploadPhotoReadS(e, count) } } else { wx.showToast({ title: '选择失败', icon: 'error' }) } } }) }, //上传图片 uploadImg: function(maxNum, imgName, cb) { var that = this, maxNum = maxNum; wx.chooseImage({ count: maxNum - that.data.img.length, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { const tempFilePaths = res.tempFilePaths; var imgList = that.data.imgList.concat(tempFilePaths), getImg = imgName; for (var i = 0; i < imgList.length; i++) { wx.showLoading({ title: '图片上传中...', mask: true }) wx.uploadFile({ url: that.data.url + 'common/weChat/uploadImage', filePath: imgList[i], name: 'file', //在FILE请求中,图片存储在img字段中 success: function(res) { if (getImg.length < maxNum) { getImg.push(res.data) var imgs = getImg that.setData({ imgs }) typeof cb == 'function' && cb(that) } wx.hideLoading() }, fail: function(res) { wx.showToast({ title: 'error!', icon: 'none', image: '/img/error.png' }) }, }) } } }) }, //删除上传图片 deleteImg: function(e) { const name = e.currentTarget.dataset.name const index = e.detail.index //删除图片的下标 this.data[name].splice(index, 1); this.setData({ [`${name}`]: this.data[name] }) }, //提交 submit: function(e) { var that = this; var type = e.currentTarget.dataset.type if(type == '1'){//服务完成全必填 if(this.data.applianceBrand == ''){ wx.showToast({ title: '设备品牌不能为空', icon: 'none' }) return }else if(this.data.applianceBarcode ==''){ wx.showToast({ title: '设备S/N不能为空', icon: 'none' }) return }else if(this.data.type == ''){ wx.showToast({ title: '保修类型不能为空', icon: 'none' }) return }else if(this.data.serviceType == ''){ wx.showToast({ title: '服务类型不能为空', icon: 'none' }) return }else if(this.data.measures == ''){ wx.showToast({ title: '服务措施不能为空', icon: 'none' }) return }else if(this.data.backSay ==''){ wx.showToast({ title: '反馈内容不能为空', icon: 'none' }) return }else if(this.data.imgName1.length==0){ wx.showToast({ title: '过程照片不能为空', icon: 'none' }) return } }else{ if(this.data.backSay ==''){ wx.showToast({ title: '反馈内容不能为空', icon: 'none' }) return }else if(this.data.imgName1.length==0){ wx.showToast({ title: '过程照片不能为空', icon: 'none' }) return } } wx.showLoading({ title: '提交中...', mask: true }) var data = { orderId: this.data.id, applianceBrand: this.data.applianceBrand, //品牌 applianceBarcode: this.data.applianceBarcode,//设备S/N warrantyType: this.data.warrantyType,//保修类型 serviceType: this.data.serviceType,//服务类型 putIntoTime: this.data.date, //投运时间 serviceMeasures: this.data.measuresId, //服务措施 feedbackImg: this.data.imgName1.length > 0 ? this.data.imgName1.map(itm=>itm.name).join(",") : "",//过程图片 feedbackType: type,//反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈 feedback: this.data.backSay, //反馈内容 } // console.log("执行",data); // return Api.req('sf/operationOrderFeedback/save', data, 'post', '','1') .then(res => { wx.hideLoading() if (res.code == '200') { wx.showToast({ title: '操作成功', }) var page = getCurrentPages(); let prevPage = page[page.length - 2]; setTimeout(function() { prevPage.getNum(); prevPage.getOrder(); wx.navigateBack({}) }, 1000) } else { wx.showToast({ title: res.msg, icon: 'none', mask: true }) } }) }, //设备列表 goDevice(){ wx.navigateTo({ url: '../../deviceList/deviceList?id=' + this.data.basic.entryId, }) }, //反馈记录 backRecord: function(e) { wx.navigateTo({ url: '../backDetail/backDetail?id=' + e.currentTarget.dataset.id + '&type=' + e.currentTarget.dataset.type }) }, //物料信息 getDetail(e){ let type = e.currentTarget.dataset.type if(type == '1'){//物料使用详情 wx.navigateTo({ url: '../../materialDetail/materialDetail?id=' + e.currentTarget.dataset.id + '&title=已用物料' }) }else{//物料申请详情 wx.navigateTo({ url: '../../addMaterial/addMaterial?id=' + e.currentTarget.dataset.id + '&title=详情' }) } }, //使用物料 getUseList(e){ wx.navigateTo({ url: '../../materialUse/materialUse?orderId=' + this.data.basic.id }) }, //申请物料 goAddApply(e){ wx.navigateTo({ url: '../../addMaterial/addMaterial?orderId=' + this.data.basic.id + '&title=新增物料申请' }) }, //编辑申请物料 editList(e){ wx.navigateTo({ url: '../../addMaterial/addMaterial?id='+ e.currentTarget.dataset.id +'&orderId=' + this.data.basic.id + '&title=编辑' }) }, //领取 getReceive(e){ let that = this let id = e.currentTarget.dataset.id wx.showModal({ title: '提示', content: '是否确认领取该物料?', complete: (res) => { if (res.confirm) { wx.showLoading({ title: '加载中...', }) Api.req('blade-platformFittingApply/platformFittingApply/empReceiveMate', { id: id }, 'get').then(res => { wx.hideLoading() if(res.code == 200){ wx.showToast({ title: '操作成功', }) setTimeout(()=>{ that.getList(); },500) } }) } } }) }, //物料信息列表 getList: function () { var that = this wx.showLoading({ title: '加载中...', }) Api.req('blade-operationOrderMaterial/operationOrderMaterial/materialListRelateOrder', { orderId: this.data.basic.id }, 'get').then(res => { wx.hideLoading() if(res.code== 200){ this.setData({ useFitting: res.data.useFitting, //使用物料 applyFitting: res.data.applyFitting, //申请物料 }) }else{ wx.showToast({ title: res.errMsg, icon: 'none' }) } }) }, //删除物料 delList(e){ let that = this let id = e.currentTarget.dataset.id let type = e.currentTarget.dataset.type let url = '' if(type == '1'){ url = 'blade-operationOrderMaterial/operationOrderMaterial/deleteUserFitting' //删除使用 }else{ url = 'blade-operationOrderMaterial/operationOrderMaterial/deleteApplyFitting' //删除申请 } wx.showModal({ title: '提示', content: '是否确认删除该物料?', complete: (res) => { if (res.confirm) { wx.showLoading({ title: '加载中...', }) Api.req(url, { id: id }, 'get').then(res => { wx.hideLoading() if(res.code == 200){ wx.showToast({ title: '删除成功', }) setTimeout(()=>{ that.getList(); },500) } }) } } }) } })